Exécuter le code
L’action Exécuter le code exécute JavaScript. Vous pouvez transmettre à l’action Exécuter le code des données provenant d’étapes précédentes du flux de travail comme entrée et les valeurs de retour à utiliser dans les étapes suivantes.
Sur cette page
Champs
L’action Exécuter le code contient les champs suivants.
Champ | Description |
---|---|
Entrée | Obligatoire. Une requête GraphQL pour utiliser les données des étapes précédentes comme entrée de l’action Exécuter le code. |
Sortie | Obligatoire. Une représentation des données à retourner par l’action, définie dans le Schema Definition Language (SDL) GraphQL. |
Code | Obligatoire. JavaScript que l’action Exécuter le code exécutera. |
Données d’entrée
Les données d’entrée peuvent être transmises à partir d’étapes précédant l’action Exécuter le code. Pour inclure ces données, vous pouvez rédiger une requête GraphQL dans le champ Entrée. Les données retournées par la requête seront disponibles comme argument input
de la fonction marquée par export default
, appelée main
par convention.
La requête d’entrée est une requête pour les données d’environnement Flow et non une requête à l’API Shopify Admin. Par conséquent, vous ne pouvez pas insérer de requête Shopify dans les données d’entrée. En outre, Flow gère les edges
et les nodes
dans la requête, vous n’avez donc pas besoin d’ajouter ces informations ou d’autres syntaxes de pagination à votre requête.
Voici un exemple d’entrée qui permet d’obtenir une note de commande et le titre d’une rubrique :
Ces données sont converties en une variable input
, qui peut être utilisée dans le code :
Les entrées peuvent également être déstructurées dans la signature de la fonction :
Champs méta
Pour accéder à des valeurs de champs méta simples dans le code d’exécution, vous devez tout d’abord ajouter le champ méta aux données d’environnement de Flow. Ceci se déroule dans une action ou une condition autre que le code d’exécuter. Par exemple, vous pouvez ajouter une action de sortie de journal, puis suivre les instructions pour ajouter le champ méta.
Une fois qu’un champ méta a été ajouté à l’environnement de flux de travail, vous pouvez y accéder dans le code d’exécution. Par exemple, supposons que vous avez ajouté un champ méta de commande avec le nom d’alias de giftMessage
. Vous pouvez ensuite y accéder dans votre requête d’entrée :
Données de sortie
L’action Exécuter le code peut retourner des données personnalisées. Pour définir le type de données que le code retournera, utilisez le champ Sortie et le Schema definition language (SDL) GraphQL. Les types de sorties pris en charge sont String
, Int
, Float
, Boolean
et ID
, qui sont conformes à la norme SDL concernant la spécification des champs obligatoires, des listes et des données personnalisées.
Par exemple, pour retourner une chaîne appelée giftMessage
et un nombre appelé totalGifts
:
Les commentaires sont facultatifs, mais ils seront utilisés pour décrire les données dans l’interface utilisateur Flow. Pour produire ces données dans le code JavaScript, retournez un objet correspondant au type :
Vous pouvez également définir un type personnalisé pour retourner des données plus complexes. Par exemple, pour renvoyer un type appelé Gift
qui contient une chaîne appelée message
et un numéro appelé amount
:
Pour accéder à ces données dans les étapes qui suivent cette action, utilisez la variable nommée Exécuter le code, qui sera typée selon le schéma Output
que vous définissez dans la configuration de l’action Exécuter le code. Vous pouvez utiliser cette variable à la fois dans les conditions et les actions.
Console.log
Vous pouvez utiliser console.log
pour envoyer des données dans le journal d’exécution du flux de travail de Flow à des fins de résolution de problèmes. La sortie sera visible dans le journal d’exécution du flux de travail. Par exemple, les exemples suivants sont valides :
Vous ne pouvez pas utiliser console.info
, console.error
, ou d’autres fonctions dans l’action Exécuter le code.
Exemple
Des exemples de l’action Exécuter le code se trouvent dans le référentiel d’exemples Flow.
Limitations
L’action Exécuter le code présente les limites suivantes :
- L’action de code d’exécution prend en charge ECMA2020 JavaScript. Elle ne prend pas en charge les API NodeJS ou CommonJS ni les modules d’importation.
- Votre code ne peut pas effectuer d’appels http (
fetch
). - Les fonctions aléatoires et basées sur l’horloge ne peuvent pas être utilisées. Les données de date, telles que
scheduledAt
oucreatedAt
peuvent être transmises en tant qu’entrées. - Console.log ne se connecte pas à la console du navigateur.
- Vous ne pouvez pas ajouter d’alias de champ méta directement dans l’action d’exécution du code. Affichez la section des champs méta pour savoir comment exécuter cette opération.
En outre, les limites suivantes sont appliquées :
- La requête de données d’entrée est limitée à 5 000 caractères.
- Le schéma de données de sortie est limité à 5 000 caractères.
- La charge utile des données de sortie et la sortie Console.log sont limitées à un total de 50 000 ko.
- Le code ne peut pas comporter plus de 5 0000 caractères.
- La durée totale d’exécution est limitée à 5 secondes.
- L’utilisation de la mémoire est limitée à 10 Mo.
Feuille de route
L’équipe Flow prévoit d’ajouter des capacités à l’action Exécuter le code au fil du temps. Le tableau suivant présente les améliorations prévues et leurs dates de livraison estimées.
Amélioration | Description | Date de livraison estimée |
---|---|---|
Connexion | Utilisez « console.log » pour envoyer des données dans le journal d’exécution à des fins de résolution de problèmes. | Terminé. |
Appels d’API externes | Utilisez la récupération de JavaScript pour appeler des API. | 1er trimestre 2025 |
Modèles
Ajouter un article gratuit (100 % de réduction) aux nouvelles commandes
Ce modèle ajoute un article gratuit ou à prix réduit aux nouvelles commandes si l’article est en stock. Il vérifie le stock, applique une réduction de 100 % et met à jour la commande sans en informer le/la client(e). Cette automatisation serait utile pour (1) améliorer la satisfaction des clients en incluant un article gratuit surprise dans leur commande, (2) promouvoir des produits nouveaux ou moins connus en les ajoutant comme échantillons gratuits dans les commandes, ou (3) rationaliser les promotions en automatisant l’inclusion et la réduction des articles gratuits. Afficher le modèle
Annuler les retours inactifs
Annulez automatiquement un retour qui n’a pas été remboursé ou remis en stock au cours d’une période donnée. Afficher le modèle
Convertir les balises avec un préfixe en champ méta de produit à l’aide de l ’action Exécuter le code
Ce flux de travail prend les balises qui commencent par un préfixe tel que « couleur : » et les ajoute à une liste de champs méta de produits. Il utilise l’action Exécuter le code pour analyser les balises et les articles existants dans la liste des champs méta. Le flux de travail est exécuté lors de la création d’un produit, mais il peut être exécuté manuellement sur des produits existants. Afficher le modèle
Envoyer une notification lorsqu’un(e) client(e) commande plusieurs variantes d’un produit
Recevoir une notification par e-mail lorsqu’un(e) client(e) commande plusieurs variantes du même produit. Afficher le modèle
Envoyer une notification lorsque la commande contient un lot
Ce flux de travail démarre lorsqu’une commande est créée et vérifie si l’un des produits de la commande a été acheté dans le cadre d’un lot. Si vous avez trouvé un e-mail interne, il est envoyé avec les détails du lot. De plus, vous pouvez utiliser ce flux de travail comme point de départ pour tout cas d’utilisation qui doit détecter la présence d’un lot dans une commande. Afficher le modèle
Baliser les commandes avec la campagne UTM associée
Ajoute des balises aux commandes contenant les noms de toutes les campagnes UTM associées. Afficher le modèle