Recherche Sans Résultat — Page de Rattrapage & Alertes — Documentation
Installer, configurer et exploiter le module dfzerosearch : page de rattrapage sur les recherches sans résultat, correction orthographique, devinette de catégorie, formulaire « prévenez-moi » et tableau de bord des requêtes perdues.
Présentation
Le module Recherche Sans Résultat (dfzerosearch) intercepte les recherches de votre boutique qui ne renvoient aucun résultat et les remplace par une page de rattrapage : correction orthographique « vouliez-vous dire… », produits proches, meilleures ventes de la catégorie devinée, best-sellers globaux et formulaire « prévenez-moi ».
Côté back-office, un tableau de bord des requêtes perdues agrège toutes les recherches à zéro résultat et vous permet de les rattacher, d’un clic, à un produit, une catégorie ou une URL — en suggestion affichée sur la page ou en redirection automatique.
En bref : détection via le hook actionSearch, page de rattrapage chargée en AJAX, correction contre l’index natif, formulaire opt-in RGPD, alerte email d’un clic et dashboard des requêtes perdues. Aucune dépendance, aucun service externe.
Installation
- Dans votre back-office, ouvrez Modules > Gestionnaire de modules puis cliquez sur Téléverser un module.
- Sélectionnez l’archive
dfzerosearch.zipet validez. - À l’installation, le module crée ses trois tables SQL, son onglet d’administration (et ses trois sous-onglets) ainsi que sa configuration par défaut.
- Le module est actif immédiatement. Aucune dépendance externe n’est requise (ni Composer, ni framework).
Le module est compatible PrestaShop 8.0 à 9.x, en boutique simple comme en multiboutique, et sur les cinq langues du catalogue (FR, EN, ES, DE, IT).
Configuration (back-office)
Ouvrez la page de configuration du module (Modules > Gestionnaire de modules > dfzerosearch > Configurer). Les réglages disponibles sont :
- Activer le module — active ou suspend la détection et l’affichage de la page de rattrapage.
- Correction orthographique — active le bloc « vouliez-vous dire… ».
- Bloc catégorie — active les meilleures ventes de la catégorie devinée.
- Bloc best-sellers — active les best-sellers globaux, affichés uniquement en dernier recours.
- Formulaire « prévenez-moi » — active la capture d’email sur la page de rattrapage.
- Produits par bloc — nombre de produits affichés dans chaque bloc (8 par défaut, de 1 à 24).
- Longueur minimale de requête — en dessous de ce nombre de caractères, la recherche n’est pas journalisée (2 par défaut).
- Rétention (jours) — durée de conservation des requêtes perdues, avec un bouton de purge manuelle (180 jours par défaut).
Les valeurs sont stockées dans les variables de configuration DFZS_ENABLED, DFZS_FUZZY, DFZS_CATEGORY_BLOCK, DFZS_BESTSELLERS_BLOCK, DFZS_NOTIFY_FORM, DFZS_NB_PRODUCTS, DFZS_MIN_LENGTH et DFZS_RETENTION_DAYS. Un panneau de liens rapides renvoie vers les trois écrans d’administration.
La page de rattrapage (côté visiteur)
Sur la page de résultats, un script détecte que la grille de produits est vide, puis charge la page de rattrapage en AJAX via le contrôleur front rescue. Les blocs s’affichent dans cet ordre :
- Cible suggérée — si un mapping actif en mode « suggestion » existe pour la requête, sa cible (produit, catégorie ou URL) est mise en avant.
- « Vouliez-vous dire… » — la requête corrigée et ses produits, avec un lien vers la vraie page de recherche corrigée.
- Meilleures ventes de la catégorie devinée — à partir des mots de la requête.
- Best-sellers globaux — uniquement si aucun des blocs précédents n’a produit de résultat.
- Formulaire « prévenez-moi » — pour capturer l’email du visiteur sur cette requête.
Les recherches qui aboutissent ne sont jamais ralenties : la page de rattrapage n’est chargée que lorsque la grille de résultats est effectivement vide.
Correction orthographique & devinette de catégorie
La correction orthographique réécrit la requête mot à mot contre l’index de recherche natif de PrestaShop (table ps_search_word), à l’aide d’une distance de Levenshtein adaptée à la longueur du mot. Seuls des mots réellement présents dans l’index sont proposés ; la vraie recherche PrestaShop est ensuite relancée avec la requête corrigée.
La devinette de catégorie confronte les mots de la requête aux noms des catégories actives de la boutique (correspondance de sous-chaîne puis Levenshtein). La catégorie la mieux notée fournit ses meilleures ventes.
Toute l’intelligence est auto-hébergée : aucune donnée ne quitte votre boutique et aucune clé d’API externe n’est nécessaire.
Tableau de bord des requêtes perdues & mapping
L’onglet DF Zero Search réunit trois écrans :
- Requêtes perdues — toutes les recherches à zéro résultat, agrégées, comptées et triées par volume, avec quatre indicateurs clés (total des recherches perdues, requêtes distinctes, mappings actifs, alertes en attente). Une action « Mapper » pré-remplit le formulaire de mapping.
- Mappings — la liste des associations requête → cible. Une cible peut être un produit, une catégorie ou une URL, en mode suggestion (affichée sur la page de rattrapage) ou redirection (le visiteur est redirigé automatiquement).
- Abonnements « prévenez-moi » — la liste des emails capturés, avec leur statut (en attente / notifié).
Formulaire « prévenez-moi » & alertes
Sur la page de rattrapage, un formulaire opt-in décoché par défaut, protégé par un honeypot anti-bot, laisse le visiteur déposer son email pour la requête en cours. Depuis le back-office, lorsque vous créez un mapping actif pour cette requête, l’action « Notifier » envoie l’email dfzerosearch_alert à tous les abonnés en attente, chacun dans sa langue, puis les marque comme notifiés.
Aucun cron n’est nécessaire : l’envoi des alertes est déclenché manuellement, au moment où vous décidez qu’une requête a trouvé sa cible.
Conformité RGPD
- Opt-in explicite : la capture d’email repose sur une case décochée par défaut, accompagnée d’un texte de consentement clair.
- Honeypot : un champ masqué filtre les soumissions automatisées sans gêner le visiteur.
- Rétention maîtrisée : les requêtes perdues sont purgées automatiquement au-delà du nombre de jours configuré, avec purge manuelle possible à tout moment.
- Auto-hébergement : aucune donnée n’est transmise à un service tiers.
Compatibilité & conventions techniques
- PrestaShop 8.0 à 9.x, multiboutique, 5 langues.
- Hooks utilisés :
actionSearchetactionFrontControllerSetMedia. - Tables SQL :
dfzerosearch_query,dfzerosearch_mapping,dfzerosearch_alert. - Onglet d’administration
AdminDfZeroSearchet ses trois sous-onglets, sous le menu Améliorer. - Contrôleur front
rescuesécurisé par jeton, réponses JSON. - Aucune dépendance : autoloader PSR-4 manuel, JS vanilla sans jQuery, aucun service externe.
Dépannage
- La page de rattrapage ne s’affiche pas — vérifiez que le module est activé, que la recherche renvoie bien zéro résultat, et videz le cache PrestaShop.
- Aucune correction n’est proposée — la correction ne suggère que des mots présents dans l’index natif ; réindexez la recherche PrestaShop si votre catalogue a beaucoup changé.
- Aucune requête n’apparaît dans le tableau de bord — assurez-vous que la longueur des requêtes dépasse le seuil minimal configuré et que le module est activé.
- Les emails d’alerte ne partent pas — vérifiez la configuration email de PrestaShop et que l’action « Notifier » a bien été lancée sur un mapping actif comportant des abonnés en attente.