Skip to main content
Eine einzige Objektstruktur fließt durch das gesamte SDK. Sie ist das, was getCart() zurückgibt, was cart_loaded und cart_updated deinem Handler übergeben und was ein Custom-Code-Block erhält.
Alle Geldbeträge sind in der kleinsten Einheit der Währung (Cents für USD), nie ein formatierter String. 5779 ist $57,79. Verwende formatMoney, um sie anzuzeigen.

Der Warenkorb

itemCount ist nicht immer die Summe von items. items spiegelt den echten Shopify-Warenkorb wider, einschließlich Add-on-Zeilen, die der Drawer ausblendet, wie Versandschutz. itemCount ist die käuferseitige Zahl, die zum Warenkorb-Badge passt. Für „wie viele Dinge hat der Käufer gewählt“ verwende itemCount; um über die Zeilen zu iterieren, die der Warenkorb rendert, verwende items.Zwei Dinge fehlen in items vollständig: Zeilen, die mit setHidden ausgeblendet wurden, und Bundle-Kinder, die auf ihren Anker wandern. Beide zählen weiterhin zu den Warenkorb-Summen, die direkt von Shopify kommen.

Warenkorb-Zeilen

Jeder Eintrag in items sowie das item bei item_added und item_removed:
properties kann vom Käufer bereitgestellte Eingaben enthalten, etwa das Freitext-Feld eines Produktformulars. Rendere sie als Text, nie als rohes HTML.

Eine Zeile identifizieren

Verwende key für alles, was auf eine Zeile einwirkt, und variantId oder productId für alles, was ein Produkt identifiziert:
Dieselbe Variante kann in mehreren Zeilen erscheinen, wenn sich die Properties unterscheiden. Zwei gravierte Tassen mit unterschiedlichem Gravurtext sind zwei Zeilen mit einer gemeinsamen variantId. Deshalb nehmen die Actions key.

Preise auf einer Zeile

Drei Preise, leicht zu verwechseln:

Bundles

Wenn Zeilen zu einem Bundle gruppiert sind, trägt die Anker-Zeile ein bundle-Objekt. Die Kinder werden in sie hineingefaltet und erscheinen nicht mehr eigenständig in items. Siehe Bundle-Zeilen einer anderen App gruppieren für die Einrichtung der Gruppierung. Jedes Kind trägt key (null bei einer nativen Komponente), title, variantTitle, quantity, perAnchorQty, imageUrl, finalLinePrice, originalLinePrice und compareAtPrice.

Abo-Pläne

Der aktive Plan einer Zeile ist sellingPlan, oder null bei einem Einmalkauf. Für eine Antwort auf Warenkorb-Ebene lies hasSubscriptionItems, statt die Zeilen selbst zu durchsuchen, da es auch Add-on-Zeilen zählt, die items enthält, itemCount aber überspringt:
Die verfügbaren Pläne einer Zeile, die im Picker, liegen nicht auf dem Cart-Objekt. Gestalte sie mit registerSubscriptionOptionsTransform und registerDefaultSubscriptionOptionSelector.

Nächste Schritte

  • Actions: den Warenkorb lesen und ändern.
  • Events: woher dieses Objekt kommt.
  • Hooks: füge einer Zeile mit einem Enricher eigene Daten hinzu.
  • Use Cases: vollständige Lösungen, die diese Felder lesen.