Фильтр товаров opencart. Настройка для больших баз.

Настройка фильтра товаров для opencart является одним из самых важных этапов настройки  интернет-магазина. Правильно настроенный фильтр повышает конверсию продаж и в целом улучшает юзабилити Вашего сайта. 

В статье Настройка фильтра товаров в opencart мы рассмотрели как настраивать стандартный фильтр opencart. 

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

Здесь надо отметить, что в последние годы наметился резкий рост по числу номенклатуры в интернет магазинах. Это связано  как с развитием логистики оптовых поставщиков , так и с ростом мощности серверов база данных и  с развитием интернета в целом.


Источники информации для настройки фильтра товаров opencart

Как правило необходимая информация (характеристики) по товарам находится в атрибутах (таблицы product_attribute и attribute). Но применить ее для загрузки фильтров невозможно из-за ее избыточности. Более оптимальным вариантом является добавление фильтров по предварительно разработанному ТЗ, а привязка товаров к фильтрам должна производится в автоматическом или полуавтоматическом режиме.


Предварительный план автоматизации настройки фильтров opencart для больших баз (большого количество номенклатуры товаров):  

  1. Создать 5 фильтров
  2. Составить таблицу-правила связей характеристик (атрибуты) и фильтров по названиям фильтров и названиям атрибутов
  3. Написать модуль  загрузки таблицы product_attribute для связи товаров с созданными фильтрами на базе характеристик-атрибутов

Создание фильтров!

Предположим у нас магазин светильников.  У каждого светильника, люстры, торшера есть плафон, абажур который выполнен из различных материалов. Назовем эту группу фильтров - материал светильника.  

Группа фильтров - не участвует непосредственно в фильтрации, но необходимо для визуальной группировки фильтров.

Для упрощения поиска связи с атрибутами названия для фильтров выберем одинаковые с названиями атрибутов. 

 Порядок сортировки пока не имеет значения. В дальнейшем можно будет отредактировать это значение в соответствии выбора светильника покупателем. 

Очень важно понимать, что количество фильтров не значит, что все они будут выведены на страницу сайта. Будут  выведены только те, которые будут добавлены в соответствую категорию. Например не бывает люстр из материала мрамор. Значит в категории люстры этот фильтр не должен  присутствовать. Все это необходимо будет учесть на этапе добавления фильтров к категориям. 


Таблица связей для названий фильтров и атрибутов!

Поскольку мы выбрали названия фильтров одинаковыми с атрибутами, можно было бы упростить модуль автоматизации загрузки таблиц товар-фильтр (product_filter). Но это сделает невозможным процесс загрузки фильтров opencerta более сложными данными. Поэтому разработаем стандарт для таблицы связей. 

Правильно было бы выбрать в качестве стандарта для правил XML. Но он не удобен для редактирования и не всегда совместим с электронными таблицами. Если выбрать для правил таблицы формата XLS,  то в этом случае могут быть проблемы с обработкой таблицы правил в программе. Поэтому выбираем компромисс - формат CSV. Это формат удобен как для визуального представления в электронных таблицах, так и для обработки в программе, поскольку построчный разбор файла легко контролируется на уровне отладочных средств.

Также необходимо в правилах описать поведение алгоритма модуля загрузки фильтров для различных данных, например загрузка фильтров из файлов предварительно подготовленных в электронной таблице.

Таким образом строка правил CSV может выглядеть следующим образом:

rule_xxx ; стекло => стекло ; хрусталь => хрусталь; мрамор => мрамор ; бронза => бронза ; абажур => абажур

rule_xxx - первый элемент в строке будет определять поведения алгоритма загрузки фильтра. В данном случае нам необходимо загрузить фильтры по атрибутам. Присвоим условный код  rule_054, который и будет означать загрузку фильтров товаров opencart по атрибутам.  

В завершении сохраним наши правила в файле rule-filter.csv!

Создание модуля для загрузки фильтров рассмотрим в следующей статье: Модуль загрузки фильтра товаров в opencart