Passer au contenu principal
Dépannage

Le tiroir du panier affiche le cadeau ou le bundle au prix fort

Si votre tiroir de panier affiche un cadeau ou un article groupé au prix fort alors que le total du panier et le paiement sont corrects, vérifiez comment le tiroir lit et actualise ses prix. Les anciens champs de prix Liquid peuvent omettre les remises automatiques, et un tiroir peut également conserver un instantané obsolète du panier. Cet article explique comment distinguer ces cas.

Vérification rapide : le total est-il correct ?

Avant toute modification, confirmez où le prix incorrect apparaît réellement :

  • Si le prix par ligne dans le tiroir semble incorrect, prix fort pour un cadeau ou un article remisé, mais que le sous-total du panier en bas du tiroir et le total du paiement sont corrects, il s'agit uniquement d'un problème d'affichage. Poursuivez la lecture.
  • Si le total du paiement lui-même est incorrect, il s'agit d'un autre problème, par exemple le cumul avec une autre application de remises ou une remise qui ne correspond pas. Cet article ne traite pas ce cas.

Bundlex n'affiche pas votre tiroir de panier. La remise est appliquée par une fonction de remise du panier Shopify qui s'exécute lors du paiement, et Bundlex ne peut pas réécrire l'affichage du prix par ligne du thème.

Pourquoi le tiroir affiche le prix fort

Bundlex applique sa remise via une fonction de remise du panier Shopify. Cette fonction répartit la remise sur les lignes du panier, ce que Shopify considère comme une forme de remise automatique.

Le problème vient de la façon dont certains thèmes affichent chaque ligne du panier. Les tiroirs de panier anciens ou personnalisés affichent le prix de la ligne à l'aide des champs Liquid line_item.price et line_item.line_price. La documentation de Shopify signale que ces champs sont obsolètes, car ils ne reflètent pas les remises automatiques. Le tiroir affiche donc le prix d'origine, sans remise, même si Shopify a correctement enregistré la remise sur cette ligne.

Voici ce que voient les clients : chaque ligne du bundle affiche le même prix unitaire non remisé, et une ligne gratuite, ou cadeau, peut donner l'impression d'être facturée. Pendant ce temps, le sous-total et le paiement sont corrects, car ils sont calculés à partir des valeurs remisées.

Confirmer avec /cart.js

Vous pouvez prouver que la remise est correctement appliquée, indépendamment de ce qu'affiche le tiroir :

  1. Sur la boutique en ligne, ajoutez le bundle, ou l'offre avec le cadeau gratuit, au panier.
  2. Dans le navigateur, ouvrez /cart.js sur cette même boutique, par exemple en accédant à https://yourstore.com/cart.js.
  3. Trouvez la ligne concernée et examinez final_price ainsi que final_line_price.

Pour une ligne de cadeau gratuit fonctionnelle, vous verrez quelque chose comme final_price: 0 et final_line_price: 0, avec la remise indiquée sous le discounts de cette ligne, le titre de l'offre et le montant remisé. Vérifiez quels champs votre tiroir affiche réellement. La dépréciation décrite ci-dessus concerne line_item.price et line_item.line_price de Liquid ; une réponse /cart.js seule ne permet pas d'identifier la source de données du tiroir.

Interprétation du résultat :

  • final_price / final_line_price reflètent la remise, mais le tiroir affiche le prix fort. Vérifiez à la fois les champs affichés par le tiroir et s'il s'actualise après les modifications du panier.
  • final_price ne reflète pas la remise. Le problème ne vient alors pas de l'affichage du tiroir. Examinez plutôt le fonctionnement de la fonction du panier, par exemple si le bundle a été correctement balisé, si le métachamp de remise est à jour ou si des règles d'éligibilité client, comme B2B ou les balises client, s'appliquent.

La solution : utiliser final_price et final_line_price

Si l'extrait Liquid du tiroir de panier utilise ces champs obsolètes pour le prix actuel, remplacez-les par leurs équivalents final_ :

  • line_item.price devient line_item.final_price
  • line_item.line_price devient line_item.final_line_price

Les champs final_ incluent les remises au niveau de chaque ligne. Si votre tiroir utilise JavaScript, vérifiez également qu'il affiche une réponse de panier actualisée ou les sections de thème mises à jour après les modifications. Remplacer un champ de prix ne corrige pas un instantané obsolète.

Comme la valeur price par ligne est un attribut Liquid statique, Bundlex ne peut pas la réécrire pour vous. Les données de remise sont déjà présentes dans final_price ; le thème doit simplement les lire.

Si vous utilisez un prix de comparaison natif

Si vos variantes comportent également un compare_at_price Shopify, avec un badge barré tel que « 50 % de remise », ce badge est affiché par le thème à partir des données de la variante et n'a aucun rapport avec la remise Bundlex. Après être passé aux champs final_, le prix de la ligne reflétera la remise Bundlex, tandis que le prix de comparaison barré continuera de s'afficher selon la configuration de votre thème.

Autre cas : une ligne de cadeau restante à 0 $

Un symptôme connexe, mais distinct : un client choisit une offre comprenant un cadeau gratuit, puis réduit la quantité de l'article principal sous le seuil de l'offre. La ligne principale passe correctement à un niveau inférieur, mais une ligne de cadeau gratuit reste dans le panier et affiche 0 $.

Voici pourquoi. Lorsque la quantité passe sous le seuil, la fonction de panier arrête correctement d'appliquer la remise et supprime l'allocation. Cependant, une fonction de panier Shopify ne peut pas supprimer une ligne du panier car aucune opération de suppression ne lui est disponible. Pour un cadeau gratuit configuré comme variante de catalogue à 0 $, il n'y a aucun prix auquel « revenir », la ligne de cadeau désormais non admissible reste donc simplement à 0 $.

Pour gérer ce cas, Bundlex inclut un nettoyage côté widget qui s'exécute après une modification du panier et supprime la ligne de cadeau orpheline. Son exécution dépend de certaines conditions :

  • Cadeaux gratuits uniquement. Les suppléments payants sont gérés par l'intégrité du bundle, et non par ce nettoyage.
  • Chemins de modification du panier pris en charge. Lorsqu'un widget Bundlex complet est actif, le nettoyage gère les modifications du panier effectuées via fetch et XHR. Sur les pages qui exécutent uniquement le script de nettoyage des cadeaux sans widget, l'interception couvre uniquement les modifications via fetch. Le comportement d'actualisation du thème peut toujours influencer ce que le tiroir affiche.
  • Le nettoyage est effectué dans la mesure du possible. Si une étape échoue, la ligne de cadeau peut rester visible jusqu'à la prochaine interaction avec le panier.

Après avoir supprimé une ligne, Bundlex déclenche des événements d'actualisation du panier pour inviter le thème à effectuer un nouveau rendu. Sur Dawn et les thèmes Shopify gratuits basés sur Dawn, Bundlex redessine également le tiroir du panier, la page du panier et le compteur de l'icône du panier. Il n'existe pas d'événement unique de mise à jour du panier que tous les thèmes Shopify implémentent. Ainsi, sur les autres thèmes qui n'écoutent pas ces événements, le tiroir peut rester obsolète jusqu'à la prochaine interaction. Le point le plus important : les calculs du panier sont toujours corrects. Le client ne sera pas facturé pour la ligne persistante à 0 $, et le total du paiement est exact, quel que soit l'affichage momentané du tiroir.

Résumé

  • Le tiroir affiche le prix total, mais le total et le paiement sont corrects : vérifiez la présence de champs de prix Liquid obsolètes ou de données de panier obsolètes.
  • Vérifiez avec /cart.js : final_price / final_line_price reflètent la remise.
  • Corrigez le thème : remplacez ces champs par final_price et final_line_price.
  • Une ligne de cadeau à 0 $ qui reste après la réduction de la quantité est un comportement attendu, car Shopify ne peut pas supprimer les lignes. Bundlex la nettoie sur les thèmes pris en charge, et le prix est toujours correct lors du paiement.

Cet article vous a-t-il été utile ?

Vos commentaires nous aident à améliorer notre documentation.

Merci, nous continuerons à améliorer cet article.

Vous souhaitez discuter avec notre équipe ? Vous avez encore une question ?

Vous avez encore besoin d’aide ?

Notre équipe est à un clic. Envoyez-nous un message et nous vous répondrons.

Nous utilisons quelques cookies pour assurer le fonctionnement de ce site, mesurer son utilisation et alimenter notre widget de chat lorsque vous l'ouvrez. Consultez notre politique relative aux cookies.