configure(config) legt fest, wie sich der Warenkorb verhält. Es ist ein Setup-Aufruf und daher ganz am Anfang deines Scripts sicher, bevor der Warenkorb geladen ist.
Du kannst es mehrfach aufrufen und die Werte werden zusammengeführt. Ein späterer Aufruf überschreibt nur die Keys, die er nennt, und lässt den Rest unberührt.
Die Übergabe von undefined löscht einen Key, statt ihn zu überspringen. configure({ open_on_add_to_cart: undefined }) setzt diese Option auf ihren Standard zurück und verwirft, was ein früherer Aufruf gesetzt hat. Um eine Option in Ruhe zu lassen, lass den Key ganz weg.
Steuert, ob sich der Drawer öffnet, wenn ein Käufer ein Produkt hinzufügt.
Eine häufige Verwendung ist, den Drawer auf einer bestimmten Seite geschlossen zu halten und die Händlereinstellung überall sonst unberührt zu lassen:
Wenn du das einfach für den ganzen Shop willst, ist es bereits eine Einstellung: Cart settings → Content → Behavior → Open cart when an item is added. Verwende configure, wenn die Antwort von der Seite, dem Käufer oder etwas abhängt, das nur dein Code weiß.
Setze dies auf true, um den Drawer auch bei Hintergrund-Hinzufügungen zu öffnen — solchen, die Aftersell erkannt, aber nicht selbst verarbeitet hat.
Ein Hinzufügen zählt als Hintergrund, wenn entweder:
- es über Shopifys Standard-Warenkorb-Events kam (wird immer als Hintergrund behandelt, egal was es ausgelöst hat), oder
- Aftersell die Warenkorb-Anfrage auf der Leitung gesehen hat, ohne vertrauenswürdigen Klick oder Tastendruck in den vorangegangenen ~3 Sekunden — zum Beispiel eine andere App oder ein anderes Script, das in den Warenkorb schreibt.
Ein Hinzufügen, das Aftersell auf der Leitung gesehen hat und das auf einen Klick des Käufers folgte, ist kein Hintergrund-Hinzufügen: Es öffnet den Drawer bereits gemäß open_on_add_to_cart, ohne dass diese Option nötig wäre.
Das ist ein zusätzliches Gate, kein Override: Ein Hintergrund-Hinzufügen öffnet den Drawer nur, wenn open_on_add_to_cart es ebenfalls erlaubt hätte. Mit open_on_add_to_cart: 'never' tut diese Option nichts.
Greif hierzu, wenn ein Add-Button eines Drittanbieters den Artikel korrekt hinzufügt, den Drawer aber geschlossen lässt. Wenn der Artikel den Warenkorb gar nicht erst erreicht, ist das ein Abfang-Problem. Siehe skip_add_to_cart_interceptor und den Page-Builder-Use-Case.
Führt vor dem Hinzufügen die native Formularvalidierung des Browsers aus (reportValidity()) und bricht das Hinzufügen ab, wenn das Formular ungültig ist. Verwende es, wenn dein Produktformular Pflichtfelder hat (eine Gravur-Nachricht, eine Geschenknotiz, eine erforderliche Checkbox), die Käufer aktuell überspringen können.
Der Browser zeigt seine eigene Validierungsmeldung am betroffenen Feld. Standardmäßig aus, weil ein Theme mit einem verirrten required-Attribut irgendwo im Produktformular sonst stillschweigend anfangen würde, das Hinzufügen zum Warenkorb zu blockieren.
skip_add_to_cart_interceptor
Schaltet Aftersells Add-to-cart-Abfangen vollständig aus. Was das Abfangen tut und jede Möglichkeit, sich davon auszunehmen, findest du unter Add-to-cart-Abfangen.
Das Theme führt das Hinzufügen dann selbst aus, und jedes Script, das auf diesen Submit lauscht, läuft wieder. Aftersell beobachtet weiterhin die Warenkorb-Anfrage auf der Leitung, sodass sich der Drawer wie üblich öffnet. Du verlierst ihn nicht, indem du dich ausnimmst. Bei Themes, die Aftersell erkennt, bleibt der eigene Warenkorb des Themes inert, sodass du keine zwei Warenkörbe bekommst. Bei einem Theme, das es nicht erkennt, kann das Theme seinen eigenen Warenkorb neben deinem öffnen; siehe Öffnet sich auch der Warenkorb des Themes?.
Diese Option wird einmal, beim Boot gelesen. Sie funktioniert nur aus einem Setup-Aufruf, der läuft, bevor der Warenkorb lädt: dem Initialization-Script deines Warenkorbs. Sie später zu setzen (innerhalb von ready() oder aus einem Event-Handler) hat keine Wirkung und schlägt still fehl.
Das ist ein grobes Werkzeug, das das Abfangen für jedes Formular auf der Seite deaktiviert. Um nur ein Formular auszunehmen, verwende stattdessen den registerSkipAddToCartRule-Hook:
skip_open_cart_interceptor
Ein Klick auf das Cart-Icon öffnet den Aftersell Drawer. Um das zuverlässig zu tun, stoppt Aftersell den Klick, sodass nichts anderes auf der Seite ihn behandelt. Das stoppt aber auch deine Scripts davor, ihn zu sehen. Wenn ein Analytics- oder Pixel-Event überall außer beim Cart-Icon feuert, ist das der Grund.
Setze dies auf true, um das Silencing des Klicks zu stoppen:
Deine Listener laufen dann, und der Drawer öffnet sich weiterhin genau wie zuvor. Der Klick navigiert außerdem weiterhin nicht zu /cart.
Das tut weniger, als der Name vermuten lässt. Es überspringt nicht den Cart-Icon-Interceptor. Es stoppt nur, dass er andere Listener stumm schaltet. Aftersell behandelt den Klick weiterhin und öffnet weiterhin deinen Warenkorb. Für ein Steuerelement, das Aftersell komplett ignorieren soll, verwende stattdessen die Klasse aftersell-cart-wont-open-cart; siehe Add-to-cart-Abfangen.
Anders als skip_add_to_cart_interceptor wird diese Option bei jedem Klick gelesen. Du kannst sie also zu einem beliebigen Zeitpunkt setzen und sie greift sofort: aus ready(), aus einem Event-Handler oder bedingt pro Seite.
Manche Themes reagieren ebenfalls selbst auf den Cart-Icon-Klick. Sobald Aftersell aufhört, ihn stumm zu schalten, wird ein Theme, das seinen eigenen Drawer öffnet, das neben deinem tun. Wenn du nach dem Einschalten zwei Warenkörbe siehst, füge dem Cart-Icon des Themes die Klasse aftersell-cart-wont-open-cart hinzu und öffne den Warenkorb aus deinem eigenen Handler mit actions.open().
Überschreibt das Shopify-Geldformat, das formatMoney verwendet. Standardmäßig das Format deines Shops; ist das nicht verfügbar, fallen Preise auf $X.XX zurück.
Da configure zusammenführt und formatMoney den Live-Wert liest, kannst du das Format zur Laufzeit ändern, zum Beispiel wenn ein Währungsumschalter auslöst:
Das ändert, wie das SDK und der Warenkorb Preise anzeigen. Es ändert nicht die Währung, in der der Käufer belastet wird; das ist Shopify Markets.
- Actions: den Warenkorb lesen und ändern.
- Hooks: Kontrolle pro Formular und pro Zeile, wo
configure zu breit ist.
- Use Cases: vollständige Lösungen für häufige Anforderungen.