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

  1. Go to Modules > Module Manager
  2. Click Upload a module
  3. Select wepresta_advancedsearch.zip
  4. Wait for installation to complete
  5. Click Configure

Method 2 — FTP

  1. Extract wepresta_advancedsearch.zip
  2. Upload wepresta_advancedsearch/ to /modules/
  3. In the back office: Modules > Module Manager
  4. Search for “Advanced Search Pro”
  5. 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_facetedsearch and 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:

  1. Install the module and disable ps_facetedsearch
  2. Open Advanced Search Pro from the menu
  3. Click Add new engine
  4. Set an internal name (e.g., “Main filters”)
  5. Choose a hook (e.g., Left Column) and keep Current page context
  6. Save, then add your criteria (Price, Size, Color, Brand…)
  7. In Tools, run Full reindexation
  8. 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_facetedsearch is 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_limit if 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.

Loading...