Skicka Admin API-förfrågan

Åtgärden Skicka Admin API-förfrågan kan använda de flesta mutationer i GraphQL Admin API för att göra ändringar i din butik, inklusive mutationer som ännu inte är tillgängliga som åtgärder i Flow.

Fält

Åtgärden Skicka Admin API-förfrågan innehåller följande fält.

Fält som används i åtgärden Skicka Admin API-förfrågan.
FältBeskrivning
MutationKrävs. Den Shopify GraphQL Admin-mutation som du vill anropa. En mutation är ett API som vidtar åtgärder eller uppdaterar data.
MutationsindataKrävs. De data (i JSON) som du behöver skicka som en del av din mutationsförfrågan. Varje mutation kräver olika uppsättningar data, vilket dokumenteras i länken som tillhandahålls för varje mutation. Du kan använda Liquid eller en Kör kod-åtgärd för att skapa nödvändig JSON.

Utlösare

Åtgärden Skicka Admin API-förfrågan kan användas i vilket arbetsflöde som helst, med vilken utlösare som helst, så länge arbetsflödet tillhandahåller de data som behövs för att skapa mutationsindata.

Exempel

Exempel 1: Uppdatera mallen som används för en produkt

I det här exemplet använder vi åtgärden Skicka Admin API-förfrågan för att anropa productUpdate-mutationen för att uppdatera mallen som används för en produkt.

Fältet id är obligatoriskt och måste vara ett giltigt produkt-GID. Här ställer vi in det med {{product.id}} Liquid-variabeln. Detta förutsätter att ditt arbetsflöde har en utlösare som tillhandahåller ett produktobjekt.

templateSuffix är namnet på den mall som du vill tillämpa på produkten. Om du till exempel vill tillämpa pre-order-mallen ställer du in templateSuffix på pre-order.

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

Exempel 2: Uppdatera en kunds skattebefrielsestatus

I det här exemplet använder vi åtgärden Skicka Admin API-förfrågan för att anropa customerUpdate-mutationen för att uppdatera en kunds skattebefrielsestatus.

Fältet id är obligatoriskt och måste vara ett giltigt kund-GID. Här ställer vi in det med {{order.customer.id}} Liquid-variabeln. Detta förutsätter att ditt arbetsflöde har en utlösare som tillhandahåller ett orderobjekt.

Fältet taxExempt är ett booleskt värde som anger om kunden är skattebefriad. I det här exemplet ställer vi in det på true.

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

Exempel 3: Uppdatera en kunds språkversion

I det här exemplet använder vi åtgärden Skicka Admin API-förfrågan för att anropa customerUpdate-mutationen för att uppdatera en kunds språkversion.

Fältet id är obligatoriskt och måste vara ett giltigt kund-GID. Här ställer vi in det med {{customer.id}} Liquid-variabeln. Detta förutsätter att ditt arbetsflöde har en utlösare som tillhandahåller ett kundobjekt.

Fältet locale är en sträng som representerar kundens språkversion. I det här exemplet ställer vi in det på en.

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

Liquid-tips

Flow stöder ett json-liquidfilter som kan vara användbart för att skapa indata. I alla följande exempel används customerUpdate-mutationen och det förutsätts att ditt arbetsflöde har en utlösare som tillhandahåller ett kundobjekt.

Arbeta med strängar

I följande exempel uppdateras en anteckning för en kund:

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

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

json-filtret undantagsteckenkodar strängen för att säkerställa korrekt JSON. Detta resulterar i följande JSON efter att arbetsflödet körts:

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

Arbeta med arrayer

Array-exempel

json-filtret omvandlar en Liquid-array till en JSON-array. Följande exempel matar ut en JSON-array när det förses med en Liquid-array:

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

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

Detta resulterar i följande JSON efter att arbetsflödet har körts:

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

Exempel på for-loop

I följande exempel används en loop för att mata ut elementen i en array, separerade med kommatecken:

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

{
  "input": {
    "id": "{{ customer.id }}",
    "tags": [
      {% for tag in tags %}
        "{{ tag }}"{% unless forloop.last %},{% endunless %}
      {% endfor %}
    ]
  }
}

Detta resulterar i följande JSON när arbetsflödet körs:

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

Exempel på map

map-filtret kan användas för att hämta en array med en specifik egenskap från en array med objekt. I följande exempel extraheras en array med city-egenskaper från en array med kundadresser:

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

Detta resulterar i följande JSON efter att arbetsflödet har körts:

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

Begränsningar

Åtgärden Skicka Admin API-förfrågan har följande begränsningar:

  • Åtgärden visar en lista över Mutationer och Mutationsindata från den Admin API-version som används av Flow.
  • När nya API-versioner släpps kan den här åtgärden misslyckas om den använder en mutation eller ett fält som har ändrats eller fasats ut.
  • Åtgärden stöder inte GraphQL-frågor, endast mutationer.
  • Åtgärden stöder inte mutationer som har fasats ut.
  • Åtgärden stöder inte vissa mutationer som är specifika för vissa appar, inklusive vissa prenumerations-, marknadsföringsaktivitets- och rabattmutationer.
  • Åtgärden stöder inte asynkrona mutationer eller mutationer som returnerar en Job-typ.
  • Åtgärden stöder inte mutationer som inte implementerar Node-gränssnittet.

Mallar

Lägg till en gratisartikel (rabatterad med 100 %) i nya ordrar

Den här mallen lägger till en gratis, rabatterad artikel i nya ordrar om artikeln finns i lager. Den kontrollerar lagersaldo, tillämpar en rabatt på 100 % och uppdaterar ordern utan att meddela kunden. Den här automatiseringen kan vara användbar för att (1) öka kundnöjdheten genom att inkludera en gratis överraskningsartikel i ordern, (2) marknadsföra nya eller mindre kända produkter genom att lägga till dem som gratisprover i ordrar, eller (3) effektivisera kampanjer genom att automatisera inkludering och rabattering av gratisartiklar. Visa mall

Tillåt beställning för företag som skapats via företagskontoförfrågningar

Tilldela en beställningsbehörighet när ett företag skapas från en förfrågan om företagskonto. Visa mall

Ändra produktmall när varianter är slut i lager eller åter i lager

Uppdatera en produktmall baserat på lagersaldot för produktens varianter. Arbetsflödet låter dig växla mellan mallar för när varor finns i lager (butikens standardmall), är slut i lager och när en eller flera varianter är slut i lager. Visa mall

Distribuera alla digitala artiklar i en order

Distribuerar alla artiklar som inte kräver fysisk leverans, till exempel digitala artiklar, eller som matchar en lista med SKU:er. Körs en gång för varje distributionsplats (”distributionsordern”) för en ny order. Visa mall