Vous ouvrez une page produit sur votre boutique Shopify et quelque chose cloche dans le fil d’Ariane : un niveau manque, la collection affichée n’est pas celle attendue, le fil se replie sur Accueil > Tous les produits > [Nom du produit], ou un élément s’affiche encore dans la langue de base de votre boutique sur une vitrine traduite. Rien de tout cela n’est un fil cassé. Chaque cas remonte à l’arborescence de catégories que Breadcrumbs Uncomplicated construit à partir de vos menus de navigation Shopify, et à un écart précis et corrigible à l’intérieur.

Les catégories viennent toujours des menus : chaque élément de l’arborescence est un élément de menu, jamais une collection que l’application aurait trouvée de son propre chef. L’écart n’est donc jamais “une catégorie manque dans le menu”, mais plutôt “la collection d’un produit n’est pas une catégorie” ou “une catégorie se trouve en réalité hors du menu sur lequel l’application est actuellement cadrée”.

Un fil auquel il manque un niveau

Le fil rendu côté serveur se construit en remontant les catégories ancêtres d’un produit et en recherchant le lien de menu actuel de chacune. Un ancêtre dont le lien de menu ne se trouve pas est simplement ignoré, ce qui fait disparaître ce niveau du fil sans abîmer le reste. Deux choses produisent cet écart : le menu a été modifié depuis que l’application a reconstruit son instantané pour la dernière fois (une modification dans Boutique en ligne > Navigation n’a aucun effet sur la vitrine à elle seule ; l’application a ensuite besoin d’Actualiser les catégories), ou la catégorie se trouve réellement hors du menu vers lequel pointe actuellement votre réglage Catégorie de niveau supérieur. Le forfait Free peut produire le même type d’écart, mais sous un autre angle : seules les 10 premières catégories liées à des collections arrivent dans votre instantané de vitrine, donc une catégorie au-delà de cette limite n’affiche aucun ancêtre bien qu’elle existe ; la carte Catégories exclues de l’administration liste ce qui n’est pas entré dans l’instantané.

La mauvaise collection, ou une collection inattendue

Quand un produit appartient à plusieurs collections et que son URL n’indique pas depuis laquelle vous naviguez, l’application devine grâce au réglage Fil d’Ariane sur les pages produits, réglé par défaut sur Fil d’Ariane le plus spécifique (la plus petite collection). Cette estimation cherche d’abord une collection du produit qui se trouve réellement dans l’arborescence de catégories. Ce n’est que lorsqu’aucune d’elles n’y figure qu’elle se replie sur la première ou la dernière collection du produit, selon le réglage choisi, même si cette collection n’a jamais été ajoutée à un menu ; une collection automatisée comme “Soldes” ou “Nouveautés” est le cas courant. C’est une collection bien réelle, affichée comme un fil bien réel ; elle n’est simplement pas une catégorie, d’où son apparition sans ancêtres et sans lien avec la structure de menu attendue.

Tous les produits là où une collection devrait apparaître

Parfois, il n’y a aucune collection à indiquer : le produit n’a pas de collection propre, ou Fil d’Ariane sur les pages produits est réglé sur Afficher le fil d’Ariane générique. Dans les deux cas, la vitrine se replie sur le fil générique Tous les produits, qui pointe par défaut vers /collections/all. C’est un écart différent des deux précédents : rien n’est en cause dans vos menus ici, le produit n’est simplement rattaché à aucune collection que l’application puisse indiquer.

Un élément dans la mauvaise langue

Trouver un lien de menu ne détermine pas seulement si un niveau apparaît, cela détermine aussi d’où vient son titre. Côté serveur, le titre est lu directement dans le menu actif de Shopify, traduit dans la langue de vitrine que le client consulte. Quand l’application se replie sur un fil terminé dans le navigateur, le dernier élément part du titre propre de la collection puis est écrasé par le titre que contient l’instantané de catégories de l’application, c’est-à-dire la langue de base de votre boutique plutôt que la traduction par langue du menu Shopify ; les données structurées du fil d’Ariane destinées aux moteurs de recherche sont elles aussi ajoutées après coup par un script plutôt que livrées dans le HTML de la page, ce qui est moins fiable pour qu’un robot d’indexation les récupère. C’est le véritable coût d’un lien de menu que l’application ne trouve pas : les traductions et les données structurées rendues côté serveur, presque jamais le fil de la collection lui-même.

Combler l’écart

  • Cliquez sur Actualiser les catégories après toute modification d’un menu dans Boutique en ligne > Navigation. Le fil se rend à partir d’un instantané de vos menus, pas des menus en direct, donc une modification ne change rien sur la vitrine avant que cet instantané soit reconstruit.
  • Vérifiez Catégorie de niveau supérieur dans Paramètres. Si la catégorie d’une collection appartient à un menu hors de celui sur lequel l’application est actuellement cadrée, ajoutez-la dans le menu vers lequel pointe Catégorie de niveau supérieur, ou élargissez le réglage vers un menu qui la couvre déjà.
  • Sur le forfait Free, ouvrez la carte Catégories exclues pour voir ce qui dépasse la limite de 10 catégories, et passez à un forfait supérieur si ces catégories doivent elles aussi apparaître.
  • Vérifiez ensuite le Conseiller de catégories. Il liste les problèmes structurels du menu avec une étape suivante précise pour chacun, et il vaut la peine de les régler avant de juger si un fil est corrigé.

Résumé

Un fil d’Ariane auquel il manque un niveau, qui affiche une collection inattendue, qui dit Tous les produits, ou qui affiche un élément non traduit est un écart dans l’arborescence de catégories que l’application construit à partir de vos menus, pas un fil cassé. Déterminez de quel type d’écart il s’agit - un instantané périmé, une catégorie hors de Catégorie de niveau supérieur, une collection qui n’a jamais été une catégorie, ou la limite du forfait Free - comblez-le, puis lancez Actualiser les catégories. Le fil complet, traduit et rendu côté serveur revient dès que l’application peut y parcourir un chemin côté serveur.