Send en Admin API-forespørsel
Handlingen Send forespørsel til administratorpanel-API kan bruke de fleste mutasjoner i GraphQL Admin API for å gjøre endringer i butikken, inkludert mutasjoner som ennå ikke er tilgjengelige som handlinger i Flow.
På denne siden
Felter
Handlingen Send Admin API-forespørsel inneholder følgende felter.
Felt | Beskrivelse |
---|---|
Mutasjon | Påkrevd. Shopify GraphQL Admin-mutasjonen du ønsker å anrope. En mutasjon er et API som utfører en handling eller oppdaterer data. |
Mutasjonsinnganger | Påkrevd. Dataene (i JSON) som du må sende som en del av mutasjonsforespørselen. Hver mutasjon krever ulike datasett, som er dokumentert i den oppgitte koblingen for hver mutasjon. Du kan bruke Liquid eller en handling for å kjøre kode for å sette sammen den nødvendige JSON-koden. |
Handlingen Send en Admin API-forespørsel kan brukes i en hvilken som helst arbeidsflyt, med en hvilken som helst utløser, så lenge arbeidsflyten leverer de nødvendige dataene for å sette sammen mutasjonsinndataene.
Eksempler
Eksempel 1: Oppdater malen som brukes for et produkt
I dette eksempelet bruker vi handlingen Send en Admin API-forespørsel for å anrope mutasjonen productUpdate
og oppdatere malen som brukes for et produkt.
Feltet id
er obligatorisk, og må være en gyldig produkt-GID. Her angir vi det med Liquid-variabelen {{product.id}}
. Dette antar at arbeidsflyten har en utløser som returnerer et produktobjekt.
templateSuffix
er navnet på malen du ønsker å legge til for produktet. Hvis du for eksempel ønsker å bruke malen pre-order
, angir du templateSuffix til pre-order
.
{
"input": {
"templateSuffix": "pre-order",
"id": "{{product.id}}"
}
}
Eksempel 2: Oppdater skattefritaksstatusen for en kunde
I dette eksempelet bruker vi handlingen Send en Admin API-forespørsel for å anrope mutasjonen customerUpdate
og oppdatere skattefritaksstatusen for en kunde.
Feltet id
er obligatorisk, og må være en gyldig kunde-GID. Her angir vi det med Liquid-variabelen {{order.customer.id}}
. Dette antar at arbeidsflyten har en utløser som returnerer et bestillingsobjekt.
Feltet taxExempt
er en boolsk verdi, som indikerer hvorvidt kunden har skattefritak. I dette eksempelet angir vi det til true
.
{
"input": {
"id": "{{order.customer.id}}",
"taxExempt": true
}
}
Eksempel 3: Oppdater lokale innstillinger for en kunde
I dette eksempelet bruker vi handlingen Send Admin API-forespørsel for å anrope mutasjonen customerUpdate
og oppdatere lokale innstillinger for en kunde.
Feltet id
er obligatorisk, og må være en gyldig kunde-GID. Her angir vi det med Liquid-variabelen {{customer.id}}
. Dette antar at arbeidsflyten har en utløser som returnerer et kundeobjekt.
Feltet locale
er en streng, som representerer kundens lokale innstillinger. I dette eksempelet angir vi det til en
.
{
"input": {
"id": "{{customer.id}}",
"locale": "en"
}
}
Liquid-tips
Flow støtter liquid-filteret json
, som kan være nyttig for å konstruere inndata. Følgende eksempler bruker mutasjonen customerUpdate
, og antar at arbeidsflyten har en utløser som returnerer et kundeobjekt.
Jobbe med strenger
Følgende eksempel oppdaterer merknaden om en kunde:
{% assign revisedNote = customer.note | append: " Hello from Flow!" %}
{
"input": {
"id": "{{ customer.id }}",
"note": {{ revisedNote | json }},
}
}
Filteret json
legger inn unntakstegn i strengen for å sikre riktig JSON. Dette resulterer i følgende JSON når arbeidsflyten har kjørt:
{
"input": {
"id": "gid://shopify/Customer/1234",
"note": "Had a \"great experience\" with their latest order. Hello from Flow!",
}
}
Jobbe med matriser
Eksempel på en matrise
Filteret json
forvandler en liquid-matrise til en JSON-matrise. Følgende eksempel returnerer en JSON-matrise når inndataene er en liquid-matrise:
{% assign tags = "tag1,tag2,tag3" | split: "," %}
{
"input": {
"id": "{{ customer.id }}",
"tags": {{ tags | json }}
}
}
Dette resulterer i følgende JSON når arbeidsflyten har kjørt:
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": ["tag1","tag2","tag3"]
}
}
Eksempler på for-looper
Følgende eksempel bruker en løkke for å returnere elementene i en matrise, adskilt med komma:
{% assign tags = "tag1,tag2,tag3" | split: "," %}
{
"input": {
"id": "{{ customer.id }}",
"tags": [
{% for tag in tags %}
"{{ tag }}"{% unless forloop.last %},{% endunless %}
{% endfor %}
]
}
}
Dette resulterer i følgende JSON når arbeidsflyten kjører:
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": [
"tag1",
"tag2",
"tag3"
]
}
}
Eksempel på map
Filteret map kan brukes til å hente en matrise for en bestemt egenskap fra en matrise med objekter. I følgende eksempel hentes en matrise med city
-egenskaper fra en matrise med kundeadresser:
{
"input": {
"id": "{{ customer.id }}",
"tags": {{ customer.addresses | map: "city" | json }}
}
}
Dette resulterer i følgende JSON når arbeidsflyten har kjørt:
{
"input": {
"id": "gid://shopify/Customer/1234",
"tags": ["Ottawa","Toronto"]
}
}
Begrensninger
Handlingen Send en Admin API-forespørsel har følgende begrensninger:
- Handlingen vil vise en liste over
Mutations
ogMutation inputs
fra administrasjonspanel-API-versjonen som brukes av Flow. - Når nye API-versjoner gis ut, kan denne handlingen mislykkes hvis du bruker en mutasjon eller et felt som ble endret eller avviklet.
- Handlingen støtter ikke GraphQL-spørringer, bare mutasjoner.
- Handlingen støtter ikke avviklede mutasjoner.
- Handlingen støtter ikke mutasjoner som er spesifikke for enkelte apper, inkludert noen abonnements-, markedsføringsaktivitets- og rabattmutasjoner.
- Handlingen støtter ikke asynkrone mutasjoner eller mutasjoner som returnerer typen
Job
. - Handlingen støtter ikke mutasjoner som ikke implementerer Node-grensesnittet.
Maler
Legg til en gratis (100 % rabatt) vare i nye bestillinger
Denne malen legger til en gratis, rabattert vare i nye bestillinger hvis varen er på lager. Den sjekker lagerbeholdningen, benytter 100 % rabatt og oppdaterer bestillingen uten å varsle kunden. Denne automasjonen kan være nyttig for å (1) gi bedre kundetilfredshet ved å inkludere en gratis overraskelsesvare i bestillingen, (2) promotere nye eller mindre kjente produkter ved å legge dem til som gratisprøver i bestillinger, eller (3) for å forenkle kampanjer ved å automatisere inkluderingen og rabatteringen av gratisvarer. Vis mal
Tillat bestilling for bedrifter som er opprettet av bedriftskontoforespørsler
Tildel en bestillingstillatelse når en bedrift opprettes med en forespørsel om bedriftskonto. Vis mal
Endre produktmal når varianter ikke er på lager eller er tilbake på lager
Oppdater en produktmal basert på lagerbeholdningen for produktvariantene. Arbeidsflyten lar deg bytte mellom maler for på lager (butikkens standardmal), ikke på lager og når en eller flere varianter ikke er på lager. Vis mal
Oppfyll digitale varer i en bestilling
Oppfyller alle varer som ikke krever fysisk levering, for eksempel digitale varer, som matcher en liste over SKU-er. Kjører én gang for hvert oppfyllelsessted («oppfyllelsesbestillingen») for en ny bestilling. Vis mal