# Comment configurer les recommandations de produits par e-mail

Définir la **Source** du bloc Produits sur **Recommandations** permet de classer les produits par **Meilleures ventes**, **De retour en stock**, **Baisse de prix**, **Nouveautés**, **Achetés ensemble** ou **Basé sur ce qu'ils ont consulté**, sans que vous ayez à choisir des produits ou à rédiger une règle de catalogue. Consultez [Obtenir des produits recommandés](/fr/product/content/email-content/drag-and-drop-email-editor/blocks/#get-recommended-products) pour chaque champ que cette source ajoute. Trois de ces stratégies nécessitent des données externes à votre catalogue pour fonctionner : **Meilleures ventes** lit votre historique de commandes, et **Achetés ensemble** et **Basé sur ce qu'ils ont consulté** lisent ce que les acheteurs ont regardé et acheté. Ce guide explique ce qu'il faut envoyer pour que chaque stratégie ait des éléments à classer.

<Aside type="tip">
Vous envoyez déjà `PW_AbandonedCart` et `PW_OrderCreated` pour la [récupération de panier abandonné](/fr/tutorials/product-guides/email-marketing-campaigns/how-to-set-up-an-abandoned-cart-campaign/) ? Continuez à lire. La stratégie **Meilleures ventes** nécessite un champ supplémentaire sur `PW_OrderCreated` que le guide sur les paniers abandonnés ne couvre pas.
</Aside>

## Avant de commencer

Assurez-vous que le catalogue de votre compte contient des produits. Allez dans **Contenu → Catalogue de produits** et connectez un flux, importez un CSV ou ajoutez des produits manuellement. [Apprenez à remplir votre catalogue](/fr/product/content/product-catalog/#ways-to-populate-your-catalog).

<Aside type="caution" icon="setting" title="Assistance d'un développeur requise">
L'envoi des événements ci-dessous nécessite l'aide de votre équipe de développement, sauf si l'intégration de votre boutique les envoie déjà pour vous. Veuillez partager ce guide avec eux.
</Aside>

<Aside type="note" title="Les nouveaux comptes voient d'abord le catalogue standard">
Chaque stratégie ci-dessous a besoin d'accumuler un historique avant de pouvoir classer quoi que ce soit. D'ici là, le bloc affiche le catalogue standard à la place. Consultez la note sous [Obtenir des produits recommandés](/fr/product/content/email-content/drag-and-drop-email-editor/blocks/#get-recommended-products).
</Aside>

## Quelles stratégies nécessitent des événements

Trois des six stratégies classent les produits à partir des événements que vous envoyez ; les trois autres se basent directement sur votre catalogue et ne nécessitent rien de votre part.

| Stratégie | Nécessite des événements ? | Source de données |
| :---- | :---- | :---- |
| **De retour en stock** | Non | Changements de stock du catalogue |
| **Baisse de prix** | Non | Changements de prix du catalogue |
| **Nouveautés** | Non | Date d'ajout au catalogue |
| **Meilleures ventes** (7/30 jours) | Oui | `PW_OrderCreated` / `PW_OrderUpdated` avec `items` |
| **Basé sur ce qu'ils ont consulté** | Oui | Tout événement contenant un ID de produit |
| **Achetés ensemble** | Oui | Tout événement contenant un ID de produit, plus un tag d'appareil |

Un changement de stock ou de prix dans votre flux, ou la prochaine synchronisation planifiée, met à jour automatiquement **De retour en stock**, **Baisse de prix** et **Nouveautés**. Rien à envoyer pour ces trois-là.

## Meilleures ventes : ajoutez des articles à vos événements de commande

**Meilleures ventes (7 jours)** et **Meilleures ventes (30 jours)** classent les produits en fonction du nombre d'unités vendues pendant cette période. Elles lisent le tableau `items` sur `PW_OrderCreated` et `PW_OrderUpdated`, en particulier le `productId` et la `quantity` de chaque article.

Si vous envoyez déjà `PW_OrderCreated` pour [effacer les tags de panier abandonné](/fr/tutorials/product-guides/email-marketing-campaigns/how-to-set-up-an-abandoned-cart-campaign/#what-happens-when-you-send-pw_ordercreated), cet appel minimal (juste `orderId`) efface toujours le panier, mais il ne donne rien à compter à la stratégie Meilleures ventes. Ajoutez les articles de la commande au même appel :

```json
{
  "request": {
    "hwid": "8f65b16df378e7a6bece9614e1530fb2",
    "application": "XXXXX-XXXXX",
    "event": "PW_OrderCreated",
    "attributes": {
      "orderId": "ORDER-10293",
      "items": [
        {
          "productId": "SKU-4821",
          "quantity": 1
        },
        {
          "productId": "SKU-5190",
          "quantity": 2
        }
      ]
    },
    "userId": "shopper@example.com"
  }
}
```

`productId` doit correspondre à l'ID que votre [Catalogue de produits](/fr/product/content/product-catalog/) utilise pour cet article, afin que la stratégie Meilleures ventes puisse rechercher le produit à afficher. Les champs d'article supplémentaires (prix, nom, etc.) sont ignorés pour cette stratégie. Seuls `productId` et `quantity` comptent pour le classement. Envoyez le même tableau `items` sur `PW_OrderUpdated` pour les modifications de commande, les remboursements ou les annulations partielles, car la stratégie Meilleures ventes recompte à partir de ce que dit le dernier événement pour cette commande.

<Aside type="tip">
Si vous utilisez l'[intégration Shopify](/fr/product/integrations/shopify-integration/), `PW_OrderCreated` contient déjà `items` avec `productId` et `quantity` pour chaque commande — rien à ajouter de votre côté. L'intégration n'envoie cependant pas `PW_OrderUpdated`, donc la stratégie Meilleures ventes compte les commandes telles qu'elles ont été passées à l'origine et ne déduit pas les unités des modifications, remboursements ou annulations ultérieurs.
</Aside>

<Aside type="caution" title="Envoyez la quantité sous forme de nombre">
Utilisez un vrai nombre JSON pour `quantity`, pas une chaîne de caractères entre guillemets. Pushwoosh ne stocke chaque valeur d'attribut que dans le type avec lequel elle a été déclarée ou inférée pour la première fois ; une valeur ne correspondant pas est supprimée silencieusement, et `postEvent` renvoie toujours un succès. Consultez [Utilisez les bons types d'attributs](/fr/tutorials/product-guides/email-marketing-campaigns/how-to-set-up-an-abandoned-cart-campaign/#create-the-events-in-your-control-panel) pour la même mise en garde concernant `PW_AbandonedCart`.
</Aside>

<Aside type="note">
**Meilleures ventes** classe spécifiquement par historique de commandes. Les vues et l'activité du panier ne comptent pas. Pour un classement qui inclut également la navigation et l'activité du panier, utilisez plutôt **Basé sur ce qu'ils ont consulté** ou **Achetés ensemble**.
</Aside>

## Basé sur ce qu'ils ont consulté et Achetés ensemble : suivez l'activité des produits

Les deux stratégies se construisent à partir du même signal : des événements qui contiennent un ID de produit. Vous n'avez pas besoin d'un nom d'événement dédié à la "consultation de produit" — tout [événement personnalisé](/fr/product/audience-data-and-segmentation/events/custom-events/) envoyé via [postEvent](/fr/developer/api-reference/user-centric-api/#postevent) compte, tant que ses `attributes` incluent l'une de ces clés :

* Un seul produit, en tant qu'attribut de premier niveau : `product_id`, `productId`, `productid`, `item_id` ou `sku`.
* Plusieurs produits, sous forme de tableau `products` où chaque élément a `product_id`, `productId`, `id` ou `sku`.

Par exemple, déclenchez votre événement de consultation de produit existant avec un attribut d'ID de produit déjà présent :

```json
{
  "request": {
    "hwid": "8f65b16df378e7a6bece9614e1530fb2",
    "application": "XXXXX-XXXXX",
    "event": "ProductViewed",
    "attributes": {
      "product_id": "SKU-4821",
      "category": "Audio"
    },
    "userId": "shopper@example.com"
  }
}
```

**Basé sur ce qu'ils ont consulté** classe les produits avec lesquels chaque acheteur a récemment interagi — aucune configuration supplémentaire n'est nécessaire une fois que les événements ci-dessus sont envoyés.

<Aside type="tip">
Si vous utilisez l'[intégration Shopify](/fr/product/integrations/shopify-integration/), l'intégration du thème de la vitrine envoie déjà `PW_ProductViewed` avec un `productId` à chaque consultation de page produit — rien à ajouter de votre côté, tant que le bouton **Push Init Embed** est activé (il est désactivé par défaut). Consultez [Événements de navigation de la vitrine](/fr/product/integrations/shopify-integration/#storefront-browsing-events).
</Aside>

**Achetés ensemble** classe les produits fréquemment achetés avec un produit d'ancrage, sur l'ensemble de l'historique de votre compte. Il a besoin d'une chose de plus : un **Tag de produit**, un [tag d'appareil](/fr/developer/api-reference/tags/) qui contient l'ID du produit d'ancrage actuel. Définissez le nom du champ lorsque vous configurez la stratégie dans le [bloc Produits](/fr/product/content/email-content/drag-and-drop-email-editor/blocks/#get-recommended-products) (par exemple `PW_LastViewedProductID`), puis maintenez ce tag à jour sur chaque appareil. Par exemple, [définissez-le](/fr/developer/api-reference/tags/) sur l'ID du produit chaque fois que l'acheteur consulte un produit. Sans le tag défini sur un destinataire, le bloc se rabat sur le catalogue standard pour lui.

<Aside type="caution" title="Règles de nommage des tags">
Le nom du tag n'accepte que les lettres, les chiffres, les tirets bas et les espaces, car il doit pouvoir être adressé en Liquid. Consultez [La stratégie Achetés ensemble nécessite un tag de produit](/fr/product/content/email-content/drag-and-drop-email-editor/blocks/#get-recommended-products).
</Aside>

## Confirmez que vos événements arrivent bien

Avant d'ajouter le bloc, vérifiez que Pushwoosh reçoit bien les événements ci-dessus : allez dans **Audience → Événements**, ouvrez l'événement que vous avez envoyé (`PW_OrderCreated` ou l'événement personnalisé contenant un ID de produit), et confirmez que des occurrences récentes apparaissent. Consultez [Statistiques des événements](/fr/product/audience-data-and-segmentation/events/).

<Aside type="note">
Un bloc Produits vide peut signifier soit "les événements ne sont jamais arrivés", soit "pas assez d'historique n'a encore été accumulé" (voir la note ci-dessus). Les statistiques des événements permettent d'écarter la première cause avant de chercher la seconde.
</Aside>

## Ajoutez le bloc à votre e-mail

Ajoutez un bloc [Produits](/fr/product/content/email-content/drag-and-drop-email-editor/blocks/#products) à votre [contenu d'e-mail](/fr/product/content/email-content/drag-and-drop-email-editor/create-email-content-with-drag-and-drop-editor/), définissez la **Source** sur **Recommandations**, et choisissez une **Stratégie**. Consultez [Obtenir des produits recommandés](/fr/product/content/email-content/drag-and-drop-email-editor/blocks/#get-recommended-products) pour chaque champ dans le panneau des paramètres. Cliquez sur **Actualiser l'aperçu** pour vérifier que le canevas se remplit avec de vrais produits avant d'envoyer.