Сортировка товаров по цене (по умолчанию) Opencart

Сортировка товаров по цене (по умолчанию) Opencart
Для сайта одного из заказчиков нужно было поменять сортировку товаров в Категориях по умолчанию. Решили написать эту небольшую статью, что бы было понятно какие переменные за это отвечают и где нужно внести изменения. Переменные в OpenCart выглядят следующим образом.
'pd.name', - сортировка по имени.
'p.model', - сортировка по модели.

'p.quantity', - сортировка по количеству.
'p.price', - сортировка по цене.
'rating', - сортировка по рейтингу.
'p.sort_order', - сортировка, которая стоит по умолчанию.
'p.date_added' - сортировка по дате добавления.

Соответственно, для каждого типа сортировки нужно будет задать направление, это:
DESC - по убыванию,
ASC - по возрастанию.

Как сделать сортировка по умолчанию товаров в категории по цене

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

\catalog\controller\product\category.php

В самом начале файла находим вот это:

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

меняем
$sort = 'pd.name';
на
$sort = 'p.price'

Если хотите сортировать по убыванию тогда меняем:

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

меняем
$order = 'ASC';
на
$order = 'DESC'

if (isset($this->request->get['sort'])) {
$sort = $this->request->get['sort'];
} else {
<strong>$sort = 'p.price';</strong>
}
if (isset($this->request->get['order'])) {
$order = $this->request->get['order'];
} else {
$order = 'DESC';

где DESC — сначала дорогие товары,
а ASC — сначала дешевые потом дорогие.

Меняем тип сортировки По умолчанию на сортировку по Дате добавления (без добавления в список «Сортировать по»).

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

\catalog\controller\product\category.php

В самом начале файла находим вот это:

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

и меняем
$sort = 'p.sort_order';
на
$sort = 'p.date_added';
$order = 'ASC';

где DESC — сначала новые, потом старые,
а ASC — сначала старые потом новые.

Убрать ненужные сортировки

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

\catalog\controller\product\category.php

ищи примерно в 215 строке кусок кода типа

$this->data['sorts'] = array();
$this->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)
);
$this->data['sorts'][] = array(
'text' => $this->language->get('text_name_asc'),
'value' => 'pd.name-ASC',
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=pd.name&order=ASC' . $url)
);

..........
Это массив с вариантами сортировки.

По умолчанию задаётся в районе 12 строки:

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

Ненужные сортировки удаляем из массива, вот и все.

Еще раз основные значения сортировки:

$sort = 'pd.name'; — по Имени
$sort = 'p.price'; — по Ценам
$sort = 'rating'; — по Рейтингу

Направление
$order = 'ASC'; — от А до Я (Низкому)
$order = 'DESC' — от Я до А (Высокому)

Надеемся, что статья окажется кому то полезной, не забудьте подписываться на наш Информационный портал

Отправить ответ

Please Login to comment
Войти с помощью: 
  Subscribe  
Notify of
Authorization
*
*
Войти с помощью: 
Registration
*
*
*
Войти с помощью: 

1 × 2 =

Password generation