Send en Admin API-forespørsel

Handlingen Send en Admin API-forespørsel sender en mutasjon til Shopify GraphQL Admin API. Ved å gjøre dette kan du utføre nesten alle handlinger som tillates av API-et med Flow.

Felter

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

Felter som brukes i handlingen Send en Admin API-forespørsel.
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.

Utløsere

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 angis den 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 returnerer ikke data til Flow-miljøet som et resultat av mutasjonen.
  • Handlingen støtter ikke GraphQL-spørringer, bare mutasjoner.
  • Handlingen støtter ikke asynkrone mutasjoner eller mutasjoner som returnerer typen Job.
  • Handlingen støtter ikke mutasjoner som er spesifikke for enkelte apper, som inkluderer abonnementer og rabattmutasjoner.
  • Handlingen viser en liste over Mutations og Mutation inputs fra én enkelt Shopify API-versjon, som for øyeblikket er 2024-01.
  • Når API-versjonen oppgraderes og inneholder en ødeleggende endring, kan dette føre til at handlingen mislykkes dersom du er avhengig av dette feltet.

Er du klar til å begynne å selge med Shopify?

Prøv det gratis