Filtres à Facettes AJAX pour PrestaShop — Documentation
Installer, configurer et exploiter la navigation à facettes AJAX : facettes, slider de prix, SEO des URLs filtrées, scoping par catégorie, cache et statistiques.
Ce guide couvre l’installation, la configuration et l’exploitation du module Filtres à Facettes AJAX pour PrestaShop 8 et 9. Le module remplace la recherche à facettes native par une navigation AJAX plus rapide, un slider de prix avec histogramme et un contrôle fin de l’indexation SEO des pages filtrées.
Installation
Depuis votre back-office, ouvrez Modules > Module Manager, cliquez sur Installer un module et déposez le fichier dffacetedfilter.zip. À l’installation, le module effectue automatiquement trois actions :
- il crée ses tables et son onglet d’administration ;
- il synchronise une première fois les facettes à partir de votre catalogue ;
- il préchauffe l’index de prix (dans la limite de quelques secondes).
Le module se place en priorité sur le hook productSearchProvider afin de passer devant la recherche à facettes native de PrestaShop. Aucun fichier de votre thème n’est surchargé.
Première configuration
Rendez-vous dans Catalogue > Filtres à facettes. Vous y trouvez la liste des facettes, un tableau de bord de synthèse et les réglages généraux et SEO.
Synchroniser les facettes
Le bouton Synchroniser depuis le catalogue crée automatiquement les facettes manquantes à partir de vos groupes d’attributs, de vos caractéristiques et des facettes intégrées (prix, marque, promotions, disponibilité, état). Les facettes existantes ne sont jamais modifiées : vous pouvez relancer la synchronisation sans risque après avoir ajouté un attribut ou une caractéristique.
Reconstruire l’index de prix
Le bouton Reconstruire l’index prix recalcule les bornes de prix de tous les produits, par lots, avec une barre de progression. Lancez-le après l’installation puis après tout import massif de produits.
Gérer les facettes
Chaque ligne de la liste peut être réordonnée par glisser-déposer (l’ordre définit l’ordre d’affichage en front et l’ordre normalisé des URLs), activée ou désactivée, et éditée.
Options d’une facette
- Libellé : le nom affiché, traduisible par langue.
- Affichage : cases à cocher, pastilles couleur / texture, ou liens simples. Les groupes de couleurs héritent automatiquement de l’affichage en pastilles.
- Multi-sélection : autorise la sélection simultanée de plusieurs valeurs d’une même facette, combinées par un OU.
- Afficher les compteurs : affiche le nombre de produits en face de chaque valeur.
- Masquer les valeurs vides : masque les valeurs à zéro produit au lieu de les afficher grisées.
- Repliée par défaut : la facette s’affiche fermée, l’internaute la déplie au clic.
- Valeurs avant « Voir plus » : nombre de valeurs visibles avant le bouton d’expansion (0 = tout afficher).
Le comptage disjonctif est appliqué : chaque facette est comptée en tenant compte de toutes les autres sélections, mais pas de la sienne. Sélectionner « Rouge » ne met donc jamais « Bleu » à zéro dans la même facette.
Le slider de prix et son index
La facette Prix s’affiche sous forme d’un double curseur. Au-dessus, un histogramme de répartition des produits sur douze tranches aide l’internaute à situer les prix. Ces données proviennent d’un index de prix dédié, distinct des tables PrestaShop, pour rester rapide même sur un gros catalogue.
Maintenance de l’index
L’index est mis à jour en temps réel par des hooks lorsqu’un produit, un prix spécifique ou une déclinaison change. Pour une reconstruction complète planifiée, utilisez l’endpoint cron affiché en back-office :
/module/dffacetedfilter/cron?token=VOTRE_JETON
L’appel traite l’index par tranches avec une garde-temps d’environ 20 secondes ; s’il reste des produits, la réponse fournit l’URL de continuation à rappeler. Un appel nocturne quotidien suffit dans la plupart des cas.
Le réglage Filtrer les prix TTC détermine si le slider raisonne en prix taxe comprise ou hors taxe. L’index stocke les prix dans la devise par défaut ; l’affichage est converti dans la devise courante.
La facette Promotions
La facette En promo filtre les produits actuellement en réduction : produits marqués « en soldes » ou couverts par un prix spécifique actif (réduction en cours, dans la plage de dates, pour la devise, le pays et le groupe courants). Elle est créée activée par défaut lors de la synchronisation.
Disponibilité et état
Deux facettes intégrées complémentaires sont créées désactivées, à activer selon vos besoins :
- Disponibilité : une valeur « En stock » qui tient compte de votre réglage de commande en rupture de stock.
- État : neuf, occasion, reconditionné.
Restreindre une facette à des catégories
Par défaut, une facette s’affiche sur toutes les pages de listing. Dans le formulaire d’édition, la section Restreindre à des catégories vous permet de cocher une ou plusieurs catégories : la facette n’apparaîtra alors que sur ces catégories et leurs sous-catégories.
C’est le bon moyen de garder un menu de filtres pertinent sur un catalogue hétérogène : n’affichez « Pointure » que sous Chaussures, « Taille écran » que sous High-tech. Laissez tout décoché pour une facette globale.
Le SEO des facettes
C’est l’un des points forts du module : vous décidez précisément quelles pages filtrées peuvent être indexées. Les URLs de filtres sont lisibles et suivent le format :
/categorie?dff=couleur:rouge,bleu-marine/prix:10,50/marque:nike
Les facettes sont séparées par une barre oblique, le slug de la facette et ses valeurs par deux-points, et les valeurs entre elles par une virgule. L’ordre des facettes et le tri des valeurs sont normalisés afin qu’une même combinaison produise toujours une seule URL canonique.
Réglages SEO
- Indexable (par facette) : une facette non indexable force la page filtrée en
noindex, followet ajouterel="nofollow"sur ses liens. - Nombre max. de valeurs indexables : au-delà de ce seuil de valeurs sélectionnées, la page passe en
noindex, follow. La valeur 1 est la plus sûre contre l’explosion du budget de crawl. - Canonical auto sur les pages indexables : les pages indexables reçoivent une balise canonical pointant vers leur propre URL de filtre normalisée. Le canonical du thème est retiré côté front pour éviter les doublons.
- Tout passer en noindex : force le
noindex, followsur toutes les pages filtrées, quels que soient les réglages par facette.
Une page filtrée est aussi mise en noindex, follow lorsqu’un paramètre de tri est présent, car il s’agit d’un doublon de la page dans son ordre par défaut.
Modes AJAX
Le réglage Mode AJAX détermine comment la page se met à jour au clic sur un filtre :
- Thème (événements natifs) — recommandé : le module émet l’événement natif de PrestaShop et laisse le cœur et le thème rafraîchir la liste, les facettes et l’historique du navigateur. C’est le mode le plus compatible avec les thèmes basés sur classic.
- Autogéré : pour les thèmes non standards, le module récupère lui-même la page en AJAX et remplace les blocs concernés. À utiliser seulement si le mode Thème ne rafraîchit pas correctement la page.
Cache des compteurs
Le calcul des compteurs disjonctifs peut être coûteux sur un gros catalogue. Le module met leur résultat en cache pour une courte durée configurable (300 secondes par défaut). Ce cache est invalidé automatiquement à chaque changement de catalogue et à chaque modification d’une facette. Un bouton Vider le cache des compteurs est disponible en back-office.
Statistiques d’usage
Le tableau de bord, en haut de la page d’administration, résume l’activité des 30 derniers jours : produits indexés, nombre de vues de pages filtrées, part du budget de crawl gardée hors index (pages filtrées servies en noindex) et un classement des facettes les plus utilisées. Vous pouvez désactiver l’enregistrement des statistiques dans les réglages de performance.
Pages prises en charge
Les facettes s’appliquent aux pages de catégorie, marque, fournisseur, nouveautés, meilleures ventes, promotions et résultats de recherche (en respectant le classement natif de PrestaShop). La facette Marque est automatiquement masquée sur une page de marque, et la facette scoping-catégorie sur une page de recherche.
Désactiver la recherche à facettes native
Le module prend la priorité sur ps_facetedsearch, mais nous recommandons de désactiver ce dernier pour éviter un double travail d’indexation. Un avertissement vous le rappelle en back-office s’il reste actif.
Dépannage
- Les facettes n’apparaissent pas : lancez une synchronisation, vérifiez qu’au moins une facette est active, et que vous êtes bien sur une page de listing prise en charge.
- Le slider de prix est absent : reconstruisez l’index de prix ; la facette Prix se masque tant que l’index est vide pour la catégorie affichée.
- La page ne se rafraîchit pas en AJAX : passez le mode AJAX en « Autogéré » si votre thème ne suit pas le standard de PrestaShop.
- Trop de pages indexées : abaissez le nombre max. de valeurs indexables, rendez non indexables les facettes à forte cardinalité (couleur, taille), ou activez « Tout passer en noindex » le temps de reprendre la main.
Le code source est fourni non chiffré. Vous bénéficiez de 12 mois de mises à jour de compatibilité et d’un support sous 24 h.