Send Admin API-forespørsel

Handlingen Send Admin API-forespørsel kan bruke de fleste mutasjoner i GraphQL Admin API til å gjøre endringer i butikken din, inkludert mutasjoner som ennå ikke er tilgjengelige som handlinger i Flow.

Felt

Handlingen Send Admin API-forespørsel inneholder følgende felt.

Felt som brukes i handlingen Send Admin API-forespørsel.
FeltBeskrivelse
MutasjonObligatorisk. Shopify GraphQL Admin-mutasjonen du vil kalle. En mutasjon er et API som utfører en handling eller oppdaterer data.
MutasjonsinndataObligatorisk. Dataene (i JSON) du må sende som en del av mutasjonsforespørselen. Hver mutasjon krever et ulikt sett med data, som er dokumentert i koblingen som følger med hver mutasjon. For å bygge den nødvendige JSON-koden kan du bruke Liquid eller en Kjør kode-handling.

Utløsere

Handlingen Send Admin API-forespørsel kan brukes i alle arbeidsflyter, med alle utløsere, så lenge arbeidsflyten leverer de nødvendige dataene for å bygge mutasjonsinndataene.

Eksempler

Eksempel 1: Oppdater malen som brukes for et produkt

I dette eksempelet bruker vi handlingen Send Admin API-forespørsel til å kalle productUpdate-mutasjonen for å oppdatere malen som brukes for et produkt.

id-feltet er obligatorisk og må være en gyldig GID for et produkt. Her angir vi den med Liquid-variabelen {{product.id}}. Dette forutsetter at arbeidsflyten har en utløser som leverer et produktobjekt.

templateSuffix er navnet på malen du vil bruke på produktet. Hvis du for eksempel vil bruke pre-order-malen, angir du templateSuffix til pre-order.

{
  "input": {
    "templateSuffix": "pre-order",
    "id": "{{product.id}}"
  }
}

Eksempel 2: Oppdater en kundes status for avgiftsfritak

I dette eksempelet bruker vi handlingen Send Admin API-forespørsel til å kalle customerUpdate-mutasjonen for å oppdatere en kundes status for avgiftsfritak.

id-feltet er obligatorisk og må være en gyldig GID for en kunde. Her angir vi den med Liquid-variabelen {{order.customer.id}}. Dette forutsetter at arbeidsflyten har en utløser som leverer et bestillingsobjekt.

taxExempt-feltet er en boolsk verdi som angir om kunden har avgiftsfritak. I dette eksempelet angir vi den til true.

{
  "input": {
    "id": "{{order.customer.id}}",
    "taxExempt": true
  }
}

Eksempel 3: Oppdater en kundes lokalinnstilling

I dette eksempelet bruker vi handlingen Send Admin API-forespørsel til å kalle customerUpdate-mutasjonen for å oppdatere en kundes lokalinnstilling.

id-feltet er obligatorisk og må være en gyldig GID for en kunde. Her angir vi den med Liquid-variabelen {{customer.id}}. Dette forutsetter at arbeidsflyten har en utløser som leverer et kundeobjekt.

locale-feltet er en streng som representerer kundens lokalinnstilling. I dette eksempelet angir vi den til en.

{
  "input": {
    "id": "{{customer.id}}",
    "locale": "en"
  }
}

Liquid-tips

Flow støtter et json Liquid-filter som kan være nyttig for å bygge inndata. Alle de følgende eksemplene bruker customerUpdate-mutasjonen og forutsetter at arbeidsflyten din har en utløser som leverer et kundeobjekt.

Arbeide med strenger

Følgende eksempel oppdaterer merknaden for en kunde:

{% assign revisedNote = customer.note | append: " Hello from Flow!" %}

{
  "input": {
    "id": "{{ customer.id }}",
    "note": {{ revisedNote | json }},
  }
}

json-filteret eskaperer strengen for å sikre riktig JSON-format. Dette resulterer i følgende JSON etter at arbeidsflyten har kjørt:

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "note": "Had a \"great experience\" with their latest order. Hello from Flow!",
  }
}

Arbeide med matriser

Matriseeksempel

json-filteret transformerer en Liquid-matrise til en JSON-matrise. Følgende eksempel gir ut en JSON-matrise når det får en Liquid-matrise:

{% assign tags = "tag1,tag2,tag3" | split: "," %}

{
  "input": {
    "id": "{{ customer.id }}",
    "tags": {{ tags | json }}
  }
}

Dette resulterer i følgende JSON etter at arbeidsflyten har kjørt:

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "tags": ["tag1","tag2","tag3"]
  }
}

For-løkke-eksempel

Følgende eksempel bruker en løkke til å sende ut elementene i en matrise, atskilt 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"
    ]
  }
}

Map-eksempel

map-filteret kan brukes til å hente en matrise med en bestemt egenskap fra en matrise med objekter. I følgende eksempel trekkes det ut 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 etter at arbeidsflyten har kjørt:

{
  "input": {
    "id": "gid://shopify/Customer/1234",
    "tags": ["Ottawa","Toronto"]
  }
}

Begrensninger

Handlingen Send Admin API-forespørsel har følgende begrensninger:

  • Handlingen viser en liste over Mutations og Mutation inputs fra Admin API-versjonen som brukes av Flow.
  • Når nye API-versjoner lanseres, kan denne handlingen mislykkes hvis den bruker en mutasjon eller et felt som er endret eller avviklet.
  • Handlingen støtter ikke GraphQL-spørringer, bare mutasjoner.
  • Handlingen støtter ikke mutasjoner som er avviklet.
  • Handlingen støtter ikke enkelte mutasjoner som er spesifikke for bestemte apper, inkludert enkelte abonnements-, markedsføringsaktivitets- og rabattmutasjoner.
  • Handlingen støtter ikke asynkrone mutasjoner eller mutasjoner som returnerer en Job-type.
  • Handlingen støtter ikke mutasjoner som ikke implementerer Node-grensesnittet.

Maler

Legg til gratisvare (100 % rabatt) i nye bestillinger

Denne malen legger til en gratisvare med rabatt i nye bestillinger hvis varen er på lager. Den sjekker varelageret, bruker 100 % rabatt og oppdaterer bestillingen uten å varsle kunden. Denne automasjonen kan være nyttig for å (1) øke kundetilfredsheten ved å legge til en gratis overraskelsesvare i bestillingen, (2) markedsføre nye eller mindre kjente produkter ved å legge dem til som gratisprøver i bestillinger, eller (3) effektivisere kampanjer ved å automatisere inkludering og rabattering av gratisvarer. Vis mal

Tillat bestilling for bedrifter opprettet av forespørsler om bedriftskonto

Tildel en bestillingstillatelse når en bedrift opprettes via en forespørsel om bedriftskonto. Vis mal

Endre produktmal når varianter er utsolgt eller tilbake på lager

Oppdater en produktmal basert på lagerbeholdningen for produktets varianter. Arbeidsflyten lar deg bytte mellom maler for varer på lager (butikkens standardmal), utsolgte varer og når én eller flere varianter er utsolgt. Vis mal

Innfri alle digitale varer i en bestilling

Innfrir varer som ikke krever fysisk levering, som digitale varer, eller som samsvarer med en liste over SKU-er. Kjøres én gang for hvert distribusjonssted (distribusjonsbestillingen) for en ny bestilling. Vis mal