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

Изменить сортировку товаров в категории (по умолчанию)


Recommended Posts

Привет, надо реализовать сортировку товара в категориях так: товары идут  по времени добавления, то есть более новые товары выше, а товары которых нет в наличии бросать в самый низ.

 

с предложениями и ценами можно обращаться в личку или скайп(в профиле) !

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


Как вариант, можете самостоятельно сделать, смотрите здесь

спасибо, находил подобное еще тут  но:

1) товарищ  не справился

2) мало знаний

3) мало времени

отсюда -> ищу специалиста! 

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


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"; 
}

заменить на 

 

if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
$sql .= " ORDER BY p.price = 0, p.quantity = 0,LCASE(" . $data['sort'] . ")";
} elseif ($data['sort'] == 'p.price') {
$sql .= " ORDER BY p.price = 0, p.quantity = 0,(CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
} else {
$sql .= " ORDER BY p.price = 0, p.quantity = 0," . $data['sort'];
}
} else {
$sql .= " ORDER BY p.price = 0, p.quantity = 0,p.sort_order";
}
  • +1 1
Надіслати
Поділитися на інших сайтах

При наличии фильтра все эти изменения и не принесут ничего.

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

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

Если это предположим Фильтр Про то это вообще в настройках самого фильтра делается.

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

Если это предположим Фильтр Про то это вообще в настройках самого фильтра делается.

1) Том, ты ж е знаешь что у меня и так стоит фильтр-про... а пишешь предположим

2) в старой версии этого модуля нет этого функционала, т.е можно скрыть проданные товары, 

3) я так понимаю необходимо переустановить Фильтр -про

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


  • 3 years later...
В 28.01.2015 в 10:50, Tom сказал:

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"; 
}

заменить на 

 


if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
if ($data['sort'] == 'pd.name' || $data['sort'] == 'p.model') {
$sql .= " ORDER BY p.price = 0, p.quantity = 0,LCASE(" . $data['sort'] . ")";
} elseif ($data['sort'] == 'p.price') {
$sql .= " ORDER BY p.price = 0, p.quantity = 0,(CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
} else {
$sql .= " ORDER BY p.price = 0, p.quantity = 0," . $data['sort'];
}
} else {
$sql .= " ORDER BY p.price = 0, p.quantity = 0,p.sort_order";
}

Том - ты лучший !!!

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


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

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

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

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

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

Вхід

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

Вхід зараз
×
×
  • Створити...

Important Information

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