Événements recommandés
Les événements recommandés reposent sur un framework qui envoie des événements personnalisés standardisés avec des schémas JSON définis. Lorsque vous envoyez un événement recommandé, Braze le valide par rapport à son schéma lors de l’ingestion et applique un traitement spécialisé, comme le calcul automatique de champs ou la gestion du panier, que les événements personnalisés génériques ne reçoivent pas. Pour certains ensembles d’événements sectoriels, Braze prend également en charge un traitement spécial, comme des déclencheurs basés sur l’action dédiés pour les Campaigns et les Canvas.
Événements recommandés eCommerce
Les événements recommandés eCommerce couvrent six étapes du parcours d’achat : product_viewed, cart_updated, checkout_started, order_placed, order_cancelled et order_refunded. Lorsque vous envoyez ces événements avec succès, Braze valide les données et les rend disponibles pour un ensemble croissant de fonctionnalités de la plateforme.
Ces fonctionnalités comprennent des modèles Canvas pour les flux de navigation abandonnée, de panier abandonné, de paiement abandonné et de confirmation de commande ; le reporting eCommerce ; et les champs calculés du profil utilisateur pour le chiffre d’affaires total, les commandes totales et les remboursements totaux. Vous pouvez également créer des Segments à l’aide du filtrage de propriétés de produit imbriquées via les extensions de segments, personnaliser les messages de panier abandonné avec l’étiquette Liquid {% shopping_cart %}, et alimenter les capacités BrazeAITM telles que les événements prédictifs, la prédiction du taux d’attrition et les recommandations d’articles, ainsi que d’autres capacités.
Comme ces événements suivent un schéma défini, chaque fonctionnalité prise en charge peut lire les données structurées sans mappage de propriétés personnalisé ni configuration par fonctionnalité de votre côté.

L’ancien événement d’achat passe en mode maintenance. Les clients Braze existants peuvent continuer à utiliser les anciens événements d’achat. Ils continueront de fonctionner normalement, mais les nouvelles fonctionnalités seront désormais développées sur la base des événements recommandés pour le commerce électronique. Braze vous informera bien à l’avance avant qu’une date de fin de vie ne soit fixée. Les nouveaux clients Braze doivent utiliser les événements recommandés pour le commerce électronique, car les anciens événements d’achat ne seront pas disponibles.
Comment fonctionnent les événements eCommerce
Les événements eCommerce sont des événements personnalisés avec des noms et des schémas de propriétés prédéfinis. Vous les envoyez à l’aide du SDK Braze, de l’endpoint REST API /users/track ou de l’ingestion de données cloud (CDI), et Braze valide chaque événement par rapport à son schéma lors de l’ingestion. Lorsque la validation réussit, Braze applique automatiquement un post-traitement spécifique à ce type d’événement, comme le calcul des champs de chiffre d’affaires et la gestion de l’état du panier sur les profils utilisateurs.

Les imports CSV ne prennent pas en charge les événements eCommerce. Utilisez le SDK, /users/track ou CDI pour envoyer ces événements.
Les événements eCommerce fonctionnent partout où les autres événements personnalisés fonctionnent : déclencheurs et filtres pour les événements personnalisés effectués, reporting des événements personnalisés, et plus encore. Cependant, leur validation de schéma débloque des capacités supplémentaires, notamment :
- Les actions de déclenchement « Passe une commande » dans les Campaigns, Canvas, les étapes de parcours d’action, les déclencheurs de messages in-app et la suppression de Content Cards
- Les champs calculés du profil utilisateur eCommerce (Chiffre d’affaires total, Commandes totales, Remboursements totaux)
- La gestion de l’état du panier pour les flux de panier abandonné
- Des données plus riches pour les fonctionnalités BrazeAITM comme les événements prédictifs, la prédiction du taux d’attrition et les recommandations d’articles
Vous pouvez également référencer les événements eCommerce par leur nom partout où la plateforme prend en charge les événements personnalisés. Par exemple, vous pouvez déclencher une Campaign basée sur une action avec les événements ecommerce.product_viewed, créer un Segment filtrant sur les événements ecommerce.checkout_started, ou exporter les événements ecommerce.order_placed via Currents.
Nommage des événements
Les noms d’événements sont exacts, sensibles à la casse et séparés par des points. Utilisez toujours le format canonique. Si un nom d’événement ne correspond pas exactement à l’un des six noms canoniques, Braze le traite comme un événement personnalisé standard et aucun post-traitement eCommerce n’a lieu.
Vous ne pouvez pas personnaliser ni renommer les événements.
- Correct :
ecommerce.order_placed - Incorrect :
order.placed,eCommerce_order_placed,Order_Placed
Schémas d’événements
Les six événements recommandés eCommerce correspondent aux étapes du parcours d’achat. Déclenchez chaque événement au moment où l’utilisateur effectue l’action correspondante.


Les exemples suivants montrent le payload de la REST API pour chaque événement.
Pour la journalisation côté client, ecommerce.product_viewed, ecommerce.cart_updated, ecommerce.checkout_started et ecommerce.order_placed utilisent les API d’événements eCommerce du SDK lorsqu’elles sont disponibles, tandis que ecommerce.order_cancelled et ecommerce.order_refunded utilisent logCustomEvent. Pour des exemples de déploiement spécifiques à chaque plateforme, consultez Journaliser les événements eCommerce via le SDK Braze.
Se déclenche lorsqu’un utilisateur consulte une page de détails produit. Cet événement est compatible avec les notifications de retour en stock et les notifications de baisse de prix du catalogue Braze.
Déploiement côté client
Utilisez les API d’événements eCommerce du SDK lorsqu’elles sont disponibles. Pour des exemples de déploiement spécifiques à chaque plateforme, consultez Journaliser les événements eCommerce via le SDK Braze.
Propriétés d’événement
| Nom de propriété | Type de données | Obligatoire | Description |
|---|---|---|---|
product_id |
String | Oui | Identifiant unique du produit (par exemple, SKU ou ID d’article). |
product_name |
String | Oui | Nom d’affichage du produit. |
variant_id |
String | Oui | Identifiant de la variante du produit (par exemple, shirt_medium_blue). |
image_url |
String | Non | URL de l’image du produit. |
product_url |
String | Non | URL vers la page produit pour plus de détails. |
price |
Float | Oui | Prix unitaire de la variante au moment de la consultation. |
currency |
String | Oui | Code ISO 4217 à trois lettres (par exemple, USD ou EUR). |
source |
String | Oui | Source d’origine de l’événement (par exemple, web, ios ou android). |
type |
Array of strings | Non | Requis pour utiliser les fonctionnalités de déclenchement de catalogue Braze pour les alertes de retour en stock et de baisse de prix. Valeurs acceptées : "price_drop", "back_in_stock" |
metadata |
Object | Non | Paires clé-valeur flexibles (par exemple, category ou brand). |
Exemple REST API
{
"events": [
{
"external_id": "user_98765",
"name": "ecommerce.product_viewed",
"time": "2026-04-28T14:22:11Z",
"properties": {
"product_id": "SKU-RUN-4821",
"product_name": "Ultraboost Running Shoe",
"variant_id": "UB-BLK-11",
"image_url": "https://cdn.example.com/shoes/ub-blk-11.jpg",
"product_url": "https://www.example.com/products/ultraboost-running-shoe?variant=UB-BLK-11",
"price": 189.99,
"currency": "USD",
"source": "web",
"type": ["price_drop", "back_in_stock"],
"metadata": {
"category": "Running Shoes",
"brand": "Shoe Brand"
}
}
}
]
}
Se déclenche chaque fois que le contenu du panier d’un utilisateur change.
Déploiement côté client
Utilisez les API d’événements eCommerce du SDK lorsqu’elles sont disponibles. Pour des exemples de déploiement spécifiques à chaque plateforme, consultez Journaliser les événements eCommerce via le SDK Braze.
Vous pouvez envoyer cet événement de deux façons :
- Remplacement complet du panier : Omettez
actionou définissezactionsurreplace. Incluez l’ensemble complet des lignes d’articles dansproductsavec des quantités absolues (nombre total d’unités par variante dans le panier). Vous devez incluretotal_value. - Mises à jour incrémentielles du panier : Définissez
actionsuraddouremove. N’incluez que les lignes d’articles qui ont changé. Chaquequantitycorrespond au nombre d’unités à ajouter ou à retirer, pas à la quantité totale dans le panier. Pouradd, Braze augmente la quantité de la ligne ou ajoute une nouvelle ligne. Pourremove, Braze diminue la quantité de la ligne et supprime la ligne lorsque la quantité atteint0.total_valueest optionnel pouraddetremove.

Utilisez soit les mises à jour incrémentielles du panier (add ou remove), soit le remplacement complet (pas de action ou replace) pour un panier donné. Mélanger les deux approches pour le même cart_id n’est pas recommandé et peut entraîner un état de panier incohérent dans Braze.
Pour déclencher l’envoi de messages à partir de cet événement, utilisez le déclencheur Effectuer un événement de mise à jour du panier dans Canvas et les Campaigns. Ce déclencheur inclut un traitement spécial pour empêcher le panier de progresser dans l’entonnoir d’achat.

Le panier crée un objet de mappage des paniers sur le profil utilisateur qui alimente l’étiquette Liquid {% shopping_cart %}. Le panier expire après 30 jours sans mise à jour. Si deux profils utilisateurs fusionnent, Braze conserve les deux paniers.
Propriétés d’événement
| Propriété | Type de données | Obligatoire | Description |
|---|---|---|---|
cart_id |
String | Oui | Identifiant unique du panier. Partagé entre les événements de panier, de paiement et de commande pour le mappage du panier de l’utilisateur. |
action |
String | Non | add (augmenter la quantité ou ajouter une ligne), remove (diminuer la quantité ; la ligne est supprimée à 0) ou replace (remplacement complet du panier, identique à l’omission de action). |
total_value |
Float | Conditionnel | Obligatoire lorsque action est omis ou vaut replace. Optionnel lorsque action est add ou remove. |
subtotal_value |
Float | Non | Sous-total du panier (après remises, avant taxes/frais de livraison). |
tax |
Float | Non | Total des taxes appliquées au panier. |
shipping |
Float | Non | Frais de livraison totaux pour le panier. |
currency |
String | Oui | Code ISO 4217 à trois lettres. |
products |
Array | Oui | Lignes d’articles pour cette mise à jour. Pour le remplacement complet (pas de action ou replace), incluez le panier complet avec des quantités absolues. Pour add ou remove, n’incluez que les lignes modifiées ; voir les propriétés de produit. |
source |
String | Oui | Source d’origine de l’événement. |
metadata |
Object | Non | Paires clé-valeur flexibles pour des données supplémentaires au niveau de l’événement. |
Propriétés de produit (products[])
| Propriété | Type de données | Obligatoire | Description |
|---|---|---|---|
product_id |
String | Oui | Identifiant unique du produit. |
product_name |
String | Oui | Nom d’affichage du produit. |
variant_id |
String | Oui | Identifiant de la variante. |
image_url |
String | Non | URL de l’image du produit. |
product_url |
String | Non | URL vers la page produit. |
quantity |
Integer | Oui | Pour le remplacement complet (pas de action ou replace), nombre d’unités dans le panier pour cette ligne. Pour add ou remove, nombre d’unités à ajouter ou à retirer. |
price |
Float | Oui | Prix unitaire de la variante. |
metadata |
Object | Non | Paires clé-valeur flexibles (par exemple, color ou size). |
Se déclenche lorsque l’utilisateur initie le flux de paiement (par exemple, sélectionne « Paiement » ou arrive sur la page de paiement).
Déploiement côté client
Utilisez les API d’événements eCommerce du SDK lorsqu’elles sont disponibles. Pour des exemples de déploiement spécifiques à chaque plateforme, consultez Journaliser les événements eCommerce via le SDK Braze.
Propriétés d’événement
| Propriété | Type | Obligatoire | Description |
|---|---|---|---|
| checkout_id | String | Oui | Identifiant unique de la session de paiement. |
| cart_id | String | Non | Identifiant du panier. Partagé entre les événements de panier, de paiement et de commande pour le mappage du panier de l’utilisateur. |
| total_value | Float | Oui | Valeur monétaire totale du paiement. |
| subtotal_value | Float | Non | Sous-total (après remises, avant taxes/frais de livraison). |
| tax | Float | Non | Total des taxes appliquées au paiement. |
| shipping | Float | Non | Frais de livraison totaux. |
| currency | String | Oui | Code ISO 4217 à trois lettres. |
| products | Array | Oui | Articles en cours de paiement. Voir le sous-tableau des propriétés de produit. |
| source | String | Oui | Source d’origine de l’événement. |
| metadata | Object | Non | Paires clé-valeur flexibles. Sous-propriété reconnue : checkout_url (String) |
Propriétés de produit (products[])
| Propriété | Type de données | Obligatoire | Description |
|---|---|---|---|
product_id |
String | Oui | Identifiant unique du produit. |
product_name |
String | Oui | Nom d’affichage du produit. |
variant_id |
String | Oui | Identifiant de la variante. |
image_url |
String | Non | URL de l’image du produit. |
product_url |
String | Non | URL vers la page produit. |
quantity |
Integer | Oui | Nombre d’unités dans le panier. |
price |
Float | Oui | Prix unitaire de la variante. |
metadata |
Object | Non | Paires clé-valeur flexibles (par exemple, couleur, taille). |
Exemple REST API
{
"events": [
{
"external_id": "user_98765",
"name": "ecommerce.checkout_started",
"time": "2026-04-28T14:30:05Z",
"properties": {
"checkout_id": "chk_88291",
"cart_id": "cart_abc123",
"total_value": 234.96,
"subtotal_value": 219.97,
"tax": 9.0,
"shipping": 5.99,
"currency": "USD",
"products": [
{
"product_id": "SKU-RUN-4821",
"product_name": "Ultraboost Running Shoe",
"variant_id": "UB-BLK-11",
"image_url": "https://cdn.example.com/shoes/ub-blk-11.jpg",
"product_url": "https://www.example.com/products/ultraboost-running-shoe?variant=UB-BLK-11",
"quantity": 1,
"price": 189.99,
"metadata": {
"color": "Core Black",
"size": "11"
}
},
{
"product_id": "SKU-SOC-1102",
"product_name": "Performance Running Socks",
"variant_id": "SOC-WHT-L",
"image_url": "https://cdn.example.com/socks/soc-wht-l.jpg",
"product_url": "https://www.example.com/products/performance-running-socks?variant=SOC-WHT-L",
"quantity": 2,
"price": 14.99,
"metadata": {
"color": "White",
"size": "L"
}
}
],
"source": "web",
"metadata": {
"checkout_url": "https://www.example.com/checkout/chk_88291",
"checkout_type": "express"
}
}
}
]
}
Se déclenche lorsqu’une commande est passée avec succès ou que le paiement est confirmé.
Déploiement côté client
Utilisez les API d’événements eCommerce du SDK lorsqu’elles sont disponibles. Pour des exemples de déploiement spécifiques à chaque plateforme, consultez Journaliser les événements eCommerce via le SDK Braze.

Cet événement est le principal moteur de chiffre d’affaires. Il incrémente total_revenue de la valeur de total_value et incrémente total_orders de 1 sur le profil utilisateur.
Propriétés d’événement
| Propriété | Type de données | Obligatoire | Description |
|---|---|---|---|
order_id |
String | Oui | Identifiant unique de la commande. |
cart_id |
String | Non | Identifiant du panier. Partagé entre les événements de panier, de paiement et de commande pour le mappage du panier de l’utilisateur. |
total_value |
Float | Oui | Valeur monétaire totale de la commande. |
subtotal_value |
Float | Non | Sous-total (après remises, avant taxes/frais de livraison). |
tax |
Float | Non | Total des taxes appliquées à la commande. |
shipping |
Float | Non | Frais de livraison totaux. |
currency |
String | Oui | Code ISO 4217 à trois lettres. |
total_discounts |
Float | Non | Montant total des remises appliquées à la commande. |
discounts |
Array | Non | Liste détaillée des remises appliquées. |
products |
Array | Oui | Articles de la commande. Voir le sous-tableau des propriétés de produit. |
source |
String | Oui | Source d’origine de l’événement. |
metadata |
Object | Non | Paires clé-valeur flexibles. Sous-propriété reconnue : order_status_url (String) |
Propriétés de produit (products[])
| Propriété | Type de données | Obligatoire | Description |
|---|---|---|---|
product_id |
String | Oui | Identifiant unique du produit. |
product_name |
String | Oui | Nom d’affichage du produit. |
variant_id |
String | Oui | Identifiant de la variante. |
image_url |
String | Non | URL de l’image du produit. |
product_url |
String | Non | URL vers la page produit. |
quantity |
Integer | Oui | Nombre d’unités dans le panier. |
price |
Float | Oui | Prix unitaire de la variante. |
metadata |
Object | Non | Paires clé-valeur flexibles (par exemple, color ou size). |
Exemple REST API
{
"events": [
{
"external_id": "user_98765",
"name": "ecommerce.order_placed",
"time": "2026-04-28T14:35:42Z",
"properties": {
"order_id": "ord_77821",
"cart_id": "cart_abc123",
"total_value": 224.96,
"subtotal_value": 209.97,
"tax": 9.0,
"shipping": 5.99,
"currency": "USD",
"total_discounts": 10.0,
"discounts": [
{
"code": "SPRING10",
"amount": 10.0,
"type": "percentage"
}
],
"products": [
{
"product_id": "SKU-RUN-4821",
"product_name": "Ultraboost Running Shoe",
"variant_id": "UB-BLK-11",
"image_url": "https://cdn.example.com/shoes/ub-blk-11.jpg",
"product_url": "https://www.example.com/products/ultraboost-running-shoe?variant=UB-BLK-11",
"quantity": 1,
"price": 189.99,
"metadata": {
"color": "Core Black",
"size": "11"
}
},
{
"product_id": "SKU-SOC-1102",
"product_name": "Performance Running Socks",
"variant_id": "SOC-WHT-L",
"image_url": "https://cdn.example.com/socks/soc-wht-l.jpg",
"product_url": "https://www.example.com/products/performance-running-socks?variant=SOC-WHT-L",
"quantity": 2,
"price": 14.99,
"metadata": {
"color": "White",
"size": "L"
}
}
],
"source": "web",
"metadata": {
"order_status_url": "https://www.example.com/orders/ord_77821/status"
}
}
}
]
}
Se déclenche lorsqu’une commande est annulée.
Déploiement côté client
Utilisez logCustomEvent. Pour des exemples de déploiement spécifiques à chaque plateforme, consultez Journaliser les événements eCommerce via le SDK Braze.

Cet événement décrémente total_orders de 1 sur le profil utilisateur. Il n’affecte pas total_revenue ; utilisez order_refunded pour ajuster le chiffre d’affaires.
Propriétés d’événement
| Propriété | Type | Obligatoire | Description |
|---|---|---|---|
order_id |
String | Oui | Identifiant unique de la commande. |
total_value |
Float | Oui | Valeur monétaire totale de la commande annulée. Doit être ≥ 0 — envoyez le montant absolu ; Braze gère la décrémentation. |
subtotal_value |
Float | Non | Sous-total (après remises, avant taxes/frais de livraison). |
tax |
Float | Non | Total des taxes appliquées à la commande. |
shipping |
Float | Non | Frais de livraison totaux. |
currency |
String | Oui | Code ISO 4217 à trois lettres. |
total_discounts |
Float | Non | Montant total des remises appliquées à la commande. |
discounts |
Array | Non | Liste détaillée des remises appliquées. |
cancel_reason |
String | Oui | Raison de l’annulation de la commande. |
products |
Array | Oui | Articles de la commande annulée. Voir le sous-tableau des propriétés de produit. |
source |
String | Oui | Source d’origine de l’événement. |
metadata |
Object | Non | Paires clé-valeur flexibles. Sous-propriété reconnue : order_status_url (String) |
Propriétés de produit (products[])
| Propriété | Type de données | Obligatoire | Description |
|---|---|---|---|
product_id |
String | Oui | Identifiant unique du produit. |
product_name |
String | Oui | Nom d’affichage du produit. |
variant_id |
String | Oui | Identifiant de la variante. |
image_url |
String | Non | URL de l’image du produit. |
product_url |
String | Non | URL vers la page produit. |
quantity |
Integer | Oui | Nombre d’unités dans le panier. |
price |
Float | Oui | Prix unitaire de la variante. |
metadata |
Object | Non | Paires clé-valeur flexibles (par exemple, color ou size). |
Exemple REST API
{
"events": [
{
"external_id": "user_98765",
"name": "ecommerce.order_cancelled",
"time": "2026-04-28T16:10:00Z",
"properties": {
"order_id": "ord_77821",
"total_value": 224.96,
"subtotal_value": 209.97,
"tax": 9.0,
"shipping": 5.99,
"currency": "USD",
"total_discounts": 10.0,
"cancel_reason": "customer_request",
"products": [
{
"product_id": "SKU-RUN-4821",
"product_name": "Ultraboost Running Shoe",
"variant_id": "UB-BLK-11",
"quantity": 1,
"price": 189.99,
"metadata": {
"color": "Core Black",
"size": "11"
}
},
{
"product_id": "SKU-SOC-1102",
"product_name": "Performance Running Socks",
"variant_id": "SOC-WHT-L",
"quantity": 2,
"price": 14.99,
"metadata": {
"color": "White",
"size": "L"
}
}
],
"source": "web",
"metadata": {
"order_status_url": "https://www.example.com/orders/ord_77821/status"
}
}
}
]
}
Se déclenche lorsqu’un remboursement total ou partiel est émis.
Déploiement côté client
Utilisez logCustomEvent. Pour des exemples de déploiement spécifiques à chaque plateforme, consultez Journaliser les événements eCommerce via le SDK Braze.

Cet événement décrémente total_revenue de la valeur de total_value et incrémente total_refunds sur le profil utilisateur. Pour les remboursements partiels, définissez total_value sur le montant remboursé uniquement, pas sur le total de la commande d’origine.
Propriétés d’événement
| Propriété | Type de données | Obligatoire | Description |
|---|---|---|---|
order_id |
String | Oui | Identifiant unique de la commande d’origine. |
total_value |
Float | Oui | Valeur monétaire totale du remboursement. Doit être ≥ 0 — envoyez le montant absolu ; Braze gère l’incrémentation de total_refunds. |
currency |
String | Oui | Code ISO 4217 à trois lettres. |
total_discounts |
Float | Non | Montant total des remises initialement appliquées. |
discounts |
Array | Non | Liste détaillée des remises. |
products |
Array | Oui | Articles remboursés. Voir le sous-tableau des propriétés de produit. |
source |
String | Oui | Source d’origine de l’événement. |
metadata |
Object | Non | Paires clé-valeur flexibles. Sous-propriété reconnue : order_status_url (String). |
Propriétés de produit (products[])
| Propriété | Type de données | Obligatoire | Description |
|---|---|---|---|
product_id |
String | Oui | Identifiant unique du produit. |
product_name |
String | Oui | Nom d’affichage du produit. |
variant_id |
String | Oui | Identifiant de la variante. |
image_url |
String | Non | URL de l’image du produit. |
product_url |
String | Non | URL vers la page produit. |
quantity |
Integer | Oui | Nombre d’unités dans le panier. |
price |
Float | Oui | Prix unitaire de la variante. |
metadata |
Object | Non | Paires clé-valeur flexibles (par exemple, color ou size). |
Exemples REST API
{
"events": [
{
"external_id": "user_98765",
"name": "ecommerce.order_refunded",
"time": "2026-04-29T10:05:00Z",
"properties": {
"order_id": "ord_77821",
"total_value": 189.99,
"currency": "USD",
"total_discounts": 0,
"products": [
{
"product_id": "SKU-RUN-4821",
"product_name": "Ultraboost Running Shoe",
"variant_id": "UB-BLK-11",
"quantity": 1,
"price": 189.99,
"metadata": {
"color": "Core Black",
"size": "11",
"refund_reason": "size_mismatch"
}
}
],
"source": "web",
"metadata": {
"order_status_url": "https://www.example.com/orders/ord_77821/status"
}
}
}
]
}
{
"events": [
{
"external_id": "user_98765",
"name": "ecommerce.order_refunded",
"time": "2026-05-02T11:08:30Z",
"properties": {
"order_id": "ORD-20260428-7891",
"total_value": 29.98,
"currency": "USD",
"products": [
{
"product_id": "SKU-SOC-1102",
"product_name": "Performance Running Socks",
"variant_id": "SOC-WHT-L",
"image_url": "https://cdn.example.com/socks/soc-wht-l.jpg",
"product_url": "https://www.example.com/products/performance-running-socks?variant=SOC-WHT-L",
"quantity": 2,
"price": 14.99,
"metadata": {
"color": "White",
"size": "L"
}
}
],
"source": "web",
"metadata": {
"refund_method": "store_credit",
"initiated_by": "customer"
}
}
}
]
}
Post-traitement des événements eCommerce
Lorsque vous envoyez un événement eCommerce, Braze le valide par rapport au schéma attendu pour ce nom d’événement.
Le tableau suivant résume ce que Braze fait automatiquement pour chaque événement lorsque la validation réussit. Pour savoir ce qui se passe en cas d’échec de la validation, consultez Validation et résolution des problèmes des événements.
| Événement | Ce que Braze fait automatiquement |
|---|---|
ecommerce.order_placed |
Incrémente le chiffre d’affaires total de total_value et les commandes totales de 1 sur le profil utilisateur. |
ecommerce.order_cancelled |
Décrémente les commandes totales de 1. |
ecommerce.order_refunded |
Décrémente le chiffre d’affaires total de total_value et incrémente la valeur totale des remboursements. |
ecommerce.cart_updated |
Crée ou met à jour l’objet de mappage des paniers sur le profil utilisateur (payloads de panier complets, ou mises à jour incrémentielles du panier avec l’action optionnelle : add, remove ou replace). Le panier expire après 30 jours sans mise à jour. |
ecommerce.product_viewed |
Aucune modification du profil utilisateur. Disponible pour la segmentation, le déclenchement et les fonctionnalités BrazeAITM (comme les recommandations d’articles). |
ecommerce.checkout_started |
Aucune modification du profil utilisateur. Disponible pour la segmentation et le déclenchement (par exemple, les flux de paiement abandonné). |

Les valeurs dans des devises autres que l’USD sont automatiquement converties en USD en utilisant le taux de change à la date à laquelle l’événement est signalé. Si vous effectuez déjà vos rapports en USD, codez en dur USD comme devise pour éviter toute conversion non souhaitée.
Détails d’implémentation
Points de donnée et facturation
Les événements eCommerce ne consomment pas de points de donnée. Vous pouvez les enregistrer sans aucun impact sur votre utilisation des points de donnée.
Limite de taille des événements
Les propriétés d’événement envoyées à /users/track sont plafonnées à 102 400 octets (100 Ko) par événement. Pour les messages déclenchés de Campaign et de Canvas, les trigger_properties envoyées à /campaigns/trigger/send et /canvas/trigger/send ont une limite par défaut plus stricte de 51 200 octets (50 Ko).
En bonne pratique, n’envoyez que les informations produit nécessaires au déclenchement, à la personnalisation ou à l’attribution de l’événement. Stockez les détails produit plus riches — comme les descriptions, les listes complètes de variantes, l’inventaire ou les images alternatives — dans les catalogues Braze. Référencez ces détails par product_id ou variant_id lors de l’envoi de messages. Utilisez l’objet metadata de manière sélective pour le contexte spécifique à la commande ou au produit que la communication utilisera.
Gestion des devises
Braze convertit automatiquement les valeurs de devise non USD en USD en utilisant le taux de change à la date à laquelle l’événement est signalé. Cette valeur convertie est celle qui apparaît dans les indicateurs de chiffre d’affaires.

Si vous opérez uniquement en USD, codez en dur "currency": "USD" dans chaque événement pour éviter les conversions inutiles.
Champ source
La propriété source est une chaîne de caractères obligatoire qui identifie l’origine de l’événement. Par exemple, shopify, in-store POS ou custom_api. Cela vous aide à distinguer les sources d’intégration lors de l’analyse des données dans les exports Currents ou du débogage des problèmes de validation.
Flexibilité des métadonnées
Les objets de métadonnées au niveau de l’événement et au niveau du produit acceptent des paires clé-valeur arbitraires, ce qui vous permet d’ajouter des dimensions personnalisées sans modifier le schéma principal. Parmi les exemples courants : order_status_url, gift_wrapped, loyalty_points_earned ou warehouse_id. Ces propriétés sont disponibles dans la personnalisation Liquid, les exports Currents et la segmentation via les extensions de segments.

Les événements recommandés utilisent un schéma strict. Par conséquent, l’ajout de propriétés personnalisées au niveau supérieur des propriétés échouera à la validation. Placez toutes les propriétés personnalisées dans l’objet metadata au niveau de l’événement ou dans l’objet metadata au niveau du produit à l’intérieur de products[]. Elles restent disponibles pour Liquid, Currents et la segmentation, tout comme les champs de niveau supérieur.
Validation et résolution des problèmes des événements
Lorsque vous envoyez un événement eCommerce recommandé via /users/track ou l’un des SDK Braze, Braze valide le payload par rapport au schéma JSON de l’événement lors du traitement de l’événement recommandé. La validation s’exécute automatiquement pour chaque événement dont le nom correspond exactement à un événement recommandé (par exemple, ecommerce.order_placed ou ecommerce.cart_updated).
Ce que nous validons
Pour chaque événement dont le nom correspond à un événement eCommerce recommandé, Braze vérifie :
| Vérification | Exemple |
|---|---|
| Nom de l’événement | Doit être exact. Par exemple, ecommerce.cart_updated est correct — pas ecommerce.Cart_Updated, cartupdated ou cart_updated. |
| Propriétés requises présentes | order_placed requiert order_id, total_value, currency, products et source. |
| Types de données corrects | total_value doit être un nombre ; currency doit être une chaîne de caractères ; products doit être un tableau. |
| Pas de propriétés supplémentaires au niveau supérieur | Les champs personnalisés sous properties provoquent un échec. Utilisez plutôt l’objet metadata. |
| Contraintes de valeur | Les champs monétaires doivent être ≥ 0. currency doit être une chaîne ISO 4217 valide. |
| Champs par produit | Chaque élément dans products[] doit inclure product_id, product_name, variant_id, quantity et price. |
Pourquoi nous validons
Les événements eCommerce alimentent des fonctionnalités qui dépendent de données cohérentes et prévisibles, notamment le suivi du chiffre d’affaires, l’étiquette Liquid {% shopping_cart %}, le déclencheur de panier abandonné et le reporting. Lorsque les payloads divergent du schéma, ces fonctionnalités produisent des inexactitudes silencieuses (totaux de chiffre d’affaires erronés, paniers manquants, déclencheurs défaillants). La validation applique le contrat en amont pour que les fonctionnalités en aval se comportent de manière prévisible.
Quand la validation réussit
L’événement est traité comme un événement eCommerce recommandé avec l’ensemble du post-traitement associé. Consultez les événements eCommerce recommandés pour la liste complète des comportements déclenchés par chaque type d’événement.
Vérifier un événement réussi
Après l’envoi d’un événement, vous pouvez confirmer qu’il a été accepté et traité correctement en utilisant l’une des méthodes suivantes :
- Journal des événements utilisateurs : ouvrez le profil de l’utilisateur dans le tableau de bord et consultez son activité. Les événements recommandés apparaissent avec l’intégralité de leur payload de propriétés, ce qui vous permet de confirmer que l’événement est bien arrivé et que les valeurs correspondent à ce que vous avez envoyé.
- Rapport des événements personnalisés : accédez à Analytics > Custom Events Report pour voir les comptages agrégés de chaque événement recommandé au fil du temps. C’est utile pour confirmer que le trafic de production circule comme prévu lorsque votre intégration est en production.
- Utilisateurs test : marquez un utilisateur dans votre espace de travail de développement comme utilisateur test, puis déclenchez des événements depuis votre intégration pour cet utilisateur. Les utilisateurs test sont signalés dans le tableau de bord, ce qui facilite l’isolation et l’inspection du comportement de bout en bout.
Quand la validation échoue
L’événement n’est pas traité comme un événement recommandé. Plus précisément :
- L’événement est entièrement rejeté. Les événements eCommerce recommandés invalides n’apparaissent pas sur le profil utilisateur, n’apparaissent pas dans Currents et ne sont pas disponibles pour la segmentation.
- Les fonctionnalités en aval des événements recommandés ne s’exécutent pas, notamment :
- Le suivi du chiffre d’affaires (reporting du chiffre d’affaires, champs calculés utilisateur comme
total_revenue) - Les mises à jour de l’objet panier sur le profil utilisateur
- Les déclencheurs Update Cart ou Place Order dans Canvas et les Campaigns
- Le suivi du chiffre d’affaires (reporting du chiffre d’affaires, champs calculés utilisateur comme
La manière dont les erreurs sont signalées dépend du chemin d’ingestion :
- REST API (
/users/track) : chaque événement invalide est signalé dans le tableau errors de la réponse. Chaque entrée vous indique quel événement a échoué (index) et pourquoi (type). Le champ message au niveau supérieur indique toujours « success », ce qui signifie simplement que votre requête a atteint Braze, pas que chaque événement était valide. Vérifiez toujours la présence d’un tableau errors dans la réponse. - SDK Braze : les appels SDK retournent immédiatement et la validation s’exécute en arrière-plan, les erreurs ne sont donc pas renvoyées à votre application. Pour être informé des échecs de validation des événements eCommerce, surveillez l’e-mail de résumé des échecs (voir Trouver les échecs).
Exemple de réponse d’erreur API
L’endpoint /users/track renvoie des erreurs au niveau des champs indiquant quelles propriétés ont échoué et pourquoi. Notez que le message au niveau supérieur peut renvoyer "success" car l’événement a été accepté dans le pipeline ; le tableau errors vous indique quels champs ont échoué à la validation du schéma. Consultez l’exemple de réponse d’erreur ci-dessous.
{
"message": "success",
"errors": [{ "index": 0, "input_array": "purchases", "type": "'currency' must be an ISO 4217 currency" }]
}
Les échecs sont également classés en interne et agrégés pour l’e-mail de résumé des échecs :
| Type d’échec | Signification | Exemple |
|---|---|---|
missing_property |
Un champ requis est absent. | order_placed envoyé sans order_id. |
extra_property |
Un champ a été ajouté qui n’est pas défini dans le schéma. | Un champ personnalisé gift_wrapped au niveau supérieur de properties au lieu d’être dans metadata. |
unexpected_data_type |
Un champ a un type incorrect. | total_value: "29.99" (chaîne de caractères) au lieu de 29.99 (nombre). |

Les noms d’événements qui ne correspondent pas exactement à un événement recommandé (par exemple, ecommerce.OrderPlaced) ne passent pas par la validation et sont enregistrés comme des événements personnalisés ordinaires. Ils apparaissent dans Currents et la segmentation sous le nom que vous avez envoyé, mais ne bénéficient d’aucun traitement d’événement recommandé et d’aucune entrée errors dans la réponse.
Trouver les échecs
Braze envoie aux administrateurs de votre espace de travail un e-mail de résumé des échecs de validation des événements recommandés afin que vous puissiez identifier et corriger les problèmes d’intégration sans surveiller manuellement chaque événement.
L’e-mail de résumé comprend :
- Nombre total d’erreurs : le nombre d’erreurs pour la période de reporting.
- Erreurs par événement : une répartition du nombre d’événements ayant échoué pour chaque type d’événement recommandé (par exemple,
ecommerce.cart_updatedetecommerce.order_placed). Utilisez cette information pour identifier les événements de votre intégration nécessitant une attention prioritaire. - Erreurs par source : une répartition entre API et SDK, pour vous permettre de déterminer quelle intégration génère les échecs.
Si vous ne recevez pas ces e-mails ou si vous souhaitez vérifier la liste des destinataires, contactez votre équipe de compte Braze.
Diagnostiquer et corriger les échecs
Lorsque vous recevez un e-mail de résumé des échecs :
- Identifiez l’événement défaillant et sa source. L’e-mail sépare les échecs par nom d’événement et source d’intégration (
sdkversusrest_api), ce qui vous permet de cibler précisément quelle intégration nécessite la correction. Si vous avez plusieurs sources envoyant le même événement (par exemple, le SDK de votre vitrine et un webhook backend envoyant tous deuxcart_updated), traitez-les indépendamment. - Comparez votre payload au schéma dans Schémas d’événements. La plupart des échecs correspondent à l’un des trois cas suivants :
missing_property: un champ requis est absent. Pour résoudre, ajoutez le champ requis.extra_property: un champ personnalisé se trouve au niveau supérieur deproperties. Pour résoudre, déplacez le champ personnalisé dansmetadata(au niveau de l’événement) ouproducts[].metadata(par produit).unexpected_data_type: une valeur a un type incorrect (par exemple,total_valueenvoyé comme chaîne de caractères). Pour résoudre, convertissez la valeur avant l’envoi.
- Testez le payload corrigé dans un espace de travail de développement avant de le déployer en production. Envoyez un événement test connu pour un utilisateur test, puis vérifiez le comportement attendu de l’événement recommandé sur le profil de cet utilisateur (par exemple, l’objet panier se met à jour, le chiffre d’affaires s’incrémente ou le déclencheur de panier abandonné se déclenche).
- Surveillez le prochain e-mail de résumé des échecs pour confirmer que le nombre d’échecs pour cet événement, cette source et ce type tombe à zéro.
Pour les exigences complètes des propriétés par événement, consultez Schémas d’événements.