Table des matières
- Choisissez les topics qui méritent de vous interrompre
- Étape 1 — Créez le canal
- Étape 2 — Ajoutez le webhook dans Shopify
- Étape 3 — Ne mettez en modèle que les champs que vous lisez
- Étape 4 — Routez par topic avec une condition
- Ne me réveillez que pour les grosses commandes
- Ce que cela ne fait pas
- Questions fréquentes
- Ai-je besoin d'une app Shopify pour cela ?
- Mon entrepôt peut-il voir les commandes sans voir mon admin Shopify ?
- Faut-il mettre le nom des clients dans la notification ?
- Puis-je recevoir un appel pour une contestation ?
- Conclusion
- Contenu lié
Les e-mails de commande de Shopify arrivent quand votre application mail décide de se synchroniser, atterrissent dans un dossier que vous avez filtré, et se ressemblent que la commande fasse 12 € ou 1 200 €. Si vous tenez la boutique vous-même, ce n'est pas la bonne forme de signal.
Un webhook règle ça. Shopify enverra chaque commande en POST vers l'URL de votre choix, et Echobell transforme ce POST en une notification dont vous décidez le volume.
Choisissez les topics qui méritent de vous interrompre
Shopify appelle topics les types d'événements de webhook. Ces quatre-là couvrent la plupart des boutiques tenues par une seule personne :
| Topic | Ce que ça veut dire | Urgence |
|---|---|---|
orders/create | Une commande a été passée. | Normale |
orders/paid | Le paiement est passé. À utiliser si seul l'argent réellement arrivé vous intéresse. | Normale |
orders/cancelled | Un client a annulé. Bon à savoir avant l'emballage. | Sensible au temps |
refunds/create | Un remboursement a été émis. | Sensible au temps |
Abonnez-vous à orders/create ou à orders/paid, pas aux deux, sauf si vous voulez vraiment deux notifications par vente. Pour la plupart des boutiques, orders/paid est le plus honnête.
Étape 1 — Créez le canal
Créez un canal Echobell nommé par exemple « Commandes Shopify », copiez son URL de webhook et activez POST uniquement. Shopify envoie toujours en POST.
Si vous voulez un canal distinct et plus sonore pour les annulations et remboursements, créez-le maintenant aussi et mettez-le en sensible au temps.
Étape 2 — Ajoutez le webhook dans Shopify
Dans l'admin Shopify, allez dans Paramètres → Notifications → Webhooks → Créer un webhook. Choisissez le topic, mettez le format sur JSON et collez l'URL de votre canal.
Shopify envoie un payload de test à l'enregistrement. Si votre téléphone vibre, le chemin fonctionne.
Étape 3 — Ne mettez en modèle que les champs que vous lisez
Les payloads de commande Shopify sont longs : plus de cent champs par commande. Vous n'en avez besoin que de quelques-uns :
Titre
Commande #{{order_number}} · {{total_price}} {{currency}}
Corps
{{customer.first_name}} {{customer.last_name}}
{{line_items[0].title}}
line_items est un tableau, donc line_items[0] est le premier article. Les modèles Echobell acceptent l'accès par index, mais il n'y a pas de boucle : une commande de trois articles affiche le premier et rien d'autre. Si cela compte, mettez le nombre à côté :
{{line_items[0].title}} · {{line_items.length}} articles au total
Contrairement à Stripe, Shopify envoie total_price sous forme de chaîne décimale — "49.00", pas 4900 — donc il s'affiche correctement sans calcul.
Étape 4 — Routez par topic avec une condition
Si vous pointez plusieurs topics vers un même canal, Shopify vous indique lequel est lequel dans un en-tête :
header["x-shopify-topic"] == "orders/paid"
C'est la façon la plus propre de séparer les comportements sans créer un webhook par canal dans l'admin.
Ne me réveillez que pour les grosses commandes
Le schéma que veulent réellement la plupart des commerçants : toutes les commandes vont dans un canal discret, et seules celles au-dessus d'un seuil vont dans un canal sonore.
Créez un second canal, mettez-le en sensible au temps, pointez un autre webhook orders/paid dessus et donnez-lui une condition :
total_price > 500
Une journée normale devient un bruit de fond, et une commande à 900 € devient quelque chose que vous ressentez.
Ce que cela ne fait pas
Pas de vérification HMAC. Shopify signe chaque webhook avec un en-tête X-Shopify-Hmac-Sha256. Echobell ne le vérifie pas : l'URL de votre canal est donc la seule chose qui tient les inconnus à distance. Gardez-la secrète, laissez POST uniquement activé, et si une fausse notification de commande causait un préjudice réel, placez votre propre endpoint devant pour vérifier le HMAC et faites-lui appeler Echobell.
Shopify peut livrer deux fois le même webhook. Il réessaie en cas d'échec, et les tentatives ne sont pas dédupliquées. Traitez la notification comme une invitation à regarder la commande, pas comme un compteur de commandes. Votre admin Shopify fait foi.
Les topics d'inventaire deviennent vite bruyants. inventory_levels/update se déclenche à chaque mouvement de stock, y compris vos propres modifications. Pour des alertes de stock bas, filtrez sévèrement, sinon vous le regretterez avant midi.
Questions fréquentes
Ai-je besoin d'une app Shopify pour cela ?
Non. Les webhooks sous Paramètres → Notifications sont intégrés à l'admin et ne demandent ni app, ni compte partenaire, ni code.
Mon entrepôt peut-il voir les commandes sans voir mon admin Shopify ?
Oui. Partagez-leur le canal. Ils reçoivent les notifications et rien d'autre : aucun accès admin, aucune donnée client au-delà de ce que contient votre modèle.
Faut-il mettre le nom des clients dans la notification ?
C'est votre choix, et il mérite d'être fait sciemment. Tout ce qui est dans le modèle s'affiche sur un écran verrouillé. Le numéro de commande et le total suffisent généralement pour agir.
Puis-je recevoir un appel pour une contestation ?
Les litiges Shopify Payments arrivent via le topic disputes/create sur les boutiques qui utilisent Shopify Payments. Pointez-le vers un canal en mode appel : c'est le seul événement de commande assorti d'un délai.
Conclusion
Un webhook, un modèle, et une condition si vous voulez la version sonore. Cela prend environ cinq minutes et remplace le rafraîchissement de la page des commandes.
Téléchargez Echobell pour iPhone ou obtenez-le sur Google Play, puis passez une commande de test et regardez-la arriver avant l'e-mail de confirmation.