Le champ de recherche d’une boutique PrestaShop interroge le serveur à chaque touche : la barre de recherche
standard envoie chaque lettre à la page de recherche, qui lance une requête lourde sur l’index des mots. Sur une
boutique fréquentée, c’est l’une des actions les plus coûteuses d’un visiteur, et elle ne se met pas en cache.
Recherche Instantanée déplace ce travail dans le navigateur. La boutique écrit des fichiers JSON avec ce qui peut
être cherché, le navigateur les lit une fois, au premier clic dans le champ, puis répond seul à chaque touche.
Comment il s’intègre à PrestaShop
Le module prend en charge le champ de recherche que votre thème affiche déjà (barre standard, Classic,
Hummingbird, Aura) : rien à modifier dans le thème. Sa page de réglages, dans Modules › Gestionnaire de modules ›
Configurer, a trois onglets : les champs cherchés avec leurs poids et une zone pour les essayer, les options du
champ de recherche, et les fichiers avec une barre de progression pour les reconstruire. Les hooks des produits,
du stock, des règles de prix, des déclinaisons, catégories, marques, caractéristiques, alias, devises et groupes
mettent en file ce qui change, et le navigateur d’un visiteur demande au module de mettre les fichiers à jour une
fois la page affichée. Chaque langue, devise et groupe de clients a ses fichiers, avec les prix que paie ce
visiteur. Testé sur PrestaShop 8.2 et 9.0 avec PHP 8.1 ou plus.
Questions fréquentes
- Pour quelle taille de catalogue ?
- Testé avec 20 000 produits par langue et groupe de clients : le fichier de
recherche pèse alors de 0,3 à 1,5 Mo compressé, il est lu une fois par visite et chaque recherche prend quelques
millisecondes.
- Est-ce mauvais pour le SEO ?
- Non. La page de résultats n’est pas indexée et, sans JavaScript, la recherche
standard répond.
- Mon serveur utilise nginx.
- Autorisez
img/ecomsearch/*.json dans votre configuration ; sur Apache, le module
ajoute la règle.