Skip to main content
Une seule forme d’objet circule dans tout le SDK. C’est ce que renvoie getCart(), ce que cart_loaded et cart_updated transmettent à votre gestionnaire, et ce que reçoit un bloc Custom code.
Tous les montants sont dans l’unité mineure de la devise (centimes pour l’USD), jamais une chaîne formatée. 5779 correspond à $57.79. Utilisez formatMoney pour l’afficher.

Le panier

itemCount n’est pas toujours la somme de items. items reflète le vrai panier Shopify, y compris les lignes d’options complémentaires que le tiroir masque, comme la protection d’expédition. itemCount est le nombre visible par l’acheteur qui correspond au badge du panier. Pour « combien d’articles l’acheteur a-t-il choisis », utilisez itemCount ; pour itérer sur les lignes que le panier affiche, utilisez items.Deux choses sont entièrement absentes de items : les lignes masquées avec setHidden, et les enfants de bundle, qui sont regroupés sur leur ligne d’ancrage. Les deux comptent toujours dans les totaux du panier, qui viennent directement de Shopify.

Lignes du panier

Chaque entrée de items, et l’item de item_added et item_removed :
properties peut contenir des saisies fournies par l’acheteur, comme le champ de texte personnalisé d’un formulaire produit. Affichez-le en tant que texte, jamais en tant que HTML brut.

Identifier une ligne

Utilisez key pour tout ce qui agit sur une ligne, et variantId ou productId pour tout ce qui identifie un produit :
La même variante peut apparaître sur plusieurs lignes lorsque les propriétés diffèrent. Deux mugs gravés avec des textes de gravure différents sont deux lignes partageant un même variantId. C’est pourquoi les actions prennent key.

Les prix d’une ligne

Trois prix, faciles à confondre :

Bundles

Lorsque des lignes sont regroupées en bundle, la ligne d’ancrage porte un objet bundle. Les enfants y sont intégrés et n’apparaissent plus seuls dans items. Consultez Regrouper les lignes de bundle d’une autre application pour savoir comment le regroupement est configuré. Chaque enfant porte key (null pour un composant natif), title, variantTitle, quantity, perAnchorQty, imageUrl, finalLinePrice, originalLinePrice et compareAtPrice.

Plans d’abonnement

Le plan actif d’une ligne est sellingPlan, ou null pour un achat unique. Pour une réponse à l’échelle du panier entier, lisez hasSubscriptionItems plutôt que de parcourir les lignes vous-même, car il compte aussi les lignes d’options complémentaires que items présente mais que itemCount ignore :
Les plans disponibles sur une ligne, ceux du sélecteur, ne figurent pas sur l’objet cart. Façonnez-les avec registerSubscriptionOptionsTransform et registerDefaultSubscriptionOptionSelector.

Pour aller plus loin

  • Actions : lire et modifier le panier.
  • Événements : d’où vient cet objet.
  • Hooks : ajoutez vos propres données à une ligne avec un enrichisseur.
  • Cas d’usage : des solutions complètes qui lisent ces champs.