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

Тема в разделе "Общие вопросы", создана пользователем UserWii, 11 авг 2015.

  1. UserWii

    UserWii Пользователь

    Сообщения:
    111
    Симпатии:
    2
    Как сделать сортировку товаров по дате добавления и наличию? Главное что бы выполнялось условие, что первыми сортируются товары по дате добавления и потом уже сортируются товары которых нет в наличии.
     
  2. Vlad

    Vlad Эксперт

    Сообщения:
    3.899
    Симпатии:
    939
  3. UserWii

    UserWii Пользователь

    Сообщения:
    111
    Симпатии:
    2
    Не совсем то что нужно. Нашел решение.
    catalog\model\catalog\product.php

    Код:
    if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
                if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
                    $sql .= " ORDER BY LCASE(" . $data['sort'] . ")";
                } elseif ($data['sort'] == 'p.price') {
                    $sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
                } else {
                    $sql .= " ORDER BY " . $data['sort'];
                }
            } else {
                $sql .= " ORDER BY p.sort_order";
                $sql .= " ORDER BY " . 'p.price desc, p.quantity';
            }
    меняем на
    Код:
    if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
                if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
                    $sql .= " ORDER BY (p.quantity>0) DESC, LCASE(" . $data['sort'] . ")";
                } elseif ($data['sort'] == 'p.price') {
                    $sql .= " ORDER BY (p.quantity>0) DESC, (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
                } else {
                    $sql .= " ORDER BY (p.quantity>0) DESC," . $data['sort'];
                }
            } else {
                $sql .= " ORDER BY (p.quantity>0) DESC, p.sort_order";   
            }
     
  4. Ravilr

    Ravilr Специалист

    Сообщения:
    3.158
    Симпатии:
    874
    интересно, а где в этом решении
     
  5. petrovich123

    petrovich123 Новичок

    Сообщения:
    23
    Симпатии:
    0
    Сделал как описано выше, но товары которых нет в наличии при сортировке все равно идут вперемешку с теми, которые есть в наличии.
     
  6. Vlad

    Vlad Эксперт

    Сообщения:
    3.899
    Симпатии:
    939
    1. Модификаторы обновили?
    2. Фильтры какие нибудь может стоят?
    3. Что то сами с сортировкой делали?
    4. Шаблон стандартный?
    5. Версия движка?
     
  7. Ecsiron

    Ecsiron Продвинутый пользователь

    Сообщения:
    415
    Симпатии:
    52
    Вы точно в этом файле: catalog\model\catalog\category.php сделали?