A faceted search usually asks the server for every click: a heavy query for each filter change, slow on big
catalogues and impossible to cache. Instant Filters changes where the work is done. The shop writes a set of JSON
files with the whole catalogue and the filters it can offer, and the customer’s browser reads them once and then
filters, counts, sorts and paginates on its own.
What the shop writes
For each shop, language, currency and customer group that you prepare, the module keeps an index.json with one
compact record per product (categories, brand, features, attributes, price, discount, stock, date, sales and
position) and the names every filter shows, plus cards-N.json files with the product cards rendered by your
active theme, so the filtered listing looks exactly like the normal one. Prices are the ones that visitor pays,
with discounts, group reductions and tax as the shop displays them.
How it stays fresh
Saving or deleting a product, changing its stock, adding a price rule, editing a feature, an attribute, a
category, a brand, a currency or a group puts the change in a small queue. The next visitor’s browser asks a module
address to work on it after the page is shown, so nobody waits and there is no cron job to set up. For a big import
or a deploy, run php modules/ecomaddonsinstantfilters/cli/rebuild.php, or press the rebuild button.
On the storefront
The filter panel appears on category, brand, supplier, new products, best sellers and prices drop pages: beside the
products (the theme’s left column), as a bar above them, or as a floating button that opens a side panel, as you
choose; on phones it is always a side panel. The server still prints the normal listing: search engines, and visitors without
JavaScript, see it as before.