Как сделать, чтобы товары которых нет в наличии по-умолчанию сортировались в конец списка

l.korv1n

Постоялец
Регистрация
7 Сен 2013
Сообщения
141
Реакции
8
Здравствуйте!

Подскажите, как сделать, чтобы товары которых нет в наличии по-умолчанию сортировались в конец списка товаров в независимости от функции сортировки и фильтра.

Или как исключить фильтр определенного товара по цене в модуле blocklayed.

Благодарю за дельные советы.
 
Здравствуйте!

Подскажите, как сделать, чтобы товары которых нет в наличии по-умолчанию сортировались в конец списка товаров в независимости от функции сортировки и фильтра.

Или как исключить фильтр определенного товара по цене в модуле blocklayed.

Благодарю за дельные советы.
Добавить в вывод товаров (classes/category.php) сортировку по количество, не по наличию - `quantity`
 
Заплачу за решение.
 
Проделывал такую работу... и хорошо, что нашёл эту тему - затёр изменения при обновлении модуля...))
В общем, идём в папку модуля blocklayerd, открываем blocklayerd.php и находим функцию: public function getProductByFilters($selected_filters = array())

Далее в функции находим: '.Tools::getProductsOrder('by', Tools::getValue('orderby'), true).' '.Tools::getProductsOrder('way', Tools::getValue('orderway')).
Дополняем ORDER BY, будет так выглядеть строка: ORDER BY qq DESC, pl.name asc,'.Tools::getProductsOrder('by', Tools::getValue('orderby'), true).' '.Tools::getProductsOrder('way', Tools::getValue('orderway')).

А в этом SELECT'е последняя строчка перед FROM будет так выглядеть: stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, if(stock.quantity=0 , 0, 1) AS qq
Жирным
выделил изменения. Сортировка по наличию и алфавиту. Если по алфавиту не нужно, то удали это: pl.name asc,
 
Да, ещё дополню:
Когда делают сортировку по QUANTITY (если это таблица STOCK), то нужно понимать, что результат будет в выводе на первое место товара, которого в наличии больше остальных. А вот нулевой будет сортироваться как нужно.
Поэтому сортировать по количеству неправильно, если, конечно, продавец не стремится показать сперва позиции, у которых больше всего остаток на складе.
 
на жумшопинге есть плагин, очень хорошо помагает - проданное назад, только при использования фильтра - не срабатывает
 
Проделывал такую работу... и хорошо, что нашёл эту тему - затёр изменения при обновлении модуля...))
В общем, идём в папку модуля blocklayerd, открываем blocklayerd.php и находим функцию: public function getProductByFilters($selected_filters = array())

Далее в функции находим: '.Tools::getProductsOrder('by', Tools::getValue('orderby'), true).' '.Tools::getProductsOrder('way', Tools::getValue('orderway')).
Дополняем ORDER BY, будет так выглядеть строка: ORDER BY qq DESC, pl.name asc,'.Tools::getProductsOrder('by', Tools::getValue('orderby'), true).' '.Tools::getProductsOrder('way', Tools::getValue('orderway')).

А в этом SELECT'е последняя строчка перед FROM будет так выглядеть: stock.out_of_stock, IFNULL(stock.quantity, 0) as quantity, if(stock.quantity=0 , 0, 1) AS qq
Жирным
выделил изменения. Сортировка по наличию и алфавиту. Если по алфавиту не нужно, то удали это: pl.name asc,
Все добавил и перепроверил, но результата нет, версия 1.5.6.1.
 
Назад
Сверху