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.
På den här sidan
Fält
Åtgärden Skicka Admin API-förfrågan innehåller följande fält.
Fält | Beskrivning |
---|---|
Mutation | Krävs. Mutationen Shopify GraphQL Admin som du vill anropa. En mutation är ett API som vidtar åtgärder eller uppdaterar data. |
Mutationsinmatningar | Krä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
ochMutation inputs
från Shopify Admin API-version2024-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