Shopify Next Gen Events : migrer tes webhooks sans doubler les traitements
Par Teo Comyn · Consultant Shopify · CRO, SEO & Liquid · EXPERAISE
Lecture ~13 min · Dev Shopify · Events · Webhooks · API · Data · Octobre 2026 · Mis à jour 2026-10-05
Shopify Next Gen Events permet à une app de choisir les changements qu'elle reçoit et les données qui les accompagnent. La disponibilité générale a été annoncée le 1er octobre 2026 avec l'API 2026-10. Les webhooks classiques restent utilisables : tu peux conserver les flux existants et migrer progressivement ceux qui en bénéficient. Il n'y a donc pas lieu de refaire tous tes connecteurs simplement parce qu'une nouvelle API existe. Annonce officielle Shopify.
La bonne question est plus concrète : quel flux reçoit beaucoup de bruit, manque de contexte ou oblige ton serveur à redemander les mêmes informations ? Commence par celui-là. Puis vérifie que le nouveau traitement produit le même résultat métier, sans exécuter deux fois une action.
En bref
- Une boutique qui utilise seulement des apps tierces n'a pas à installer Events elle-même. Commence par demander à l'éditeur ce qu'il prend en charge.
- Une app personnalisée peut avoir intérêt à revoir ses abonnements, mais seulement pour un besoin identifié.
- L'objectif n'est pas de recevoir le moins de messages possible : c'est de recevoir les changements nécessaires, avec les données utiles.
- Le test décisif porte sur la donnée finale dans ton outil, pas uniquement sur la réception d'un message.
- Pendant la comparaison, garde un seul traitement autorisé à écrire dans le système métier.
Ce guide propose un cadre de décision et une recette de migration. Il ne décrit pas une migration exécutée sur une boutique cliente et ne promet aucun gain de performance chiffré.
Ce qui change, expliqué simplement
Un webhook est une notification envoyée à ton application lorsqu'un changement se produit. Ton programme reçoit le message puis décide quoi faire.
Avec Events, une partie de cette sélection peut être exprimée dans la configuration de l'app. Trois éléments ont des rôles distincts : triggers désigne les changements à surveiller ; query sélectionne les données via GraphQL ; query_filter conditionne la livraison selon le résultat obtenu. Ces réglages se déclarent dans shopify.app.toml. Présentation des Events.
Pour une équipe e-commerce, l'intérêt est de pouvoir discuter d'un flux avec une consigne précise : « quand le prix d'une variante change, mets à jour cette variante dans le catalogue externe ». C'est plus utile qu'un abonnement général dont personne ne sait exactement quels changements il doit traiter.
Ce n'est pas un pixel publicitaire, un événement GA4 ou un réglage SEO. Ici, on parle des échanges entre Shopify et une application. Si ton problème concerne les écarts de mesure entre Shopify et Google Analytics, le guide de rapprochement Shopify / GA4 répond à une autre question.
Faut-il migrer maintenant ?
Ma recommandation : ne transforme pas une nouveauté technique en chantier global sans identifier ce qu'elle améliore. Utilise cette grille pour cadrer la discussion avec ton développeur ou ton éditeur.
Tableau : défilement horizontal si nécessaire.
| Ta situation | Décision conseillée | Preuve à réunir avant de commencer |
|---|---|---|
| Tu n'as pas d'app ou de connecteur sous ton contrôle | Demander la feuille de route à l'éditeur | Responsable du flux et périmètre réellement maintenu |
| Un flux fonctionne bien, sans problème identifié | Le conserver pour le moment | Historique des incidents et coût réel de maintenance |
| Un flux traite beaucoup de changements inutiles | Étudier un pilote ciblé | Messages reçus, ignorés et effectivement traités |
| Le serveur refait une lecture après chaque notification | Vérifier si les données nécessaires peuvent être livrées directement | Champs lus et raison de chaque lecture complémentaire |
| Le besoin n'est pas couvert par les topics ou triggers disponibles | Garder le mécanisme existant | Vérification dans la référence de la version choisie |
| Le flux est instable et mal compris | Diagnostiquer avant de migrer | Cause de l'incident et méthode de reprise |
Cette grille est un outil de priorisation, pas un classement officiel Shopify. Le guide de monitoring des apps aide à traiter la dernière situation : changer d'API ne remplace pas le diagnostic d'un incident.
La méthode : cinq étapes, un seul flux pilote
1. Écrire le contrat métier avant de modifier l'abonnement
Le contrat tient sur une page. Il décrit le résultat attendu dans le système destinataire, pas seulement le nom d'un topic.
Pour chaque flux, note :
- le changement qui doit déclencher le travail ;
- l'entité à mettre à jour et son identifiant de correspondance ;
- les données effectivement nécessaires ;
- l'action attendue à l'arrivée ;
- la réaction à une suppression ou à une donnée absente ;
- le responsable du flux, son contrôle de reprise et son retour arrière.
Exemple de contrat : « le connecteur met à jour le prix de la variante concernée ; une modification du titre ne doit pas produire une mise à jour de prix ; une variante supprimée ne doit pas rester vendable dans le catalogue externe ».
Ce travail évite de migrer une notification en oubliant le besoin qu'elle servait. Pour un flux ERP, relie aussi ce contrat aux responsabilités de chaque outil : qui est maître du prix, du stock ou du statut ? Le guide Shopify B2B / Odoo traite cette question plus large.
2. Vérifier la compatibilité réelle, pas seulement le nom du topic
Un payload est le contenu du message reçu. Celui d'un webhook classique ne se transpose pas intégralement en changeant quelques noms de champs. Le guide Shopify décrit des structures différentes, des identifiants GraphQL et des cas sans équivalent direct. Les requêtes de départ qu'il fournit ne recréent pas à elles seules les conditions de déclenchement d'un ancien webhook. Guide de migration officiel.
Ta fiche de correspondance doit donc distinguer trois vérifications : « ce changement est-il couvert ? », « la donnée existe-t-elle sous cette forme ? », « mon programme sait-il l'utiliser ? ». Une case vide est une dépendance à résoudre, pas une invitation à supprimer le contrôle.
Pour démarrer en disponibilité générale, l'annonce du 1er octobre recommande Shopify CLI 4.83 ou ultérieur et la version Events 2026-10. Attention : les tutoriels consultés affichent encore un minimum CLI 3.92, et certains exemples utilisent unstable. Je privilégierais la consigne de lancement pour ce nouveau chantier ; il faut relire les exemples avant de les copier. Annonce de lancement, prérequis du tutoriel.
Ce décalage documentaire est une raison de contrôler la configuration finale, pas de supposer que toute version plus ancienne échoue. Le guide Shopify CLI complète la préparation de l'environnement.
3. Réduire le bruit sans perdre une transition utile
Choisis la modification qui correspond au contrat, puis les données nécessaires à son traitement. Ne recopie pas automatiquement un gros message historique dans une requête plus grosse.
Chaque requête d'abonnement Events est limitée à 100 points de complexité. Cette limite ne concerne pas les webhooks classiques. Le nombre d'éléments demandé dans les connexions et les champs sélectionnés contribuent au coût ; ce n'est pas un simple nombre maximal de champs. Changement de limite annoncé le 22 septembre.
Le piège est de filtrer trop tôt. query_filter évalue les valeurs actuelles renvoyées par la requête, pas une comparaison entre ancienne et nouvelle valeur. Il ne remplace pas la logique métier de l'app. Documentation des filtres.
Exemple pédagogique, non exécuté : ton outil doit afficher uniquement les produits commercialisables. Si tu lui transmets exclusivement les produits actifs, demande-toi comment il apprendra qu'un produit déjà présent ne l'est plus. Une sélection qui paraît réduire le bruit peut aussi empêcher le retrait nécessaire. Pour ce contrat, je testerais explicitement les deux directions du changement de statut.
Lorsqu'une requête dépend d'un identifiant de variante, ne l'associe pas sans vérification à un changement qui ne fournit que l'identifiant du produit. Shopify recommande de séparer les abonnements incompatibles et de préserver la couverture des données. Attention : plusieurs abonnements peuvent aussi produire davantage de livraisons pour une même opération. Optimisation des abonnements.
4. Comparer les résultats sans écrire deux fois
Je recommande une phase d'observation : l'ancien flux continue de produire le résultat métier ; le candidat Events calcule ce qu'il aurait fait et conserve une trace de comparaison, sans lancer la même action externe.
Cette organisation n'est pas une option automatique de Shopify. Elle doit être prévue dans ton application. Documente précisément quel chemin écrit dans chaque environnement. « Les deux tournent » n'est pas une règle de sécurité suffisante.
Pour une livraison HTTPS, vérifie la signature HMAC avant de faire confiance au contenu. Shopify indique d'utiliser Shopify-Webhook-Id pour repérer une livraison répétée. Mais deux abonnements correspondant au même changement reçoivent chacun leur propre identifiant de livraison. Vérification et doublons.
Conséquence pratique : la déduplication des retries ne prouve pas que ton opération métier ne sera jamais exécutée deux fois. Elle ne fusionne pas automatiquement l'ancien webhook, le nouvel abonnement et d'autres chemins qui visent le même résultat.
Une opération idempotente conserve le même résultat lorsqu'elle est répétée. « Remplacer le prix connu de cette variante » se prête à cette approche. « Ajouter une nouvelle ligne à chaque notification » demande un contrôle supplémentaire. Une clé métier se conçoit selon l'action et l'état source ; ne déduplique pas toutes les modifications d'une variante avec son seul identifiant, sinon tu risques de supprimer des mises à jour légitimes.
5. Basculer seulement après une recette et une reprise vérifiables
Prépare les scénarios avant le test. Cela permet de distinguer « le message est arrivé » de « le contrat a été respecté ».
Tableau : défilement horizontal si nécessaire.
| Scénario à provoquer en environnement de développement | Résultat à vérifier dans le système destinataire |
|---|---|
| Changement réellement prévu par le contrat | La bonne entité reçoit la bonne valeur |
| Changement sans rapport avec le contrat | Aucune action métier indésirable |
| Même livraison présentée à nouveau | Pas de second effet métier |
| Deux modifications rapides d'une même entité | L'état retenu correspond à l'état attendu, pas à une valeur plus ancienne |
| Changement de statut dans chaque direction | Ajout et retrait correctement pris en charge |
| Suppression ou retrait d'une relation | Pas d'enregistrement local devenu fantôme |
| Donnée requise absente ou requête en erreur | Échec explicite, sans écriture partielle silencieuse |
| Arrêt puis reprise du traitement | Les divergences sont détectées et réparées selon le contrat |
| Activation du candidat puis retour à l'ancien chemin | Un seul chemin produit les écritures à chaque étape |
Cette matrice est une recette proposée, pas le compte rendu d'un test effectué. Les scénarios doivent être adaptés aux actions que ton application prend réellement en charge.
Dans une livraison Events, fields_changed décrit les modifications avec trois listes : added, updated, removed. Une requête ajoute son résultat dans data et peut renvoyer des errors. Prévois aussi le cas des gros messages livrés via payload_url : les données complètes ne sont alors pas directement dans le petit message initial. Pour HTTPS, la signature porte sur ce petit message ; récupère le contenu avant son expiration et traite l’URL comme un accès temporaire confidentiel. Structure des livraisons.
La validation technique de complexité peut passer par shopify app deploy --no-release : la documentation indique que cette commande crée une version d'app sans la publier aux utilisateurs. Elle écrit néanmoins une version distante ; ce n'est pas un contrôle purement local. À réserver au bon projet et à l'environnement convenu, puis à compléter par une recette sur boutique de développement. Aucune commande Shopify n'a été exécutée pour cet article. Validation des abonnements.
Avant la bascule, garde une méthode distincte de rapprochement des données pour repérer le travail manqué. Une notification n'est pas un inventaire complet du système destinataire.
Le livrable utile : une fiche de bascule, pas seulement une configuration
Voici une fiche à compléter avec ton équipe. Elle constitue la contribution opérationnelle de ce guide : un accord explicite entre le résultat métier, le déploiement et les preuves attendues.
- Flux et périmètre : quelle action, quels objets, quelles boutiques ?
- Version et dépendances : API Events, CLI, droits d'accès, version du programme receveur.
- Écriture autorisée : ancien chemin ou candidat, avec le mode d'observation de l'autre.
- Correspondances : champs utilisés, identifiants, conditions et comportements de suppression.
- Preuves : scénarios exécutés, résultat attendu, résultat observé et état final relu.
- Reprise : comment détecter et réparer une divergence ?
- Bascule : responsable, moment choisi et contrôle immédiatement après activation.
- Retour arrière : condition d'arrêt, chemin à réactiver, traitement du retard accumulé.
Je déconseille une première bascule juste avant une opération commerciale si l'équipe ne peut pas observer le résultat et revenir en arrière. Le bon moment dépend de ton activité et de ta capacité de support ; il ne se déduit pas de la date de l'annonce.
Comment savoir si la migration apporte quelque chose ?
Fixe une base de comparaison avant le pilote. Mesure une période, un flux et un périmètre précis ; explique aussi les changements de catalogue ou d'activité qui rendent les périodes différentes.
Les indicateurs utiles sont les messages reçus, les actions métier réussies, les lectures complémentaires, la taille des messages et le retard entre le changement source et le résultat relu dans le destinataire. Ajoute les erreurs de mapping, les reprises et les divergences de données. Une baisse des messages qui masque des suppressions manquées n'est pas un progrès.
Présente un bilan avec quatre colonnes : mesure, période, source, limite. Si tu n'as pas les traces nécessaires, écris « non mesuré ». Ne transforme pas une intention d'optimisation en économie prouvée, et encore moins en gain de chiffre d'affaires.
Ce qu'il faut retenir avant de commencer
Tu n'as pas besoin de tout migrer. Tu as besoin d'identifier un flux où la nouvelle sélection des changements et des données améliore un problème réel.
La priorité est de préserver le résultat métier : un contrat court, une correspondance vérifiée, un candidat observé sans doubles écritures, une recette et un retour arrière. La réduction du bruit vient ensuite, avec des mesures.
Si tu ne sais pas encore qui contrôle tes connecteurs ni quels flux présentent un risque, commence par cadrer le besoin dans un audit Shopify. Tu peux aussi me décrire ton projet : la première décision sera d'identifier ce qu'il faut conserver, diagnostiquer ou faire évoluer — pas de remplacer une technologie pour son seul nom.
Sources et méthode de vérification
Les sources primaires Shopify ont été consultées le 5 octobre 2026. L'annonce de disponibilité générale date du 1er octobre ; la modification de complexité a été annoncée le 22 septembre. Ces dates documentent les sources, pas une recette réalisée sur une boutique.
La vérification porte sur les annonces et la documentation, pas sur une app exécutée. Aucune expérience cliente, capture, économie ou relecture humaine n'est revendiquée. Les conseils de pilotage et la fiche de bascule sont des recommandations éditoriales ; les propriétés de la plateforme sont liées à leurs sources près des faits.
Sources principales : disponibilité générale, présentation, migration, optimisation, filtres, livraison, vérification, limite de complexité, tutoriel et prérequis.
Sources & documentation officielle
Liens utiles (hors affiliation) pour creuser le sujet.
Articles connexes
- Apps Shopify : comment diagnostiquer les erreurs API et webhooks sans perdre le fil de tes commandesCommandes ou stocks mal synchronisés ? Une méthode en six étapes pour diagnostiquer les apps Shopify et vérifier la repr…
- Shopify CLI 4.0 : versioning sémantique, auto-updates et ce que ça change vraimentShopify CLI passe en semver et lance la 4.0 en mai 2026 : auto-updates, fin du --force, nouveaux flags --allow-updates e…
- Shopify B2B + Odoo : le guide complet pour les marques en croissanceArchitecture Shopify + Odoo pour marques DTC/B2B : 3 stacks, règle « qui possède quoi », étude de cas textile belge (4 s…
Accompagnement Shopify
Besoin d'aller plus loin qu'un article ? Pages services et audit.
