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ä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 returnerar inte data till Flow-miljön som ett resultat av mutationen.
  • Åtgärden stöder inte GraphQL-frågor, endast mutationer.
  • Åtgärden stöder inte asynkrona mutationer eller mutationer som returnerar en Job-typ.
  • Åtgärden stöder inte mutationer som är specifika för vissa appar, som inkluderar prenumerationer och rabattmutationer.
  • Åtgärden kommer att visa en lista över Mutations och Mutation inputs från en enda Shopify API-version, som för närvarande är 2024-01.
  • Om API-versionen uppgraderas och innehåller en ny ändring kan det göra att den här åtgärden misslyckas om du förlitar dig på det fältet.

Är du redo att börja sälja med Shopify?

Prova gratis