Réagir aux événements avec les webhooks
Dernier guide de cette catégorie : arrêtez de demander sans cesse à Shopify si quelque chose a changé, et laissez-le vous prévenir.
Reprenons le besoin du guide 2 de ce parcours : synchroniser automatiquement les nouvelles commandes d'Atelier Lumière vers un logiciel de comptabilité. Sans webhook, votre application devrait interroger l'Admin API à intervalles réguliers, en demandant sans cesse : « est-ce qu'une nouvelle commande est arrivée ? Et maintenant ? Et maintenant ? ». Un webhook renverse ce fonctionnement : c'est Shopify qui prévient directement votre application, dès qu'un événement précis se produit.
Le principe, en une phrase
Plutôt que de demander sans cesse si quelque chose a changé, vous dites une fois pour toutes à Shopify : « préviens-moi quand cela arrive ». Dès qu'une commande est créée sur Atelier Lumière, Shopify envoie automatiquement une requête vers une adresse de votre application, avec les détails de cette commande, sans que votre application ait eu besoin de le demander à ce moment précis.
Déclarer un abonnement à un webhook
Dans le fichier shopify.app.toml de votre projet d'application, généré au guide 22, vous pouvez déclarer les événements auxquels votre application s'abonne :
topics précise l'événement concerné, ici orders/create pour une nouvelle commande. uri indique l'endroit, dans votre propre application, où Shopify doit envoyer les détails de cet événement. En développement, avec shopify app dev lancé, une modification de ce fichier met automatiquement à jour l'abonnement, sans manipulation supplémentaire de votre part.
S'abonner à un événement lié aux commandes suppose que votre application dispose déjà du scope read_orders, présenté au guide 21. Un webhook ne contourne jamais les règles d'autorisation déjà vues dans ce parcours : il notifie uniquement les événements auxquels votre application a le droit d'accéder.
Ce que votre application fait ensuite
À la réception de ce webhook, votre application reçoit les données de la commande, et peut alors déclencher sa propre logique : dans notre exemple, envoyer ces informations vers un logiciel de comptabilité externe. Cette étape sort du cadre de ce guide, centré sur le mécanisme de notification lui-même, plutôt que sur ce que vous en faites une fois l'événement reçu.
Comment vérifier qu'un webhook fonctionne
Avec shopify app dev lancé et le webhook déclaré, créez une nouvelle commande de test sur votre dev store, en suivant la même méthode que celle enseignée au guide 25 du parcours Shopify : les bases. Votre application, ou les journaux affichés dans votre terminal selon la configuration, doit alors montrer une trace de cet événement reçu, quelques secondes après la création de la commande.
Vérifiez que vous avez compris
Sans webhook déclaré, comment votre application pourrait-elle malgré tout savoir qu'une nouvelle commande vient d'être créée sur Atelier Lumière ?
En interrogeant elle-même, à intervalles réguliers, l'Admin API pour vérifier si de nouvelles commandes sont apparues depuis la dernière vérification. C'est possible, mais moins efficace : cela consomme des requêtes inutiles la plupart du temps, et introduit un délai entre la création réelle de la commande et le moment où votre application s'en aperçoit, contrairement à la notification presque immédiate qu'offre un webhook.