Réindexer le catalogue
Quand il vaut la peine de forcer une indexation complète, où cela se fait, ce que cela coûte, et quoi faire quand le bouton n'arrive pas au bout.
La plupart des jours, ce n'est pas nécessaire. Le prix et le stock arrivent en quelques secondes par le temps réel, et la synchronisation périodique revoit le catalogue de son côté, sans aucun coût. Ce guide est pour les fois où beaucoup de choses ont changé d'un coup et où vous ne voulez pas attendre ; et comme forcer a un prix, petit mais réel, il vaut mieux savoir quand cela en vaut la peine.
Quand cela vaut la peine
- Un gros import de produits, fait par CSV ou directement dans la base de données.
- Un changement structurel : renommer des catégories, refaire des caractéristiques, changer la structure des déclinaisons.
- Après avoir activé ou désactivé le partage des ventes ou du prix de revient dans le module PrestaShop.
- Après avoir changé les poids des champs, si vous voulez en voir l'effet immédiatement au lieu d'attendre la reconstruction que l'enregistrement a déjà demandée.
Quand cela n'en vaut pas la peine Les changements de prix, de stock et d'état arrivent par le temps réel en quelques secondes. Réindexer pour cela prend du temps, dépense des bTokens et ne change rien.
Ce que cela coûte
La règle est unique, sur toutes les plateformes :
- La routine est gratuite. Le temps réel, la synchronisation périodique, la première synchronisation d'une boutique Shopify et le passage horaire du contenu ne coûtent rien : ils ne touchent pas la limite du forfait et ne génèrent pas de dépassement.
- Forcer coûte 1 bToken par tranche de 1 000 documents envoyés. Un catalogue de 8 000 produits coûte 8 bTokens ; un de 250 en coûte 1, parce que le compte arrondit vers le haut.
Le prix s'affiche toujours avant de confirmer. Dans le panneau, le bouton ouvre une fenêtre avec l'estimation pour le catalogue en question ; dans le module PrestaShop, à partir de la version 0.22, le bouton affiche le même avertissement et ne démarre qu'après confirmation, à la première indexation comme aux suivantes ; la ligne de commande l'imprime avant de commencer. Ce qui est dépensé reste visible dans le graphique d'utilisation, sur la ligne reindex, pour pouvoir le vérifier. Voir le forfait et les paiements.
Où se trouve le bouton
Dans le panneau, pour n'importe quelle plateforme : dans Compte → Boutiques, ouvrez la fiche de la boutique et cliquez sur Tout réindexer. C'est la seule voie sur une boutique Shopify, où il n'y a aucun module : Buskara va chercher le catalogue chez Shopify et reconstruit les moteurs lui-même.
Dans le module PrestaShop, dans la configuration du module Buskara, le même bouton Tout réindexer existe toujours, et fait la même chose : c'est la boutique qui a le catalogue, et c'est d'elle que part l'export. Cliquer sur l'un ou sur l'autre ne change rien ; l'exécution est la même et compte de la même façon.
Quel que soit le bouton, c'est sur la fiche de la boutique dans le panneau que vous suivez ce qui se passe : En attente, Indexation… (envoyés / total) et enfin À jour, avec le total de documents.
Ce que l'on voit pendant l'opération
Dans le module PrestaShop, le catalogue part par lots : la page demande un morceau à la fois, affiche la barre qui avance avec les éléments déjà envoyés, et recharge à la fin avec le résultat. C'est ainsi parce qu'une seule requête envoyant des dizaines de milliers de produits se heurtait à la limite de temps du serveur, et ce qui s'affichait était un Request Timeout sans la moindre explication.
Gardez l'onglet ouvert jusqu'à la fin. Si vous le fermez à mi-chemin, ce qui est déjà parti reste en place et le reste entre dans l'indexation suivante, que ce soit un autre clic sur le bouton ou la synchronisation périodique.
Lancée depuis le panneau, l'exécution tourne de notre côté, en file d'attente, et n'a besoin d'aucun onglet ouvert : vous pouvez fermer la page et revenir quand vous voulez. Sur une boutique PrestaShop, le panneau demande le catalogue à la boutique par la même adresse que la synchronisation périodique, elle doit donc être accessible depuis l'extérieur ; voir comment le catalogue est indexé.
Sans navigateur, en ligne de commande
Pour les boutiques PrestaShop avec beaucoup de références, ou pour laisser tourner en dehors des heures, le module fournit le même travail en ligne de commande :
php modules/buskara/cli/reindex.php
Elle n'a aucune limite de temps et n'a besoin de personne devant l'écran. Elle compte comme n'importe quelle autre réindexation forcée, et annonce le prix avant de démarrer.
Ce qui arrive à la recherche pendant ce temps
Elle continue de répondre, avec l'index précédent. Le remplacement se fait à la fin : les visiteurs n'attrapent jamais de résultats au milieu d'une reconstruction, ni un catalogue à moitié.
Si le total ne colle pas
Comparez le total de documents du moteur avec le nombre de produits actifs de la boutique. Un écart est presque toujours l'un de ceux-ci : des produits inactifs ou non visibles dans la boutique, l'option produits en rupture de stock : masquer qui fait exactement ce qu'on lui a demandé, ou une indexation qui n'est pas encore terminée. Sur une boutique Shopify comptent aussi les brouillons, les produits archivés et ceux non publiés sur le canal de la boutique en ligne, qui restent dehors exprès.
La liste complète des causes, par ordre de probabilité, est dans produits qui n'apparaissent pas.