> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aftersell.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configure

> Jede Configure-Option des Aftersell Cart SDK: Drawer-Öffnung, Add-to-cart-Abfangen, Formularvalidierung und Geldformatierung.

`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.

```js theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
window.aftersell.cart.configure({
  open_on_add_to_cart: 'always',
  money_format: '${{amount}} USD',
});
```

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.

<Warning>
  **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.
</Warning>

<div id="options">
  ## Optionen
</div>

| Option                                                          | Werte                              | Standard         | Zweck                                                              |
| --------------------------------------------------------------- | ---------------------------------- | ---------------- | ------------------------------------------------------------------ |
| [`open_on_add_to_cart`](#open_on_add_to_cart)                   | `'always'`, `'never'`, `'default'` | `'default'`      | Ob sich der Drawer öffnet, wenn ein Artikel hinzugefügt wird.      |
| [`open_on_background_add`](#open_on_background_add)             | `boolean`                          | `false`          | Auch öffnen, wenn etwas *anderes* zum Warenkorb hinzufügt.         |
| [`validate_form_on_add_to_cart`](#validate_form_on_add_to_cart) | `boolean`                          | `false`          | Das Hinzufügen blockieren, wenn das Produktformular ungültig ist.  |
| [`skip_add_to_cart_interceptor`](#skip_add_to_cart_interceptor) | `boolean`                          | `false`          | Aftersells Add-to-cart-Abfangen komplett ausschalten.              |
| [`skip_open_cart_interceptor`](#skip_open_cart_interceptor)     | `boolean`                          | `false`          | Einen Klick aufs Cart-Icon deine anderen Scripts erreichen lassen. |
| [`money_format`](#money_format)                                 | String                             | Format des Shops | Das von `formatMoney` verwendete Format überschreiben.             |

***

<div id="open_on_add_to_cart">
  ## open\_on\_add\_to\_cart
</div>

Steuert, ob sich der Drawer öffnet, wenn ein Käufer ein Produkt hinzufügt.

| Wert        | Verhalten                                                                  |
| ----------- | -------------------------------------------------------------------------- |
| `'always'`  | Den Drawer beim Hinzufügen immer öffnen.                                   |
| `'never'`   | Ihn nie öffnen; der Artikel wird still hinzugefügt.                        |
| `'default'` | Der Einstellung **Open cart when an item is added** im Cart-Editor folgen. |

```js theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
// Always open, regardless of the merchant's cart setting.
window.aftersell.cart.configure({ open_on_add_to_cart: 'always' });
```

Eine häufige Verwendung ist, den Drawer auf einer bestimmten Seite geschlossen zu halten und die Händlereinstellung überall sonst unberührt zu lassen:

```js theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
if (window.location.pathname.startsWith('/collections/')) {
  window.aftersell.cart.configure({ open_on_add_to_cart: 'never' });
}
```

<Note>
  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ß.
</Note>

<div id="open_on_background_add">
  ## open\_on\_background\_add
</div>

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](https://shopify.dev/docs/storefronts/themes/best-practices/standard-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.

```js theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
window.aftersell.cart.configure({ open_on_background_add: true });
```

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.

<Tip>
  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`](#skip_add_to_cart_interceptor) und den [Page-Builder-Use-Case](/de/aftersell/cart/sdk-use-case-page-builder).
</Tip>

<div id="validate_form_on_add_to_cart">
  ## validate\_form\_on\_add\_to\_cart
</div>

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.

```js theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
window.aftersell.cart.configure({ validate_form_on_add_to_cart: true });
```

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.

<div id="skip_add_to_cart_interceptor">
  ## skip\_add\_to\_cart\_interceptor
</div>

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](/de/aftersell/cart/add-to-cart-interception).

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?](/de/aftersell/cart/add-to-cart-interception#will-the-themes-cart-open-too).

```js theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
window.aftersell.cart.configure({ skip_add_to_cart_interceptor: true });
```

<Warning>
  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.
</Warning>

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`](/de/aftersell/cart/sdk-hooks#registerskipaddtocartrule)-Hook:

```js theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
// Preferred: exempt only the forms you own.
window.aftersell.cart.hooks.registerSkipAddToCartRule((form) =>
  form.hasAttribute('data-skip-aftersell')
);
```

<div id="skip_open_cart_interceptor">
  ## skip\_open\_cart\_interceptor
</div>

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:

```js theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
window.aftersell.cart.configure({ skip_open_cart_interceptor: true });
```

Deine Listener laufen dann, und der Drawer öffnet sich weiterhin genau wie zuvor. Der Klick navigiert außerdem weiterhin nicht zu `/cart`.

<Warning>
  **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](/de/aftersell/cart/add-to-cart-interception#the-cart-icon-is-separate).
</Warning>

Anders als [`skip_add_to_cart_interceptor`](#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.

<Note>
  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()`](/de/aftersell/cart/sdk-actions#open-and-close).
</Note>

<div id="money_format">
  ## money\_format
</div>

Überschreibt das [Shopify-Geldformat](https://shopify.dev/docs/api/liquid/filters/money), das [`formatMoney`](/de/aftersell/cart/sdk-actions#formatmoneycents) verwendet. Standardmäßig das Format deines Shops; ist das nicht verfügbar, fallen Preise auf `$X.XX` zurück.

```js theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
window.aftersell.cart.configure({ money_format: '${{amount}} USD' });

// Later:
window.aftersell.cart.actions.formatMoney(5779); // "$57.79 USD"
```

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:

```js theme={"theme":{"light":"snazzy-light","dark":"github-dark"}}
window.myTheme.onCurrencyChange((currency) => {
  window.aftersell.cart.configure({ money_format: FORMATS[currency] });
  window.aftersell.cart.actions.visualRefresh(); // repaint prices already on screen
});
```

<Note>
  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.
</Note>

<div id="where-to-go-next">
  ## Nächste Schritte
</div>

* **[Actions](/de/aftersell/cart/sdk-actions)**: den Warenkorb lesen und ändern.
* **[Hooks](/de/aftersell/cart/sdk-hooks)**: Kontrolle pro Formular und pro Zeile, wo `configure` zu breit ist.
* **[Use Cases](/de/aftersell/cart/sdk-use-cases)**: vollständige Lösungen für häufige Anforderungen.
