Skicka Admin-API-begäran

Åtgärden Skicka Admin-API-begäran skickar en mutation till Shopify GraphQL Admin-API. Genom att göra det kan du göra nästan vilken åtgärd som helst som API:n tillåter genom att använda 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-begäran.
FältBeskrivning
MutationKrävs. Mutationen Shopify GraphQL Admin som du vill anropa. En mutation är ett API som vidtar åtgärder eller uppdaterar data.
MutationsinmatningarKrävs. Data (i JSON) som du behöver skicka som en del av din mutationsbegäran. Varje mutation kräver en annan uppsättning data, vilket dokumenteras i länken som anges för varje mutation. Du kan använda Liquid eller en Åtgärd för att köra kod för att konstruera nödvändig JSON.

Utlösare

Åtgärden Skicka Admin API-begäran kan användas i alla arbetsflöden, med vilken utlösare som helst, så länge arbetsflödet tillhandahåller de data som krävs för att konstruera mutationens indata.

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-begäran för att anropa mutationen productUpdate 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 Liquid-variabeln {{product.id}}. Detta förutsätter att ditt arbetsflöde har en utlösare som tillhandahåller ett produktobjekt.

Namnet templateSuffix är namnet på den mall som du vill använda för produkten. Om du till exempel vill använda mallen pre-order ställer du in templateSuffix till pre-order.

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

Exempel 2: Uppdatera skattebefrielsestatus för en kund

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

Fältet id är obligatoriskt och måste vara ett giltigt kund-GID. Här ställer vi in det med Liquid-variabeln {{order.customer.id}}. 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 visar 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 plats för en kund

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

Fältet id är obligatoriskt och måste vara ett giltigt kund-GID. Här ställer vi in det med Liquid-variabeln {{customer.id}}. 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 plats. 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 liquid-filter som kan vara användbart när indata skapas. Följande exempel använder alla customerUpdate-mutationen och förutsätter att arbetsflödet har en utlösare som ger ett kundobjekt.

Att arbeta med strängar

Följande exempel uppdaterar anteckningen om en kund:

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

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

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

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

Att arbeta med matriser

Matrisexempel

Filtret json förvandlar en liquid-matris till en JSON-matris. Följande exempel matar ut en JSON-matris när den är förses med en liquid-matris:

{% 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å loop

Följande exempel använder en loop för att mata ut elementen i en matris, 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"
    ]
  }
}

Kartexempel

Det går att använda kartfiltret för att få en matris för en specifik egenskap från en uppsättning objekt. I följande exempel extraheras en uppsättning city-egenskaper från en uppsättning 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-begäran har följande begränsningar:

  • Åtgärden kommer att visa en lista över Mutations och Mutation inputs från Shopify Admin API-version 2024-04.
  • När Admin API-versionen uppgraderas kan den här åtgärden misslyckas om du förlitar dig på ett fält med en brytande ändring.
  • Åtgärden stöder inte GraphQL-frågor, endast mutationer.
  • Åtgärden stöder inte mutationer som har blivit inaktuella.
  • Åtgärden stöder inte vissa mutationer som är specifika för vissa appar, inklusive viss prenumeration, marknadsföringsaktivitet och rabattmutationer.
  • Åtgärden stöder inte asynkrona mutationer eller mutationer som returnerar en Job-typ.
  • Åtgärden stödjer inte mutationer som inte implementerar Node-gränssnittet.

Mallar

Lägg till gratis (100 % rabatterad) artikel till nya order

Den här mallen lägger till en gratis eller rabatterad artikel i nya order om artikeln finns i lager. Den kontrollerar lagret, tillämpar en rabatt på 100 % och uppdaterar ordern utan att meddela kunden. Denna automatisering 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 ordern eller (3) effektivisera kampanjer genom att automatisera inkludering och rabattering av gratisartiklar. Visa mall

Tillåt beställningar för företag som skapats av förfrågningar om företagskonto

Tilldela en beställningsbehörighet när ett företag skapas genom en begäran om företagskonto. Visa mall

Ändra produktmall när varianter är slut i lager eller finns i lager | lagerförteckning

Uppdatera en produktmall baserat på lagret för produktens varianter. Arbetsflödet låter dig växla mellan mallar för i lager (butikens standardmall), 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 någon fysisk leverans, t.ex. digitala artiklar, eller som matchar en lista med lagerhållningsenheter. Körs en gång för varje distributionsplats (”distributionsorder”) för en ny order. Visa mall

Hittar du inte de svar du letar efter? Vi finns här för att hjälpa till!