Le badge de réduction automatique que personne ne configure
Un prix affiché seul, en résultats de recherche, ne dit pas s'il est déjà réduit. Chez Heurix, un champ suffit : compare_at_price, dès qu'il dépasse price, déclenche seul le prix barré et le pourcentage — sans endpoint, sans configuration.
Une phrase de doc, deux widgets qui l'appliquent
Heurix documente compare_at_price en une phrase : présent et supérieur à price, il suffit à afficher le prix barré et le pourcentage de réduction, sans réglage supplémentaire. Elle parle du « widget de démo » — une formule qui prête à confusion, puisqu'il en existe deux : celui qui tourne sur heurix.fr pour la démonstration, et celui que vous installez sur votre barre de recherche. Les deux appliquent la règle indépendamment, chacun de son côté.
Le moteur de recherche, lui, ne traite pas ce champ : « tout autre champ [...] est stocké tel quel et restitué dans les résultats, sans être indexé », dit la documentation elle-même. Toute la logique du badge — condition, calcul, affichage — vit dans le widget, pas côté serveur.
Le calcul, tel qu'il tourne réellement
La condition est stricte : compare_at_price doit dépasser price, pas seulement l'égaler. Une valeur égale ou inférieure ne représente pas une vraie remise — une donnée source parfois incohérente — et afficher un « -0 % » ou un pourcentage négatif serait plus trompeur qu'utile. Le widget ne montre alors simplement rien.
Le pourcentage, lui, est arrondi à l'entier : une remise de 34,6 % s'affiche « −35 % ».
Deux limites assumées
Le badge n'existe que sur la recherche. Le widget des pages de catégorie (Browse & Discovery) ne porte aucune logique compare_at_price : un même produit affichera son prix barré dans les résultats de recherche, et un prix nu sur un rayon. Un site qui installe les deux composants sans le savoir se retrouve avec une incohérence visuelle entre deux pages.
Le symbole €, lui, est fixé en dur dans le widget de recherche, sans internationalisation réelle de la devise pour l'instant — un catalogue vendu hors zone euro verra son badge afficher un montant en euros quel que soit le reste de l'affichage.
Ce que le prix pro change
Une clé configurée price_visible: false devrait aussi masquer le badge : la règle de masquage retire tout champ dont le nom contient price, prix ou tarif, et compare_at_price la satisfait mécaniquement — mais aucun exemple de la documentation ne le montre explicitement retiré. Le signal le plus solide vient d'ailleurs : le widget Browse & Discovery applique déjà ce même masquage à ses propres tris de prix, avec la logique écrite en commentaire — le retrait de champ est réel, lu dans la réponse plutôt que deviné depuis la configuration. Cohérent, donc, avec ce que cette même clé fait déjà au prix lui-même, même si compare_at_price lui-même n'apparaît dans aucun exemple vérifié.
Un croisement que le dépôt ne traite pas explicitement, mais qui découle directement de deux règles documentées séparément : une clé configurée sur price_pro renvoie toujours le prix pro sous la clé price, mais compare_at_price reste ce que vous avez indexé — vraisemblablement calculé face au prix catalogue, pas au prix pro. Le pourcentage affiché à un acheteur pro compare alors deux prix qui ne se répondent pas. Si vous combinez badge de réduction et prix par compte pro, le point mérite d'être vérifié sur votre catalogue avant mise en ligne.
Le lien avec une opération commerciale
Préparer une opération commerciale côté recherche prévient déjà un piège : une promotion se termine, ses règles de recherche non — les produits continuent de remonter comme s'ils étaient encore en offre. Le badge de réduction porte le même risque, à l'affichage cette fois : tant que compare_at_price reste supérieur à price sur une fiche, le badge s'affiche, promotion terminée ou non. Retirer le champ, ou l'aligner sur price, n'est pas le même geste que dépingler un produit dans la console — deux systèmes différents — mais c'est la même classe d'oubli, et au même moment.
Pour la suite
Si votre flux d'indexation porte déjà un prix barré sous un autre nom, il suffit de l'exposer sous compare_at_price pour que le badge s'affiche dès la prochaine recherche, sans configuration côté Heurix. La section Structure des produits de la documentation en donne la définition complète.