Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

Как убрать из видимых товары, дата доступности которых позже текущего дня?

Добрый день! Использую на денвере верси. 2.5.2 Скрипт радует функционалом, единственный трабл который я вижу - мне надо, чтобы в каталог выводились только те товары, которые сейчас есть в наличии. А товары у которых дата доступности стоит после текущей даты - должны (думаю, что это логично) отображаться в каталоге только тогда кода эта дата наступит. Как это можно реализовать? Пробовал настройки склада менять, не помогло - все равно добавляет  в корзину товар, который будет в наличии только завтра.
Было бы просто изумительно, если бы удалось сделать то что требуется (я так понимаю, что при формировании каталога надо всего лишь добавить доп. фильтр по полю v_date_avail
) :) - т.е.  хочу заранее заполнить даты поступления товаров (на неделю-две вперед), и чтобы эти товары появлялись в видимых на сайте по мере течения времени.


Никогда такого не делал, но можете глянуть как работают "Ожидаемые товары", можте это то что вам нужно.


да я в РНР не силен :(
Евгений,  можете ли что-нибудь посоветовать?


А если попробовать поместить товар в группу "Ожидаемые товары", а статус товара выставить в "красную точку". Думаю, что в каталоге он не будет показываться, однако на главной странице в группе ожидаемые будет.
Попробуйте.


спасибо! Сейчас попробую, вчера весь мозг сломал как сделать - получалось, что единственный выход чтобы было именно так как мне надо - это прогонять sql запросы по базе и делать products_status=0 - но это получается полуавтомат - придется на кроне делать задания, что не есть хорошо. Обязательно попробую и предложенный вами вариант!


а чем вас не устраивает кнопочка Статус рядом с каждым товаром? она тоже меняет значение этого поля в таблице


Так это на ручняке получается, один-два раза это можно сделать, но на постоянку - очень проблематично.  :-[


попробуйте указать это поле при импорт/экспорте . ТОгда сможете загружать не на ручнике.


Нашел для вас вероятное решение, однако тестировать нет времени.

Открываете файл modules/default.php

Находите вот это условие:

elseif ($category_depth == 'products' || isset($_GET['manufacturers_id']))

В нем формируется массив товаров для категории или конкретного производителя. Далее ищите во такой коммент:
  // show the products in a given categorie

В запросе десятью строчками ниже находите :

where p.products_status = '1' - это ристрикш, который отбирает только доступные товары.

После этой строчки надо вставить что-нибудь типо

and p.products_date_available < 'now()'

Пробуйте, тестируйте. Если что пишите, поможем. Удачи.

p/s Если вам понадобиться, чтобы не валидные товары также нельзя было увидеть при фильтрации по производителю (уверен, что понадобиться), тогда нужно будет дописать такое же условие для всех запросов внутри
elseif ($category_depth == 'products' || isset($_GET['manufacturers_id']))   где имеется эта строка where p.products_status = '1' .


спасибо! Сейчас затестирую :)


Странно, вообще ничего не поменялось -как выводились эти товары при выборе производителя, к которому они относятся - так и выводятся после этого фикса.  :o
Буду еще копать


кaкой у вaс зaпрос получился?
Можeт нe ту функцию взятия нaстоящeго врeмeни вaм подскaзaл...посмотрю.


Источник



Copyright ShopOS