Admin API-verzoek verzenden

De actie Admin API-verzoek verzenden kan de meeste mutaties in de GraphQL Admin API gebruiken om wijzigingen in je winkel aan te brengen, inclusief mutaties die nog niet beschikbaar zijn als acties in Flow.

Velden

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

Velden die worden gebruikt in de actie Admin API-verzoek verzenden.
VeldBeschrijving
MutatieVereist. De Shopify GraphQL Admin-mutatie die je wilt aanroepen. Een mutatie is een API die een actie uitvoert of gegevens updatet.
Mutatie-invoerVereist. De gegevens (in JSON) die je als onderdeel van je mutatieverzoek moet verzenden. Elke mutatie vereist een andere set gegevens, die wordt gedocumenteerd via de meegeleverde link voor elke mutatie. Je kunt Liquid of een actie Code uitvoeren gebruiken om de benodigde JSON samen te stellen.

Triggers

De actie Admin API-verzoek verzenden kan in elke workflow en met elke trigger worden gebruikt, zolang de workflow de gegevens levert die nodig zijn om de mutatie-invoer samen te stellen.

Voorbeelden

Voorbeeld 1: De template voor een product updaten

In dit voorbeeld gebruiken we de actie Admin API-verzoek verzenden om de productUpdate-mutatie aan te roepen en zo de template voor een product te updaten.

Het veld id is vereist en moet een geldige product-GID zijn. Hier stellen we dit in met de Liquid-variabele {{product.id}}. Dit veronderstelt dat je workflow een trigger heeft die een productobject levert.

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

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

Voorbeeld 2: De belastingvrijstellingsstatus van een klant updaten

In dit voorbeeld gebruiken we de actie Admin API-verzoek verzenden om met de customerUpdate-mutatie de belastingvrijstellingsstatus van een klant te updaten.

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

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

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

Voorbeeld 3: De landinstellingen van een klant updaten

In dit voorbeeld gebruiken we de actie Admin API-verzoek verzenden om met de customerUpdate-mutatie de landinstellingen van een klant te updaten.

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

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

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

Liquid-tips

Flow ondersteunt een json Liquid-filter dat handig kan zijn bij het samenstellen van de invoer. In de volgende voorbeelden wordt steeds de customerUpdate-mutatie gebruikt en wordt ervan uitgegaan dat je workflow een trigger heeft die een klantobject levert.

Werken met tekenreeksen

Het volgende voorbeeld updatet de notitie bij een klant:

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

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

Het json-filter escapet de tekenreeks voor correcte JSON. 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 arrays

Array-voorbeeld

Het json-filter zet een Liquid-array om in een JSON-array. Het volgende voorbeeld geeft een JSON-array als uitvoer wanneer er een Liquid-array wordt opgegeven:

{% 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"]
  }
}

For-lusvoorbeeld

In het volgende voorbeeld wordt een lus gebruikt om de elementen van een array als uitvoer te geven, 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 resulteert in de volgende JSON wanneer de workflow wordt uitgevoerd:

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

Map-voorbeeld

Het map-filter kan worden gebruikt om een array van een specifieke eigenschap uit een array van objecten op te halen. In het volgende voorbeeld wordt een array van city-eigenschappen geëxtraheerd uit een array 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-verzoek verzenden heeft de volgende beperkingen:

  • De actie geeft een lijst weer met Mutaties en Mutatie-invoer van de Admin API-versie die door Flow wordt gebruikt.
  • Wanneer nieuwe API-versies worden uitgebracht, kan deze actie mislukken als deze een mutatie of veld gebruikt dat is gewijzigd of verouderd.
  • De actie ondersteunt geen GraphQL-query's, alleen mutaties.
  • De actie ondersteunt geen mutaties die verouderd zijn.
  • De actie ondersteunt bepaalde mutaties die specifiek zijn voor bepaalde apps niet, waaronder sommige abonnements-, marketingactiviteits- en kortingsmutaties.
  • De actie ondersteunt geen asynchrone mutaties of mutaties die een Job-type retourneren.
  • De actie ondersteunt geen mutaties die de Node-interface niet implementeren.

Templates

Gratis artikel (met 100% korting) toevoegen aan nieuwe bestellingen

Deze template voegt een gratis artikel met korting toe aan nieuwe bestellingen als het artikel op voorraad is. De template controleert de voorraad, past een korting van 100% toe en updatet de bestelling zonder de klant hiervan op de hoogte te stellen. Deze automatisering is handig om (1) de klanttevredenheid te verhogen door een gratis verrassingsartikel aan hun bestelling toe te voegen, (2) nieuwe of minder bekende producten te promoten door ze als gratis samples aan bestellingen toe te voegen, of (3) promoties te stroomlijnen door de opname en de korting van gratis artikelen te automatiseren. Template bekijken

Bestellen toestaan voor bedrijven die zijn aangemaakt via bedrijfsaccountaanvragen

Wijs een besteltoestemming toe wanneer een bedrijf wordt aangemaakt via een bedrijfsaccountaanvraag. Template bekijken

Producttemplate wijzigen wanneer varianten niet op voorraad zijn of weer op voorraad komen

Update een producttemplate op basis van de voorraad van de productvarianten. Met de workflow kun je wisselen tussen templates voor 'op voorraad' (de standaardtemplate van de winkel), 'niet op voorraad' en wanneer een of meer varianten niet op voorraad zijn. Template bekijken

Digitale artikelen in een bestelling afhandelen

Handelt alle artikelen af waarvoor geen fysieke bezorging nodig is, zoals digitale artikelen of artikelen die overeenkomen met een lijst met SKU's. Wordt eenmaal uitgevoerd voor elke fulfilmentlocatie (de 'fulfilmentbestelling') voor een nieuwe bestelling. Template bekijken