Optimisation de vos flux de travail Shopify Flow
Lorsque vous créez un flux de travail, vous voulez vous assurer qu’il s’exécute aussi efficacement que possible. Ce document décrit des scénarios qui pourraient entraîner la mise au ralenti de vos flux de travail ou l’épuisement des limites de l’API, ainsi que des conseils sur la manière de résoudre ces problèmes ou de trouver des solutions de contournement.
Sur cette page
Problèmes de performance courants
Cette section décrit les scénarios courants qui peuvent entraîner des problèmes de performance dans vos flux de travail. Il est possible que plusieurs scénarios se produisent en même temps, ce qui augmenterait la probabilité que vous observiez des problèmes de performance. Pour les erreurs liées à la configuration de l’éditeur ou à la limitation du débit, utilisez le guide de dépannage.
Déclencheurs à volume élevé
Les déclencheurs à volume élevé sont ceux pour lesquels l’événement sous-jacent se produit fréquemment. Par exemple, le déclencheur La quantité en stock de la variante de produit a été modifiée s’exécute à chaque modification du stock dans une boutique. Le volume d’un déclencheur agit comme un multiplicateur pour tout problème dans votre flux de travail. Par exemple, si un flux de travail récupère 100 produits et qu’il s’exécute 1 000 fois par minute, il récupérera 100 000 produits par minute. Cela peut entraîner des problèmes de performance.
Solution : optimisez vos flux de travail en utilisant moins de données, ou utilisez des étapes d’attente pour partitionner votre flux de travail.
Plusieurs flux de travail utilisant le même déclencheur
Dans Flow, vous pouvez créer plusieurs flux de travail utilisant le même déclencheur. Ces flux de travail s’exécuteront en parallèle les uns des autres lorsque l’événement se produira. Cela peut être problématique si vous exécutez trop de flux de travail utilisant le même déclencheur pour les raisons suivantes :
- Les flux de travail peuvent entrer en conflit les uns avec les autres.
- Les flux de travail tentent de récupérer des données et d’appeler des API en même temps, et votre boutique est limitée quant au nombre de requêtes qu’elle peut traiter simultanément par les limites de la Shopify API.
Solution : combinez les flux de travail qui utilisent le même déclencheur en un seul flux de travail. Cela vous permet également de contrôler le moment où chacun d’eux s’exécute, afin qu’ils n’entrent pas en conflit les uns avec les autres. La combinaison de flux de travail est particulièrement utile si les flux de travail ne récupèrent pas beaucoup de données ou si les données qu’ils récupèrent sont les mêmes. Si les flux de travail récupèrent beaucoup de données distinctes, vous constaterez peut-être que le fait de les garder séparés se traduit par une meilleure performance.
Utilisation de listes ou de données incorrectes
Lorsque vous créez un flux de travail, vous pouvez utiliser une liste d’objets, tels que des produits ou des commandes. Si vous utilisez une liste d’objets, Flow récupérera tous les objets de la liste. Cela peut poser un problème lorsque la liste contient beaucoup de données.
Un autre problème courant consiste à sélectionner accidentellement les mauvaises données. Par exemple, pour vérifier les données du produit sur une commande, vous avez peut-être sélectionné order / publication / products / tags au lieu de order / line items / product / tags. Le premier résultat est généralement incorrect, car il récupère tous les produits d’une publication alors que l’intention est de vérifier les produits de la commande. Le choix d’une liste aussi volumineuse peut entraîner des problèmes de performance et le choix de la mauvaise liste peut amener votre automatisation à effectuer la mauvaise action.
Solution : sélectionnez soigneusement les données dont vous avez besoin et évitez d’utiliser des listes lorsque ce n’est pas nécessaire. Testez vos flux de travail pour vous assurer qu’ils font ce que vous attendez.
Champs méta
La récupération de données de champs méta ou de métaobjets individuels ne devrait pas entraîner de problèmes de performance. Cependant, un problème courant consiste à choisir la liste metafields et à parcourir en boucle tous les champs méta d’une ressource. Si un champ value contient beaucoup de données, par exemple lorsque des objets HTML sont utilisés, une grande quantité de données peut alors être traitée, ce qui peut entraîner des problèmes de performance.
Solution : utilisez l’objet metafield au lieu de metafields.
Surutilisation des actions Obtenir des données
Les flux de travail utilisant une action Obtenir des données telle que Obtenir les données de la commande sont conçus pour renvoyer un maximum de 100 objets par flux de travail à partir des actions Obtenir des données. Le fait de dépasser 100 objets peut entraîner des problèmes de performance.
Solution : exécutez le flux de travail plus souvent afin que votre requête n’ait pas besoin de renvoyer plus de 100 résultats. Réutilisez la même action Obtenir des données plutôt que d’effectuer des requêtes répétées.
Aucun filtre de requête dans les actions Obtenir des données
Les actions Obtenir des données appellent la Shopify API. Si aucune requête n’est présente, l’API renverra toutes les ressources ou aucune. Cela peut entraîner des problèmes de performance, mais aussi provoquer des actions incorrectes dans votre boutique lorsque vous utilisez les données renvoyées plus tard dans le flux de travail.
Solution : incluez toujours des filtres de requête dans vos actions Obtenir des données.
Filtres de requête incorrects dans les actions Obtenir des données
Les requêtes Obtenir des données prennent en charge un ensemble limité de filtres de requête, une syntaxe spécifique et un ensemble spécifique de valeurs qui peuvent être utilisées dans les filtres. La saisie d’un filtre, d’une valeur de filtre ou d’une syntaxe incorrects peut entraîner l’ignorance de la requête entière, ce qui peut causer des problèmes similaires à ceux qui surviennent lorsqu’aucun filtre de requête n’est présent.
Solution : utilisez la documentation fournie par l’action dans Flow pour trouver la liste des filtres de requête disponibles. Testez toujours vos filtres de requête pour vous assurer qu’ils renvoient les données attendues. Vous pouvez utiliser une action Consigner le résultat dans Flow pour examiner les données renvoyées, ou vous pouvez appeler directement la Shopify Admin API par le biais d’un client d’API comme Postman ou de l’appli GraphiQL.
Solutions supplémentaires aux problèmes de performance courants
Utiliser les étapes d’attente pour retarder la récupération des données
Les étapes d’attente vous permettent de suspendre un flux de travail pendant une durée spécifiée, mais elles peuvent également être utilisées pour optimiser vos flux de travail. Chaque étape d’attente divise efficacement l’exécution de votre flux de travail en phases distinctes. Lorsque le flux de travail s’exécute, il récupère automatiquement les données requises jusqu’à la première étape d’attente (et récupère à nouveau les données après l’étape d’attente pour le reste du flux de travail).
Si un flux de travail utilise un déclencheur à volume élevé et récupère beaucoup de données, mais n’effectuera une action qu’occasionnellement, vous pouvez placer des données ou une logique complexes après une paire de condition et d’étape d’attente. Par exemple :
- Déclencheur : la quantité en stock de la variante de produit a été modifiée.
- Condition : vérifier si le produit se trouve dans une collection.
- Si la condition est remplie, action : attendre 2 secondes.
- Action : envoyer un e-mail au client (avec beaucoup de données).
Dans cet exemple, les données requises pour l’étape 4 ne sont interrogées qu’une fois l’étape d’attente terminée. Si la condition est généralement non remplie, cela signifie que le flux de travail s’exécutera plus rapidement et plus efficacement.
Ce qu’il ne faut pas optimiser
Utilisation des mêmes données dans plusieurs actions
Lorsque vous utilisez le même champ dans plusieurs étapes, Flow analyse l’utilisation de ces champs et ne récupère ces données qu’une seule fois. Cela signifie que vous pouvez utiliser les données autant de fois que vous le souhaitez sans vous soucier de la performance.