Skip to main content
Le panier connaît ce que l’API Ajax de Shopify lui indique : titres, prix, quantités, propriétés. Il ne connaît pas vos metafields. Un enrichisseur de panier (cart enricher) récupère des champs de produit ou de variante supplémentaires depuis l’API Storefront et les attache à chaque ligne correspondante, afin que vous puissiez afficher une estimation de livraison, un avertissement « expédié séparément », une liste d’ingrédients, ou toute autre information stockée sur le produit. Utilisations typiques : fenêtres de livraison par produit, badges d’allergènes ou d’ingrédients, un indicateur « stock faible » personnalisé, des multiplicateurs de points de fidélité, des prix réservés aux abonnés.

Enregistrer l’enrichisseur

Trois champs : Chaque fois que le panier se charge ou change, Aftersell récupère votre fragment pour chaque produit ou variante du panier. La récupération est non bloquante : le panier s’affiche immédiatement et réémet cart_updated une fois les données arrivées. Un fragment lent ou en échec ne retarde ni ne casse jamais le panier.

Lire les données

Comme l’enrichissement est asynchrone, line.metadata.delivery vaut undefined jusqu’à ce que la première récupération aboutisse. Protégez toujours la lecture.

L’afficher dans le panier

L’enrichissement place les données sur la ligne ; un bloc de code personnalisé en mode React les dessine. Ajoutez le bloc comme sous-bloc Cart items afin qu’il s’affiche une fois par ligne et reçoive cette ligne via props.line :
Les valeurs enrichies reviennent de l’API Storefront telles quelles et non assainies. Affichez-les en tant que texte, comme ci-dessus, et jamais avec dangerouslySetInnerHTML ni en écrivant du HTML brut.

Données au niveau de la variante

Définissez onType: 'ProductVariant' lorsque le metafield se trouve sur la variante plutôt que sur le produit :

Plus que des metafields

Le fragment est inséré dans une requête de l’API Storefront, donc tout ce que l’API expose sur un Product ou un ProductVariant fonctionne, pas seulement les metafields :

Points à ne pas manquer

  • Protégez chaque lecture. metadata vaut {} par défaut et votre espace de noms est undefined jusqu’à ce que la récupération aboutisse. Le panier s’affiche avant l’arrivée des données, toujours.
  • Chaque id est son propre espace de noms. Plusieurs enrichisseurs coexistent sans collision, y compris ceux enregistrés par d’autres applications.
  • Les metafields doivent être visibles côté Storefront. Un metafield qui n’est pas exposé à l’API Storefront renvoie null. Vérifiez la définition dans l’admin Shopify si vous ne recevez rien.
  • Gardez le fragment petit. Il s’exécute pour chaque produit du panier, à chaque changement du panier. Demandez les champs que vous utilisez, pas tout.
  • Enregistrez au moment de la configuration. C’est un hook, donc sa place est en haut de votre script d’initialisation.
  • Les accolades doivent être équilibrées. Pas d’accolades extérieures autour du fragment, mais toute sélection imbriquée nécessite sa propre paire correspondante. Un fragment déséquilibré est rejeté.

Où aller ensuite