Admin-API-aanvraag verzenden

Met de actie Admin-API-aanvraag verzenden verzend je een mutatie naar de Shopify GraphQL Admin-API. Hierdoor kun je bijna elke actie die de API toestaat uitvoeren met behulp van Flow.

Velden

De actie Admin-API-aanvraag verzenden bevat de volgende velden.

Velden die worden gebruikt bij de actie Admin-API-aanvraag verzenden.
VeldBeschrijving
MutatieVereist. De Shopify GraphQL Admin-mutatie die je wil aanroepen. Een mutatie is een API die actie onderneemt of gegevens bijwerkt.
Mutatie-invoerVereist. De gegevens (in JSON) die je verzendt als onderdeel van de mutatieaanvraag. Elke mutatie vereist een andere set gegevens, die wordt gedocumenteerd in de link die voor elke mutatie wordt verstrekt. Je kunt Liquid of een actie Code uitvoeren gebruiken om de nodige JSON te maken.

Triggers

Je kunt de actie Admin-API-aanvraag verzenden in elke workflow, met elke trigger, gebruiken, zolang de workflow de gegevens bevat die nodig zijn om de mutatie-invoer te maken.

Voorbeelden

Voorbeeld 1: De template bijwerken die voor een product wordt gebruikt

In dit voorbeeld gebruiken we de actie Admin-API-aanvraag verzenden om de mutatie productUpdate aan te roepen om de template bij te werken die voor een product wordt gebruikt.

Het veld id is vereist en kan alleen een geldige product-GID zijn. Hier stellen we het in met de Liquid-variabele {{product.id}}. Dit veronderstelt dat de workflow een trigger heeft die een productobject verschaft.

De templateSuffix is de naam van de template die je op het product wil toepassen. Als je bijvoorbeeld de pre-order-template wil toepassen, stel je de templateSuffix in op pre-order.

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

Voorbeeld 2: De belastingvrijstellingsstatus van een klant bijwerken

In dit voorbeeld gebruiken we de actie Admin-API-aanvraag verzenden om de mutatie customerUpdate aan te roepen om de belastingvrijstellingsstatus van een klant bij te werken.

Het veld id is vereist en kan alleen een geldige klant-GID zijn. Hier stellen we het in met de Liquid-variabele {{order.customer.id}}. Dit veronderstelt dat de workflow een trigger heeft die een bestelobject verschaft.

Het veld taxExempt is een boolean die aangeeft of de klant is vrijgesteld van belasting. In dit voorbeeld stellen we deze in op true.

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

Voorbeeld 3: De landinstellingen van een klant bijwerken

In dit voorbeeld gebruiken we de actie Admin-API-aanvraag verzenden om de mutatie customerUpdate aan te roepen om de landinstellingen van een klant bij te werken.

Het veld id is vereist en kan alleen een geldige klant-GID zijn. Hier stellen we het in met de Liquid-variabele {{customer.id}}. Dit veronderstelt dat de workflow een trigger heeft die een klantobject verschaft.

Het veld locale is een tekenreeks die de landinstellingen van de klant vertegenwoordigt. In dit voorbeeld stellen we deze in op en.

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

Liquid-tips

Flow ondersteunt een json liquid-filter dat handig kan zijn bij het maken van de invoer. De volgende voorbeelden gebruiken allemaal de customerUpdate-mutatie en gaan ervan uit dat je workflow een trigger heeft die een klantobject oplevert.

Werken met tekenreeksen

In het volgende voorbeeld wordt de notitie voor een klant bijgewerkt:

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

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

Het json-filter omzeilt de tekenreeks via een escape-teken om de juiste JSON te waarborgen. Dit resulteert in de volgende JSON nadat de workflow is uitgevoerd:

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

Werken met matrixen

Voorbeeld van matrix

Het json-filter zet een liquid-matrix om in een JSON-matrix. In het volgende voorbeeld wordt een JSON-matrix uitgevoerd wanneer deze wordt geleverd met een liquid-matrix:

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

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

Dit resulteert in de volgende JSON nadat de workflow is uitgevoerd:

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

Voorbeeld van een 'for loop'

In het volgende voorbeeld wordt een lus gebruikt om de elementen van een matrix uit te voeren, gescheiden door komma's:

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

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

Dit levert de volgende JSON op als de workflow wordt uitgevoerd:

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

Voorbeeld kaart

Het map-filter (kaart) kan worden gebruikt om een matrix van een specifieke eigenschap op te halen uit een matrix van objecten. In het volgende voorbeeld wordt een matrix van city -eigenschappen geëxtraheerd uit een matrix van klantadressen:

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

Dit resulteert in de volgende JSON nadat de workflow is uitgevoerd:

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

Beperkingen

De actie Admin-API-aanvraag verzenden heeft de volgende beperkingen:

  • Met de actie wordt een lijst weergegeven met Mutations en Mutation inputs van de Shopify Admin API-versie 2024-04.
  • Na een upgrade van de Admin API-versie kan deze actie mislukken als je afhankelijk bent van een veld met een wijziging die ongedaan wordt gemaakt.
  • De actie ondersteunt geen GraphQL-query's, alleen mutaties.
  • De actie ondersteunt geen verouderde mutaties.
  • De actie ondersteunt sommige mutaties niet die bij bepaalde apps horen, zoals mutaties van abonnementen, marketingactiviteiten en kortingen.
  • De actie ondersteunt geen asynchrone mutaties of mutaties die een Job-type retourneren.
  • De actie ondersteunt geen mutaties die de Node-interface niet implementeren.
Zat het antwoord dat je zocht er niet bij? Wij helpen je graag verder.