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

> Toutes les options configure du SDK du panier Aftersell : ouverture du tiroir, interception de l'ajout au panier, validation de formulaire et formatage des montants.

`configure(config)` définit le comportement du panier. C'est un **appel de configuration**, donc il est sûr tout en haut de votre script, avant le chargement du panier.

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

Vous pouvez l'appeler plusieurs fois et les valeurs fusionnent. Un appel ultérieur ne remplace que les clés qu'il nomme, en laissant le reste intact.

<Warning>
  **Passer `undefined` efface une clé au lieu de l'ignorer.** `configure({ open_on_add_to_cart: undefined })` réinitialise cette option à sa valeur par défaut, en écartant ce qu'un appel précédent avait défini. Pour laisser une option intacte, omettez complètement la clé.
</Warning>

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

| Option                                                          | Valeurs                            | Défaut                | Objectif                                                             |
| --------------------------------------------------------------- | ---------------------------------- | --------------------- | -------------------------------------------------------------------- |
| [`open_on_add_to_cart`](#open_on_add_to_cart)                   | `'always'`, `'never'`, `'default'` | `'default'`           | Si le tiroir s'ouvre lorsqu'un article est ajouté.                   |
| [`open_on_background_add`](#open_on_background_add)             | `boolean`                          | `false`               | Ouvrir aussi lorsque quelque chose *d'autre* ajoute au panier.       |
| [`validate_form_on_add_to_cart`](#validate_form_on_add_to_cart) | `boolean`                          | `false`               | Bloquer l'ajout si le formulaire produit est invalide.               |
| [`skip_add_to_cart_interceptor`](#skip_add_to_cart_interceptor) | `boolean`                          | `false`               | Désactiver entièrement l'interception d'ajout au panier d'Aftersell. |
| [`skip_open_cart_interceptor`](#skip_open_cart_interceptor)     | `boolean`                          | `false`               | Laisser un clic sur l'icône du panier atteindre vos autres scripts.  |
| [`money_format`](#money_format)                                 | string                             | format de la boutique | Remplacer le format utilisé par `formatMoney`.                       |

***

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

Contrôle si le tiroir s'ouvre lorsqu'un acheteur ajoute un produit.

| Valeur      | Comportement                                                                    |
| ----------- | ------------------------------------------------------------------------------- |
| `'always'`  | Toujours ouvrir le tiroir à l'ajout.                                            |
| `'never'`   | Ne jamais l'ouvrir ; l'article est ajouté silencieusement.                      |
| `'default'` | Suivre le paramètre **Open cart when an item is added** de l'éditeur de panier. |

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

Un usage courant consiste à garder le tiroir fermé sur une page spécifique tout en laissant le paramètre du marchand intact partout ailleurs :

```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>
  Si vous voulez simplement activer cela pour toute la boutique, c'est déjà un paramètre : **Cart settings → Content → Behavior → Open cart when an item is added**. Utilisez `configure` lorsque la réponse dépend de la page, de l'acheteur ou de quelque chose que seul votre code connaît.
</Note>

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

Définissez cette option sur `true` pour ouvrir aussi le tiroir lors des ajouts en **arrière-plan**, c'est-à-dire ceux qu'Aftersell a détectés mais n'a pas gérés lui-même.

Un ajout compte comme un ajout en arrière-plan lorsque :

* il est arrivé via les [événements de panier standard de Shopify](https://shopify.dev/docs/storefronts/themes/best-practices/standard-events) (toujours traité comme un ajout en arrière-plan, quel qu'en soit le déclencheur), ou
* Aftersell a vu la requête de panier passer sur le réseau **sans** clic ni frappe de touche fiable dans les \~3 secondes précédentes. Par exemple, une autre application ou un autre script qui écrit dans le panier.

Un ajout qu'Aftersell a vu sur le réseau et qui *a bien* suivi le clic d'un acheteur n'est pas un ajout en arrière-plan : il ouvre déjà le tiroir selon `open_on_add_to_cart`, sans besoin de cette option.

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

C'est une **condition supplémentaire, pas une surcharge** : un ajout en arrière-plan n'ouvre le tiroir que si `open_on_add_to_cart` l'aurait également permis. Avec `open_on_add_to_cart: 'never'`, cette option ne fait rien.

<Tip>
  Utilisez cette option lorsqu'un bouton d'ajout tiers ajoute correctement l'article mais laisse le tiroir fermé. Si l'article n'atteint jamais le panier du tout, c'est un problème d'interception. Consultez [`skip_add_to_cart_interceptor`](#skip_add_to_cart_interceptor) et le [cas d'usage constructeur de pages](/fr/aftersell/cart/sdk-use-case-page-builder).
</Tip>

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

Exécute la validation de formulaire native du navigateur (`reportValidity()`) avant l'ajout, et annule l'ajout si le formulaire est invalide. Utilisez-la lorsque votre formulaire produit comporte des champs obligatoires (un message de gravure, une note cadeau, une case à cocher obligatoire) que les acheteurs peuvent actuellement contourner.

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

Le navigateur affiche son propre message de validation sur le champ fautif. Désactivée par défaut, car un thème avec un attribut `required` égaré quelque part dans le formulaire produit se mettrait sinon à bloquer silencieusement l'ajout au panier.

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

Désactive complètement l'interception d'ajout au panier d'Aftersell. Pour savoir ce que fait l'interception et connaître toutes les façons de vous en désinscrire, consultez [Interception de l'ajout au panier](/fr/aftersell/cart/add-to-cart-interception).

Le thème effectue alors l'ajout lui-même, et chaque script qui écoute cette soumission s'exécute à nouveau. Aftersell continue de surveiller la requête de panier sur le réseau, donc le tiroir s'ouvre comme d'habitude. Vous ne le perdez pas en vous désinscrivant. Sur les thèmes qu'Aftersell reconnaît, le propre panier du thème reste inerte, donc vous n'aurez pas deux paniers. Sur un thème qu'il ne reconnaît pas, le thème peut ouvrir son propre panier à côté du vôtre ; consultez [Le panier du thème s'ouvrira-t-il aussi ?](/fr/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>
  Cette option est lue **une seule fois, au démarrage**. Elle ne fonctionne que depuis un appel de configuration exécuté avant le chargement du panier : le script **Initialization** de votre panier. La définir plus tard (dans `ready()`, ou depuis un gestionnaire d'événement) n'a aucun effet, et échoue silencieusement.
</Warning>

C'est un instrument grossier qui désactive l'interception pour chaque formulaire de la page. Pour exempter un seul formulaire, utilisez plutôt le hook [`registerSkipAddToCartRule`](/fr/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>

Cliquer sur l'icône du panier ouvre le tiroir Aftersell. Pour le faire de manière fiable, Aftersell arrête le clic afin que rien d'autre sur la page ne le traite, ce qui empêche aussi **vos** scripts de le voir. Si un événement d'analyse ou de pixel se déclenche partout sauf sur l'icône du panier, c'est pour cette raison.

Définissez cette option sur `true` pour arrêter de faire taire le clic :

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

Vos écouteurs s'exécutent alors, et le tiroir s'ouvre exactement comme avant. Le clic ne navigue toujours pas vers `/cart` non plus.

<Warning>
  **Cette option fait moins que ce que son nom suggère.** Elle ne saute pas l'intercepteur de l'icône du panier. Elle l'empêche seulement de faire taire les autres écouteurs. Aftersell traite toujours le clic et ouvre toujours votre panier. Pour un contrôle qu'Aftersell doit ignorer complètement, utilisez plutôt la classe `aftersell-cart-wont-open-cart` ; consultez [Interception de l'ajout au panier](/fr/aftersell/cart/add-to-cart-interception#the-cart-icon-is-separate).
</Warning>

Contrairement à [`skip_add_to_cart_interceptor`](#skip_add_to_cart_interceptor), celle-ci est lue **à chaque clic**, vous pouvez donc la définir à n'importe quel moment et elle prend effet immédiatement : depuis `ready()`, un gestionnaire d'événement, ou conditionnellement par page.

<Note>
  Certains thèmes réagissent aussi eux-mêmes au clic sur l'icône du panier. Une fois qu'Aftersell cesse de le faire taire, un thème qui ouvre son propre tiroir le fera à côté du vôtre. Si vous voyez deux paniers après avoir activé cette option, ajoutez la classe `aftersell-cart-wont-open-cart` à l'icône du thème et ouvrez le panier depuis votre propre gestionnaire avec [`actions.open()`](/fr/aftersell/cart/sdk-actions#open-and-close).
</Note>

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

Remplace le [format monétaire Shopify](https://shopify.dev/docs/api/liquid/filters/money) utilisé par [`formatMoney`](/fr/aftersell/cart/sdk-actions#formatmoneycents). Par défaut, il s'agit du format propre à votre boutique ; s'il est indisponible, les prix retombent sur `$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"
```

Comme `configure` fusionne et que `formatMoney` lit la valeur en direct, vous pouvez changer le format à l'exécution, par exemple lorsqu'un sélecteur de devise se déclenche :

```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>
  Cela change la façon dont le SDK et le panier *affichent* les prix. Cela ne change pas la devise facturée à l'acheteur ; c'est le rôle de Shopify Markets.
</Note>

<div id="where-to-go-next">
  ## Pour aller plus loin
</div>

* **[Actions](/fr/aftersell/cart/sdk-actions)** : lire et modifier le panier.
* **[Hooks](/fr/aftersell/cart/sdk-hooks)** : contrôle par formulaire et par ligne, là où `configure` est trop large.
* **[Cas d'usage](/fr/aftersell/cart/sdk-use-cases)** : des solutions complètes aux demandes courantes.
