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

Тема в разделе "PrestaShop", создана пользователем l.korv1n, 5 ноя 2013.

Информация :
Хочешь в разделе без проблем общаться - прочти правила, чтобы потом с форумом на время не прощаться. Читать обязательно!
Внимание! Читайте внимательно правила!Предупреждения выдаются без всяких вопросов. Нарушил - получил. Будьте Внимательнее! Постинг нескольких постов подряд приравнивается к НАРУШЕНИЮ! Будьте вежливы и соблюдайте правила ;-)
Модераторы: ZiX
  1. l.korv1n

    l.korv1n Постоялец

    Регистр.:
    7 сен 2013
    Сообщения:
    141
    Симпатии:
    8
    Здравствуйте!

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

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

    Благодарю за дельные советы.
     
  2. kabasik

    kabasik Полиционер

    Регистр.:
    15 мар 2012
    Сообщения:
    223
    Симпатии:
    68
    Добавить в вывод товаров (classes/category.php) сортировку по количество, не по наличию - `quantity`
     
  3. l.korv1n

    l.korv1n Постоялец

    Регистр.:
    7 сен 2013
    Сообщения:
    141
    Симпатии:
    8
    Заплачу за решение.
     
  4. LiTiNuM

    LiTiNuM Создатель

    Регистр.:
    23 янв 2014
    Сообщения:
    20
    Симпатии:
    7
    Проделывал такую работу... и хорошо, что нашёл эту тему - затёр изменения при обновлении модуля...))
    В общем, идём в папку модуля 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,
     
    Kerm84, genokby, Teemz и ещё 1-му нравится это.
  5. LiTiNuM

    LiTiNuM Создатель

    Регистр.:
    23 янв 2014
    Сообщения:
    20
    Симпатии:
    7
    Да, ещё дополню:
    Когда делают сортировку по QUANTITY (если это таблица STOCK), то нужно понимать, что результат будет в выводе на первое место товара, которого в наличии больше остальных. А вот нулевой будет сортироваться как нужно.
    Поэтому сортировать по количеству неправильно, если, конечно, продавец не стремится показать сперва позиции, у которых больше всего остаток на складе.
     
  6. yurok800

    yurok800 Постоялец

    Регистр.:
    26 ноя 2013
    Сообщения:
    47
    Симпатии:
    2
    на жумшопинге есть плагин, очень хорошо помагает - проданное назад, только при использования фильтра - не срабатывает
     
  7. EandyCat

    EandyCat Писатель

    Регистр.:
    29 ноя 2013
    Сообщения:
    2
    Симпатии:
    0
    Все добавил и перепроверил, но результата нет, версия 1.5.6.1.