> ## 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

> Alle configure-muligheder i Aftersell Cart SDK: åbning af draweren, add to cart-interception, formularvalidering og pengeformatering.

`configure(config)` bestemmer, hvordan kurven opfører sig. Det er et **opsætningskald**, så det er sikkert helt øverst i dit script, før kurven er indlæst.

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

Du kan kalde det mere end én gang, og værdierne flettes. Et senere kald tilsidesætter kun de nøgler, det nævner, og lader resten være.

<Warning>
  **At sende `undefined` rydder en nøgle i stedet for at springe den over.** `configure({ open_on_add_to_cart: undefined })` nulstiller den mulighed til dens standard og kasserer, hvad et tidligere kald har sat. For at lade en mulighed være i fred skal du udelade nøglen helt.
</Warning>

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

| Mulighed                                                        | Værdier                            | Standard         | Formål                                                 |
| --------------------------------------------------------------- | ---------------------------------- | ---------------- | ------------------------------------------------------ |
| [`open_on_add_to_cart`](#open_on_add_to_cart)                   | `'always'`, `'never'`, `'default'` | `'default'`      | Om draweren åbner, når en vare tilføjes.               |
| [`open_on_background_add`](#open_on_background_add)             | `boolean`                          | `false`          | Åbn også, når noget *andet* tilføjer til kurven.       |
| [`validate_form_on_add_to_cart`](#validate_form_on_add_to_cart) | `boolean`                          | `false`          | Bloker tilføjelsen, hvis produktformularen er ugyldig. |
| [`skip_add_to_cart_interceptor`](#skip_add_to_cart_interceptor) | `boolean`                          | `false`          | Slå Aftersells add to cart-interception helt fra.      |
| [`skip_open_cart_interceptor`](#skip_open_cart_interceptor)     | `boolean`                          | `false`          | Lad et klik på cart-ikonet nå dine andre scripts.      |
| [`money_format`](#money_format)                                 | string                             | butikkens format | Tilsidesæt det format, `formatMoney` bruger.           |

***

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

Styrer, om draweren åbner, når en kunde tilføjer et produkt.

| Værdi       | Adfærd                                                                 |
| ----------- | ---------------------------------------------------------------------- |
| `'always'`  | Åbn altid draweren ved tilføjelse.                                     |
| `'never'`   | Åbn den aldrig; varen tilføjes lydløst.                                |
| `'default'` | Følg indstillingen **Open cart when an item is added** i kurveditoren. |

```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' });
```

En almindelig anvendelse er at holde draweren lukket på én bestemt side, mens forhandlerindstillingen bevares alle andre steder:

```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>
  Hvis du bare vil have dette slået til for hele butikken, er det allerede en indstilling: **Cart settings → Content → Behavior → Open cart when an item is added**. Brug `configure`, når svaret afhænger af siden, kunden eller noget, kun din kode ved.
</Note>

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

Sæt denne til `true` for også at åbne draweren ved **baggrunds**tilføjelser — dem Aftersell registrerede, men ikke selv håndterede.

En tilføjelse tæller som baggrund, når enten:

* den ankom via [Shopifys standard-kurvevents](https://shopify.dev/docs/storefronts/themes/best-practices/standard-events) (behandles altid som baggrund, uanset hvad der udløste den), eller
* Aftersell så kurvanmodningen på netværket **uden** et betroet klik eller tastetryk i de foregående \~3 sekunder — for eksempel en anden app eller et andet script, der skriver til kurven.

En tilføjelse, som Aftersell så på netværket, og som *fulgte* efter en kundes klik, er ikke en baggrundstilføjelse: den åbner allerede draweren i henhold til `open_on_add_to_cart`, uden behov for denne mulighed.

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

Dette er en **ekstra gate, ikke en tilsidesættelse**: en baggrundstilføjelse åbner kun draweren, hvis `open_on_add_to_cart` også ville have tilladt det. Med `open_on_add_to_cart: 'never'` gør denne mulighed intet.

<Tip>
  Ræk ud efter denne, når en tredjeparts tilføjelsesknap tilføjer varen korrekt, men lader draweren forblive lukket. Hvis varen slet ikke når kurven, er det et interception-problem. Se [`skip_add_to_cart_interceptor`](#skip_add_to_cart_interceptor) og [page builder-use casen](/da/aftersell/cart/sdk-use-case-page-builder).
</Tip>

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

Kører browserens indbyggede formularvalidering (`reportValidity()`), før der tilføjes, og annullerer tilføjelsen, hvis formularen er ugyldig. Brug den, når din produktformular har påkrævede felter (en graveringsbesked, en gavenote, et påkrævet afkrydsningsfelt), som kunderne i øjeblikket kan springe over.

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

Browseren viser sin egen valideringsbesked på det pågældende felt. Slået fra som standard, fordi et tema med en vildfaren `required`-attribut et sted i produktformularen ellers lydløst ville begynde at blokere add to cart.

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

Slår Aftersells add to cart-interception helt fra. For hvad interception gør, og hver måde at fritage sig fra den på, se [Add to cart-interception](/da/aftersell/cart/add-to-cart-interception).

Temaet udfører så tilføjelsen selv, og hvert script, der lytter på den submit, kører igen. Aftersell holder stadig øje med kurvanmodningen på netværket, så draweren åbner som sædvanlig. Du mister den ikke ved at fritage. På temaer, Aftersell genkender, forbliver temaets egen kurv inert, så du får ikke to kurve. På et tema, den ikke genkender, kan temaet åbne sin egen kurv ved siden af din; se [Åbner temaets kurv også?](/da/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>
  Denne læses **én gang, ved boot**. Den virker kun fra et opsætningskald, der kører, før kurven indlæses: din kurvs **Initialization**-script. Sættes den senere (inde i `ready()` eller fra en event handler), har det ingen effekt og fejler lydløst.
</Warning>

Dette er et groft værktøj, der deaktiverer interception for hver formular på siden. For kun at undtage én formular skal du i stedet bruge hooket [`registerSkipAddToCartRule`](/da/aftersell/cart/sdk-hooks#registerskipaddtocartrule):

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

At klikke på cart-ikonet åbner Aftersell-draweren. For at gøre det pålideligt stopper Aftersell klikket, så intet andet på siden håndterer det, hvilket også stopper **dine** scripts fra at se det. Hvis et analytics- eller pixel-event fyrer overalt undtagen på cart-ikonet, er det derfor.

Sæt denne til `true` for at stoppe med at gøre klikket tavst:

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

Dine listeners kører så, og draweren åbner stadig præcis som før. Klikket navigerer stadig heller ikke til `/cart`.

<Warning>
  **Dette gør mindre, end navnet antyder.** Den springer ikke cart-ikon-interceptoren over. Den stopper kun med at gøre andre listeners tavse. Aftersell håndterer stadig klikket og åbner stadig din kurv. For en kontrol, som Aftersell helt skal ignorere, brug klassen `aftersell-cart-wont-open-cart` i stedet; se [Add to cart-interception](/da/aftersell/cart/add-to-cart-interception#the-cart-icon-is-separate).
</Warning>

I modsætning til [`skip_add_to_cart_interceptor`](#skip_add_to_cart_interceptor) læses denne **ved hvert klik**, så du kan sætte den når som helst, og den træder i kraft med det samme: fra `ready()`, en event-handler eller betinget pr. side.

<Note>
  Nogle temaer reagerer også selv på klik på cart-ikonet. Når Aftersell holder op med at gøre det tavst, vil et tema, der åbner sin egen drawer, gøre det ved siden af din. Hvis du ser to kurve, efter du slår dette til, tilføj klassen `aftersell-cart-wont-open-cart` til temaets ikon, og åbn kurven fra din egen handler med [`actions.open()`](/da/aftersell/cart/sdk-actions#open-and-close).
</Note>

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

Tilsidesætter det [Shopify-pengeformat](https://shopify.dev/docs/api/liquid/filters/money), som [`formatMoney`](/da/aftersell/cart/sdk-actions#formatmoneycents) bruger. Standard er din butiks eget format; hvis det ikke er tilgængeligt, falder priser tilbage på `$X.XX`.

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

Fordi `configure` fletter, og `formatMoney` læser den aktuelle værdi, kan du ændre formatet under kørsel, for eksempel når en valutaskifter udløses:

```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>
  Dette ændrer, hvordan SDK'et og kurven *viser* priser. Det ændrer ikke den valuta, kunden opkræves i; det er Shopify Markets.
</Note>

<div id="where-to-go-next">
  ## Hvor skal du hen nu
</div>

* **[Actions](/da/aftersell/cart/sdk-actions)**: læs og ændr kurven.
* **[Hooks](/da/aftersell/cart/sdk-hooks)**: kontrol pr. formular og pr. linje, hvor `configure` er for bred.
* **[Use cases](/da/aftersell/cart/sdk-use-cases)**: komplette løsninger på almindelige ønsker.
