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

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


Recommended Posts

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

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

  В 02.06.2017 в 13:05, Rojzman сказав:

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

Expand  

 

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

 

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

В файле 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 в 13: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') . "'";

 

Expand  

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

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

  • 7 months later...
  В 02.06.2017 в 13: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') . "'";

 

Expand  

 

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

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


  • 9 months later...
  • 3 weeks later...
  • 1 month later...
  В 09.01.2019 в 10:53, aorta сказав:

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

Expand  

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

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

  В 09.01.2019 в 19:06, oleksa1972 сказав:

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

Expand  

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

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


  В 09.01.2019 в 19:49, aorta сказав:

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

Expand  

 

  В 10.01.2019 в 20:28, balaban сказав:

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

Expand  

 

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

 

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


  В 10.01.2019 в 20:44, AWARO сказав:

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

Expand  

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

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

  В 10.01.2019 в 20:28, balaban сказав:

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

Expand  

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

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

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


  • 2 weeks later...
  • 1 year later...
  В 02.06.2017 в 13: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') . "'";

 

Expand  

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

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


  • 4 weeks later...
  В 23.05.2020 в 09:56, invariable сказав:

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

Expand  

Шаблон здесь не при чём. В 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 і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.