Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Помогите с сортировкой товаров в категориях по количеству.


trubadan
 Поделиться

Рекомендованные сообщения

Всем доброго здоровья и с наступающим.

 

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

 

Заранее спасибо.

Ссылка на комментарий
Поделиться на других сайтах


Всем доброго здоровья и с наступающим.

 

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

 

Заранее спасибо.

 

Открываем файл:

 

catalog/model/catalog/product.php

 

Ищем:

$sql .= " ORDER BY LCASE(" . $data['sort'] . ")";

Заменяем:

$sql .= " ORDER BY (p.quantity > 0) DESC, LCASE(" . $data['sort'] . ")";

Затем ищем:

$sql .= " ORDER BY (CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";

Заменяем:

$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)";

Затем ищем:

$sql .= " ORDER BY " . $data['sort'];

Заменяем на:

$sql .= " ORDER BY (p.quantity > 0) DESC," . $data['sort'];

И, наконец-то ищем:

$sql .= " ORDER BY p.sort_order";

И заменяем на:

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

Конечно, лучше написать OcMode файл, что б он делал изменения, а не делать это вручную

Ссылка на комментарий
Поделиться на других сайтах

Спасибо, разобрался сам, но сделал немного по другому и тоже работает.

 

Замена происходит в файле - catalog/controller/catalog/catalog.php

 

Находим:

if (isset($this->request->get['sort'])) {
} else {
$sort = 'p.sort_order';
}

if (isset($this->request->get['order'])) {
$order = $this->request->get['order'];
} else {
$order = 'ASC';
}

Меняем на:

if (isset($this->request->get['sort'])) {
	$sort = $this->request->get['sort'];
} else {
	$sort = 'p.quantity';
}

if (isset($this->request->get['order'])) {
	$order = $this->request->get['order'];
} else {
	$order = 'DESC';
}

Еще находим:

$data['sorts'][] = array(
	'text'  => $this->language->get('text_default'),
	'value' => 'p.sort_order-ASC',
	'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url)
);

Снова меняем:

$data['sorts'][] = array(
'text'  => $this->language->get('text_default'),
'value' => 'p.duantity-DESC',
'href'  => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.quantity&order=DESC' . $url)
);
Изменено пользователем trubadan
Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.