Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Скрыть товары которых нет в наличии


Recommended Posts

Дорогие друзья! Каким образом можно сделать так, чтобы товары, наличие которых на складе=0 автоматически скрывались из каталога и поиска? При этом нужно чтобы доступ к ним по прямой ссылке продолжал работать.
Заранее спасибо за помощь!

Надіслати
Поділитися на інших сайтах

4 минуты назад, Rojzman сказал:

Дорогие друзья! Каким образом можно сделать так, чтобы товары, наличие которых на складе=0 автоматически скрывались из каталога и поиска? При этом нужно чтобы доступ к ним по прямой ссылке продолжал работать.
Заранее спасибо за помощь!

 

Поиск по форуму работает =) 

 

Надіслати
Поділитися на інших сайтах

В файле catalog/model/catalog/product.php

Примерно 78 строка, найти:

 

$sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";

Заменить на

$sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.quantity > 0 AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";

 

Надіслати
Поділитися на інших сайтах

В 02.06.2017 в 16:24, Maximbl4m сказал:

В файле catalog/model/catalog/product.php

Примерно 78 строка, найти:

 


$sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";

Заменить на


$sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.quantity > 0 AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";

 

Попробовал, ничего не изменилось

Надіслати
Поділитися на інших сайтах

  • 7 months later...
В 02.06.2017 в 19:24, Maximbl4m сказал:

В файле catalog/model/catalog/product.php

Примерно 78 строка, найти:

 


$sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";

Заменить на


$sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.quantity > 0 AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";

 

 

ВОТ ОНО! Сработало и в категориях, и во всех связанных модулях. Версия 2.1.0.2

Надіслати
Поділитися на інших сайтах


  • 9 months later...
  • 3 weeks later...
  • 1 month later...
8 годин назад, aorta сказав:

На opencart.pro 2.3 тоже работает

а пагинация при этом коректно работает? на последней странице есть товары?

Надіслати
Поділитися на інших сайтах

В 09.01.2019 в 22:06, oleksa1972 сказал:

а пагинация при этом коректно работает? на последней странице есть товары?

Пагинация некорректная, на последней странице нет товара.

Надіслати
Поділитися на інших сайтах


В 09.01.2019 в 22:49, aorta сказал:

С пагинацией всё ок. На последней странице товары есть.

 

9 минут назад, balaban сказал:

Пагинация некорректная, на последней странице нет товара.

 

вот нормальный модуль

 

Надіслати
Поділитися на інших сайтах


17 минут назад, AWARO сказал:

вот нормальный модуль

Это не его цель..
Его цель - убрать товары из списков

Надіслати
Поділитися на інших сайтах

1 час назад, balaban сказал:

Пагинация некорректная, на последней странице нет товара.

Или такой. Есть сортировка по сток статусам...

Сейчас тестирую - полёт нормальный. О сортировке ничего не скажу, т к не юзал)

Надіслати
Поділитися на інших сайтах


  • 2 weeks later...
  • 1 year later...
В 02.06.2017 в 17:24, Maximbl4m сказал:

В файле catalog/model/catalog/product.php

Примерно 78 строка, найти:

 


$sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";

Заменить на


$sql .= " LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.quantity > 0 AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'";

 

Работает, но у меня показывает категории "пагинацию" страниц в которых нет товара(

Змінено користувачем misterrewon
Надіслати
Поділитися на інших сайтах


  • 4 weeks later...
48 минут назад, invariable сказал:

В Unishop есть такая возможность?

Шаблон здесь не при чём. В Unishop есть надстройка, которая позволяет товары с нулевым количеством выводит в конце списка.

Надіслати
Поділитися на інших сайтах

  • 6 months later...

Эта тема первая в гугле как скрыть товары которых нет в наличии, поэтому допишу на счет пагинации, возможно кому то будет полезно.
Кроме рекомендации выше нужно еще добавить условие в getTotalProducts в catalog/model/catalog/product.php
После:

WHERE p.status = '1'

добавляем условие на проверку количества:

AND p.quantity > 0

Тогда количество в пагинации и других элементах, которые используют стандартный метод подсчета товаров, будет корректным.
Также не забываем, что в акциях свои методы и если товары с нулевым остатком нужно скрыть и там, то сделайте тоже самое в getProductSpecials и getTotalProductSpecials в той же модели.

Змінено користувачем andrewborodiy
Надіслати
Поділитися на інших сайтах


Спасибо всем! Описанный выше способ помог.

Когда меняете не забывайте про кэш, там я тоже поменял

www/storage/modification/catalog/model/catalog/product.php

 

 

Змінено користувачем Dmitry56
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.