Pascha Опубликовано 13 октября, 2022 Поделиться Опубликовано 13 октября, 2022 Практический каждый более или менее наполненный товарами интернет-магазин использует некоторые критерии сортировки товаров на сайте. В одном интернет магазине это может быть показ по дате добавления, в другом же это сортировка по популярности того или иного продукта. Сортировка товаров в интернет магазине позволяет выставлять элементы в нужном порядке. Это позволяет существенно оптимизировать реализацию товаров на витрине и конечно же вопрос релевантности никто ещё не отменял. Понятие релевантности в сети интернет сегодня уже используется довольно широко, начиная от поисковых систем, заканчивая сайтом с новостной лентой. И это хорошо работает, когда популярные записи всегда стремятся в топ, а менее просматриваемые уходят в низ по списку. Однако в одних случаях это работает в автоматическом режиме, в других выставляется вручную. В обеих случаях есть свои преимущества и недостатки. В данной заметке мы поговорим про сортировку товаров в OpenCart. Поле «Порядок сортировки» в OpenCart В движке OpenCart как и во многих других движках существует поле, обозначаемое как «Порядок сортировки» товара. При редактировании карточки товара, мы можем видеть такое поле (у меня версия OpenCart 2.3 на анг. языке): Как уже ясно из самого названия, оно используется для выставления значения позиции в каталоге для конкретного товара. Таким образом, в каталоге товары могут быть выстроены в нужном порядке вручную. При сортировке товаров по этому полю, выборка элементов происходит посредством указанной в запросе ORDER BY sort_order. Запрос в базу как правило производится из самого модуля. Сортировку товаров в OpenCart по умолчанию мы можем выставлять различным образом, и далее речь пойдёт об этом. Как поменять сортировку товаров в OpenCart по умолчанию Существуют множество полей, по которым мы может выполнять сортировку товаров в каталоге. Некоторые системы позволяют настраивать подобные вещи непосредственно в администраторской части сайта. В OpenCart это делается программно, т.к. всё же нет постоянной необходимости менять поле, по которому будут сортироваться товары в каталоге. Как уже говорилось выше, запрос в базу данных выполняется из самого модуля. Однако порядок выборки товаров мы может задавать через контроллер. По этой причине нет необходимости лезть в код модуля, куда целесообразнее это сделать через контроллер. Контроллер, который участвует в выводе товаров категории в OpenCart располагается по такому пути: /catalog/controller/product/category.php Открыв данный файл, следует найти запись такого вида: if (isset($this->request->get['sort'])) { $sort = $this->request->get['sort']; } else { $sort = 'p.sort_order'; } В общем запись которая находится в условии else обозначает значение по умолчанию. Таким образом, переменная $sort определяет имя поля по умолчанию, которое будет использовано для сортировки товаров. Поменяв имя поля на другое, мы можем изменить поле, по которому будет сортироваться товары в категории. Существуют некоторое множество полей, по которому мы можем сортировать товары в каталоге. Далее поговорим об этих полях. Поля доступные для сортировки в OpenCart Есть несколько ключевых полей в базе данных, по которым целесообразно выполнять сортировку товаров: ‘pd.name’, — Наименование товара; ‘p.model’, — Поле, обозначающеии модель товара; ‘p.quantity‘, — Поле, обозначающее остаток товара на сайте; ‘p.price’, — Поле с ценой товара; ‘rating’, — Поле с рейтингом товара; ‘p.sort_order’, — Отдельное поле для ручной сортировки; ‘p.date_added’ — Поле с датой добавления товара; Для примера, если мы хотим поменять сортировку товаров в каталоге по дате добавления, нам следует в переменной $sort выставить значение p.date_added. Кроме того, существуют так же возможность указания направления сортировки (ASC или DESC). Для этого используется переменная $order, которая может содержать два значения: ASC – сортировка по возрастанию; DESC – порядок сортировки по убыванию. В большинстве случаем, изменения этих двух параметров бывает достаточно. После внесения изменений в скрипт не забывает почистить кэш, перед тем как проверить работу скрипта. 0 Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.