Advanced Search Pro

Présentation

Advanced Search Pro est un module de navigation à facettes (filtres avancés) conçu comme un remplacement moderne du module natif ps_facetedsearch. L’objectif est simple : permettre à vos clients de trouver le bon produit en quelques clics, sans rechargement de page, avec une expérience fluide sur desktop et mobile.

Contrairement aux approches legacy, Advanced Search Pro repose sur une architecture performante : back-office en contrôleurs Symfony (compatibles PrestaShop 8 et 9), interactions front-office ultra-réactives via Alpine.js, et un fonctionnement orienté API JSON (le front envoie des critères, le serveur renvoie les résultats + compteurs). Pour maintenir des temps de réponse rapides même sur des catalogues volumineux, le module intègre un système d’indexation dédié et un cache configurable.

Points forts :

  • Filtres instantanés (AJAX) avec mise à jour des compteurs en temps réel
  • Multiples moteurs de filtres (Filter Engines) selon vos catégories/pages
  • Expérience mobile optimisée (drawer + bouton flottant)
  • Indexation et cache pour de meilleures performances
  • Aucun override du cœur PrestaShop

Pourquoi ce module ?

Le module natif ps_facetedsearch devient vite limitant : interface vieillissante, rechargements, configuration rigide, et performances qui chutent quand le catalogue grossit. Advanced Search Pro vise à corriger ces points avec une expérience plus actuelle et une administration plus souple.

Limites du module natif Apport d’Advanced Search Pro
Interface datée et moins réactive Interactions fluides via Alpine.js
Rechargement complet lors du filtrage Requêtes AJAX + réponse JSON
Un bloc de filtres unique pour tout le site Engines multiples par contexte/catégorie
Paramétrage limité des critères Méthodes d’affichage adaptées (slider, dropdown, couleurs, images…)
Mobile peu optimisé Drawer mobile + UX dédiée
Performances fragiles sur gros catalogues Indexation dédiée + cache TTL

Fonctionnalités

Filter engines (moteurs de filtres)

Un Filter Engine est un bloc de filtres autonome avec sa propre configuration (critères, visibilité, position, priorité). Vous pouvez en créer autant que nécessaire pour adapter l’expérience de navigation à chaque univers produit.

Fonctionnalités clés :

  • Création de moteurs multiples indépendants
  • Positionnement via hooks (colonne gauche/droite, haut de page, pleine largeur, homepage…)
  • Activation/désactivation par engine, duplication en un clic
  • Méthode de soumission : instant (AJAX) ou validation (bouton)
  • Options : inclure les sous-catégories, filtrer uniquement les produits en stock

Périmètre de recherche (search mode)

Chaque engine peut rechercher dans un périmètre différent :

  • Contexte courant : recherche dans la catégorie consultée (cas le plus courant)
  • Catégorie fixe : recherche toujours dans une catégorie choisie (utile pour homepage)
  • Catalogue entier : recherche globale (utile pour un moteur global)

Ce mécanisme permet d’afficher des filtres pertinents selon la page, sans “polluer” l’expérience avec des critères inutiles.

Critères de filtrage et méthodes d’affichage

Le module gère les principaux types de critères PrestaShop :

  • Prix (slider double curseur + saisie min/max)
  • Attributs (taille, couleur, matière…)
  • Caractéristiques (features)
  • Catégories (arbre, vignettes/images)
  • Fabricants / Marques

Chaque groupe de critères peut être affiché selon plusieurs méthodes :

  • Checkboxes, slider (range), dropdown
  • Color swatches (carrés de couleur)
  • Images (ex : catégories/sous-catégories)
  • Liens / tags

Les compteurs sont mis à jour après chaque interaction, ce qui évite les impasses (“0 produit”) et aide les clients à affiner sans frustration.

Visibilité et priorité

L’affichage des engines se contrôle finement :

  • Affichage sur toutes les pages (par défaut) ou sur des pages spécifiques
  • Restrictions possibles : catégories (avec sous-catégories), fabricants, fournisseurs, pages CMS, pages spéciales (promotions, nouveautés, best-sellers, résultats de recherche, homepage)
  • Système de priorité : sur une même position, un seul engine s’affiche (priorité la plus basse = gagnante)

Cette logique permet un setup “global + spécialisés” : un engine global sert de fallback, et des engines spécialisés prennent le relais selon la catégorie.

Affichage front-office (desktop et mobile)

Côté client, l’expérience est pensée pour la conversion :

  • Filtres actifs sous forme de pills cliquables (avec suppression rapide)
  • Bouton Clear all pour tout réinitialiser
  • Groupes repliables (accordion)
  • Compteurs dynamiques en temps réel

Sur mobile :

  • Drawer (panneau latéral) déclenché par un bouton flottant “Filters”
  • Breakpoint configurable (768px par défaut)
  • Fermeture intuitive (× ou tap à l’extérieur)
  • Scroll interne maîtrisé (pas de scroll derrière le drawer)

Prérequis

Composant Version minimum
PrestaShop 8.0.0
PHP 8.1
MySQL 5.7 / MariaDB 10.3

⚠️ Important : ce module nécessite la désactivation du module natif ps_facetedsearch. Les deux ne peuvent pas coexister car ils exploitent les mêmes hooks de navigation à facettes.

Installation

Méthode 1 — Back-office (recommandé)

  1. Allez dans Modules > Gestionnaire de modules
  2. Cliquez sur Téléverser un module
  3. Sélectionnez l’archive wepresta_advancedsearch.zip
  4. Attendez la fin de l’installation
  5. Cliquez sur Configurer

Méthode 2 — FTP

  1. Décompressez wepresta_advancedsearch.zip
  2. Uploadez wepresta_advancedsearch/ dans /modules/
  3. Dans le back-office : Modules > Gestionnaire de modules
  4. Recherchez “Advanced Search Pro”
  5. Cliquez sur Installer puis Configurer

Ce que fait l’installation

  • Création des tables d’indexation (attributs, caractéristiques, catégories, prix, fabricants)
  • Création des tables de configuration (engines, critères, visibilité)
  • Enregistrement des hooks front-office et back-office
  • Ajout d’un onglet Advanced Search Pro dans le menu
  • Indexation initiale automatique du catalogue
  • Détection de ps_facetedsearch avec proposition de désactivation

L’indexation initiale peut durer de quelques secondes à quelques minutes selon la taille du catalogue.

Démarrage rapide

Pour activer un premier bloc de filtres en moins de 5 minutes :

  1. Installez le module et désactivez ps_facetedsearch
  2. Ouvrez Advanced Search Pro dans le menu
  3. Cliquez sur Add new engine
  4. Donnez un nom interne (ex : “Filtres principaux”)
  5. Choisissez un hook (ex : Left Column) et gardez Current page context
  6. Enregistrez, puis ajoutez vos critères (Prix, Taille, Couleur, Marque…)
  7. Dans Tools, lancez Full reindexation
  8. Consultez une page catégorie : les filtres doivent être visibles et actifs

Configuration

Paramètres d’un engine

Les réglages importants à connaître :

  • Internal name : nom interne (back-office)
  • Public name : titre affiché en front (optionnel, multilingue)
  • Display hook : position du bloc (gauche/droite/haut/plein écran/homepage…)
  • Submission method : instant (AJAX) ou bouton
  • Search mode : contexte / catégorie fixe / catalogue entier
  • Options : sous-catégories, stock uniquement, activation

Gestion des critères

Les critères se configurent par engine :

  • Ajoutez/retirez des groupes (prix, attributs, caractéristiques, catégories, marques…)
  • Choisissez une méthode d’affichage (checkboxes, slider, dropdown, couleurs, images…)
  • Organisez l’ordre (l’ordre de liste = l’ordre front)
  • Réindexez si vous ajoutez de nouveaux attributs/caractéristiques dans PrestaShop

Visibilité et priorités

Pour éviter plusieurs blocs concurrents sur une même page :

  • Utilisez un engine global (priorité 10+) en fallback
  • Créez des engines spécialisés (priorité 1–5) par catégories
  • Vérifiez que le hook existe dans votre thème (certains thèmes n’affichent pas de colonne)

Paramètres globaux (settings)

Les réglages s’appliquent à tous les engines :

  • Cache : activation + TTL
  • Performance : debounce (délai avant appel AJAX) + batch size d’indexation
  • Intégration : sélecteur CSS du listing produits (important pour que le contenu se remplace correctement)
  • Debug : journalisation détaillée (à éviter en production)

Outils et indexation

Le module maintient des index dédiés pour accélérer les recherches :

  • ATTRIBUTES, FEATURES, CATEGORIES, PRICES, MANUFACTURERS

La réindexation complète est recommandée :

  • Après installation (souvent automatique)
  • Après import massif
  • Après changement structurel (nouveaux attributs, nouvelles catégories)
  • Si les résultats semblent incohérents

Pour de très gros catalogues (10 000+ produits), privilégiez une réindexation via tâche CRON pour éviter les timeouts.

Compatibilité

PrestaShop

  • ✅ PrestaShop 8.x
  • ✅ PrestaShop 9.x

PHP

  • ✅ PHP 8.1 à 8.4

Bases de données

  • ✅ MySQL 5.7+
  • ✅ MariaDB 10.3+

Thèmes

  • ✅ Thèmes PrestaShop (Classic, Hummingbird)
  • ✅ Thèmes custom (vérifier le sélecteur CSS du listing produits)

FAQ

Le module remplace-t-il ps_facetedsearch ?

Oui. Il est conçu comme un remplacement complet, avec une UX plus moderne, des engines multiples et une recherche instantanée.

Dois-je désactiver ps_facetedsearch ?

Oui, obligatoirement. Les deux modules ne peuvent pas fonctionner ensemble (hooks identiques).

Le module génère-t-il des pages SEO indexables par facette ?

Non, pas dans cette version. La génération de pages SEO (facettes indexables) est prévue pour une version future.

Le module est-il compatible avec un thème custom ?

Dans la majorité des cas oui. Le point critique est le Product list CSS selector : il doit cibler le conteneur de la liste produits pour permettre la mise à jour AJAX.

Le module peut-il gérer un gros catalogue ?

Oui, grâce à l’indexation dédiée et au cache. Ajustez TTL, batch size et debounce selon votre serveur, et utilisez une réindexation planifiée si besoin.

Dépannage

Le bloc de filtres ne s’affiche pas

  • Vérifiez que l’engine est actif
  • Vérifiez que le hook existe dans votre thème
  • Vérifiez la visibilité (pages spécifiques)
  • Vérifiez la priorité (un autre engine peut prendre le dessus)
  • Vérifiez que ps_facetedsearch est bien désactivé
  • Videz le cache PrestaShop

Les compteurs affichent 0 partout

  • Lancez une réindexation complète
  • Vérifiez que vos produits ont bien attributs/caractéristiques
  • Vérifiez le périmètre (catégorie courante et présence de produits)

Le listing ne se met pas à jour après un filtre

  • Vérifiez le Product list CSS selector
  • Contrôlez la console navigateur (F12) pour erreurs JS
  • Activez temporairement le debug et consultez les logs PrestaShop

Timeout lors de l’indexation

  • Réduisez le batch size
  • Augmentez max_execution_time et memory_limit si possible
  • Réindexez via CRON sur gros catalogues

Changelog

Version 1.0.0 — Mars 2026

  • Engines multiples, visibilité par page et priorité
  • 3 modes de recherche (contexte / catégorie fixe / catalogue entier)
  • Critères : prix, attributs, caractéristiques, catégories, fabricants
  • AJAX instantané, filtres actifs (pills), clear all
  • Drawer mobile + breakpoint configurable
  • Indexation dédiée + cache TTL
  • Paramètres : debounce, batch size, CSS selector, debug
  • Contrôleurs Symfony, multistore, multilingue, sans override

Licence

Ce module est distribué sous licence Academic Free License (AFL 3.0).

Copyright © WePresta. Tous droits réservés.

Chargement...