Как сделать сортировку одновременно по цене и наличию?

kotan

Создатель
Регистрация
18 Июл 2013
Сообщения
48
Реакции
3
Господа, подскажите где поправить код, чтобы сделать сортировку товара по цене и наличию одновременно. Т.е. чтобы первыми стояли товары по цене, которые ОБЯЗАТЕЛЬНО есть в наличии. Стандартный метод выводит по цене все правильно, но только все подряд, включая товары, которых нет в наличии.
Отключать товары которых нет в наличии - не предлагать.
Версия 1.5.6.2
 
тоже интересно. версия 1.6
 
Может я что-то не правильно понял. В настройках модуля фильтров сделайте фильтр по наличию

Или тут смотрите Для просмотра ссылки Войди или Зарегистрируйся
 
Последнее редактирование:
только если покупатель сам выберет сортировку от А-Я, а потом фильтр который слева показывает наличие, тоже проблематично с этим, на Joomshopping есть плагин специальный
 
только если покупатель сам выберет сортировку от А-Я, а потом фильтр который слева показывает наличие, тоже проблематично с этим, на Joomshopping есть плагин специальный
Видел вариант, как можно переписать SQL и там можно задавать любую начальную сортировку
 
включите 0 остаток и товары сами пропадут, а по цене там есть сортировка, т.е. товары в наличии будут всегда первыми по цене при сортировке, а с нулевым остатком пропадут, либо переписывайте базу
 
А мне нужно сделать чтоб первыми отображались новые товары а те которых нет в наличии в самом конце списка. Подскажете как сделать?
 
А можно как-то комбинации товаров сортировать? Которых нет, вниз списка поместить?
 
Стандартная сортировка по наличию это немного не то: идет сортировка по количеству товаров (товары остаток которых больше всего идут первыми). Вот способ для сортировки по имени и товары которых нет в наличии отображаются в конце.
В общем, идём в папку модуля 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,
 
Для этого нужно наследовать модель Category, и переписать под себя метод getProducts()
 
Назад
Сверху