# Shopify + Brew

Déclenchez des automatisations Brew à partir des événements Shopify liés aux clients, aux commandes, au checkout et aux expéditions. De quoi alimenter vos séquences de bienvenue, de confirmation de commande, de panier abandonné et d’expédition.

URL canonique : https://brew.new/fr/browse/integrations/shopify

- Sens des données : Données entrantes
- Connexion : Secret de webhook
- Déclencheurs e-commerce

## Fonctionnalités disponibles

- **Déclencheurs par événement** : Déclenchez des automatisations Brew à partir des événements Shopify liés aux clients, aux commandes, au checkout et aux expéditions. De quoi alimenter vos séquences de bienvenue, de confirmation de commande, de panier abandonné et d’expédition.

## Transformez les événements de votre boutique en e-mails utiles

Connectez Shopify pour lancer des e-mails à l’image de votre marque quand un client s’inscrit, qu’une commande est payée, qu’un checkout est créé ou qu’une expédition part. Brew prend en charge 13 types d’événements webhook Shopify, répartis entre clients, commandes, checkouts et expéditions.

La configuration repose sur des webhooks que vous créez dans l’admin Shopify. Vous n’avez besoin ni d’une app Shopify, ni d’un client ID, ni d’OAuth. Shopify reste responsable des commandes, des paiements et des expéditions. Brew crée et envoie les e-mails.


## Ce que vous pouvez créer

- E-mails de bienvenue pour les clients : l’événement customers/create est envoyé quand une fiche client est créée dans Shopify.
- Confirmations de commande et reçus : l’événement orders/create est envoyé quand une commande est passée, et orders/paid quand le paiement est capturé. Tous deux contiennent orderNumber, totalPrice, currency et financialStatus. Choisissez-en un seul par message pour éviter les doublons.
- Avis d’annulation : l’événement orders/cancelled est envoyé quand une commande est annulée, et il contient le numéro de commande et le statut financier.
- Notifications d’expédition : l’événement fulfillments/create contient trackingNumber et trackingUrl lorsque l’expédition en dispose. L’événement orders/fulfilled est lui aussi envoyé quand une commande est expédiée, mais il ne contient aucun champ de suivi : choisissez donc un seul déclencheur par e-mail d’expédition.
- Relances après expédition : l’événement fulfillments/update est envoyé quand une expédition est mise à jour. Le champ fulfillmentStatus indique l’état de traitement de l’expédition, comme pending, success ou failure, et non une confirmation de livraison. Pour un remerciement ou une demande d’avis après la livraison, ne déclenchez un événement personnalisé Brew qu’une fois la livraison confirmée par votre application.
- Rappels de checkout : l’événement checkouts/create est envoyé quand un checkout est créé, et il peut contenir abandonedCheckoutUrl, un lien qui permet de reprendre le checkout.
- Coordonnez ces e-mails avec les notifications client de Shopify, pour qu’un client ne reçoive pas le même message des deux côtés.

## Les rappels de checkout nécessitent une vérification de l’état

L’événement checkouts/create est envoyé quand le checkout est créé, et non quand il est abandonné. Une séquence de rappel démarre à ce moment-là, puis attend. Passer commande n’arrête pas une exécution déjà lancée.

Après une étape d’attente, une condition lit les champs actuels du contact, comme shopify_last_order_status et shopify_last_order_at. Ils décrivent la dernière commande vue par Brew, et non ce checkout précis : ils ne peuvent donc pas prouver que ce checkout a abouti à une commande.

L’événement checkouts/update est envoyé à chaque modification du checkout, et non après un délai défini : il ne peut donc pas servir, à lui seul, de second rappel programmé.

Un checkout sans adresse e-mail ne lance aucune automatisation, sauf si Brew a déjà vu une adresse e-mail pour le même ID client Shopify. Avant de publier, testez un checkout qui aboutit à une commande et un autre qui n’y aboutit pas.


## Configurer Shopify dans Brew

- Ouvrez Intégrations, choisissez Shopify, puis cliquez sur « Générer l’URL de webhook ».
- Saisissez votre domaine myshopify.com, par exemple acme.myshopify.com, et non le domaine personnalisé de votre boutique. Brew le compare à l’en-tête X-Shopify-Shop-Domain de chaque webhook.
- Dans l’admin Shopify, ouvrez Paramètres > Notifications et faites défiler jusqu’à la section Webhooks. Shopify n’envoie un type d’événement qu’à un webhook créé pour lui : créez donc un webhook par événement que vous comptez utiliser. Choisissez le format JSON, collez l’URL Brew et sélectionnez la dernière version de l’API.
- Copiez le secret de signature affiché en bas de la section Webhooks. Ce même secret signe tous les webhooks de la boutique. Collez-le dans Brew, puis cliquez sur « Connecter ».
- Ouvrez le menu de chaque webhook créé et envoyez une notification de test. Le premier test fait passer le statut dans Brew de « En attente d’un événement de test » à « Connecté », et chaque test marque son événement comme reçu. Un test sert uniquement à vérifier le webhook : Brew n’ajoute aucun contact et ne lance aucune automatisation.
- La connexion crée un déclencheur pour chacun des 13 types d’événements. Il n’existe pas d’interrupteur pour activer ou désactiver un événement, mais un type d’événement sans webhook Shopify n’est jamais envoyé.
- Créez une automatisation, sélectionnez son événement Shopify et envoyez un test tant qu’elle est encore en brouillon. Seules les automatisations actives s’exécutent quand un événement correspondant arrive.

## Événements Shopify pris en charge

Brew prend en charge les 13 types d’événements webhook suivants :

- customers/create
- customers/update
- customers/delete
- customers/enable
- customers/disable
- orders/create
- orders/paid
- orders/cancelled
- orders/fulfilled
- checkouts/create
- checkouts/update
- fulfillments/create
- fulfillments/update

## Synchronisation des contacts et personnalisation

Chaque événement vérifié qui contient une adresse e-mail réelle crée ou met à jour un contact Brew, identifié par son adresse e-mail, qu’une automatisation utilise l’événement ou non. Lorsque les données sont présentes, Brew renseigne le prénom, le nom, shopify_customer_id et shopify_shop_domain.

Les événements de commande mettent à jour shopify_last_order_number, shopify_last_order_total, shopify_last_order_currency et shopify_last_order_at. Les événements orders/create, orders/paid et orders/cancelled renseignent aussi shopify_last_order_status, et orders/fulfilled renseigne shopify_last_fulfillment_status. Les événements d’expédition mettent à jour shopify_last_tracking_number, shopify_last_tracking_url et shopify_last_fulfillment_status. Les événements de checkout mettent à jour shopify_last_checkout_url.

Les événements customers/delete, customers/disable et customers/enable donnent à shopify_account_status la valeur deleted, disabled ou active. Brew ne supprime ni ne désabonne le contact : filtrez donc sur ce champ lorsque c’est important.

Pour les balises de fusion, utilisez le schéma de payload déclaré par l’événement sélectionné. Tous les événements incluent email, firstName, lastName, currency, shopDomain et createdAt, lorsque ces champs sont présents. Les événements de commande ajoutent orderNumber, totalPrice, financialStatus et fulfillmentStatus. Les événements de checkout ajoutent totalPrice et abandonedCheckoutUrl. Les événements d’expédition ajoutent trackingNumber, trackingUrl et fulfillmentStatus.

Le champ totalPrice contient le montant envoyé par Shopify dans la devise de la commande, par exemple 49.95, et non un montant en centimes. Les payloads n’incluent pas les lignes de commande, et les ID des objets Shopify ne sont pas des balises de fusion.

Les webhooks client de Shopify n’incluent plus le consentement marketing : Brew ne le reçoit donc pas. Enregistrez le consentement séparément et vérifiez-le avant tout envoi promotionnel.


## Brew prend-il en charge les remboursements et les événements de panier ?

Non. Shopify n’a pas de type d’événement orders/refunded, et son webhook de remboursement ne contient aucun client. L’événement carts/update ne comporte aucune identité de destinataire : Brew ne peut donc pas s’en servir pour envoyer des e-mails en toute sécurité. N’ajoutez pas de webhooks pour ces types d’événements.


## Pourquoi un événement apparaît-il sans qu’aucun e-mail ne soit envoyé ?

Recevoir un événement et envoyer un e-mail sont deux étapes distinctes. Vérifiez qu’une automatisation correspondante est active, puis contrôlez ses filtres, son historique d’exécution, l’éligibilité du destinataire et le domaine d’envoi. Une notification de test envoyée depuis Shopify apparaît comme un événement de test et ne lance jamais d’automatisation. Un événement sans adresse e-mail pour un client inconnu est enregistré comme non résolu.


## Limites et dépannage

- Brew ne peut modifier ni les clients, ni les commandes, ni les expéditions Shopify.
- Une erreur 401 avec shop_domain_mismatch signifie que le domaine saisi dans Brew ne correspond pas à la boutique qui envoie le webhook. Reconnectez Shopify avec le domaine myshopify.com canonique.
- Si vous renouvelez le secret de signature dans Shopify, reconnectez Shopify avec la nouvelle valeur. Brew exige un secret d’au moins 16 caractères.
- Si un déclencheur affiche « Aucun événement pour l’instant », créez un webhook Shopify pour ce type d’événement et envoyez une notification de test depuis celui-ci.
- Les webhooks de commande peuvent omettre le nom du client. Pour firstName, prévoyez une valeur par défaut dans la balise de fusion, comme une formule d’appel générique.
- Vérifiez le consentement et la finalité de chaque e-mail. Synchroniser vos clients Shopify n’autorise pas les envois promotionnels.

## Sources et guides de configuration

- [Guide de configuration de Shopify](https://docs.brew.new/integrations/import/shopify)
- [Créer une automatisation](https://docs.brew.new/create-emails/build-an-automation)
- [Balises de fusion](https://docs.brew.new/create-emails/merge-tags)
- [Ce que vous pouvez envoyer avec Brew](https://docs.brew.new/get-started/what-you-can-send)
- [Webhooks Shopify](https://shopify.dev/docs/apps/build/webhooks)

## Voir aussi

- [Toutes les intégrations](https://brew.new/fr/browse/integrations.md)
- [Inscription](https://brew.new/fr/sign-up.md)
- Site web : https://brew.new
