Comment le catalogue est indexé
Les moteurs par boutique, langue et devise, ce qui entre dans chaque document, et les voies qui gardent l'index à jour, sur PrestaShop et sur Shopify.
La recherche ne tourne pas sur la base de données de la boutique. Elle tourne sur un index à nous, qui est une copie du catalogue préparée pour répondre en millisecondes. Ce guide explique comment cette copie se fait et comment elle reste fidèle, que la boutique soit sur PrestaShop ou sur Shopify.
Un moteur par boutique, langue et devise
Lors du handshake, le module PrestaShop nous dit quelles boutiques il a, dans quelles langues et avec quelles devises ; sur une boutique Shopify, l'application lit les langues publiées et la devise principale au moment où elle est installée. Pour chaque combinaison naît un moteur de recherche, et c'est ce que vous voyez dans Recherche → Moteurs de recherche : la boutique à laquelle il appartient, ce qu'il indexe, la langue et la devise, combien de documents il contient et quand a eu lieu la dernière indexation.
Cette séparation n'est pas un détail de rangement. Le nom d'un produit en français et en portugais sont deux textes différents, et une recherche sur « chaussures » ne doit pas trouver de résultats par le texte portugais. Les prix suivent la même logique : chaque moteur garde ceux de sa devise.
Une boutique multilingue a donc plus d'un moteur, et presque tout ce qui se configure par moteur (poids, synonymes, filtres) se configure une fois pour chacun. Sur Shopify, chaque langue publiée reçoit les traductions de produits qui existent dans la boutique, et l'original là où elles n'existent pas : un produit sans traduction ne disparaît jamais du moteur de cette langue.
Ce qui entre dans un document
De chaque produit nous gardons ce qui sert à le trouver et à le montrer : référence, EAN et MPN, nom, marque, catégories, caractéristiques et attributs, descriptions, prix, image, état du stock et l'URL dans la boutique. Les déclinaisons et variantes entrent aussi, chacune avec sa référence et son code-barres : l'EAN lu sur la boîte d'une taille trouve le produit, et la recherche peut mettre au panier la bonne taille ou la bonne couleur.
Sur PrestaShop, trois options du module changent ce qui y arrive :
- Prix avec TVA : décide si le prix indexé est avec ou sans taxe. Il doit être identique à ce que la boutique affiche, sinon les résultats disent un chiffre et la fiche en dit un autre.
- Taille d'image : laquelle des images de PrestaShop voyage vers l'index. Celle des cartes de la recherche, pas celle du détail.
- Produits en rupture de stock : les indexer quand même, les rétrograder dans les résultats, ou les masquer. Un produit que la boutique laisse commander même en rupture compte comme ayant du stock dans les trois options : il n'est ni masqué ni rétrogradé, et il affiche dans les résultats le délai de livraison écrit sur sa fiche.
Et trois signaux facultatifs, que la boutique partage si elle le veut, et qui ne servent pas à chercher mais à trier et à mesurer : le volume de ventes (il alimente le tri « meilleures ventes » et la détection des best-sellers invisibles), le prix de revient (il donne les marges dans les analytics) et les commandes (elles relient la recherche au chiffre d'affaires). Sur Shopify, les commandes arrivent par la plateforme elle-même, et seules celles que la recherche ou l'assistant ont touchées entrent.
Attention Activer ou désactiver le partage des ventes ou du coût demande une réindexation complète pour que l'index reflète le changement. Le module vous prévient quand cela arrive.
Les voies qui le gardent à jour
Après la première indexation complète, le quotidien se règle tout seul, et la forme exacte dépend de la plateforme.
Sur une boutique PrestaShop
- Temps réel. Enregistrer, supprimer ou changer le stock d'un produit pousse la modification sur-le-champ, par les hooks du module. C'est par là que passe l'écrasante majorité des mises à jour, et c'est ce qui fait que le prix et le stock dans la recherche sont les mêmes que dans la boutique.
- Synchronisation périodique. À intervalles réguliers, la plateforme demande à la boutique de revoir le catalogue, et c'est ce qui rattrape ce que le temps réel n'a pas vu (un import par CSV, une modification faite directement dans la base de données). Pour que cela fonctionne, l'adresse
https://votre-boutique/module/buskara/syncdoit être accessible depuis l'extérieur. - Manuelle. Le bouton Tout réindexer, dans le panneau ou dans le module, ou la commande en ligne. Voir réindexer le catalogue.
Quand se méfier de la voie 2 Les pare-feu, l'authentification basique dans les environnements de préproduction et les règles du type « seulement mon IP » bloquent la synchronisation périodique sans afficher d'erreur visible dans le back-office. Le symptôme est un index qui reste des jours sans bouger alors que le temps réel, lui, fonctionne.
Sur une boutique Shopify
- Temps réel, par webhooks. Shopify prévient elle-même Buskara chaque fois qu'un produit est créé, modifié ou supprimé, ou que le stock bouge, et la modification atteint l'index quelques secondes plus tard. Il n'y a rien à configurer : les abonnements se font quand l'application est installée.
- Filet périodique. À intervalles réguliers, Buskara vérifie chez Shopify ce qui a changé depuis le dernier passage, pour que rien ne reste en arrière si un webhook se perd en chemin. Cela ne dépend d'aucune adresse de la boutique accessible.
- Manuelle. Le bouton Tout réindexer sur la fiche de la boutique, dans le panneau. Voir réindexer le catalogue.
L'installation et le quotidien sont décrits pas à pas dans connecter une boutique Shopify.
Le contenu, toutes les heures
Le blog et les pages de la boutique n'ont pas de hook en temps réel, et cela n'a aucun sens de réindexer tout le catalogue à cause d'un article. Sur une boutique PrestaShop avec le contenu activé, Buskara fait un passage à lui toutes les heures, seulement sur les articles et les pages, en reconstruisant le moteur de contenu en entier ; c'est la seule façon de rattraper aussi ce qui a été dépublié. Ce passage est toujours gratuit, qui que ce soit qui le demande.
Un article publié apparaît donc dans la recherche dans l'heure, sans que personne ne clique sur quoi que ce soit.
Ce que coûte l'indexation
La routine ne coûte rien : le temps réel, la synchronisation périodique, la première synchronisation d'une boutique Shopify et le passage horaire du contenu ne sont jamais facturés. Ils ne touchent pas la limite du forfait et ne génèrent pas de dépassement. Garder le catalogue à jour ne doit pas être une décision budgétaire.
Ce qui a un prix, c'est forcer : cliquer sur Tout réindexer coûte 1 bToken par tranche de 1 000 documents envoyés, et l'avertissement avec le compte s'affiche avant de confirmer. C'est expliqué dans réindexer le catalogue ; ce qui est dépensé apparaît dans le graphique d'utilisation, sur la ligne reindex. Voir ce qui compte comme requête.
Un second moteur, pour le contenu
Le blog et les pages de la boutique peuvent être indexés à part, dans un moteur à eux, et apparaître dans les résultats sans prendre la place des produits. C'est facultatif et cela s'active dans le module ; c'est expliqué dans articles et contenu de la boutique.