Envoyer une requête de l’API de l’interface administrateur
L’action Envoyer une requête de l’API de l’interface administrateur envoie une mutation à l’API Admin GraphQL Shopify. Cette action vous permet d’effectuer presque toutes les actions autorisées par l’API à l’aide de Flow.
Sur cette page
Champs
L’action Envoyer une requête de l’API de l’interface administrateur contient les champs suivants.
Champ | Description |
---|---|
Mutations | Obligatoire. La mutation Admin GraphQL Shopify que vous souhaitez appeler. Une mutation est une API qui effectue une action ou met à jour des données. |
Entrées de mutation | Obligatoire. Les données (dans JSON) que vous devez envoyer dans le cadre de votre requête de mutation. Chaque mutation nécessite un ensemble de données différent, qui est documenté dans le lien fourni pour chaque mutation. Pour créer le JSON requis, vous pouvez utiliser Liquid ou l’action Exécuter le code. |
Déclencheurs
L’action Envoyer une requête de l’API de l’interface administrateur peut être utilisée dans n’importe quel flux de travail, avec n’importe quel déclencheur, tant que le flux de travail fournit les données nécessaires à la construction des entrées de mutation.
Exemples
Exemple 1 : mettre à jour le modèle utilisé pour un produit
Dans cet exemple, nous utiliserons l’action Envoyer une requête de l’API de l’interface administrateur pour appeler la mutation productUpdate
afin de mettre à jour le modèle utilisé pour un produit.
Le champ id
est requis et doit être un GID de produit valide. Ici, nous le configurons avec la variable Liquid {{product.id}}
. Cela suppose que votre flux de travail dispose d’un déclencheur qui fournit un objet produit.
Le templateSuffix
est le nom du modèle que vous souhaitez appliquer au produit. Par exemple, si vous souhaitez appliquer le modèle pre-order
, vous définissez le suffixe du modèle sur pre-order
.
{
"input": {
"templateSuffix": "pre-order",
"id": "{{product.id}}"
}
}
Exemple 2 : mettre à jour le statut d’exonération fiscale d’un(e) client(e)
Dans cet exemple, nous utiliserons l’action Envoyer une requête de l’API de l’interface administrateur pour appeler la mutation customerUpdate
afin de mettre à jour le statut d’exonération fiscale d’un(e) client(e).
Le id
de l’adresse est obligatoire et doit être un GID client valide. Nous la définissez ici avec la variable Liquid {{order.customer.id}}
faible. Cela suppose que votre flux de travail dispose d’un déclencheur qui fournit un objet de commande.
Le champ taxExempt
est un booléen qui indique si le/la client(e) est exonéré(e) de taxe. Dans cet exemple, nous l’avons paramétré comme true
.
{
"input": {
"id": "{{order.customer.id}}",
"taxExempt": true
}
}
Exemple 3 : mettre à jour les paramètres régionaux d’un(e) client(e)
Dans cet exemple, nous utiliserons l’action Send Admin API request (Envoyer une requête de l’API de l’interface administrateur) pour appeler la mutation customerUpdate
afin de mettre à jour les paramètres régionaux d’un client.
Le champ id
est requis et doit être un GID de client valide. Ici, nous le configurons avec la variable Liquid {{customer.id}}
. Cela suppose que votre flux de travail dispose d’un déclencheur qui fournit un objet client.
Le champ locale
est une chaîne qui représente les paramètres régionaux du/de la client(e). Dans cet exemple, nous l’avons paramétré comme en
.
{
"input": {
"id": "{{customer.id}}",
"locale": "en"
}
}
Conseils Liquid
Flow prend en charge un filtre liquid json
qui peut être utile lors de la construction de l’entrée. Les exemples suivants utilisent tous la mutation customerUpdate
et supposent que votre flux de travail dispose d’un déclencheur qui fournit un objet client.
Travailler avec des chaînes
L’exemple suivant met à jour la note d’un(e) client(e) :
{% assign revisedNote = customer.note | append: " Hello from Flow!" %}
{
"input": {
"id": "{{ customer.id }}",
"note": {{ revisedNote | json }},
}
}
Le filtre json
échappe à la chaîne pour assurer un JSON correct. Après l’exécution du flux de travail, vous obtenez le JSON suivant :
{
"input": {
"id": "gid://shopify/Customer/1234",
"note": "Had a \"great experience\" with their latest order. Hello from Flow!",
}
}
Travailler avec des tableaux
Exemple de tableau
Le filtre json
transforme un tableau Liquid en tableau JSON. L’exemple suivant produit un tableau JSON lorsqu’il est fourni avec un tableau Liquid :
{% assign tags = "tag1,tag2,tag3" | split: "," %}
{
"input": {
"id": "{{ customer.id }}",
"tags": {{ tags | json }}
}
}
Après l’exécution du flux de travail, vous obtenez le JSON suivant :
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": ["tag1","tag2","tag3"]
}
}
Exemple de boucle for
L’exemple suivant utilise une boucle pour sortir les éléments d’un tableau, séparés par des virgules :
{% assign tags = "tag1,tag2,tag3" | split: "," %}
{
"input": {
"id": "{{ customer.id }}",
"tags": [
{% for tag in tags %}
"{{ tag }}"{% unless forloop.last %},{% endunless %}
{% endfor %}
]
}
}
Cela donne le JSON suivant lorsque le flux de travail s’exécute :
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": [
"tag1",
"tag2",
"tag3"
]
}
}
Exemple de carte
Le filtre map peut être utilisé pour obtenir un tableau d’une propriété spécifique à partir d’un tableau d’objets. Dans l’exemple suivant, un tableau de propriétés city
est extrait d’un tableau d’adresses de clients :
{
"input": {
"id": "{{ customer.id }}",
"tags": {{ customer.addresses | map: "city" | json }}
}
}
Après l’exécution du flux de travail, vous obtenez le JSON suivant :
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": ["Ottawa","Toronto"]
}
}
Limitations
L’action Envoyer une requête de l’API de l’interface administrateur présente les limitations suivantes :
- L’action affichera une liste de
Mutations
etMutation inputs
à partir de la version2024-04
de l’API de l’interface administrateur Shopify. - Lorsque la version de l’API de l’interface administrateur est mise à niveau, cette action peut échouer si elle s’appuie sur un champ ayant subi un changement cassant.
- L’action ne prend pas en charge les requêtes GraphQL, mais uniquement les mutations.
- L’action ne prend pas en charge les mutations supprimées.
- L’action ne prend pas en charge certaines mutations propres à certaines applications, notamment relatives aux abonnements, aux activités de marketing et aux réductions.
- L’action ne prend pas en charge les mutations asynchrones ou les mutations qui renvoient un type
Job
. - L’action ne prend pas en charge les outils d’un groupe d’utilisateurs dont l’interface Node n’est pas mise en œuvre.
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
Autoriser la commande pour les entreprises créées par des demandes de compte d’entreprise
Attribuez une autorisation de commande lorsque l’entreprise est créée par une demande de compte d’entreprise. Afficher le modèle
Modifier le modèle de produit lorsque les variantes sont en rupture de stock ou de nouveau en stock
Mettez à jour le modèle de produit en fonction du stock des variantes du produit. Le flux de travail vous permet de passer d’un modèle à l’autre pour les produits en stock (modèle par défaut de la boutique), les produits en rupture de stock et lorsqu’une ou plusieurs variantes sont en rupture de stock. Afficher le modèle
Traiter tous les articles numériques d’une commande
Traite tous les articles qui ne nécessitent pas de livraison physique, tels que les articles numériques, ou qui correspondent à une liste de SKU. S’exécute une fois pour chaque emplacement de traitement des commandes (le « traitement des commandes ») pour une nouvelle commande. Afficher le modèle