Un produit en rupture ne devrait jamais passer devant un produit disponible
Un produit en rupture affiché avant un produit disponible ne coûte pas qu'un clic : en B2B technique, c'est souvent une commande reportée le temps de trouver l'équivalent ailleurs. Heurix traite la disponibilité à deux endroits différents, et pas de la même façon.
Deux mécanismes, pas un
Sur la recherche, le stock n'intervient qu'en dernier recours : après le score de pertinence, à égalité, il départage — un produit en rupture ne passe jamais devant un produit disponible à score égal. Sans rien configurer de plus, c'est le seul départage documenté. La popularité réelle peut aussi départager une quasi-égalité — un produit avec une correspondance exacte reste toujours devant, quelle que soit la popularité de l'autre — mais seulement si le Tracker est installé ; sans lui, le classement ne bouge pas. Le départage par le stock, lui, ne demande rien.
Sur Browse & Discovery, il n'y a pas de requête à départager :
GET /v1/browse/moncatalogue/perceuses-visseuses
trie déjà par stock, sans rien préciser — sort vaut stock par défaut, pas une option à activer. Pour trier autrement, il faut le demander explicitement :
GET /v1/browse/moncatalogue/perceuses-visseuses?sort=price_asc
sort accepte aussi recent, alphabetical, price_desc, margin ou popular — mais c'est stock qui répond quand rien n'est précisé.
Ce qu'in_stock_only change, et où
in_stock_only va plus loin que le tri : il exclut carrément les produits en rupture, plutôt que de les repousser en fin de liste. Faux par défaut, sur la recherche comme sur Browse — certains catalogues affichent volontairement leurs ruptures, pour signaler qu'un produit existe même indisponible.
Sur Browse, l'exclusion agit avant le calcul des facettes : un produit masqué ne pèse pas dans les décomptes affichés à côté des filtres. Un guide déjà publié construit une page de catégorie complète avec Heurix.browse() — il suffit d'y ajouter inStockOnly: true :
Heurix.browse({
catalog: "monsite",
category: "perceuses-visseuses",
containerId: "ma-page-categorie",
inStockOnly: true,
renderItem: function (hit) { ... }
});
Réglé depuis la console, ce même paramètre change de nom à l'écran — « Masquer les produits en rupture » plutôt qu'in_stock_only — la bascule reste la même, formulée à l'inverse.
Le lien avec une opération commerciale
Préparer une opération commerciale côté recherche posait déjà la question : vos ruptures de stock ne squattent-elles pas les premières positions ? La réponse tient aux deux mécanismes ci-dessus — le départage par défaut sur la recherche, sort=stock par défaut sur Browse — et à in_stock_only s'il faut les retirer complètement plutôt que les repousser, le temps d'une opération commerciale.
Pour la suite
Sans configuration, la disponibilité pèse déjà : en départage sur la recherche, en tri par défaut sur Browse. in_stock_only va plus loin quand un site préfère masquer complètement ses ruptures plutôt que les repousser.