Envoyer une requête Admin API
L’action Envoyer une requête Admin API peut utiliser la plupart des mutations de la GraphQL Admin API pour apporter des modifications à votre boutique, y compris les mutations qui ne sont pas encore disponibles en tant qu’actions dans Flow.
Sur cette page
Champs
L’action Envoyer une requête Admin API contient les champs suivants.
| Champ | Description |
|---|---|
| Mutation | Requis. La mutation de la GraphQL Admin API de Shopify que vous souhaitez appeler. Une mutation est une API qui effectue des actions ou met des données à jour. |
| Entrées de la mutation | Requis. Les données (au format JSON) que vous devez envoyer dans le cadre de votre requête de mutation. Chaque mutation requiert un ensemble de données différent, qui est documenté dans le lien fourni pour chaque mutation. Pour construire le JSON nécessaire, vous pouvez utiliser Liquid ou une action Exécuter le code. |
Déclencheurs
L’action Envoyer une requête Admin API peut être utilisée dans n’importe quel flux de travail, avec n’importe quel déclencheur, à condition que le flux de travail fournisse les données nécessaires pour construire les entrées de la mutation.
Exemples
Exemple 1 : Mettre à jour le modèle utilisé pour un produit
Dans cet exemple, nous allons utiliser l’action Envoyer une requête Admin API pour appeler la mutation productUpdate afin de mettre à jour le modèle utilisé pour un produit.
Le champ id est requis et doit correspondre à un GID de produit valide. Ici, nous le définissons avec la variable Liquid {{product.id}}. Cela suppose que votre flux de travail possède un déclencheur qui fournit un objet produit.
templateSuffix correspond au nom du modèle que vous souhaitez appliquer au produit. Par exemple, si vous souhaitez appliquer le modèle pre-order, vous devez définir templateSuffix sur pre-order.
{
"input": {
"templateSuffix": "pre-order",
"id": "{{product.id}}"
}
}Exemple 2 : Mettre à jour le statut d’exonération fiscale d’un client
Dans cet exemple, nous allons utiliser l’action Envoyer une requête Admin API pour appeler la mutation customerUpdate afin de mettre à jour le statut d’exonération fiscale d’un client.
Le champ id est requis et doit correspondre à un GID de client valide. Ici, nous le définissons avec la variable Liquid {{order.customer.id}}. Cela suppose que votre flux de travail possède un déclencheur qui fournit un objet commande.
Le champ taxExempt est une valeur booléenne qui indique si le client est exonéré de taxes. Dans cet exemple, nous la définissons sur true.
{
"input": {
"id": "{{order.customer.id}}",
"taxExempt": true
}
}Exemple 3 : Mettre à jour les paramètres régionaux d’un client
Dans cet exemple, nous allons utiliser l’action Envoyer une requête Admin API pour appeler la mutation customerUpdate afin de mettre à jour les paramètres régionaux d’un client.
Le champ id est requis et doit correspondre à un GID de client valide. Ici, nous le définissons avec la variable Liquid {{customer.id}}. Cela suppose que votre flux de travail possède un déclencheur qui fournit un objet client.
Le champ locale est une chaîne qui représente les paramètres régionaux du client. Dans cet exemple, nous la définissons sur en.
{
"input": {
"id": "{{customer.id}}",
"locale": "en"
}
}Astuces Liquid
Flow prend en charge un filtre Liquid json qui peut être utile pour construire l’entrée. Les exemples suivants utilisent tous la mutation customerUpdate et supposent que votre flux de travail possède un déclencheur qui fournit un objet client.
Utilisation des chaînes
L’exemple suivant met à jour la note d’un client :
{% assign revisedNote = customer.note | append: " Hello from Flow!" %}
{
"input": {
"id": "{{ customer.id }}",
"note": {{ revisedNote | json }},
}
}Le filtre json met la chaîne en échappement pour garantir un format JSON correct. Cela produit le JSON suivant une fois le flux de travail exécuté :
{
"input": {
"id": "gid://shopify/Customer/1234",
"note": "Had a \"great experience\" with their latest order. Hello from Flow!",
}
}Utilisation des tableaux
Exemple de tableau
Le filtre json transforme un tableau Liquid en tableau JSON. L’exemple suivant génère un tableau JSON lorsqu’un tableau Liquid est fourni :
{% assign tags = "tag1,tag2,tag3" | split: "," %}
{
"input": {
"id": "{{ customer.id }}",
"tags": {{ tags | json }}
}
}Cela produit le JSON suivant une fois le flux de travail exécuté :
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": ["tag1","tag2","tag3"]
}
}Exemple de boucle For
L’exemple suivant utilise une boucle pour générer 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 produit le JSON suivant lorsque le flux de travail s’exécute :
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": [
"tag1",
"tag2",
"tag3"
]
}
}Exemple de map
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 }}
}
}Cela produit le JSON suivant une fois le flux de travail exécuté :
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": ["Ottawa","Toronto"]
}
}Limites
L’action Envoyer une requête Admin API présente les limites suivantes :
- L’action affichera une liste de
Mutationset d’Entrées de mutationà partir de la version de l’Admin API utilisée par Flow. - Lorsque de nouvelles versions de l’API sont publiées, cette action risque d’échouer si elle utilise une mutation ou un champ qui a été modifié ou déprécié.
- L’action ne prend pas en charge les requêtes GraphQL, uniquement les mutations.
- L’action ne prend pas en charge les mutations dépréciées.
- L’action ne prend pas en charge certaines mutations qui sont spécifiques à certaines applis, notamment certaines mutations liées aux abonnements, à l’activité 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 mutations qui n'implémentent pas l'interface Node.
Modèles
Ajouter un article gratuit (avec une réduction de 100 %) aux nouvelles commandes
Ce modèle ajoute un article gratuit avec réduction 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 client. 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 en tant qu’échantillons gratuits dans les commandes, ou (3) simplifier les promotions en automatisant l’inclusion et la réduction des articles gratuits. Afficher le modèle
Autoriser les commandes pour les entreprises créées par des requêtes de compte d’entreprise
Attribuer une autorisation de passer des commandes lorsqu’une entreprise est créée suite à une demande de compte d’entreprise. Voir le modèle
Modifier le modèle de produit lorsque des variantes sont en rupture de stock ou de nouveau en stock
Mettre à jour un modèle de produit en fonction du stock des variantes du produit. Ce flux de travail vous permet de basculer entre des modèles pour les cas où le produit est en stock (le modèle par défaut de la boutique), en rupture de stock et lorsqu’une ou plusieurs variantes sont en rupture de stock. Voir 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 (la « commande à traiter ») pour une nouvelle commande. Voir le modèle