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

Автоматическая сортировка товаров по статусу отсутствия на складе


gts

Recommended Posts

Всем привет. У всех товаров количество 0 и установлен статус при отсутствии на складе (например: "В наличии", "На заказ", "Нет в наличии"). В категории сделана сортировка товаров по умолчанию. Я каждому товару присваиваю sort_id в ручном режиме. Хотелось бы чтобы sort_id выставлялся автоматически, в зависимости от статуса. Всем товарам со статусом "В наличии" - sort_order 1, "На заказ"- sort_order 2, "Нет в наличии" - sort_order 3. Подскажите, как это можно сделать?

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


8 часов назад, chukcha сказал:

а не проще ли сортировать в таком случае  по stock_id

возможно Вы правы, не подскажите как это реализовать?

пока такой вариант нашел в гугле, буду пробовать на тестовом сайте

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 p.stock_status_id DESC, LCASE(" . $data['sort'] . ")";
            } elseif ($data['sort'] == 'p.price') {
                $sql .= " ORDER BY p.stock_status_id 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.stock_status_id DESC, " . $data['sort'];
            }
        } else {
            $sql .= " ORDER BY  p.stock_status_id DESC, p.sort_order";

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


основная проблема, в том что stock_status_id  не есть упорядоченное множество

Вам или нужно самостоятельно упорядочить по id в локализации и тогда можно спокойно ORDER BY p.stock_status_id DESC

, или упорядочить при сортировке ORDER BY field(p.stock_status_id, 7,5,8,1) DESC

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

  • 2 weeks later...
В 30.10.2018 в 15:56, chukcha сказал:

основная проблема, в том что stock_status_id  не есть упорядоченное множество

Вам или нужно самостоятельно упорядочить по id в локализации и тогда можно спокойно ORDER BY p.stock_status_id DESC

, или упорядочить при сортировке ORDER BY field(p.stock_status_id, 7,5,8,1) DESC

подскажите, нужно ли что-то менять в контроллере? у меня там выставлена по умолчанию сортировка по возрастанию цены

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


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.