Розумний фільтр товарів для OpenCart 2.3, 3 і 4
Фасетний фільтр у категорії: бренд, ціна, атрибути й опції з живими лічильниками, власним індексом і SEO-сторінками фільтра. Без правок ядра.
Що включено в ліцензії
| Функція | 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.
- Вбудована діагностика показує, чи справді перехоплено вибірку, чи свіжий індекс і чи працює кеш лічильників — саме так цей клас модулів ламається тихо.
Як встановити
- Завантажте збірку під свою версію та встановіть через «Розширення → Встановлення розширень».
- У «Розширення → Розширення → Модулі» знайдіть «CatCode Розумний фільтр» і натисніть Install.
- Відкрийте налаштування й натисніть «Встановити» — створяться таблиці й події.
- Зберіть індекс кнопкою «Переіндексувати», оберіть, які атрибути стають фасетами.
- Поставте модуль у макет категорії через «Дизайн → Макети».
Що отримує адмін
Фасети складаються з того, що у вас уже є в каталозі: категорія, атрибути й опції товарів, ціна, наявність, рейтинг. Нічого окремо описувати не треба — модуль бере атрибути й опції 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 — відповімо протягом робочого дня. Допоможемо з налаштуванням, сумісністю та активацією ключа.
Поки що жодного відгуку. Будь першим — нижче.
Залишити відгук
Відгук модерується перед публікацією — це звичайно займає до 24 годин.
Поки питань немає. Запитай — ми відповімо протягом 24 годин.
Поставити питання
Зазвичай відповідаємо протягом 24 годин у робочий час.
Купівля модуля
—