- Filter engines
- Search scope (search mode)
- Filter criteria and display methods
- Visibility and priority
- Front office UX (desktop and mobile)
- Does it replace ps_facetedsearch?
- Do I need to disable ps_facetedsearch?
- Does it generate SEO-indexable faceted pages?
- Is it compatible with a custom theme?
- Can it handle large catalogs?
- Filters do not appear
- All counters show 0
- Product list does not refresh after filtering
- Indexing timeouts
Advanced Search Pro
Overview
Advanced Search Pro is a modern faceted navigation (advanced filters) module designed as a drop-in replacement for the native ps_facetedsearch module. The goal is simple: help customers find the right product faster, without full page reloads, with a smooth experience on desktop and mobile.
Unlike legacy approaches, Advanced Search Pro relies on a performance-oriented architecture: a back office built with Symfony controllers (PrestaShop 8 and 9 compatible), an ultra-responsive front office powered by Alpine.js, and an API-like JSON flow (the front sends criteria, the server returns results + counters). To keep response times fast on large catalogs, the module includes dedicated indexing and a configurable cache.
Key benefits:
- Instant filtering (AJAX) with real-time counters
- Multiple filter engines (Filter Engines) per category/page/context
- Mobile-first UX (drawer + floating button)
- Indexing + cache for higher performance
- No core overrides
Why this module?
The native ps_facetedsearch can become limiting: dated UI, reload-heavy behavior, rigid configuration, and performance issues as the catalog grows. Advanced Search Pro improves these points with a more modern UX and a more flexible administration layer.
| Native module limitations | What Advanced Search Pro brings |
|---|---|
| Less reactive, outdated UI | Smooth interactions with Alpine.js |
| Full reloads during filtering | AJAX requests + JSON responses |
| One global filter block | Multiple engines per context |
| Limited display/customization | Display modes (slider, dropdown, colors, images…) |
| Weak mobile UX | Mobile drawer + dedicated UX |
| Fragile performance on big catalogs | Dedicated indexing + cache TTL |
Features
Filter engines
A Filter Engine is an independent filter block with its own configuration (criteria, visibility, position, priority). Create as many as you need to adapt the filtering experience to each product universe.
Highlights:
- Create multiple engines with separate settings
- Display via hooks (left/right column, top of page, full width, homepage…)
- Enable/disable per engine, duplicate in one click
- Submission method: instant (AJAX) or apply button
- Options: include subcategories, show only in-stock products
Search scope (search mode)
Each engine can search within a different scope:
- Current context: search within the viewed category (most common)
- Fixed category: always search within a selected category (useful for homepage)
- Whole catalog: global search scope (useful for a global engine)
This lets you show relevant filters per page without displaying useless criteria.
Filter criteria and display methods
The module supports main PrestaShop criteria:
- Price (double-handle slider + min/max inputs)
- Attributes (size, color, material…)
- Features
- Categories (tree, thumbnails/images)
- Manufacturers / Brands
Each criteria group can be displayed using different methods:
- Checkboxes, range slider, dropdown
- Color swatches
- Images (e.g., categories/subcategories)
- Links / tags
Counters update after each interaction, reducing dead ends (“0 products”) and improving discovery.
Visibility and priority
Engines can be controlled precisely:
- Display everywhere (default) or only on specific pages
- Optional restrictions: categories (including subcategories), manufacturers, suppliers, CMS pages, special pages (sales, new products, best sellers, search results, homepage)
- Priority system: for the same position, only one engine is displayed (lowest priority value wins)
This enables a “global fallback + specialized engines” setup.
Front office UX (desktop and mobile)
Conversion-friendly UX:
- Active filters shown as clickable pills (quick remove)
- Clear all action
- Collapsible groups (accordion)
- Real-time counters
Mobile UX:
- Drawer panel opened by a floating “Filters” button
- Configurable breakpoint (default 768px)
- Intuitive closing (× or tap outside)
- Controlled scrolling (no background scroll behind the drawer)
Requirements
| Component | Minimum version |
|---|---|
| PrestaShop | 8.0.0 |
| PHP | 8.1 |
| MySQL | 5.7 / MariaDB 10.3 |
⚠️ Important: this module requires disabling the native
ps_facetedsearch. Both cannot coexist because they use the same hooks.
Installation
Method 1 — Back office (recommended)
- Go to Modules > Module Manager
- Click Upload a module
- Select
wepresta_advancedsearch.zip - Wait for installation to complete
- Click Configure
Method 2 — FTP
- Extract
wepresta_advancedsearch.zip - Upload
wepresta_advancedsearch/to/modules/ - In the back office: Modules > Module Manager
- Search for “Advanced Search Pro”
- Click Install then Configure
What installation does
- Creates indexing tables (attributes, features, categories, prices, manufacturers)
- Creates configuration tables (engines, criteria, visibility)
- Registers front-office and back-office hooks
- Adds an Advanced Search Pro menu entry
- Runs the initial catalog indexing
- Detects
ps_facetedsearchand prompts to disable it
Initial indexing can take from seconds to minutes depending on catalog size.
Quick start
Enable your first filter block in under 5 minutes:
- Install the module and disable
ps_facetedsearch - Open Advanced Search Pro from the menu
- Click Add new engine
- Set an internal name (e.g., “Main filters”)
- Choose a hook (e.g., Left Column) and keep Current page context
- Save, then add your criteria (Price, Size, Color, Brand…)
- In Tools, run Full reindexation
- Open a category page: filters should appear and work instantly
Configuration
Engine settings
Most important settings:
- Internal name: back-office label
- Public name: front title (optional, multilingual)
- Display hook: where it appears (left/right/top/full width/homepage…)
- Submission method: instant (AJAX) or apply button
- Search mode: context / fixed category / whole catalog
- Options: include subcategories, in-stock only, enabled
Criteria management
Criteria are configured per engine:
- Add/remove groups (price, attributes, features, categories, brands…)
- Choose a display method (checkboxes, slider, dropdown, swatches, images…)
- Organize ordering (back-office order = front-office order)
- Reindex after creating new attributes/features in PrestaShop
Visibility and priorities
To avoid competing blocks on the same page:
- Use a global fallback engine (priority 10+)
- Create specialized engines (priority 1–5) per category
- Ensure the hook exists in your theme (some themes don’t render side columns)
Global settings
Settings apply to all engines:
- Cache: enable + TTL
- Performance: debounce delay + indexing batch size
- Integration: product listing CSS selector (critical for AJAX replacement)
- Debug: verbose logs (avoid in production)
Tools and indexing
The module maintains dedicated indexes for faster filtering:
- ATTRIBUTES, FEATURES, CATEGORIES, PRICES, MANUFACTURERS
A full reindexation is recommended:
- After install (often automatic)
- After large imports
- After structural changes (new attributes, new categories)
- If results/counters look inconsistent
For very large catalogs (10,000+ products), schedule indexing via CRON to avoid timeouts.
Compatibility
PrestaShop
- ✅ PrestaShop 8.x
- ✅ PrestaShop 9.x
PHP
- ✅ PHP 8.1 to 8.4
Databases
- ✅ MySQL 5.7+
- ✅ MariaDB 10.3+
Themes
- ✅ PrestaShop themes (Classic, Hummingbird)
- ✅ Custom themes (verify the product listing CSS selector)
FAQ
Does it replace ps_facetedsearch?
Yes. It is designed as a full replacement with a modern UX, multiple engines, and instant filtering.
Do I need to disable ps_facetedsearch?
Yes, mandatory. Both modules cannot run together (same hooks).
Does it generate SEO-indexable faceted pages?
No, not in this version. SEO faceted pages are planned for a future release.
Is it compatible with a custom theme?
Most of the time yes. The main critical point is the Product list CSS selector so the module can replace the product list via AJAX.
Can it handle large catalogs?
Yes, thanks to dedicated indexing and caching. Tune TTL, batch size, and debounce to your server, and schedule indexing if needed.
Troubleshooting
Filters do not appear
- Ensure the engine is enabled
- Ensure the hook exists and is rendered by your theme
- Check visibility rules (page/category restrictions)
- Check priority (another engine may override it)
- Ensure
ps_facetedsearchis disabled - Clear PrestaShop cache
All counters show 0
- Run a full reindexation
- Ensure products have attributes/features assigned
- Check scope (current category contains products)
Product list does not refresh after filtering
- Verify the Product list CSS selector
- Check browser console (F12) for JS errors
- Temporarily enable debug and review PrestaShop logs
Indexing timeouts
- Reduce batch size
- Increase
max_execution_time/memory_limitif possible - Use CRON indexing for large catalogs
Changelog
Version 1.0.0 — March 2026
- Multiple engines, page visibility, priority system
- 3 search modes (context / fixed category / whole catalog)
- Criteria: price, attributes, features, categories, manufacturers
- Instant AJAX filtering, active filter pills, clear all
- Mobile drawer + configurable breakpoint
- Dedicated indexing + cache TTL
- Settings: debounce, batch size, CSS selector, debug
- Symfony controllers, multistore, multilingual, no overrides
License
Distributed under the Academic Free License (AFL 3.0).
Copyright © WePresta. All rights reserved.