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

Двойная сортировка товаров в категории: по наличию и по указанной сортировке в самом товаре


MrNix21

Recommended Posts

Здравствуйте! Мне необходимо сделать двойную сортировку товаров. Сначала товары должны сортироваться по наличию - товаров которых нет перенести в конец списка. Далее, товары которые есть в наличии необходимо сортировать по порядку сортировки которые указаны в самих товарах (Вкладка "Данные", поле "Порядок сортировки").

Сортировку по наличию сделал таким образом: в файле /catalog/controller/product/category.php заменил 

$sort = 'p.sort_order';

на

$sort = 'p.quantity';

Но как теперь товары в наличии отсортировать по сортировке, которые указаны в самом товаре?

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


Это лучше править в модели товара. Можно как-то так задать сортировку, через запятую:
p.quantity<>0 DESC, p.sort_order

Но вы рискуете, сайт может упасть. Я бы на вашем месте заказал изменение в услугах.

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

В 08.03.2021 в 19:28, Prooksius сказал:

Это лучше править в модели товара. Можно как-то так задать сортировку, через запятую:
p.quantity<>0 DESC, p.sort_order

Но вы рискуете, сайт может упасть. Я бы на вашем месте заказал изменение в услугах.

Сделал в файле /catalog/model/catalog/poduct.php такую сортировку:

$sql .= " ORDER BY p.quantity DESC, p.sort_order";

По первой сортировке, т.е. по наличию срабатывает, а вот по второй сортировке (p.sort_order) уже нет. Без разницы ставить 'p.sort_order DESC' или 'p.sort_order ASC' - результат один - не сортирует. Сортировака происходит только по наличию.

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


2 часа назад, MrNix21 сказал:

Сделал в файле /catalog/model/catalog/poduct.php такую сортировку:


$sql .= " ORDER BY p.quantity DESC, p.sort_order";

По первой сортировке, т.е. по наличию срабатывает, а вот по второй сортировке (p.sort_order) уже нет. Без разницы ставить 'p.sort_order DESC' или 'p.sort_order ASC' - результат один - не сортирует. Сортировака происходит только по наличию.

попробуйте так, как я написал ранее:

$sql .= " ORDER BY p.quantity<>0 DESC, p.sort_order";

 

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

18 часов назад, Prooksius сказал:

попробуйте так, как я написал ранее:


$sql .= " ORDER BY p.quantity<>0 DESC, p.sort_order";

 

Спасибо, это помогло, но еще была проблема из-за сортировки по имени товара, которая и не давала сортировать по второму параметру. Убрал сортировку по "pd.name" и заработало.

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


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

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

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

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

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

Вхід

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

Вхід зараз

×
×
  • Створити...

Important Information

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