Связаться
Каталог · OpenCart

Умный фильтр товаров для OpenCart 2.3, 3 и 4

Фасетный фильтр в категории: бренд, цена, атрибуты и опции с живыми счётчиками, собственным индексом и SEO-страницами фильтра. Без правок ядра.

Скачать бесплатно
Версия
v1.0.0 (OpenCart 4)
v1.0.0 (OpenCart 3.x)
v1.0.0 (OpenCart 2.3)
Совместимость
OpenCart 2.3.0.x, 3.0.2 – 3.0.5.0 и 4.0.2 – 4.1.x
Платформа
OpenCart
Умный фильтр товаров для OpenCart 2.3, 3 и 4

Что включено в лицензии

Функция Free Pro
Фасетный фильтр: бренд, цена, атрибуты, опции, наличие
Живые счётчики с учётом уже выбранных фильтров
Собственный индекс вместо запросов по атрибутам — каталог не тормозит
Дубли значений («12 В» / «12в» / «12 V») сливаются в одно
Числовые значения сортируются числами и работают диапазоном
SEO-страницы фильтра с собственным H1, title и человеческим URL
Остальные комбинации — noindex + канонический адрес на чистую категорию
Товары подкатегорий на странице категории переключателем
Без правок ядра, без jQuery и сторонних библиотек
Одна сборка на OpenCart 4.0 и 4.1, отдельные — на 3.x и 2.3

Умный фильтр делает в категории настоящую фасетную выборку: бренд, цена, атрибуты, опции, наличие — с живыми счётчиками и без перезагрузки страницы. Есть три сборки: для OpenCart 4.0.2 – 4.1.x, 3.0.2 – 3.0.5.0 и 2.3.0.x; функциональность одинаковая, отличается только пакет.

Не патчит ядро

Фильтр встраивается событиями и собственной моделью каталога, ни один файл ядра не переписывается. Поэтому обновление OpenCart его не ломает, а одна сборка встаёт и на 4.0, и на 4.1. Убрать модуль можно в один клик — магазин остаётся таким, каким был.

Собственный индекс вместо запросов по атрибутам

Вместо того чтобы на каждый клик перебирать таблицы атрибутов и опций, модуль держит собственный индекс товар → значение. Условия фильтра — это EXISTS по индексу, поэтому каталог не замедляется, когда покупатель добавляет пятый и шестой фильтр. Индекс обновляется сам, когда товар добавили, изменили, скопировали или удалили.

Дубли значений сливаются в одно

«12 В», «12в» и «12 V» в прайсах поставщиков — это три разные строки, и в обычном фильтре они становятся тремя чекбоксами. Здесь они сливаются в одно значение. Числовые значения сортируются как числа (1.5 / 2 / 10, а не 1.5 / 10 / 2) и работают как диапазон.

Честные счётчики

Рядом с каждым значением видно, сколько товаров останется после выбора. Счётчик считается с учётом всех остальных выбранных фильтров, а сам себя не ограничивает — то есть покупатель не упирается в нули и не видит «(0)» там, где товар на самом деле есть.

SEO-страницы фильтра

Нужную комбинацию фильтров можно превратить в отдельную страницу с собственным H1, title, description, текстом и человеческим URL. Всё остальное, что покупатель накликал, закрывается noindex,follow с каноническим адресом на чистую категорию — то есть в индекс не сыплются тысячи мусорных адресов.

Мелочи, которые заметны в работе

  • Товары подкатегорий на странице категории — переключателем (в стандартном OpenCart их не видно вообще).
  • Ноль сторонних библиотек: без jQuery и слайдер-плагинов, совместимо с CSP.
  • Встроенная диагностика показывает, действительно ли перехвачена выборка, свежий ли индекс и работает ли кеш счётчиков — именно так этот класс модулей ломается тихо.

Как установить

  1. Загрузите сборку под свою версию и установите через «Расширения → Установка расширений».
  2. В «Расширения → Расширения → Модули» найдите «CatCode Умный фильтр» и нажмите Install.
  3. Откройте настройки и нажмите «Установить» — создадутся таблицы и события.
  4. Соберите индекс кнопкой «Переиндексировать», выберите, какие атрибуты становятся фасетами.
  5. Поставьте модуль в макет категории через «Дизайн → Макеты».

Что получает админ

Фасеты складываются из того, что у вас уже есть в каталоге: категория, атрибуты и опции товаров, цена, наличие, рейтинг. Ничего отдельно описывать не нужно — модуль берёт атрибуты и опции OpenCart как есть.

Для каждого фасета настраивается, как он выглядит покупателю: чекбоксы, ползунок для числовых значений или диапазон. Порядок фасетов в панели задаёте вы — то, чем в вашей категории действительно фильтруют, ставится первым.

Индекс перестраивается сам, когда товар меняется, и его можно перестроить полностью одной кнопкой — это понадобится один раз, после первого импорта большого прайса.

Как это работает — шаг за шагом

1. После установки модуль строит собственную плоскую таблицу-индекс «товар → значение». Это разовая операция, дальше индекс живёт сам.

2. Покупатель ставит галочку в фильтре. Запрос идёт не по таблицам product_attribute и product_option, а по этому индексу — одним простым SELECT вместо кучи JOIN-ов.

3. Счётчики возле остальных значений пересчитываются из того же индекса, поэтому они честные: показывают именно то, что найдётся, а не общее количество товаров со значением.

4. Выдача обновляется без перезагрузки, а состояние фильтра пишется в URL.

5. Товар изменили в админке или обновили импортом — индекс для этого товара перестраивается автоматически.

Почему это быстрее

Стандартная фильтрация OpenCart собирает выборку join-ами по product_attribute, product_option_value и product_description. Каждый добавленный фасет — это ещё один JOIN, и на каталоге в несколько десятков тысяч товаров запрос превращается в многосекундный.

Плоский индекс «товар → значение» эту проблему снимает в корне: фасетов может быть пять или пятнадцать, структура запроса не меняется. Именно поэтому магазин с большим прайсом получает от модуля больше всего — на каталоге в двести товаров разницу вы не заметите.

Бесплатная версия и Pro

Бесплатная версия — это полноценный фильтр: все типы фасетов, честные счётчики, слияние дублей значений, числовые диапазоны, ползунок цены с реальными границами выборки, применение без перезагрузки, состояние в URL, мобильная шторка. Ограничений по времени и рекламы в админке нет.

Pro добавляет SEO-страницы фильтра: вы выбираете комбинацию фильтров, которую стоит продвигать («жёлтые шкафы», «ноутбуки до 30 000»), и она получает собственный H1, title и человеческий URL. Остальные комбинации остаются под noindex,follow с каноникалом на чистую категорию.

Это и есть главное отличие от «фильтра из темы»: управляемая горстка посадочных страниц под низкочастотные запросы вместо либо миллиона мусорных URL в индексе, либо полного отсутствия фильтровых страниц в поиске.

Сколько стоит

Лицензия Pro — 990 грн, на один домен. Лицензия навсегда: оплачиваете один раз, без ежегодных платежей.

Технические требования

Поддерживаются OpenCart 4.0, 4.1 и 3.x, а также ocStore на их основе. Отдельные сборки под каждую ветку лежат в одном архиве.

Отдельных требований к хостингу нет: индекс — это одна обычная таблица MySQL, она не требует ни Elasticsearch, ни Redis, ни отдельного сервиса поиска.

Что под капотом

Модуль не патчит ядро: он работает через штатные события OpenCart, поэтому обновление магазина не затирает его правки, а удаление модуля не оставляет следов в файлах ядра. Пагинация и сортировка категории остаются родными.

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

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

Как установить

1. Залейте архив через «Расширения → Установщик расширений» и установите модуль в «Расширения → Модули».

2. Дождитесь построения индекса — при первом запуске модуль предлагает сделать это одной кнопкой.

3. В настройках соберите набор фасетов под свой каталог и задайте их порядок.

4. Добавьте модуль в макет категории через «Дизайн → Макеты → Category», в колонку слева или справа.

5. Если купили Pro — добавьте SEO-страницы под те комбинации фильтров, которые действительно ищут.

История версий

1.0.0 — первый выпуск. Фасеты по категории, атрибутам, цене, наличию и рейтингу; собственная таблица-индекс; честные счётчики с несуженным собственным фасетом; слияние дублей значений и числовая сортировка; ползунок цены с границами текущей выборки; применение без перезагрузки и состояние фильтра в URL; мобильная шторка; работа без патчей ядра. В Pro — SEO-страницы фильтра с собственным H1, title и URL, noindex,follow на остальных комбинациях и невмешательство в каноникал Yoast / Rank Math / AIOSEO.

Частые вопросы

Нужно ли править файлы ядра или шаблон?

Нет. Модуль встраивается событиями и собственной моделью каталога, ядро остаётся стоковым — обновление OpenCart его не ломает.

Выдержит ли большой каталог?

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

Что будет с дублями значений из прайсов поставщиков?

Они сливаются в одно значение, поэтому вместо трёх чекбоксов «12 В», «12в» и «12 V» покупатель видит один.

Не засорит ли фильтр индекс Google?

Нет. В индекс идёт только то, что вы сами сделали SEO-страницей; остальные комбинации отдают noindex,follow и канонический адрес на категорию.

Сколько сайтов можно активировать одним ключом?

Один. Лицензия навсегда: оплачиваете один раз, без ежегодных платежей.

Вопросы по модулю?

Пишите в Telegram — ответим в течение рабочего дня. Поможем с настройкой, совместимостью и активацией ключа.

@catcode_support

Не тот вариант, что искали?

Мы делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.

Заказать кастомный модуль