Elasticsearch Search & Faceted Navigation. Ce module remplace la recherche SQL lente de PrestaShop par un véritable moteur de recherche, Elasticsearch, OpenSearch ou Meilisearch, et ajoute une navigation à facettes moderne et entièrement configurable. Les clients bénéficient d’une saisie semi-automatique instantanée avec vignettes et prix, de résultats tolérants aux fautes de frappe, et d’une expérience « Filtres » claire dans un panneau de filtres modal moderne. Les prix affichés sont toujours les prix natifs exacts pour chaque groupe de clients et chaque devise. Vous pouvez l’installer et l’utiliser immédiatement avec la recherche native de PrestaShop, puis connecter un moteur de recherche dès que vous êtes prêt.

Ce module remplace la recherche SQL lente de PrestaShop par un véritable moteur de recherche, Elasticsearch, OpenSearch ou Meilisearch: et ajoute une navigation à facettes moderne et entièrement configurable. Les clients bénéficient d’une saisie semi-automatique instantanée avec vignettes et prix, de résultats tolérants aux fautes de frappe, et d’une expérience « Filtres » claire dans un panneau de filtres modal moderne. Les prix affichés sont toujours les prix natifs exacts pour chaque groupe de clients et chaque devise. Vous pouvez l’installer et l’utiliser immédiatement avec la recherche native de PrestaShop, puis connecter un moteur de recherche dès que vous êtes prêt.

1. Installation

  1. Dans le back office, allez dans Modules → Gestionnaire de modules → Ajouter un module et sélectionnez le fichier ZIP du module.
  2. Une fois installé, cliquez sur Configurer pour ouvrir le tableau de bord du module.
  3. Le module s’installe par défaut en mode moteur « Aucun », de sorte que la recherche continue de fonctionner avec le moteur natif de PrestaShop dès la première minute, rien à configurer pour être opérationnel.
Les mises à jour sont automatiques. Les mises à jour sont incluses. Les domaines de développement (.local, .test, localhost) sont toujours autorisés. Lorsqu’une nouvelle version est disponible, elle s’affiche directement dans le module.

2. Choisir un moteur de recherche

Ouvrez l’onglet Connexions et choisissez votre Moteur. Tout le reste du module communique avec le moteur via une seule couche d’abstraction, de sorte que le front office se comporte de la même manière quel que soit le backend choisi.

Options de moteur

  • Aucun (natif): pas de moteur externe. Le module utilise la recherche intégrée de PrestaShop. Utilisez cette option pour installer maintenant et connecter un moteur plus tard ; la boutique n’est jamais laissée sans recherche fonctionnelle.
  • Elasticsearch: l’option par défaut. Prend en charge les versions majeures 6, 7, 8 et 9 avec détection automatique de version.
  • OpenSearch: détecté automatiquement et traité comme un cluster moderne sans typage, quelle que soit sa version 1.x/2.x/3.x.
  • Meilisearch: une alternative légère et facile à héberger ; vos champs indexables, facettes, synonymes, mots vides et tolérance aux fautes de frappe sont automatiquement mappés vers Meilisearch.

Paramètres de connexion

  • Hôte: l’URL complète de votre moteur (elle peut inclure un préfixe de chemin, par ex. https://cluster.provider.com/my-space).
  • Chemin de base: un préfixe de chemin optionnel ajouté devant chaque requête, pour un espace de recherche loué sur des instances partagées.
  • Préfixe d’index: un espace de noms qui isole vos index, permettant à plusieurs boutiques de partager un même moteur en toute sécurité.
  • Authentification: pour Elasticsearch/OpenSearch : HTTP Basic ou clé API ; pour Meilisearch : une clé maître ou une clé à portée limitée de type Bearer.
  • Tester la connexion: vérifie que le moteur est accessible et indique sa version détectée.
Connections tab
Connexions: choisissez le moteur (y compris “Aucun”), ajoutez un ou plusieurs serveurs, testez la connexion et définissez un préfixe d’index
Réindexez après avoir changé de moteur (ou après avoir modifié les paramètres de l’analyseur). Le back office vous rappelle quand une réindexation est nécessaire. Tant que le nouveau moteur n’est pas indexé, le repli automatique continue de fournir des résultats.

3. Comportement de la recherche

Prendre en charge la recherche du site

Activez Prendre en charge la recherche du site pour que chaque recherche et chaque liste de catégorie soit servie par le moteur via le fournisseur de produits natif de PrestaShop, sans aucune modification du thème. Si le moteur devient inaccessible, le module bascule automatiquement vers la recherche native afin que la boutique n’affiche jamais d’erreur. Si ps_facetedsearch est encore actif, le back office vous avertit, car il est normalement préférable de n’avoir qu’un seul module de facettes actif.

Pertinence et réglages

Le panneau des paramètres de recherche vous permet d’ajuster la pertinence sans toucher au code :

  • Pondération des champs: l’importance du nom, de la référence, de la description, etc. dans le calcul du score.
  • Type de correspondance et opérateur: la stratégie multi_match et si les mots sont combinés avec AND ou OR.
  • Fuzziness et minimum-should-match: le degré de tolérance aux fautes de frappe et le nombre de mots devant correspondre.
  • Longueur minimale des mots et le périmètre des champs indexables par type de document.
  • Analyse linguistique: synonymes, mots vides, racinisation (stemmer) par langue (avec exclusions), élision, mise en minuscules et correspondance infixe (n-gramme) pour les mots partiels.
Search settings tab
Paramètres de recherche: interrupteurs principaux, filtres de l’analyseur (synonymes, mots vides, stemmer) et réglages de la requête

4. Navigation à facettes

La navigation à facettes est une expérience moderne en AJAX, sans rechargement de page, avec un mode barre latérale classique disponible en alternative (option Facet UI : modal ou sidebar).

Le panneau de filtres modal moderne

  • Au-dessus de la grille de produits se trouvent un bouton « Filtres », le nombre de résultats en temps réel et des puces amovibles pour chaque valeur appliquée (« Tout effacer » les supprime toutes).
  • Un clic sur Filtres ouvre une fenêtre modale à deux volets : les noms des filtres à gauche (avec un badge quand un filtre est utilisé), les valeurs du filtre sélectionné à droite, et un bouton dynamique « Afficher N résultats » dans le pied de la fenêtre.
  • Les filtres comportant de nombreuses valeurs sont regroupés de A à Z avec une zone de « recherche dans ce filtre » ; les couleurs s’affichent sous forme de pastilles ; le prix propose des champs min/max ainsi qu’un curseur à double poignée.
  • Sur mobile, la fenêtre modale est en plein écran : touchez un nom de filtre pour accéder à ses valeurs, utilisez la flèche retour pour revenir en arrière, et confirmez avec la barre fixe « Afficher N résultats » en bas de l’écran.
  • Tout se met à jour en AJAX avec des URL partageables (les boutons précédent/suivant fonctionnent), et il existe un repli sans JavaScript car chaque contrôle est un véritable élément de formulaire.

Configurer chaque facette

Pour chaque facette, vous contrôlez : activation/désactivation, ordre, libellé par langue, type d’affichage (case à cocher, bouton radio, liste déroulante, pastille de couleur, curseur de prix, notation par étoiles ou liste avec recherche), mode ET/OU, l’affichage ou non des compteurs, l’état replié, une limite de valeurs avec « afficher plus », et le masquage si vide. Sources disponibles : catégories, marques, caractéristiques, déclinaisons, prix, disponibilité, nouveauté, promotion et état. Les facettes peuvent également être affichées sur la page de résultats de recherche, pas seulement sur les catégories.

Facets tab
Facettes: activez, ordonnez, libellez et stylisez chaque filtre (case à cocher, pastille, curseur de prix, notation par étoiles…) avec ET/OU, compteurs et limites

Modèles de filtres par catégorie Filters Pro

Un modèle de filtres est une configuration de facettes nommée et réutilisable que vous pouvez assigner à une ou plusieurs catégories, afin que différentes catégories puissent exposer un jeu de filtres différent et réordonné. Dans l’onglet Modèles de filtres, vous créez un modèle avec le même éditeur de facettes que la configuration globale, plus une arborescence de catégories et une option « appliquer aussi aux sous-catégories ». La configuration globale des Facettes constitue le modèle par défaut: le repli pour toute catégorie sans modèle propre, ainsi que pour la page de recherche.

Filter templates tab
Modèles de filtres: assignez un jeu de filtres différent et réordonné à des catégories spécifiques ; la ligne Default est le repli global

5. Saisie semi-automatique

Au fur et à mesure que le client tape, le module suggère des produits, catégories, marques et pages CMS: chacun étiqueté par type, avec des vignettes produit et le bon prix natif, et tolérant aux fautes de frappe afin que les petites erreurs trouvent quand même une correspondance. Deux présentations sont disponibles (Style de saisie semi-automatique dans l’onglet Sortie) :

  • Liste déroulante: un panneau de suggestions qui s’ouvre sous la barre de recherche. Le style classique et compact.
  • Superposition de recherche plein écran: une grande barre de recherche fixe avec des résultats en plein écran, pour une expérience audacieuse centrée sur la recherche.
Output tab
Sortie: options de résultats et de liste, champs de la fiche produit et le style de saisie semi-automatique (liste déroulante ou superposition plein écran)

6. Des prix justes

Des prix corrects par groupe et par devise

Le prix qu’un client voit est toujours le prix natif de PrestaShop. Les prix sont indexés par groupe de clients × devise, tiennent compte des specific_price et de la taxe par pays, et la bonne valeur est sélectionnée au moment de la requête. Cela signifie que la facette de prix optionnelle et le tri par prix sont exacts pour chaque acheteur, un groupe grossiste et un groupe détail voient et trient chacun selon leurs propres prix.

Prix personnalisés pour le B2B Advanced

Dans l’onglet Advanced, vous pouvez activer les prix personnalisés. Pour les clients B2B disposant d’une liste de prix individuelle (un specific_price assigné au client), le tri et le filtrage par prix peuvent utiliser leur prix personnel exact plutôt que le prix du groupe. Un plafond configurable (fixe, ou automatique selon l’espace disque libre du moteur) limite le nombre de clients pour lesquels ce calcul est précalculé, et un avis optionnel par langue peut être affiché à ces acheteurs.

Advanced tab
Advanced: activez les prix personnels (par client) pour le tri et le filtrage B2B, avec un plafond configurable

7. Pages de filtres SEO

Les combinaisons de filtres étant potentiellement infinies, elles inonderaient Google ; c’est pourquoi, par défaut, chaque URL filtrée est servie en noindex,follow. L’onglet Pages de filtres SEO vous permet de faire l’inverse pour les combinaisons qui comptent : mettre en liste blanche une sélection précise (par exemple catégorie + marque + couleur) en tant que page de destination indexable avec un meta titre, une meta description, un H1 et un texte d’introduction personnalisés par langue.

  • Une page correspondante est forcée en index et reçoit une URL canonique auto-référencée vers l’URL filtrée, afin de pouvoir réellement se positionner.
  • Votre H1 et votre introduction personnalisés s’affichent au-dessus de la liste de produits.
  • Toutes les autres combinaisons filtrées restent en noindex,follow.
  • La liste du back office affiche l’URL active de chaque page, prête à être soumise ou liée.
SEO filter pages tab
Pages de filtres SEO: mettez en liste blanche une combinaison de filtres en tant que page de destination indexable avec titre, description, H1 et introduction personnalisés
Si un autre module SEO émet également une URL canonique sur les URL filtrées, les deux peuvent apparaître. Désactivez la canonique de cet autre module pour les listes filtrées afin que seule la nôtre (l’URL propre correcte) subsiste.

8. Analyse de la recherche

L’onglet Analyse de la recherche montre ce que les clients recherchent vraiment, enregistré à partir des véritables pages de résultats, jamais à partir des frappes de la saisie semi-automatique, et ne stockant que le texte de la requête (aucune donnée personnelle). Choisissez une plage de dates (7 / 30 / 90 derniers jours) et consultez des indicateurs clés (recherches totales, requêtes uniques, nombre et % de résultats nuls), un tableau des recherches les plus fréquentes et, surtout, un tableau des recherches sans résultat: les recherches n’ayant rien trouvé, autrement dit des ventes perdues. Chaque ligne sans résultat dispose d’un raccourci « Ajouter un synonyme » en un clic pour corriger immédiatement le problème. La journalisation peut être désactivée et les anciennes lignes sont supprimées automatiquement après une période de rétention configurable.

Search analytics tab
Analyse de la recherche: indicateurs clés, recherches les plus fréquentes et le tableau des recherches sans résultat avec un raccourci “Ajouter un synonyme” en un clic

9. Réindexation et cron

Le moteur a besoin d’un index de votre catalogue. Le module indexe les produits, catégories, marques et pages CMS, chacun dans son propre index, et les maintient à jour en direct au fur et à mesure que vous enregistrez, ajoutez ou supprimez des produits et que le stock évolue.

  • Assistant de réindexation: une réindexation guidée, par lots et reprenable, avec une barre de progression. Lancez-le après la première connexion au moteur, après un changement de moteur, ou après une modification des paramètres de l’analyseur.
  • URL cron: une URL protégée par jeton que vous pouvez appeler depuis une tâche planifiée (ou en CLI) pour maintenir automatiquement l’index à jour ; elle purge également les anciennes lignes d’analyse.
  • Supprimer les données indexées: vide les index du moteur lorsque vous souhaitez une reconstruction propre.
Documents tab
Documents: choisissez les types de documents indexés (produits, catégories, marques, CMS) et les champs indexables par type

10. Multiboutique et hébergement partagé

Multiboutique

Les paramètres de connexion et de moteur sont définis par boutique. Dans un contexte « toutes les boutiques », ils sont enregistrés globalement ; dans un contexte à boutique unique, ils sont enregistrés pour cette boutique, avec un repli global. Cela signifie que différentes boutiques peuvent pointer vers différents moteurs ou clusters, tandis qu’une installation à boutique unique se comporte exactement comme avant.

Hébergement partagé / espace de recherche loué

Vous n’avez pas besoin de votre propre cluster dédié. Pointez l’Hôte vers un point d’accès partagé avec un préfixe de chemin, définissez le Chemin de base et un Préfixe d’index (espace de noms), puis ajoutez la clé API du fournisseur. Chaque requête est limitée à votre préfixe, de sorte que vos données restent isolées sur une instance partagée, et cela fonctionne de la même manière avec Elasticsearch, OpenSearch et Meilisearch.

11. FAQ

Ai-je besoin d’Elasticsearch pour démarrer ?

Non. Le module s’installe en mode « Aucun » et utilise la recherche native de PrestaShop, vous êtes donc opérationnel immédiatement. Connectez Elasticsearch, OpenSearch ou Meilisearch dès que vous êtes prêt.

Que se passe-t-il si mon moteur de recherche tombe en panne ?

Le module bascule automatiquement vers la recherche native, de sorte que les clients peuvent toujours effectuer une recherche, la boutique n’affiche jamais d’erreur.

Les prix affichés aux clients sont-ils corrects ?

Oui. Le prix affiché est toujours le prix natif de PrestaShop. Le moteur n’est utilisé que pour filtrer et trier, à l’aide des prix indexés par groupe de clients et par devise (et, en option, du prix personnel de chaque client B2B).

Y aura-t-il un conflit avec ps_facetedsearch ?

Il est normalement préférable de n’avoir qu’un seul module de facettes actif. Le back office vous avertit si ps_facetedsearch est encore actif afin que vous puissiez le désactiver.

Différentes catégories peuvent-elles afficher des filtres différents ?

Oui. Créez des modèles de filtres et assignez-les à des catégories (en incluant éventuellement les sous-catégories). Les catégories sans modèle utilisent le modèle global par défaut.

Quel moteur dois-je choisir ?

Elasticsearch est l’option par défaut et la plus répandue. OpenSearch en est un équivalent directement interchangeable. Meilisearch est le plus léger à héberger et convient parfaitement à l’hébergement partagé ou aux catalogues plus modestes.

Loading...
Back to top