
Smart Product Filter for OpenCart 2.3, 3 and 4
A faceted filter in the category: brand, price, attributes and options with live counters, a dedicated index and filter SEO pages. No core edits.
- Compatibility
- OpenCart 2.3.0.x, 3.0.2 – 3.0.5.0 and 4.0.2 – 4.1.x
- Version
-
v1.0.4 (OpenCart 4)
v1.0.3 (OpenCart 3.x)
v1.0.3 (OpenCart 2.3) - Licence
- two sites, lifetime
- Trial
- 7 days, no card, one per site
- Updated
- 26.10.2026
The module in action — 46 sec
Clear even without sound: Ukrainian subtitles
What Free has,
and what Pro adds
The free version works with no time limit. Pro adds the rest of the features in the table.
Key points
Doesn’t patch the core
The filter is built in through events and its own catalogue model; no core file is rewritten.
A dedicated index instead of attribute queries
Instead of scanning the attribute and option tables on every click, the module keeps its own product → value index.
Duplicate values are merged into one
“12 V”, “12v” and “12 V.” from supplier price lists are three different strings, and in an ordinary filter they become three checkboxes.

The trial starts when you ask
A fresh install is the free version, nothing switches on by itself. The “Try Pro for 7 days” button → e-mail → the key right in the window and by e-mail.

One key — two sites
Moving the store? Unbind the licence on the old domain and activate it on the new one yourself. For studios — keys for 5 or 25 sites, or unlimited.
Technical requirements
OpenCart 2.3.0.x, 3.0.2 – 3.0.5.0 and 4.0.2 – 4.1.x are supported, as well as ocStore builds based on them. Each branch has its own build.
There are no separate hosting requirements: the index is a single ordinary MySQL table — it doesn’t need Elasticsearch, Redis, or a separate search service.
Version history
An attribute filled in several languages is now one filter value with translations.
New attribute, option and filter values added after the facet was imported (a new colour or a new attribute text, for example) now reach the filter by themselves.
Filter SEO pages are now tied to their own category.
All versions (5)
Licence: the “Save” button no longer resets the purchased-licence mark, the trial now ends correctly after 7 days, and “Deactivate” removes Pro from this site.
Facets by category, attributes, price, stock and rating; a dedicated index table; honest counters with an unrestricted own facet; merging of duplicate values and numeric sorting; a price…
Frequently bought with Smart Product Filter for OpenCart 2.3, 3 and 4
4 modules in one order — 40% cheaper than separately


Nova Poshta Premium — a Nova Poshta module for OpenCart 2.3, 3.x and 4.x

LiqPay — Card Payments for OpenCart 2.3, 3.x and 4.x

Telegram notifications and Viber/SMS for customers for OpenCart
Full module description
Smart Filter turns a category into a true faceted selection: brand, price, attributes, options, stock — with live counters and no page reload. There are three builds: for OpenCart 4.0.2 – 4.1.x, 3.0.2 – 3.0.5.0 and 2.3.0.x; the functionality is identical, only the package differs.
Doesn’t patch the core
The filter is built in through events and its own catalogue model; no core file is rewritten. So an OpenCart update doesn’t break it, and a single build works on both 4.0 and 4.1. Removing the module is one click — the shop stays exactly as it was.
A dedicated index instead of attribute queries
Instead of scanning the attribute and option tables on every click, the module keeps its own product → value index. Filter conditions become an EXISTS against the index, so the catalogue doesn’t slow down when the shopper adds a fifth or sixth filter. The index updates itself when a product is added, edited, copied or deleted.
Duplicate values are merged into one
“12 V”, “12v” and “12 V.” from supplier price lists are three different strings, and in an ordinary filter they become three checkboxes. Here they’re merged into one value. Numeric values are sorted as numbers (1.5 / 2 / 10, not 1.5 / 10 / 2) and work as a range.
Honest counters
Next to each value you see how many products will remain after selecting it. The counter accounts for all other selected filters, but doesn’t restrict itself — so the shopper never hits zero or sees “(0)” where a product actually exists.
Filter SEO pages
A given filter combination can be turned into a separate page with its own H1, title, description, text and human-readable URL. Everything else the shopper clicks together is closed off with noindex,follow and a canonical to the plain category — so thousands of junk addresses don’t pour into the index.
Small details that show up in practice
- Subcategory products on the category page — via a toggle (in stock OpenCart they’re not visible at all).
- Zero third-party libraries: no jQuery, no slider plugins, CSP-compatible.
- Built-in diagnostics show whether the query is actually being intercepted, whether the index is fresh, and whether the counter cache is working — this class of module tends to break silently, exactly there.
How to install
- Download the build for your version and install it via “Extensions → Installer”.
- In “Extensions → Extensions → Modules”, find “CatCode Smart Filter” and click Install.
- Open the settings and click “Install” — this creates the tables and events.
- Build the index with the “Reindex” button, and choose which attributes become facets.
- Place the module in the category layout via “Design → Layouts”.
What the admin gets
Facets are built from what’s already in your catalogue: category, product attributes and options, price, stock, rating. Nothing needs to be described separately — the module takes OpenCart attributes and options as they are.
For each facet you configure how it’s shown to the shopper: checkboxes, radio buttons, a dropdown, a range slider for numbers, toggles, colour swatches or image swatches. You decide the order of facets in the panel — whatever people actually filter by in your category goes first.
The index rebuilds itself whenever a product changes, and can be rebuilt completely with a single button — handy once, right after a big price-list import.
Why it’s faster
Standard OpenCart filtering collects the result set with joins against product_attribute, product_option_value and product_description. Each added facet is another JOIN, and on a catalogue of tens of thousands of products the query turns into a multi-second one.
The flat “product → value” index removes this problem at the root: whether there are five facets or fifteen, the query structure doesn’t change. That’s why a shop with a large price list gets the most out of the module — on a 200-product catalogue you won’t notice the difference.
Free version and Pro
Pro lifts the limit on the number of facets and adds filter SEO pages: you pick a filter combination worth promoting (“yellow cabinets”, “laptops under 30,000”), and it gets its own H1, title and human-readable URL. Every other combination stays under noindex,follow with a canonical pointing to the plain category.
This is the main difference from a “theme filter”: a controlled handful of landing pages for low-frequency queries, instead of either a million junk URLs in the index or no filter pages in search at all.
Under the hood
The module doesn’t patch the core: it works through OpenCart’s standard events, so a shop update doesn’t wipe out its changes, and removing the module leaves no trace in core files. Category pagination and sorting stay native.
Price is taken with special offers and discounts already applied — the same logic used in the listing. So there’s never a situation where the filter says one thing and the product page shows a different price.
The index updates on product save events, so it only adds load exactly at the moment of editing, not via a background cron once an hour.
Questions
about the module
Didn't find the answer? Message us on Telegram and we'll reply within a business day.
Do I need to edit core files or the template?
No. The module is built in through events and its own catalogue model, the core stays stock — an OpenCart update doesn't break it.
Will it hold up on a large catalogue?
Filter conditions run against a dedicated product → value index, not attribute tables, so adding new facets doesn't slow the query.
What happens with duplicate values from supplier price lists?
They get merged into one value, so instead of three checkboxes "12 V", "12v" and "12 V.", the shopper sees one.
Won't the filter clutter Google's index?
No. Only what you've turned into an SEO page goes into the index; the rest return noindex,follow and a canonical to the category.
How many sites can one key activate?
One. The licence is perpetual: you pay once, with no annual fees.
No reviews yet. Be the first.
No questions yet. Ask one — we answer within 24 hours.
Not quite what you are looking for?
We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about the task and we'll prepare an estimate.
Order a custom module
Buying the module
—
