Il ne suffit généralement pas de savoir qu’un changement est intervenu. Un workflow a souvent besoin de connaître l’état antérieur : le prix a-t-il baissé ou augmenté ? De combien ? Quelle balise a été ajoutée ? Quelle était la valeur du métachamp hier ? Cette mise à jour rend les anciennes et nouvelles valeurs accessibles dans toute l’application, et permet à un déclencheur personnalisé de lancer un workflow même lorsqu’aucun changement n’est survenu.
Des valeurs anciennes et nouvelles, partout
- Les déclencheurs de métachamps transmettent désormais la valeur précédente. Chaque déclencheur de métachamp (générique, produit, variante, commande, client) transmet à Shopify Flow l’
Metafield.previousValue, situé à côté de Metafield.value. Ce champ est vide lorsque le métachamp vient d’être créé. Voir « Déclencheurs de métachamps ».
- Les variations de prix, de prix unitaire et de coût s'accompagnent de chiffres. Les conditions de flux ne permettant pas d'effectuer des opérations arithmétiques, les événements « Variant Price Changed », « Variant Unit Price Changed » et « Product Variant Cost Changed » fournissent désormais également les valeurs
delta (nouvelle valeur moins ancienne valeur), percentChange et direction (augmentation, diminution, inchangé). « Le prix a baissé de plus de 10 % » constitue désormais une seule condition, sans code.
- Les notifications « Mise à jour du produit », « Mise à jour de la commande » et « Mise à jour du client » vous indiquent les modifications apportées. Auparavant, elles se contentaient de signaler que l'enregistrement avait été mis à jour. Elles fournissent désormais des informations détaillées (
changes) : la liste des champs modifiés et, pour chacun d'entre eux, l'ancienne et la nouvelle valeur. Les champs concernés sont les suivants : titre, description, statut, balises, fournisseur, type et identifiant pour les produits ; statut de paiement, statut de traitement, articles, balises, note et détails supplémentaires pour les commandes ; balises, note et état du compte pour les clients. Les valeurs longues sont raccourcies. La liste est vide lorsque la mise à jour ne concerne pas ces champs, par exemple en cas de modification des stocks.
- La fonction « Modifications apportées aux articles de commande (brouillon) » affiche désormais les mêmes différences ligne par ligne que le déclencheur de commande : ce qui a été ajouté, supprimé ou modifié en termes de quantité, de prix ou de variante.
- Votre propre code de déclencheur personnalisé détecte également l'ancienne et la nouvelle valeur. Déclencheur personnalisé de type () associé à une mise à jour de produit, de commande ou de client reçoit désormais des
payload._changes : tous les champs suivis qui ont changé, chacun accompagné de oldValue et newValue. Votre code peut ainsi se déclencher lors d’une transition plutôt que lors d’un état donné - «le statut est passé de brouillon à actif», «la commande a été payée» - ce qu’une condition basée sur la valeur actuelle ne permet pas d’exprimer. L’exemple d’événement que vous pouvez consulter dans l’éditeur présente ce champ.
Tout est cumulatif. Les workflows que vous avez déjà créés continuent de fonctionner sans changement. La liste complète des champs par déclencheur est disponible dans la documentation de référence sur les déclencheurs :.
Choisissez les modifications qui déclenchent un déclencheur « Update »
Les options « Mise à jour du produit », « Mise à jour de la commande » et « Mise à jour du client » disposent désormais d'un nouveau paramètre, accessible via l'icône en forme d'engrenage située à côté de leur bouton sur la page « Déclencheurs » d' : ce paramètre permet de définir les modifications qui déclenchent cette action.
- Aucune case n'est cochée : le déclencheur s'exécute à chaque mise à jour, exactement comme cela a toujours été le cas.
- Champs cochés : la notification n'est déclenchée que lorsqu'un de ces champs est modifié. Toutes les autres mises à jour sont ignorées et ne sont pas prises en compte dans votre forfait.
C'est également la méthode la plus propre pour empêcher un workflow de se déclencher lui-même. Prenons l'exemple d'un workflow qui se lance lors d'une mise à jour de produit, puis qui modifie un métachamp du produit utilisé pour se relancer. Limitez les déclencheurs aux champs qui vous intéressent, et cette deuxième mise à jour ne se déclenchera plus.
Vos autres déclencheurs ne sont pas affectés par ce choix. Le fait de limiter la mise à jour de la commande au statut de paiement ne modifie pas le moment où l'événement « Ajout de balises à la commande » se déclenche.
Déclencheurs personnalisés s'exécutant selon un calendrier défini
Shopify Flow Il réagit lorsqu'un événement se produit. Il ne peut pas réagir lorsqu'aucun événement ne se produit, et il ne peut rien voir en dehors de votre boutique. Un déclencheur personnalisé () en est désormais capable. L'éditeur vous demande : « Qu'est-ce qui déclenche cette exécution : un événement « Shopify » ou une planification ? ». Selon un calendrier, votre code s’exécute toutes les 30 secondes, jusqu’à une fois par jour. Il se souvient de ce qu’il a détecté lors de la dernière exécution, peut analyser votre boutique et appeler n’importe quelle ressource sur l’Internet public, et détermine de lui-même ce qui constitue un changement.
Commencez par un modèle et modifiez les chiffres en haut :
- Produit, commande ou client non mis à jour depuis N jours : évaluations obsolètes dans le catalogue, commandes bloquées, campagne de fidélisation. Chaque enregistrement déclenche une action une fois par période d'inactivité ; les éléments déjà en retard au moment de l'activation ne sont pas traités tous en même temps.
- Une valeur hors de Shopify a été modifiée : un flux de stock fournisseur, un taux de change, une liste de prix. Affiche la valeur avant et après, ainsi que la différence et le pourcentage pour les chiffres.
- Nouvel élément dans un flux RSS ou Atom : actualités d'un fournisseur, flux de listes, page d'état.
- Aucune commande depuis N heures : un indicateur de vitalité pour votre boutique. Se déclenche une fois lorsque les commandes cessent et une fois lorsqu'elles reprennent.
La première exécution d’un déclencheur programmé ne mémorise que ce qu’elle détecte ; ainsi, l’activation d’un tel déclencheur n’engorge jamais vos workflows. Il apparaît dans Shopify Flow sous le nom «** Déclencheur personnalisé **», filtré par son identifiant, et l’enregistrement est associé à son ID. Chaque exécution est prise en compte dans votre forfait, qu’elle se déclenche ou non ; l’éditeur indique le nombre total d’exécutions correspondant à un intervalle donné. L'option « Test » exécute votre code une seule fois sans déclencher quoi que ce soit.
Modèles de déclencheurs personnalisés basés sur des événements
Les déclencheurs personnalisés qui réagissent à un événement Shopify disposent désormais également de modèles. Choisissez-en un dans la section «Commencer à partir d'un modèle» : cela sélectionne l'événement et génère le code correspondant. Chacun d'entre eux lit la valeur avant et après la modification :
- Un champ relatif à un produit, à une commande ou à un client est passé d’une valeur à une autre - par exemple, le statut est passé de « brouillon » à « actif », ou une commande a été réglée.
- Le prix a baissé de plus de N % : il s'agit d'une véritable baisse de prix, et non d'une simple modification tarifaire.
- Le stock est passé en dessous d'un seuil : le système se déclenche une seule fois, au moment où le stock franchit cette limite, et non à chaque vente tant que le niveau est déjà bas.
- La valeur d'un métachamp du produit a dépassé un seuil : une note est passée en dessous de 3, une marge a dépassé 40.
- Commande réglée par un client à forte valeur ajoutée : cette fonctionnalité analyse le montant total des achats effectués par le client dans votre boutique grâce à
ctx.shopify() et ne se déclenche que lorsque ce montant dépasse le seuil que vous avez défini.
Les déclencheurs d'un enregistrement sur sa propre page d'administration
De nouveaux blocs d'administration affichent les derniers événements déclencheurs concernant l'enregistrement que vous consultez, directement sur sa page dans l'interface d'administration dShopify, chacun accompagné d'une brève ligne « ancien → nouveau » telle que « price: 100.00 -> 85.00. À partir de là, vous pouvez ouvrir l'événement ou accéder à l'historique des événements de cet enregistrement.
Disponible pour les produits, les variantes, les commandes, les commandes provisoires, les clients, les collections, les entreprises et les emplacements d'entreprise. Ajoutez le bloc une seule fois à partir du menu de personnalisation de la page. Les déclencheurs traitant des données à caractère personnel sont répertoriés sans leurs valeurs. Comment les ajouter, avec un exemple sur une page de produit, de commande et de client : Événements de déclenchement sur la page d'administration d'un enregistrement.
Davantage de fournisseurs d'IA pour « Generate with AI »
L'outil de génération par IA prend désormais en charge Google Gemini et OpenRouter, en plus d'Anthropic et d'OpenAI. OpenRouter vous permet d'accéder aux modèles de nombreuses entreprises à l'aide d'une seule clé, y compris tout identifiant de modèle que vous saisissez. Connectez une clé dans la rubrique « Développeur » -> « Connexions » : pour obtenir une clé API Gemini, ou pour obtenir une clé API OpenRouter,. Comme auparavant, la génération s'effectue sur votre propre compte de fournisseur ; la clé est chiffrée et n'est plus jamais affichée.
Une interface plus rapide, basée sur les composants Web d'Shopify
Chaque page de l'application a été refaite à partir des nouveaux composants web d'administration d'Shopify, les mêmes éléments de base que ceux utilisés par l'interface d'administration d'Shopify elle-même.
- Chargement plus rapide. L'application ne fournit plus sa propre copie d'une bibliothèque d'interfaces. Les composants proviennent de Shopify, sont partagés avec le reste de votre espace d'administration et se trouvent généralement déjà dans le cache de votre navigateur ; ainsi, chaque page a beaucoup moins de données à télécharger avant de s'afficher.
- On dirait l'interface d'administration. Les boutons, tableaux, commutateurs, boîtes de dialogue et formulaires ont exactement le même aspect et se comportent exactement de la même manière que ceux que vous utilisez partout ailleurs sur Shopify, y compris en ce qui concerne la navigation au clavier et les lecteurs d'écran.
- Reste à jour. Lorsque Shopify améliore ses composants, l'application intègre automatiquement ces améliorations sans que nous ayons à effectuer de mise à jour.
Rien n'a changé : toutes les pages, tous les paramètres et tous les liens sont restés à leur place.
Également dans cette version
- « Accorder toutes les autorisations » et « Révoquer toutes les autorisations » sur la page « Autorisations ». L’option « Accorder toutes les autorisations » vous demande toutes les autorisations manquantes dans une seule boîte de dialogue d’Shopify, au lieu d’une par fiche. L’option « Révoquer toutes les autorisations » vous demande d’abord de confirmer et vous explique ce que cela implique : vos déclencheurs restent activés, mais ils ne peuvent pas se déclencher tant que vous n’avez pas accordé à nouveau l’accès.
- Un déclencheur personnalisé peut accéder à Internet via
ctx.fetch(), et pas seulement à votre boutique via ctx.shopify(). Les adresses internes sont refusées.
- Vos déclencheurs personnalisés et ceux de votre boutique en ligne fonctionnent désormais de la même manière : cliquez sur la ligne pour la modifier ; l'état s'affiche à droite.
- La page « Déclencheurs » indique, à côté de son titre, le nombre de déclencheurs actifs, et les quatre déclencheurs de métachamps de type « typed » disposent désormais de leurs propres boutons dans la liste.
- Les champs obligatoires sont indiqués dans les formulaires relatifs au déclencheur personnalisé, au déclencheur de la boutique en ligne et à la connexion.
- Corrigé : il était impossible de désactiver un filtre de date dans l'historique des événements. Que ce soit en supprimant l'étiquette de date ou en sélectionnant « Tout effacer », les dates restaient actives. Désormais, ces deux actions permettent de les effacer.
- Les lignes de l'historique des événements s'affichent sous forme de texte brut et non sous forme de liens bleus. La ligne entière reste toutefois cliquable.