trubadan

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

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

trubadan    0

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Fedka    143

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

 

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

 

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

 

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

 

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 файл, что б он делал изменения, а не делать это вручную

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
trubadan    0

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

 

Замена происходит в файле - 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 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу