Вітаю шановний відвідувач на сторінках нашого сайту. Сьогодні, в даній статті ми розглянемо приклад як поміняти сортування товарів на вітрині opencart.
Сортування товарів в категорії opencart не завжди влаштовує користувача, і часто при створенні інтернет магазину клієнти хочуть змінити сортування те що за замовчуванням на якийсь інший вид сортування, наприклад щоб в категорії товар сортувався по новинках, тобто за датою надходження, ось цей приклад ми і розглянемо в даній статті, а саме будемо робити сортування в категорії opencart по новинкам.
Хочу зазначити що даний приклад зміни сортування товару підходить не тільки для сторінки категорії, але і для інших сторінок де є можливість вибору сортування, це пошук, виробники. акції и.т.п ...
І так як поміняти сортування відображення товарів в категорії OpenCart, що для цього потрібно ?!
А потрібно всього лише внести зміни в файл /catalog/controller/product/category.php а також в мовний файл /catalog/language/russian/product/category.php.
Якщо ж ви робите сортування товарів для інших сторінок то файли змінювати потрібно відповідно ті які відповідають за дані сторінки, наприклад якщо ви змінюєте сортування на сторінці виробників то змінюємо файл /catalog/controller/product/manufacturer.php , ну я думаю тут все зрозуміло .
Розглянемо які є варіанти сортування товарів в opencart:
- ‘p.sort_order’, – сортування товарів, за замовчуванням.
- ‘p.date_added’ – сортування товарів за датою надходження.
- ‘p.price’, – сортування товарів за ціною.
- ‘pd.name’, – сортування товарів по імені.
- ‘p.model’, – сортування товарів по моделі.
- ‘p.quantity’, – сортування товарів за кількістю.
- ‘rating’, – сортування товарів по рейтингу.
DESC - сортування товарів по зростанню,
ASC - сортування товарів по порядку зменшення.
Дані значення сортування ви можете використовувати на свій розсуд в залежності від того який вид сортування товарів вас цікавить. Нас же цікавить конкретно 'p.date_added' так як ви пам'ятаєте я спочатку писав, що за приклад ми будемо робити сортування за датою надходження товарів тобто по новинкам.
І так приступимо, і в першу чергу установимо сортування за датою надходження за замовчуванням.
Як я вже писав раніше зміни вносити потрібно в файл /catalog/controller/product/category.php , відриваємо його для редагування вашим улюбленим редактором, я особисто користуюся завжди notepad ++.
На початку даного файлу знаходимо шматок такого коду:
1
2
3
4
5
6
7
8
9
|
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';
|
І в ньому нам потрібно змінити:
1
2
3
|
$sort = 'p.sort_order';
на
$sort = 'p.date_added';
|
А також щоб змінити порядок виведення списку товарів (За зменшенням/За зростанням) змініть значення:
1
|
$order = 'ASC';
|
DESC - нові товари зверху, потім старі,
ASC - старі товари зверху потім нові.
Ось власне і все, ви змінили сортування товарів за замовчуванням по новинках, тепер у вас в списку товарів будуть відображатися спочатку товари які ви останніми додали а після йтимуть ті що були додані пізніше.
Наступним пунктом я пропоную вам додати в список, вибору сортування можливість вибору користувачем потрібного йому сортування в даному випадку як ви пам'ятаєте ми говоримо про сортування за датою надходження.
Знову відкриваємо файл /catalog/controller/product/category.php або якщо ви його ще не закрили то залишаємося в ньому ж і продовжуємо вносити зміни.
Знаходимо ділянку коду:
1
2
3
4
5
|
$this->data['sorts'][] = array(
'text' => $this->language->get('text_date_desc'),
'value' => 'p.sort_order-ASC',
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.sort_order&order=ASC' . $url)
);
|
І відразу ж за цим кодом додаємо наступний код:
1
2
3
4
5
6
7
8
9
10
|
$this->data['sorts'][] = array(
'text' => $this->language->get('text_date_desc'),
'value' => 'p.date_added-DESC',
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.date_added&order=DESC' . $url)
);
$this->data['sorts'][] = array(
'text' => $this->language->get('text_date_asc'),
'value' => 'p.date_added-ASC',
'href' => $this->url->link('product/category', 'path=' . $this->request->get['path'] . '&sort=p.date_added&order=ASC' . $url)
);
|
Все даний файл можна сміливо закривати. Але у нас ще залишився один файл для змін це /catalog/language/russian/product/category.php в ньому нам потрібно вказати назви (текст) який буде відображений у випадаючому списку вибору сортування.
Додайте в зазначений мовний файл наступні рядки:
1
2
|
$_['text_date_asc'] = 'Спочатку старі товари';
$_['text_date_desc'] = 'Спочатку нові товари';
|
Ну ось, в принципі і все що потрібно було зробити для зміни сортування товарів в інтернет магазині opencart.
Думаю стаття буде вам корисна, якщо це так буду радий оцінці вгорі сторінки або коментарю!
Немає коментарів
Ви можете залишити коментар першим.