Liquid-Variablen in Shopify Flow

Variablen sind Platzhalter, die bei der Ausführung eines Workflows durch Werte ersetzt werden. Diese Variablen beschreiben die Attribute der Kunden, Bestellungen und Produkte, die an deinen Workflows beteiligt sind. Es gibt beispielsweise Variablen für die Bestellnummer, den Bestellpreis, den Kundennamen und so weiter. Variablen können in Bedingungen verwendet werden, um die Logik in deinem Workflow zu steuern oder um Daten in einer Aktion auszugeben.

Über Liquid

Liquid ist eine Vorlagensprache, die zum Zugriff auf Variablen in Aktionen und zum Schreiben von Code in Flow verwendet wird. Flow verwendet eine Variante von Liquid, die sich stark an der Open-Source-Bibliothek orientiert. Shopify-Themes verwenden eine andere Variante von Liquid. Diese Liquid-Variante ist spezifisch auf Themes ausgelegt und enthält mehr Filter und Tags als Flow sowie eine andere Syntax für den Zugriff auf Variablen.

Liquid-Variablen

Du kannst Liquid-Variablen zu jedem Textfeld hinzufügen, das den Link Eine Variable hinzufügen enthält. Klicke unter dem entsprechenden Feld auf den Link Eine Variable hinzufügen und wähle eine Variable aus der Liste aus.

Bild, das zeigt, welche Felder Liquid akzeptieren

Die in der Liste Eine Variable hinzufügen aufgeführten Variablen sind so gefiltert, dass dir nur die nach Schritten zurückgegebenen Variablen vor dem aktuellen Schritt angezeigt werden, wie zum Beispiel Trigger. Der Trigger Bestellung erstellt stellt beispielsweise Bestell- und Shop-Ressourcen zur Verfügung, die es dir ermöglichen, Variablen für die Bestellung oder deine Shop-Einstellungen zu verwenden, auf die über die GraphQL Admin-API zugegriffen werden kann. Nachdem du eine Variable aus der Liste ausgewählt hast, wird diese korrekt formatiert und dem Textfeld hinzugefügt.

Du kannst den Liquid-Code auch direkt in den Textblock schreiben. Du kannst die Variable {{ order.name }} beispielsweise verwenden, um die im Shopify-Adminbereich angezeigte Bestellzeichenfolge anzuzeigen, wie z. B. "Bestellung-123".

Da Flow die GraphQL Admin-API verwendet, um Daten abzurufen, die du in Liquid verwendest, verwendet die Variablensyntax die "gemischte Groß-/Kleinschreibung". Um beispielsweise auf das Datum zuzugreifen, an dem ein Produkt erstellt wurde, gib {{ product.createdAt }} ein. Wenn du die Liquid-Syntax in einem Shopify-Theme verwendest, gibst du {{ product.created_at }} ein.

Liquid-Tags für Bedingungen und Iterationen

Manchmal möchtest du Liquid-Tags u. U. für folgende Aktionen verwenden:

  • An eine Bedingung geknüpfte Anweisungen schreiben, z. B. die Bestimmung, ob eine Bestellsumme größer als 100 USD ist.
  • Durch eine Liste von Objekten iterieren, z. B. die Ausgabe von Daten für jede Position in einer Bestellung.

Du kannst Liquid-Tags verwenden, um diese Anweisungen zu schreiben und durch Objekte zu iterieren.

Im folgenden Liquid-Code wird beispielsweise die Bestellnummer angezeigt, wenn die Bestellsumme größer als 100 USD ist:

{% if order.totalPriceSet.shopMoney.amount > 100 %}
  Order number: {{ order.name }}
{% endif %}

Du kannst auch eine For-Schleife verwenden, um durch eine Liste von Objekten zu iterieren, z. B. durch die Positionen einer Bestellung. Im folgenden Liquid-Code wird beispielsweise der Name jedes Artikels in einer Bestellung angezeigt:

{% for li in order.lineItems %}
  {{ li.title }}
{% endfor %}

Flow unterstützt die folgenden bedingten (oder Kontrollfluss-)Tags von Liquid:

Flow unterstützt auch die folgenden Iterationstags von Liquid:

Filter

Mit Filtern kannst du Daten in Liquid umwandeln. Flow unterstützt alle Open-Source-Liquid-Filter.

Der folgende Liquid-Code entfernt beispielsweise ein Präfix aus einem Bestellnamen und gibt den übrigen Text aus: {{ order.name | remove: "Order-" }}

Zusätzlich zu den Standard-Liquid-Filtern stellt Flow Datumsfilter bereit, um ein Datum im Verhältnis zu einem anderen Datum zur Unterstützung des Triggers Geplanter Zeitpunkt und der Funktionen Daten abrufen abzurufen. Diese Filter sind: date_minus und date_plus.

So gibst du ein Datum aus, das einen Tag in der Zukunft liegt:{{ "now" | date_plus: "1 day" }}

So gibst du ein Datum aus, das einen Tag in der Vergangenheit liegt:{{ "now" | date_minus: "1 day" }}

Diese Filter akzeptieren second, minute, day, week, month und year als Einheit für die Dauer sowohl im Singular (z. B. second) als auch im Plural (z. B. seconds). Zusätzlich zu diesem Format kannst du auch eine ganze Zahl (Anzahl der Sekunden) bereitstellen. Zum Beispiel:{{ "now" | date_minus: 3600 }}

Du kannst auch einen ISO8601-Dauer-String angeben, wobei P1Y2D 1 Jahr und 2 Tage bedeutet:{{ "now" | date_minus: "P1Y2D" }}

Überlegungen zur Verwendung von Liquid-Variablen in Filtern

  • Flow unterstützt keine Punktnotation, die für einige Filter verfügbar ist. Flow unterstützt beispielsweise {{ order.lineItems | size }}, aber nicht {{ order.lineItems.size }}.
  • Flow unterstützt keine Punktnotation für Metafelder. Du kannst beispielsweise nicht {{ order.metafields.custom.hold_note }} verwenden. Stattdessen musst du eine Schleife auf die Metafelder anwenden, wie in den Beispielen beschrieben.
  • Flow unterstützt die Verwendung von Indizes nicht für den Zugriff auf Elemente in einer Liste. Du kannst beispielsweise nicht {{ order.lineItems[0].title }} verwenden. Stattdessen musst du eine Schleife auf die Positionen anwenden, wie in den Beispielen beschrieben.

Beispiele

Betrachte die folgenden Beispiele, um ein besseres Verständnis für die Verwendung von Liquid-Variablen zu erlangen.

Metafeld-Wert ausgeben

Du möchtest beispielsweise den Wert eines Bestellungs-Metafelds in einer E-Mail ausgeben. Das Metafeld ist ein String und hat den Namensraum custom und den Schlüssel hold_note. Der Wert dieses Metafelds ist Please wait to deliver this order until April 1. Du erstellst einen Workflow mithilfe des Triggers Bestellung erstellt und verwendest die Aktion Interne E-Mail senden. Im Abschnitt Nachricht der Aktion Interne E-Mail senden verwendest du die folgenden Variablen.

Beispiel für die Verwendung von Variablen zur Ausgabe eines Metafelds für eine Bestellung.
Eingabe Ausgabe
{% assign hold_note = order.metafields | where: "namespace", "custom" | where: "key", "hold_note" | first %}
Die Bestellung hat eine Notiz zum Anhalten der Bestellung: {{ hold_note.value }}
Die Bestellung enthält eine Notiz zum Anhalten der Bestellung: Bitte warten und diese Bestellung bis zum 1. April liefern.

Liste von Tags in ein Metafeld umwandeln

Du möchtest einen Satz Tags in ein Metafeld umwandeln, das eine Liste von Feldern für einzeiligen Text ist. Du erstellst einen Workflow mit dem Trigger Produkt zum Shop hinzugefügt und verwendest die Aktion Produkt-Metafeld aktualisieren. Im Abschnitt Wert der Aktion Produkt-Metafeld aktualisieren fügst den folgenden Liquid-Code hinzu. In diesem Beispiel wird davon ausgegangen, dass du die Werte nur einmal beim Erstellen des Produkts festlegen musst und dass das Produkt zwei relevante Tags hat: color:red und color:orange.

Beispiel für Liquid-Code zum Festlegen einer Liste von Feldern für einzeiligen Text:
Eingabe Ausgabe
{% capture mf_value %}
{%- for tags_item in product.tags -%}
{%- if tags_item contains "color:" -%}
"{{- tags_item | remove_first: "color:" | strip -}}",
{%- endif -%}
{%- endfor -%}
{% endcapture -%}
[{{mf_value | remove_last: ","}}]
["rot", "orange"]

Dynamische E-Mail-Nachricht für eine Bestellung schreiben

Du möchtest beispielsweise einen Workflow erstellen, um eine E-Mail an einen Mitarbeiter zu senden, wenn ein Kunde mehr als 500 USD für eine Bestellung ausgibt. Du erstellst einen Workflow mithilfe des Triggers Bestellung erstellt, legst eine Bedingung fest, die wahr ist, wenn die Bestellsumme über 500 USD liegt, und verwendest die Aktion Interne E-Mail senden. Im Abschnitt Nachricht der Aktion Interne E-Mail senden verwendest du die folgenden Variablen.

Beispiel für die Verwendung von Variablen zur Bereitstellung von Kundendetails
Eingabe Ausgabe
Bitte sende eine persönliche Dankesmitteilung an {{ order.customer.firstName }} {{ order.customer.lastName }}({{ order.customer.email }}) für die Bestellung in Höhe von {{ order.totalPriceSet.shopMoney.amount }}. Bitte sende eine persönliche Dankesmitteilung an Jeanne Dupont (jeanne@example.com) für die Bestellung in Höhe von 763,42 USD.

Dynamische E-Mail-Nachricht für ein Produkt mit niedrigem Lagerbestand schreiben

Du entscheidest, dass du einen Mitarbeiter informieren musst, wenn das Produktinventar gering ausfällt und eine Bestellung für mehr Lagerbestand aufgegeben werden muss. Du erstellst einen Workflow, der mit dem Trigger Inventarmenge geändert startet, und legst eine Bedingung, die wahr ist, fest, wenn die vorherige Inventarmenge kleiner oder gleich 10 ist. Im Abschnitt Nachricht der Aktion Interne E-Mail senden verwendest du die folgenden Variablen.

Beispiel der Variablennutzung zum Anzeigen von Artikeldetails.
Eingabe Ausgabe
Bitte bestelle "{{ product.title }}" nach. Sende eine E-Mail an inhaber@shop.de, um zu bestätigen, dass sie die Bestellung erhalten haben. Bitte bestelle "High Waist Leggings – Schwarz" nach. Sende eine E-Mail an inhaber@shop.de, um zu bestätigen, dass sie die Bestellung erhalten haben.

Dynamische E-Mail-Nachricht schreiben, um Mitarbeiter über eine betrügerische Bestellung zu informieren

Du möchtest Bestellungen mit einer hohen Risikostufe stornieren, aber möchtest lieber, dass deine Mitarbeiter die Bestellung manuell stornieren. Du erstellst einen Workflow, der mit dem Trigger Bestellung erstellt startet, und legst eine Bedingung fest, die wahr ist, wenn die Risikostufe der Bestellung gleich hoch ist. Im Abschnitt Nachricht der Aktion Interne E-Mail senden verwendest du die folgenden Variablen.

Beispiel für die Variablenverwendung zur Bereitstellung von Informationen zu einer betrügerischen Bestellung
Eingabe Ausgabe
Unser Shopify-Shop hat eine Bestellung mit hohem Betrugsrisiko erhalten. Wir möchten diese Bestellung sofort stornieren, bevor sie an die Produktion gesendet wird:

{{ order.name }}
{{ order.billingAddress.lastName }}, {{ order.billingAddress.firstName }}
{{ order.email }}

Bitte bestätigen Sie den neuen Bestellstatus. Danke!
Unser Shopify-Shop hat eine Bestellung mit hohem Betrugsrisiko erhalten. Wir möchten diese Bestellung sofort stornieren, bevor sie an die Produktion gesendet wird:

#1001
Dupont, Jeanne
jeanne@beispiel.de

Bitte bestätigen Sie den neuen Bestellstatus. Danke!

Positionen für eine Bestellung mithilfe einer For-Schleife ausgeben

Wenn eine Bestellung eingegangen ist, kann es hilfreich sein, eine Nachricht mit den bestellten Produkten zu versenden. Dies kannst du mithilfe von for loop tun, um wiederholt einen Codeblock auszuführen. Textfelder, die Variablen unterstützen, unterstützen auch for-Schleifen und das forloop-Objekt.

Du möchtest beispielsweise einen Workflow erstellen, der eine Liste aller SKUs und Mengen in einer Bestellung zurückgibt. Im Abschnitt Nachricht der Aktion Interne E-Mail senden verwendest du die folgenden Variablen.

Beispiel für die Verwendung einer Schleife zum Bereitstellen von Bestellinformationen
Eingabe Ausgabe
Bestellübersicht:
{% for a in order.lineItems %}
SKU: {{a.sku}} ( {{a.quantity}} ),
{% endfor %}
Bestellübersicht:
8987097979 (50)
8877778887 (3)
888998898B (1)

Positionen für eine Bestellung mithilfe einer For-Schleife mit zusätzlichen Informationen ausgeben

Du entscheidest dich, der E-Mail weitere Informationen hinzuzufügen, einschließlich Produktname, Artikelnummer (SKU), Preis pro Artikel und Versandinformationen des Kunden. Im Abschnitt Nachricht der Aktion Interne E-Mail senden verwendest du die folgenden Variablen.

Beispiel für eine For-Schleife zur Bereitstellung von umfassenden Bestellinformationen
Eingabe Ausgabe
Bestellübersicht:
{% for a in order.lineItems %}
Produkt: {{a.title}}
SKU: {{a.sku}}
Preis (pro Einheit): {{a.originalUnitPriceSet.shopMoney.amount}} USD
Anzahl: {{a.quantity}}
{% endfor %}
Bestellübersicht:
Produkt: High Waist Leggings – Schwarz
SKU: 8987097979
Preis (pro Einheit): 8,49 USD
Menge: 5
Produkt: Sportsocken – Blau
SKU: 8889988B
Preis (pro Einheit): 5,61 USD
Menge: 2

Einige Positionen durch Kombination einer For-Schleife mit einer If-Anweisung ausgeben

Du musst verkaufte Artikel verfolgen, die von einem bestimmten Anbieter bereitgestellt werden. Im Abschnitt Nachricht der Aktion Interne E-Mail senden verwendest du die folgenden Variablen und schließt ein if im Objekt for loop ein.

Beispiel für eine For-Schleife und eine If-Statement-Verwendung zur Bereitstellung von Bestellinformationen für bestimmte Anbieter
Eingabe Ausgabe
Verkauftes Acme-Produkt:
{% for x in order.lineItems %}
{% if x.vendor == 'acme-vendor' %}
Produktname: {{x.title}}
SKU: {{x.sku}}
{% endif %}
{% endfor %}
Verkauftes Acme-Produkt:
Produktname: High Waist Leggings – Schwarz
SKU: 8987097979

Komplexe Datenobjekte in Shopify Flow

Flow ermöglicht dir den Zugriff auf fast alle Daten in der GraphQL-Admin-API. Das umfasst auch komplexe Datenobjekte wie Listen und Objekte. Es gibt jedoch Einschränkungen dahingehend, was du mit diesen Objekten machen kannst. In diesem Abschnitt werden die Einschränkungen beschrieben und es werden Beispiele bereitgestellt, die zeigen, wie du mit diesen Objekten arbeiten kannst.

Anstatt Listen und Objekte direkt aufzurufen, solltest du eine Schleife auf Liste anwenden und nur die gewünschten Felder einfügen.

Anstatt beispielsweise {{ order.lineItems }} direkt aufzurufen, verwende das folgende Format zum Aufrufen bestimmter Felder. Diese Beispiele umfassen alle Felder, die beim direkten Aufruf der Liste oder des Objekts eingeschlossen werden würden. Kopiere die erforderlichen Felder und füge sie ein.

Bereit, mit Shopify zu verkaufen?

Kostenlos testen