Documentation Recherche Sans Résultat : Page de Rattrapage et Alertes
Installer, configurer et exploiter dfzerosearch 1.3.0 : page de rattrapage, références similaires, règles exactes, contient et joker (M91650*), import CSV, alertes « prévenez-moi » automatiques et chiffre d'affaires rattrapé.
Présentation
Le module Recherche Sans Résultat (dfzerosearch) prend le relais quand une recherche de votre boutique ne trouve rien. Au lieu d’une page vide, le visiteur voit une page de rattrapage : la cible que vous avez choisie pour cette requête, les produits dont la référence ressemble à celle tapée, la recherche corrigée, une recherche élargie, les meilleures ventes de la catégorie devinée et un formulaire « prévenez-moi ».
En back-office, chaque recherche perdue est comptée. Vous la rattachez à un produit, une catégorie, une autre recherche ou une URL, avec une règle exacte, « contient » ou joker. Le module mesure ensuite ce que ces rattrapages rapportent : taux de rattrapage, commandes et chiffre d’affaires HT.
Nouveau en 1.3.0 : bloc Références similaires (une recherche de M91650-0005 affiche M91650-0001 et M91650-0002) et règles joker (M91650* couvre toute une famille de références en une seule règle).
Installation et mise à jour
Première installation
- Ouvrez Modules > Gestionnaire de modules et cliquez sur Téléverser un module.
- Choisissez l’archive
dfzerosearch.zip. - Le module crée ses tables, son menu d’administration et sa configuration par défaut. Il est actif tout de suite.
- Copiez l’URL de la tâche planifiée affichée sur la page de configuration et programmez-la toutes les heures (voir plus bas).
Mise à jour depuis une version précédente
Téléversez le nouveau ZIP par-dessus l’ancien, sans désinstaller. PrestaShop exécute les scripts de mise à jour : nouvelles colonnes, nouveaux réglages avec leur valeur par défaut, vidage du cache du module. Vos requêtes perdues, règles, abonnés et statistiques sont conservés.
Ne désinstallez pas le module pour le mettre à jour : la désinstallation supprime ses tables et donc tout l’historique.
Configuration
La page Configurer commence par des raccourcis vers les trois écrans du module, puis présente trois panneaux de réglages et le panneau de la tâche planifiée.
Page de rattrapage
- Activer le module : active ou suspend la détection et la page de rattrapage.
- Correction des fautes (« Vouliez-vous dire… ») : corrige les fautes mot à mot contre l’index de recherche et affiche les produits correspondants.
- Références similaires : pour une référence absente du catalogue, affiche les produits dont la référence commence de la même façon. Tirets, espaces et casse sont ignorés, les références de déclinaisons sont incluses.
- Correspondance partielle : quand une longue requête échoue à cause d’un mot (« bottes cuir taille 45 »), affiche les résultats de la requête plus courte la plus proche.
- Meilleures ventes de la catégorie devinée : compare la requête aux noms de catégories, sous-catégories comprises.
- Meilleures ventes de la boutique en dernier recours : affichés seulement si aucun autre bloc n’a rien trouvé. Sans ventes, les nouveautés sont utilisées.
- Formulaire « prévenez-moi » : le visiteur laisse son email pour être prévenu quand sa recherche trouvera un produit.
- Utiliser les miniatures produit du thème : les produits s’affichent comme dans vos pages catégorie (ajout au panier, aperçu rapide, étiquettes). Désactivé, le module utilise ses cartes compactes.
- Produits en stock uniquement : masque les produits épuisés dans tous les blocs.
- Message personnalisé (par langue) : texte affiché en haut de la page de rattrapage, par exemple un numéro de téléphone ou un lien vers les commandes spéciales.
%query%est remplacé par les mots cherchés. - Recherches populaires : pastilles cliquables de recherches qui fonctionnent. Saisissez votre propre liste par langue ou laissez vide pour utiliser les recherches fréquentes qui donnent des résultats.
- Produits par bloc : de 1 à 24 (8 par défaut).
Suivi et données
- Longueur minimale de requête : en dessous, la recherche n’est ni enregistrée ni rattrapée (2 par défaut).
- Compter les résultats approximatifs comme perdus : la recherche floue native de PrestaShop renvoie souvent des produits sans rapport pour un mot inconnu. Quand une recherche ne trouve que ce type de résultat, elle est comptée comme perdue et le bloc de rattrapage s’affiche au-dessus.
- Ignorer les robots et crawlers : les recherches des moteurs, outils SEO et scripts ne sont pas enregistrées.
- Fenêtre d’attribution (jours, 7 par défaut) : une commande passée dans ce délai après un rattrapage est attribuée à la requête et au bloc qui ont ramené le visiteur (dernier contact).
- Mettre en cache les résultats de rattrapage : garde le travail de recherche 15 minutes par requête. Prix et stocks restent en direct. Le cache est vidé dès que vous modifiez un réglage ou une règle.
- Conservation (jours, 180 par défaut) : les requêtes perdues non revues depuis ce délai et les abonnements déjà notifiés sont supprimés par la tâche planifiée. 0 conserve tout. Un bouton permet de purger immédiatement.
Automatisation
- E-mails « prévenez-moi » automatiques : les abonnés sont prévenus dès que leur requête reçoit une règle active ou que la recherche trouve à nouveau des produits.
- Rapport hebdomadaire : tous les 7 jours, recherches perdues, taux de rattrapage et principales requêtes perdues, envoyés par email.
- Destinataire du rapport : vide, l’adresse de la boutique est utilisée.
Tâche planifiée
Le panneau Tâche planifiée (cron) affiche une URL protégée par jeton. Appelez-la toutes les heures depuis cPanel, Plesk ou n’importe quel service de cron, par exemple :
0 * * * * curl -s "https://www.votre-boutique.com/module/dfzerosearch/cron?token=..." > /dev/null
Elle envoie les emails « prévenez-moi » automatiques, applique la rétention et envoie le rapport hebdomadaire. Le panneau indique la date du dernier passage, un bouton Exécuter maintenant lance la tâche à la main et Générer un nouveau jeton remplace l’URL si elle a fuité. En multiboutique, programmez une tâche par boutique avec l’URL affichée dans le contexte de chaque boutique.
Si la tâche n’a pas tourné depuis 48 heures, un avertissement s’affiche sur le tableau de bord : les emails automatiques et le rapport hebdomadaire sont en attente tant qu’elle ne repasse pas.
La page de rattrapage
Quand la grille de résultats est vide, un script charge la page de rattrapage en AJAX. Les recherches qui trouvent des produits ne sont pas ralenties. Les blocs apparaissent dans cet ordre, sans doublon d’un bloc à l’autre :
- Votre règle : si une règle active correspond à la requête, sa cible est mise en avant. En mode redirection, le visiteur arrive directement sur la cible. Un synonyme affiche en plus ses produits.
- Références similaires : produits de la même famille de référence.
- « Vouliez-vous dire… » : la requête corrigée et ses produits, avec un lien vers la recherche corrigée. Ce bloc n’apparaît que si les blocs précédents n’ont rien affiché.
- Correspondance partielle : résultats de la requête raccourcie, seulement si rien n’a encore été trouvé.
- Meilleures ventes de la catégorie devinée.
- Best-sellers globaux : en dernier recours uniquement.
Le message personnalisé s’affiche au-dessus des blocs, les recherches populaires et le formulaire « prévenez-moi » en dessous.
Références similaires
Beaucoup de clients cherchent un produit par sa référence exacte. Quand cette référence n’existe pas dans le catalogue, le module propose les produits de la même famille.
- Le module repère dans la requête le mot qui ressemble à une référence : au moins 5 caractères, dont au moins 2 chiffres.
- Il compare ce mot aux références des produits et des déclinaisons, en ignorant tirets, espaces, points et casse.
M91650-0005,m91650 0005etM916500005sont traités de la même façon. - Seuls les produits qui partagent un début de référence suffisamment long sont retenus (au moins 5 caractères et 60 % de la référence cherchée). Les plus proches s’affichent en premier.
- Exemple : une recherche de
M91650-0005afficheM91650-0001etM91650-0002, mais pasM91651-0003.
La correction orthographique ne touche jamais un mot qui contient au moins 2 chiffres : une référence n’est pas « corrigée » en une autre.
Règles : mappings et synonymes
L’écran Mappings et synonymes liste vos règles. Pour en créer une, cliquez sur Ajouter un mapping ou sur l’action Mapper d’une requête perdue, qui pré-remplit le formulaire.
Types de correspondance
- Exacte : la requête doit être identique à la règle. Casse, accents et espaces superflus sont ignorés.
- Contient : la règle doit apparaître comme mot ou suite de mots dans la requête. Tirets, barres obliques, points et autres séparateurs comptent comme des espaces : la règle
m91651s’applique àM91651-0003. - Joker :
*remplace n’importe quelle suite de caractères et?un seul caractère.M91650*couvreM91650-0001,M91650-0007oum916500009, mais pasM91659-0001. Toute règle contenant*ou?est enregistrée en joker automatiquement.
Une règle joker doit contenir au moins 3 caractères en plus des jokers, et ** est refusé. Écrivez M91650* plutôt que M91650-* si vos clients tapent aussi la référence sans tiret.
Priorités
Quand plusieurs règles correspondent à une requête, la plus précise l’emporte : une règle exacte passe avant une règle joker, qui passe avant une règle « contient ». À type égal, une règle propre à la langue passe avant une règle « toutes les langues », puis la règle la plus longue gagne.
Cibles et modes
- Produit : recherche par nom, référence ou ID dans le formulaire.
- Catégorie.
- Synonyme : d’autres mots qui donnent des résultats (« sweat » pour « pull »). Les produits de cette recherche s’affichent sur la page de rattrapage.
- URL personnalisée : URL absolue ou chemin commençant par une barre oblique.
Chaque règle fonctionne en mode Suggestion (cible mise en avant sur la page de rattrapage) ou Redirection (le visiteur arrive directement sur la cible). Une règle peut viser une langue précise ou toutes les langues.
Import et export CSV
Le panneau Import / export (CSV) de l’écran des règles importe jusqu’à 5 000 lignes et exporte toutes vos règles. Séparateur ; ou ,, ligne d’en-tête facultative. Colonnes :
query ; match ; language ; type ; target ; mode ; active
M91650* ; wildcard ; all ; category ; 12 ; redirect ; 1
pull ; exact ; fr ; search ; sweat ; suggest ; 1
M91651 ; contains ; all ; product ; M91651-0003 ; suggest ; 1
- match :
exact,containsouwildcard(exact par défaut, joker détecté automatiquement si la règle contient*ou?). - language : code ISO, ou vide,
*ouallpour toutes les langues. - type :
product,category,searchouurl. - target : ID ou référence produit, ID catégorie, mots à chercher ou URL.
- mode :
suggestouredirect(suggest par défaut). active : 1 ou 0 (1 par défaut).
Une règle existante avec la même requête et la même langue est mise à jour. Le rapport d’import indique les lignes créées, mises à jour et rejetées avec leur numéro.
Alertes « prévenez-moi »
Le formulaire de la page de rattrapage a une case de consentement décochée par défaut et un champ piège contre les robots. Pour un client connecté, l’email est pré-rempli. Les demandes sont listées dans l’écran Demandes « prévenez-moi » avec leur statut.
Avec la tâche planifiée et l’option E-mails « prévenez-moi » automatiques, l’abonné reçoit l’email dfzerosearch_alert dans sa langue dès que sa requête reçoit une règle active ou que la recherche trouve à nouveau des produits. Vous pouvez aussi déclencher l’envoi à la main avec l’action Prévenir d’une règle. Chaque email contient un lien de désinscription.
Tableau de bord et chiffre d’affaires rattrapé
L’écran Requêtes perdues affiche les indicateurs des 30 derniers jours : recherches perdues, taux de rattrapage, commandes après rattrapage, chiffre d’affaires HT rattrapé, nouvelles demandes et emails en attente. Un graphique compare jour par jour recherches perdues et rattrapées, un autre montre les clics par bloc de rattrapage (règle, références similaires, correction, correspondance partielle, catégorie, best-sellers, recherches populaires).
La liste des requêtes perdues est triée par volume. Chaque ligne propose Mapper, Ignorer / rétablir et, quand une correction a été trouvée, Créer un synonyme à partir de cette correction. Le tableau Dernières commandes après un rattrapage indique la requête et le bloc crédités.
L’attribution se fait au dernier contact : la commande est créditée au dernier rattrapage du même visiteur dans la fenêtre d’attribution réglée en configuration.
Rapport hebdomadaire
Tous les 7 jours, la tâche planifiée envoie l’email dfzerosearch_digest : recherches perdues, visiteurs rattrapés, taux de rattrapage, commandes et chiffre d’affaires HT après rattrapage, nouvelles demandes « prévenez-moi » et requêtes perdues les plus fréquentes. Si rien ne s’est passé dans la semaine, aucun email n’est envoyé.
RGPD
- Consentement explicite : case décochée par défaut et texte de consentement clair.
- Module officiel RGPD : le module est déclaré auprès de
psgdpr. L’export et la suppression des données d’un client couvrent ses demandes « prévenez-moi ». - Désinscription : un lien dans chaque email.
- Rétention : purge automatique des anciennes requêtes et des abonnements notifiés.
- Auto-hébergé : aucune donnée n’est envoyée à un service tiers.
Compatibilité et informations techniques
- PrestaShop 8.0 à 9.x, multiboutique.
- Interface et emails en anglais, français, espagnol, allemand et italien.
- Hooks :
actionSearch,actionFrontControllerSetMedia,actionValidateOrder,registerGDPRConsent,actionDeleteGDPRCustomer,actionExportGDPRData. - Tables :
dfzerosearch_query,dfzerosearch_mapping,dfzerosearch_alert,dfzerosearch_stat,dfzerosearch_session,dfzerosearch_conversion. - Menu
AdminDfZeroSearchsous Modules, avec trois écrans : requêtes perdues, mappings et synonymes, demandes « prévenez-moi ». - Contrôleurs front :
rescue(page de rattrapage, JSON),cron(tâche planifiée, jeton) etunsubscribe. - Aucune dépendance : pas de Composer, JavaScript sans jQuery, aucun service externe.
Dépannage
- La page de rattrapage ne s’affiche pas : vérifiez que le module est activé et que la recherche renvoie bien zéro résultat, puis videz le cache de PrestaShop et du navigateur. Avec un thème très personnalisé, contactez-nous avec le nom du thème.
- Une recherche affiche des produits sans rapport et n’est pas comptée comme perdue : activez Compter les résultats approximatifs comme perdus.
- Aucune référence similaire : le mot cherché doit compter au moins 5 caractères dont 2 chiffres, et des produits actifs, visibles en recherche, doivent partager le début de cette référence.
- Une règle joker ne s’applique pas : vérifiez qu’elle est active, dans la bonne langue, et qu’aucune règle exacte ne passe avant elle. Testez sans séparateur (
M91650*) si vos clients tapent la référence de plusieurs façons. - Aucune correction proposée : la correction ne propose que des mots présents dans l’index ; reconstruisez l’index de recherche de PrestaShop si le catalogue a beaucoup changé.
- Les emails automatiques ou le rapport ne partent pas : vérifiez la date du dernier passage de la tâche planifiée et la configuration email de PrestaShop. Le bouton Prévenir affiche une erreur explicite si l’envoi échoue.
- Le tableau de bord reste vide : vérifiez la longueur minimale de requête et testez depuis un navigateur normal, les robots étant ignorés.