Друзья, такой вопрос, как можно убрать отображение товаров в категориях и на странице производителя при статусе "Нет в наличии" и количестве "0"? При этом товар должен быть доступен по прямой ссылке. ps. просьба не предлагать вариант привязать товар к невидимой категории. Нужно именно сохранить структуру (товар очень много и чтоб потом не искать куда их привязать). upd. Скорее всего это делается так: Код: <file name="catalog/model/catalog/product.php"> <operation> <search position="replace"><![CDATA[ p.status = '1' ]]></search> <add><![CDATA[ p.status = '1' AND p.quantity > 0 ]]></add> </operation> </file> Но как вместо p.quantity > 0 затулить Статусы наличия? Это называется как-то типа p.availability? Как их перечислить? Типа при определенных статусах показывать, а при статусе "Нет в наличии" - нет.
открываем файл catalog/model/catalog/product.php перед PHP: $sql .= " GROUP BY p.product_id"; вставляем PHP: $sql .= " AND p.quantity >= 1 AND p.stock_status_id <> '" . $this->config->get('config_stock_status_id') . "' ";
Спасибо, заработало, но есть глюк. Сохраняются страницы навигации Но товаров там нет. Как убрать номера страниц, у которых нет товаров? И еще - выводятся все доступные разделы главной категории, даже если перейти в последнюю категорию
ах да точно, забыл про копипаст кода опенкарта) еще в том же файлике в функцию getTotalProducts примерно перед такой строчкой PHP: $query = $this->db->query($sql); вставляем еще раз PHP: $sql .= " AND p.quantity >= 1 AND p.stock_status_id <> '" . $this->config->get('config_stock_status_id') . "' "; проверяем....
Пробрема с пангинациец решилась, товары которых нет в наличии тоже. Но мне нужно чтоб товары, которые с количеством 0 и с следующими статусами отображались: То есть "Вариант состояния склада в товаре" - "Нет в наличии" - товар отключаем, если один с выше перечисленных или не установлен вообще - оставляем. Нужно убрать только если товар с количеством 0 и вариантом состояния склада Нет в наличии.
как работает: отбираются товары к-во которого больше 0(если 0 или меньше то не выбираются) и если статус товара не равен статусу установленом в настройках магазина во вкладке ОПЦИИ пункте Статус "Нет на складе" если нужно чтоб выводился с 0 ковом то просто меняем PHP: $sql .= " AND p.quantity >= 1 AND p.stock_status_id <> '" . $this->config->get('config_stock_status_id') . "' "; на PHP: $sql .= " AND p.quantity >= 0 AND p.stock_status_id <> '" . $this->config->get('config_stock_status_id') . "' "; что с вариантами непонятно - незнаю можно еще произвольно вручную задать выборку со статусом заказа вместо PHP: " . $this->config->get('config_stock_status_id') . " вставить ID статуса котрый ненадо показывать ИД можно посмотреть в админке при наведении на редактирования статуса заказа
Блин, я уже обрадовался, что все работает. Но если у товара количество больше 1 и статус при отсутствии на складе - нет в наличии, то товар тоже не выводится.
Ну дак логично сделать условия что если товара нет в нужном к-ве и статус нет в наличии то не выводить, что я и сделал Ваш вариант ето либо то либо то, тоесть получится если товар в к-ве -5 а статус в наличии то он будет отображаться, или наоборот, что не очень логично Но все же, ето легко исправить заменив условия AND на OR тоесть вместо PHP: $sql .= " AND p.quantity >= 0 AND p.stock_status_id <> '" . $this->config->get('config_stock_status_id') ето PHP: $sql .= " AND p.quantity >= 0 OR p.stock_status_id <> '" . $this->config->get('config_stock_status_id')
OR точно не подходит Получается если у товара количество 900 и статус при отсутствии на складе "нет в наличии", то он не выводится. Это же не правильно, согласитесь. AND неправильно работает. Если AND p.quantity >= 0 AND p.stock_status_id товары, у которых количество 1000 тоже не выводятся: Я не понимаю почему они не выводятся. Может у вас есть варианты?
PHP: $sql .= " AND (p.quantity >= 1 OR p.stock_status_id <> '" . $this->config->get('config_stock_status_id') . "') "; Если я правильно понял что надо
Решение где-то рядом) Теперь не выводятся товары некоторых производителей. Может надо в пангинации изменить логику? Я не понимаю почему в чем отличие такого товара: от Почему один выводится, а второй - нет. UPD. Мой косяк. Я вместо изменения двух строк, изменял только одну.
Подскажите, а как эти изменения отразятся на SEO? Я понимаю, что в каталоге товара не будет видно, а с поисковой системы ссылка будет рабочая. Но на оф. сайте человек заявляет, что страницы товаров, скрываемые этим методом, выбрасываются из индекса. Вот ссылка. Получается что при следующем заходе робота ПС он не обнаруживает данный товар в каталоге и выкидывает его, не смотря на рабочую ссылку на него из самой ПС, я правильно понимаю? Просьба спецам пролить свет.
они не будут доступны поисковикам в дальнейшем... если карта сайта тоже использует ету модель то в карте тоже не будет етих товаров, что еще не понятно
А знаете ли вы способ скрыть товары с количеством 0 от глаз пользователя (чтобы не захламлять каталог), но оставить их доступными для поисковиков (чтоб не терять накопленный вес страницы)?