Envia una sol·licitud d'Admin API
L'acció Envia una sol·licitud d'Admin API pot utilitzar la majoria de les mutacions de la GraphQL Admin API per fer canvis a la botiga, incloent-hi aquelles mutacions que encara no estan disponibles com a accions a Flow.
Camps
L'acció Envia una sol·licitud d'Admin API conté els camps següents.
| Camp | Descripció |
|---|---|
| Mutació | Obligatori. La mutació de GraphQL Admin de Shopify que vols cridar. Una mutació és una API que realitza una acció o actualitza dades. |
| Entrades de la mutació | Obligatori. Les dades (en format JSON) que has d'enviar com a part de la teva sol·licitud de mutació. Cada mutació requereix un conjunt de dades diferent, que està documentat a l'enllaç proporcionat per a cada mutació. Per construir el JSON necessari, pots utilitzar Liquid o una acció d'executar codi. |
Esdeveniments desencadenants
L'acció Enviar sol·licitud a l'Admin API es pot utilitzar en qualsevol flux de treball, amb qualsevol esdeveniment desencadenant, sempre que el flux de treball proporcioni les dades necessàries per construir les entrades de la mutació.
Exemples
Exemple 1: Actualitzar la plantilla que s'utilitza per a un producte
En aquest exemple, utilitzarem l'acció Enviar sol·licitud a l'Admin API per cridar la mutació productUpdate a fi d'actualitzar la plantilla que s'utilitza per a un producte.
El camp id és obligatori i ha de ser un GID de producte vàlid. Aquí, l'establim amb la variable de Liquid {{product.id}}. Això pressuposa que el teu flux de treball té un esdeveniment desencadenant que proporciona un objecte de producte.
El templateSuffix és el nom de la plantilla que vols aplicar al producte. Per exemple, si vols aplicar la plantilla pre-order, hauries d'establir el templateSuffix en pre-order.
{
"input": {
"templateSuffix": "pre-order",
"id": "{{product.id}}"
}
}Exemple 2: Actualitzar l'estat d'exempció fiscal d'un client
En aquest exemple, utilitzarem l'acció Enviar sol·licitud a l'Admin API per cridar la mutació customerUpdate a fi d'actualitzar l'estat d'exempció fiscal d'un client.
El camp id és obligatori i ha de ser un GID de client vàlid. Aquí, l'establim amb la variable de Liquid {{order.customer.id}}. Això pressuposa que el teu flux de treball té un esdeveniment desencadenant que proporciona un objecte de comanda.
El camp taxExempt és un booleà que indica si el client està exempt d'impostos. En aquest exemple, l'establim en true.
{
"input": {
"id": "{{order.customer.id}}",
"taxExempt": true
}
}Exemple 3: Actualitzar la configuració regional d'un client
En aquest exemple, utilitzarem l'acció Enviar sol·licitud a l'Admin API per cridar la mutació customerUpdate a fi d'actualitzar la configuració regional d'un client.
El camp id és obligatori i ha de ser un GID de client vàlid. Aquí, l'establim amb la variable de Liquid {{customer.id}}. Això pressuposa que el teu flux de treball té un esdeveniment desencadenant que proporciona un objecte de client.
El camp locale és una cadena que representa la configuració regional del client. En aquest exemple, l'establim en en.
{
"input": {
"id": "{{customer.id}}",
"locale": "en"
}
}Consells per a Liquid
Flow admet un filtre de Liquid json que pot ser útil a l'hora de construir l'entrada. A continuació, es mostren diversos exemples que utilitzen la mutació customerUpdate i pressuposen que el teu flux de treball té un esdeveniment desencadenant que proporciona un objecte de client.
Treballar amb cadenes
L'exemple següent actualitza la nota d'un client:
{% assign revisedNote = customer.note | append: " Hello from Flow!" %}
{
"input": {
"id": "{{ customer.id }}",
"note": {{ revisedNote | json }},
}
}El filtre json escapa la cadena per garantir un format JSON correcte. Això dona com a resultat el JSON següent després que s'executi el flux de treball:
{
"input": {
"id": "gid://shopify/Customer/1234",
"note": "Had a \"great experience\" with their latest order. Hello from Flow!",
}
}Treballar amb matrius
Exemple de matriu
El filtre json transforma una matriu de Liquid en una matriu JSON. L'exemple següent genera una matriu JSON quan se li proporciona una matriu de Liquid:
{% assign tags = "tag1,tag2,tag3" | split: "," %}
{
"input": {
"id": "{{ customer.id }}",
"tags": {{ tags | json }}
}
}Això dona com a resultat el JSON següent després que s'executi el flux de treball:
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": ["tag1","tag2","tag3"]
}
}Exemple de bucle for
L'exemple següent utilitza un bucle per mostrar els elements d'una matriu, separats per comes:
{% assign tags = "tag1,tag2,tag3" | split: "," %}
{
"input": {
"id": "{{ customer.id }}",
"tags": [
{% for tag in tags %}
"{{ tag }}"{% unless forloop.last %},{% endunless %}
{% endfor %}
]
}
}Això dona com a resultat el JSON següent quan s'executa el flux de treball:
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": [
"tag1",
"tag2",
"tag3"
]
}
}Exemple de map
El filtre map es pot utilitzar per obtenir una matriu d'una propietat específica a partir d'una matriu d'objectes. En l'exemple següent, s'extreu una matriu de propietats de city a partir d'una matriu d'adreces de clients:
{
"input": {
"id": "{{ customer.id }}",
"tags": {{ customer.addresses | map: "city" | json }}
}
}Això dona com a resultat el JSON següent després que s'executi el flux de treball:
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": ["Ottawa","Toronto"]
}
}Limitacions
L'acció Enviar sol·licitud a l'Admin API té les limitacions següents:
- L'acció mostrarà una llista de
MutationsiMutation inputsde la versió de l'Admin API que utilitza Flow. - Quan es publiquen noves versions de l'API, aquesta acció podria fallar si utilitza una mutació o un camp que s'hagi modificat o quedat obsolet.
- L'acció no és compatible amb les consultes de GraphQL, només amb les mutacions.
- L'acció no admet mutacions que hagin quedat obsoletes.
- L'acció no admet algunes mutacions que són específiques per a determinades aplicacions, incloses algunes mutacions de subscripcions, d'activitats de màrqueting i de descomptes.
- L'acció no admet mutacions asíncrones o mutacions que retornin un tipus
Job. - L'acció no admet mutacions que no implementen la interfície Node.
Plantilles
Afegeix un article gratuït (amb un descompte del 100 %) a les noves comandes
Aquesta plantilla afegeix un article gratuït, amb descompte, a les noves comandes si l'article està en estoc. Comprova l'estoc, aplica un descompte del 100 % i actualitza la comanda sense notificar-ho al client. Aquesta automatització seria útil per a (1) millorar la satisfacció del client en incloure un article gratuït sorpresa a la seva comanda, (2) promocionar productes nous o menys coneguts afegint-los com a mostres gratuïtes a les comandes, o (3) agilitzar les promocions automatitzant la inclusió i l'aplicació de descomptes als articles gratuïts. Mostra la plantilla
Permet fer comandes per a les empreses creades a partir de sol·licituds de comptes d'empresa
Assigna un permís per fer comandes quan es crea una empresa a partir d'una sol·licitud de compte d'empresa. Mostra la plantilla
Canvia la plantilla del producte quan les variants es queden sense estoc o hi torna a haver estoc
Actualitza la plantilla d'un producte basant-se en l'estoc de les variants del producte. El flux de treball et permet canviar entre plantilles de productes amb estoc (la plantilla predeterminada de la botiga), productes sense estoc i quan una variant o més es queden sense estoc. Mostra la plantilla
Prepara qualsevol article digital d'una comanda
Prepara qualsevol article que no requereixi una entrega física, com ara els articles digitals, o bé que coincideixi amb una llista d'SKU. S'executa una vegada per a cada centre de preparació de comandes (la "comanda de preparació") d'una comanda nova. Mostra la plantilla