samoilenkoevgeniy
@samoilenkoevgeniy
Lead Full-Stack Web Developer

Как создать фильтровать товары в opencart?

Ситуация:
Собираю интернет-магазин на opencart, сделал практически все необходимое, проблем особых не возникало.

Но все таки появился один затык - фильтрация товаров. Фильтровать нужно по производителю, по цвету, по цене(диапазон цен). Примерно представляю, что мне нужно сделать:
1) Вывести список всех производителей(есть)
2) вывести список всех возможных цветов(не сделано)
3) Сделать ползунок, с выбором диапазона цен ( сделано, однако максимальная и минимальная цена товаров не учитывается)
4) При применении определенного фильтра должно добавлять get-запросом переменные и значения, которые потом должны использоваться в контроллере, а затем, в модели. Вот с этим-то основная проблема:
Я не пойму как происходит сама выборка, куда добавлять обработчики этих самых get-запросов.

Вот список вопросов, на которые я хотел бы получить ответы, если можно:
1)Как правильно обрабатывать get-запросы(я так понял, их надо "ловить" в модуле категории)?
2) Где вообще есть подробное описание работы моделей в opencart? Желательно конкретные ссылки, можно уроки, можно на англ. языке
3) Как правильно реализовать фильтр по цветам товаров? Может это можно сделать штатными средствами opencart??
  • Вопрос задан
  • 5924 просмотра
Решения вопроса 1
parmactep
@parmactep
1. get-запросы "ловятся" через методы класса соответствующего контроллера. Сумбурно немного звучит. Попробую обьяснить на примере.
Запрос /index.php?route=product/category&path=20 вызывает метод index класса ControllerProductCategory в файле /catalog/controller/product/category.php
Параметры запроса помещаются в свойство request этого контроллера
2. Документация по OpenCart
Очень скудная. Слышал что есть более подробная, но стоит $25 и прозрения после чтения не происходит)
Разработчики OpenCart считают что их код абсолютно интуитивно понятный и в объяснении не нуждается)
3. Приблизительно:
Вам необходимо делать урл вида /index.php?route=product/filter&manufacturer&lowprice=20&hiprice=100&color=red (или немного иначе если у вас ЧПУ)
Обрабатывать его в файле /catalog/controller/product/filter.php
Там некоторые фильтры есть стандартные. Вам остается только добавить свои.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
jenovas
@jenovas
А не проще ли и быстрее использовать filter pro модуль?
Ответ написан
Комментировать
halfhope
@halfhope
FilterPro, OCFilter
Ответ написан
Комментировать
@sonics
html,css,angular, php, joomla, opencart, bootstrap
еще есть крутой MegoFilterPro, он в отличии от FilterPro есть под OC 2
Ответ написан
Комментировать
@DimaOC
Фильтр для товаров:
для Opencart 2.x https://opencart2x.ru/moduli/vid/umniy-filtr-tovarov
для Opencart 3.x https://opencart3x.ru/module/front/product-filter
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы