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

# Référence des règles de Stratégie

> Le catalogue complet des déclencheurs, opérateurs, actions, filtres et mécanismes d'évaluation des Stratégies derrière l'éditeur de Stratégie intégré à l'application.

Cette page est le catalogue complet derrière l'éditeur de Stratégie : chaque déclencheur et les opérateurs qu'il accepte, chaque action, les filtres globaux et la manière dont une Stratégie est évaluée. Elle accompagne le guide [Créer des stratégies](/fr/aftersell/strategies_building_in_app) ; consultez-la lorsque vous avez besoin du détail exhaustif d'une option précise.

Une **règle** associe des **déclencheurs** (le *quand*) à des **actions** (le *alors*), et vous pouvez combiner jusqu'à cinq déclencheurs sous un même sélecteur **AND** / **OR** : avec **AND**, chaque déclencheur doit correspondre ; avec **OR**, un seul suffit. Les sections ci-dessous suivent cette structure : d'abord les [Déclencheurs](#triggers) et les [Actions](#actions), puis les contrôles au niveau de la Stratégie qui s'appliquent à toutes les règles : l'[ordre des règles](#rule-priority-and-evaluation-order), les [filtres globaux](#global-filters) et le [Catch all](#catch-all).

<div id="triggers">
  ## Déclencheurs
</div>

Les déclencheurs déterminent quand une règle se déclenche. Types de déclencheurs disponibles :

<div id="product-triggers">
  ### Déclencheurs de produit
</div>

Ciblage en fonction des produits du contexte (le panier de l'acheteur, la commande qui vient d'être finalisée ou le produit consulté) :

* **Specific product(s)** - correspond à des produits Shopify spécifiques par ID
* **Collection** - correspond aux produits appartenant à des collections spécifiques
* **Tag(s)** - correspond aux produits ayant des tags spécifiques (par ex. « sale », « summer »)
* **Title** - correspond au titre du produit
* **Vendor** - correspond au nom du fournisseur/de la marque
* **Type** - correspond au champ de type de produit (par ex. « Apparel », « Electronics »)
* **Handle** - correspond au slug d'URL du produit
* **Metafield** - correspond à des paires namespace/clé/valeur de metafields personnalisés
* **Selling plan** - correspond aux produits « subscription » ou « one-time ». N'est évalué que lorsque le contexte de la requête fournit un selling plan pour le produit ; les surfaces d'upsell du checkout et post-achat d'Aftersell ne l'envoient pas, le déclencheur ne correspondra donc pas sur ces surfaces, sauf si une intégration personnalisée le fournit explicitement

<div id="customer-triggers">
  ### Déclencheurs client
</div>

Ciblage en fonction de l'identité de l'acheteur :

* **Customer tag** - par ex. « VIP », « loyalty-gold »
* **Country code** - pays de facturation
* **Province code** - province/état de facturation
* **Locale** - langue du client (par ex. « en-US »)
* **Accepts marketing** - statut d'acceptation du marketing
* **Order count** - nombre de commandes précédentes
* **Total spent** - dépenses cumulées

<div id="cart-triggers">
  ### Déclencheurs de panier
</div>

Ciblage en fonction de l'état global du panier :

* **Cart subtotal** - par ex. sous-total supérieur à \$50
* **Item count** - quantité totale d'articles dans le panier
* **Line count** - nombre de lignes d'articles distinctes
* **Cart attribute** - attributs de panier personnalisés définis via l'API cart de Shopify
* **Cart note** - le champ de note du panier

<div id="location-triggers">
  ### Déclencheurs de localisation
</div>

Ciblage en fonction de la destination d'expédition de l'acheteur et de la devise de la boutique :

* **Shipping country** - pays de destination de l'expédition
* **Shipping province** - province/état de destination de l'expédition
* **Shipping method** - mode de livraison sélectionné
* **Store currency** - le code de la devise active de la boutique

<div id="marketing-triggers">
  ### Déclencheurs marketing
</div>

Ciblage en fonction de l'URL de la page sur laquelle l'acheteur est arrivé :

* **URL** - correspond à une sous-chaîne de l'URL d'arrivée, ce qui vous permet de cibler une campagne ou un canal précis en faisant correspondre un paramètre intégré à l'URL (par ex. `utm_source=newsletter`)

<div id="time-triggers">
  ### Déclencheurs temporels
</div>

Ciblage en fonction du moment où la requête est évaluée, à l'heure de la boutique :

* **Day of week** - le jour actuel
* **Hour of day** - l'heure actuelle

<div id="dynamic-triggers">
  ### Déclencheurs dynamiques
</div>

* **Always match** - un déclencheur sans condition qui se déclenche toujours. Utilisez-le pour qu'une règle s'exécute à chaque requête (à ne pas confondre avec le [Catch all](#catch-all) au niveau de la Stratégie, qui ne se déclenche que lorsqu'aucune autre règle ne correspond).

<Note>
  Tous les déclencheurs ne sont pas renseignés sur toutes les surfaces. Le checkout, par exemple, n'envoie que le contexte produit et panier ; les déclencheurs client, de localisation et marketing n'y correspondront pas. Consultez les guides [Implémenter des Stratégies](/fr/aftersell/implementing_strategies_post_purchase_upsells) pour savoir ce que chaque surface envoie.
</Note>

<div id="operators">
  ### Opérateurs
</div>

Chaque déclencheur utilise un **opérateur** pour définir comment la valeur est comparée. Les opérateurs disponibles dépendent du type de déclencheur.

| Opérateur | Description |
| - | - |
| **Equals** | Correspond lorsque le champ est exactement égal à la valeur indiquée, par ex. vendor égal à « Nike ». |
| **Does not equal** | Correspond lorsque le champ a une valeur autre que celle indiquée ; utile pour exclure un type de produit ou un fournisseur précis. |
| **Contains any** | Correspond lorsqu'un champ multivaleur inclut au moins une valeur de votre liste, par ex. un produit appartient à l'une de plusieurs collections. |
| **Does not contain any** | Correspond lorsqu'un champ multivaleur n'inclut aucune des valeurs de votre liste, par ex. exclure les produits taggés « final-sale ». |
| **Contains all** | Correspond lorsqu'un champ multivaleur inclut toutes les valeurs de votre liste, par ex. un produit doit avoir à la fois les tags « sale » et « summer ». |
| **Does not contain all** | Correspond lorsqu'il manque au moins une des valeurs de votre liste dans un champ multivaleur. |
| **Contains** | Correspond lorsqu'un champ texte inclut votre valeur comme sous-chaîne, par ex. le titre contient « Gift ». |
| **Does not contain** | Correspond lorsqu'un champ texte n'inclut pas votre valeur. |
| **Greater than** | Correspond lorsqu'un champ numérique dépasse votre valeur, par ex. le sous-total du panier est supérieur à \$75. |
| **Less than** | Correspond lorsqu'un champ numérique est inférieur à votre valeur, par ex. le nombre de commandes est inférieur à 2 (premiers acheteurs). |
| **Greater than or equal to** | Correspond lorsqu'un champ numérique atteint ou dépasse votre valeur, par ex. le total dépensé est d'au moins \$500. |
| **Less than or equal to** | Correspond lorsqu'un champ numérique est égal ou inférieur à votre valeur, par ex. le nombre d'articles du panier ne dépasse pas 3. |

Tous les opérateurs ne sont pas disponibles pour tous les déclencheurs :

* Les **opérateurs de liste** (**Contains any / all** et leurs négations) s'appliquent aux champs multivaleurs comme les tags, les collections, les tags client et les produits spécifiques.
* Les **opérateurs de texte** (**Equals**, **Contains** et leurs négations) s'appliquent aux champs texte à valeur unique comme le titre, le fournisseur, le handle, la langue, le pays et l'URL.
* Les **opérateurs numériques** s'appliquent aux champs comme le sous-total du panier, le nombre d'articles, le nombre de lignes, le nombre de commandes, le total dépensé et l'heure de la journée. Les opérateurs numériques n'ont pas de variantes « does not ».
* Quelques champs ne prennent en charge que **Equals** et **Does not equal** : selling plan, day of week et accepts marketing.

<div id="actions">
  ## Actions
</div>

Les actions créent l'expérience que vous souhaitez offrir au client. C'est ici que vous décidez quels produits mettre en avant, comment les présenter et quelles données supplémentaires transmettre avec eux. Une règle peut comporter plusieurs actions configurées ensemble pour construire l'expérience complète.

Pour chaque règle, toutes les actions configurées alimentent un même pool combiné. Par exemple, une règle avec une action de produit spécifique, une action de collection et une action basée sur les tags renverra des produits issus des trois sources ensemble. Si un produit correspond à plusieurs sources, il est dédupliqué.

<div id="product-actions">
  ### Actions de produit
</div>

Les mêmes attributs de produit disponibles côté déclencheurs sont également disponibles lors de la définition des actions. Vous pouvez renvoyer des produits en fonction de :

* **Specific products** - sélectionnez manuellement des produits individuels de votre catalogue Shopify.
* **Collection** - renvoie tous les produits appartenant à une collection spécifique.
* **Attributs de produit** - renvoie les produits correspondant à des critères comme les tags, le fournisseur, le type de produit ou les metafields, soit les mêmes types d'attributs que ceux utilisés dans les déclencheurs.

<div id="dynamic-actions">
  ### Actions dynamiques
</div>

Les actions dynamiques modifient ce qui est renvoyé en fonction de signaux en temps réel plutôt que d'une liste de produits fixe. Les types d'actions dynamiques disponibles incluent :

* **Most popular** - les produits les plus performants de votre boutique en volume de ventes, sur toute la boutique ou limités à une collection.
* **Recently purchased** - les produits récemment achetés dans la boutique.
* **Inherit from when** - réutilise les propres déclencheurs de la règle (le « quand ») comme sélecteur de produits, de sorte que les produits renvoyés correspondent aux mêmes critères que ceux ayant déclenché la règle.
* **AI Recommendations** - suggestions personnalisées générées par le modèle de recommandation d'Aftersell.

<div id="filtering-actions">
  ### Actions de filtrage
</div>

Une fois le pool de produits constitué, vous pouvez configurer le nombre de produits renvoyés et leur ordre :

* **Sort** - contrôle quels produits sont sélectionnés :
  * **Random** - une sélection aléatoire.
  * **Price: high → low** - les produits les plus chers sont renvoyés en premier.
  * **Price: low → high** - les produits les moins chers sont renvoyés en premier.
* **Amount/Limit** - définit le nombre maximal de produits à renvoyer.
* **Type** - restreint le pool de produits constitué à un seul type de produit Shopify. Choisissez **Equals** pour une correspondance exacte ou **Contains** pour une correspondance de sous-chaîne (les deux sont insensibles à la casse). Seuls les produits dont le type correspond à la valeur saisie sont conservés ; les autres sont retirés avant l'application de Amount/Limit.

<Info>
  Le filtre **Type** réduit le pool de produits constitué par vos actions de produit ; il diffère de l'action de produit **Product type**, qui *renvoie* les produits d'un type donné. Utilisez le filtre lorsque vous souhaitez restreindre ce qu'une action plus large (comme une action de collection ou dynamique) peut renvoyer.
</Info>

<Info>
  Sort est appliqué en premier, puis Amount/Limit. Par exemple, si votre tri est défini sur **Random**, l'ensemble du pool de produits est mélangé avant l'application de la limite ; vous obtenez donc toujours un échantillon aléatoire, et non les mêmes produits dans un ordre aléatoire.
</Info>

<div id="key-value-actions">
  ### Actions clé-valeur
</div>

Vous pouvez éventuellement associer des paires clé-valeur à une règle. Lorsque la règle correspond, elles sont renvoyées dans `meta.data` dans la réponse de l'API, avec les résultats produits. Usages courants :

* Texte de bannière promotionnelle
* Libellés de campagne pour les analytics

<Note>
  Si plusieurs règles correspondent et émettent la même clé, c'est la valeur de la première règle correspondante qui l'emporte ; les règles suivantes ne peuvent pas la remplacer.
</Note>

<div id="rule-priority-and-evaluation-order">
  ## Priorité des règles et ordre d'évaluation
</div>

Les règles d'une Stratégie sont évaluées dans l'ordre, une étape à la fois. L'étape 1 est évaluée en premier, et ainsi de suite. Vous pouvez réorganiser les règles par glisser-déposer dans l'éditeur de Stratégie. Le moteur d'évaluation :

1. Évalue les déclencheurs de chaque règle par rapport au contexte fourni.
2. Collecte les produits de toutes les règles correspondantes.
3. Déduplique et limite le résultat au maximum configuré (par défaut : 20 produits).

<div id="global-filters">
  ## Filtres globaux
</div>

Les filtres globaux retirent des produits de l'éligibilité à la sélection pour toutes les règles d'une Stratégie. Vous y accédez via l'**icône de filtre** à côté du nom de la Stratégie, en haut à gauche de l'éditeur de Stratégie.

Filtres globaux disponibles :

* **Exclude out of stock** - exclut automatiquement tout produit actuellement indisponible à l'achat.
* **Exclude input products** - exclut le ou les produits ayant déclenché la règle (par ex. le produit que l'acheteur consulte actuellement sur une PDP), afin de ne jamais recommander le produit que l'acheteur regarde déjà.
* **Exclude by product tag** - exclut les produits portant des tags spécifiques.
* **Exclude by metafield** - exclut les produits correspondant à un namespace/clé/valeur de metafield spécifique.
* **Exclude by product ID** - exclut des produits spécifiques par ID.
* **Require stock at location** - ne conserve que les produits disposant d'un stock disponible dans un emplacement choisi (nécessite les autorisations de lecture de l'inventaire et des emplacements).

<div id="catch-all">
  ## Catch all
</div>

Le Catch all est une règle spéciale qui constitue l'étape finale de chaque évaluation de Stratégie. Il n'a pas de déclencheur ; il se déclenche automatiquement si aucune autre règle de la Stratégie ne correspond à la requête en cours.

Lorsqu'il est activé, le Catch all garantit que votre emplacement de recommandation n'est jamais vide. Son action peut être configurée avec n'importe quel type d'action disponible pour les règles classiques : produits spécifiques, collections, actions dynamiques, etc.

* **Activer/désactiver** - active ou désactive la règle Catch all pour la Stratégie. Lorsqu'elle est désactivée, les requêtes ne correspondant à aucune règle renvoient un résultat vide.
* **Configurer les actions** - définissez ce qu'il faut renvoyer à l'aide de n'importe quelle combinaison de types d'actions disponibles, comme pour toute autre règle.

Lorsque le Catch all se déclenche, la réponse de l'API indique `resolution.fallbackUsed: true`.
