Bedingungen in Shopify Flow
Bedingungen setzen einen Workflow fort, wenn bestimmte Regeln erfüllt sind, wie z. B. der Beginn einer Wenn-Dann-Anweisung. Wenn du eine Bedingung festlegst, wählst du Kriterien aus Feldern in der GraphQL Admin API (z. B. product.title), einen logischen Operator (z. B. gleich) und einen Wert für den Abgleich (z. B. Blue jeans) aus. Wenn ein Workflow eine Bedingung auswertet, vergleicht Flow den im Workflow definierten Wert mit dem für deinen Shop zurückgegebenen Wert und zeigt die Ergebnisse in der Workflow-Ausführung an. Um die Felder und Werte, die zum Definieren von Bedingungen zur Verfügung stehen, besser zu verstehen, erfahre, wie du eine Vorschau von Shop-Daten anzeigen kannst.
Mehr Informationen zu den Grundlagen von Bedingungen.
Auf dieser Seite
Mit Flow verwendete Datentypen
Wenn du eine Bedingung festlegst, wählst du ein Kriterium aus den in der Admin API verfügbaren Feldern aus und Flow wertet dieses anhand des für deinen Shop zurückgegebenen Werts aus.
Flow unterstützt die folgenden Datentypen:
- Float: Float-Werte sind Zahlen mit Dezimalstellen. Beispiel: 4,25.
- Integer: Integer-Werte sind Ganzzahlen, die keine Dezimalstellen haben. Beispiel: 42.
- Datum: Datumswerte sind die numerische Darstellung des Datums. Beispiel: 01012021.
- String: String-Werte sind Text. Bei Vergleichen mit String-Werten wird die Groß- und Kleinschreibung nicht berücksichtigt.
- Boolesch: Boolesche Werte sind entweder wahr oder falsch.
- Enum: Enum-Werte sind eine Reihe vordefinierter Konstanten. Eine Variable kann einen Wert aus dieser Reihe annehmen.
Logische Operatoren
Logische Operatoren definieren, wie deine Bedingung angewendet wird. Bedingungen können einfache Eigenschaften prüfen, z. B. ob der Gesamtbetrag einer Bestellung über einem bestimmten Wert liegt oder ob ein:e Kund:in Marketing akzeptiert. Logische Operatoren können auch komplexere Eigenschaften prüfen.
Operatoren können entweder Operatoren auf Feldebene wie Gleich oder Nicht gleich oder Listenoperatoren wie Mindestens einer von oder Keiner von sein.
Operatoren auf Feldebene
Operatoren auf Feldebene werden verwendet, um 2 Werte zu vergleichen. Flow kann die folgenden Operatoren verwenden:
| Operator | Beschreibung | Beispiel |
|---|---|---|
| Gleich | Vergleicht Werte, um zu prüfen, ob sie identisch sind. |
Der Wert für order.currentTotalDiscountsSet.shopMoney.amount wird aus deinen Shop-Daten abgerufen und mit dem zweiten Wert, 50, verglichen.Wenn die Gesamtrabatte der Bestellung genau 50 entsprechen, ist die Bedingung wahr. |
| Nicht gleich | Vergleicht Werte, um zu prüfen, ob sie nicht identisch sind. |
Der Wert für order.currentTotalDiscountsSet.shopMoney.amount wird aus deinen Shop-Daten abgerufen und mit dem zweiten Wert, 50, verglichen.Wenn die Gesamtrabatte der Bestellung nicht genau 50 entsprechen, ist die Bedingung wahr. |
| Größer als und Größer oder gleich | Vergleicht Werte, um zu prüfen, ob der erste Wert größer als oder größer oder gleich dem zweiten Wert ist. |
Der Wert für order.currentTotalDiscountsSet.shopMoney.amount wird aus deinen Shop-Daten abgerufen und mit dem zweiten Wert, 50, verglichen.Wenn der Wert der Gesamtrabatte der Bestellung 137 beträgt, ist die Bedingung wahr, da 137 größer als 50 ist. |
| Kleiner als und Kleiner oder gleich | Vergleicht Werte, um zu prüfen, ob der erste Wert kleiner als oder kleiner oder gleich dem zweiten Wert ist. |
Der Wert für order.currentTotalDiscountsSet.shopMoney.amount wird aus deinen Shop-Daten abgerufen und mit dem zweiten Wert, 50, verglichen.Wenn die Gesamtrabatte der Bestellung 47 betragen, ist die Bedingung wahr, da 47 kleiner oder gleich 50 ist. |
| Mindestens einer von | Prüft, ob das Feld einem beliebigen Wert in der bereitgestellten Liste entspricht. Die Werte müssen einzeln eingegeben und mit der Eingabetaste bestätigt werden (ähnlich wie bei Tags). Die Anwendung auf ein leeres Array führt zu einer Auswertung als „falsch“. |
Der Wert für order.lineitem.product.title wird verglichen mit: pineapple, guava, kiwi.Wenn der Produkttitel der Position guava lautet, ist die Bedingung wahr, da „guava“ in der von dir angegebenen Liste enthalten ist. |
| Keiner von | Prüft, ob das Feld keinem der Werte in der angegebenen Liste entspricht. |
Der Wert für order.lineitem.product.title wird verglichen mit: pineapple, guava, kiwi.Wenn der Produkttitel der Position raspberry lautet, ist die Bedingung wahr, da „raspberry“ nicht in der von dir angegebenen Liste enthalten ist. |
| Enthält | Vergleicht Werte, um zu prüfen, ob die erste Eingabe die Daten der zweiten Eingabe enthält. |
Der Wert für order.lineitem.product.title wird verglichen mit: berry.Wenn der Produkttitel der Position strawberry lautet, ist die Bedingung wahr, da „berry“ in „strawberry“ enthalten ist. |
| Enthält nicht | Vergleicht Werte, um zu prüfen, ob die erste Eingabe die Daten der zweiten Eingabe nicht enthält. |
Der Wert für order.lineitem.product.title wird verglichen mit: berry.Wenn der Produkttitel der Position apple lautet, ist die Bedingung wahr (true), da „berry“ nicht in „apple“ enthalten ist. |
| Beginnt mit | Vergleicht Werte, um zu prüfen, ob der erste Wert mit den Daten im zweiten Wert beginnt. |
Der Wert für order.shippingAddress.country wird verglichen mit: United.Wenn das Land der Lieferadresse der Bestellung United Kingdom lautet, ist die Bedingung wahr (true), da „United Kingdom“ mit „United“ beginnt. |
| Beginnt nicht mit | Vergleicht Werte, um zu prüfen, ob der erste Wert nicht mit den Daten im zweiten Wert beginnt. |
Der Wert für order.shippingAddress.country wird verglichen mit: United.Wenn das Land der Lieferadresse der Bestellung Canada lautet, ist die Bedingung wahr (true), da „United Kingdom“ nicht mit „Canada“ beginnt. |
| Endet mit | Vergleicht Werte, um zu prüfen, ob der erste Wert mit den Daten im zweiten Wert endet. |
Der Wert für order.lineitems.product.title wird verglichen mit: pie.Wenn der Produkttitel der Position key lime pie lautet, ist die Bedingung wahr (true), da „key lime pie“ auf „pie“ endet. |
| Endet nicht mit | Vergleicht Werte, um zu prüfen, ob der erste Wert nicht mit den Daten im zweiten Wert endet. |
Der Wert für order.lineitems.product.title wird verglichen mit: pie.Wenn der Produkttitel der Position chocolate cake lautet, ist die Bedingung wahr (true), da „chocolate cake“ nicht auf „pie“ endet. |
Null- oder Leer-Operatoren
| Operator | Beschreibung | Bedingung „Wahr/Falsch“ |
|---|---|---|
| Leer oder nicht vorhanden | Prüft, ob ein Feld leer ist (keinen Wert hat) oder nicht vorhanden ist (null ist). |
Gibt true zurück, wenn das Feld leer oder null ist, und false, wenn es vorhanden ist.
|
| Nicht leer und vorhanden | Prüft, ob ein Feld vorhanden und nicht leer oder null ist. | Gibt true zurück, wenn das Feld nicht leer ist und existiert, und false, wenn es leer ist. |
Listenoperatoren
Listenoperatoren werden mit Operatoren auf Feldebene kombiniert, damit du Bedingungen für Daten in Listen prüfen kannst.
Wie im Beispiel „mindestens einer von“ möchtest du vielleicht prüfen, ob eine Bestellung ein bestimmtes Produkt enthält (zu finden unter order.lineItems), das mit einem bestimmten Tag versehen ist (eine Liste unter order.lineItems.product.tags). In beiden Fällen wird im Beispiel der Listenoperator mindestens einer von verwendet.
Flow bietet 3 Operatoren für die Arbeit mit Listen: Mindestens einer von, Keiner von und Alle von.
| Operator | Beschreibung | Anwendungsbeispiel |
|---|---|---|
| Mindestens einer von | Prüft, ob ein beliebiges Element in der Liste die angegebene Bedingung erfüllt. Gibt true zurück, wenn ein Element in der Liste übereinstimmt. Wenn die Liste leer ist oder keine Elemente übereinstimmen, wird false zurückgegeben. | Prüfe mit Mindestens einer der Produkt-Tags der Bestellpositionen ist gleich Tag-Name, ob eine Bestellung ein Produkt mit einem bestimmten Tag enthält. |
| Keiner von | Prüft, ob keines der Elemente in der Liste die angegebene Bedingung erfüllt. Gibt true zurück, wenn keines der Elemente die Bedingung erfüllt. Wenn die Liste leer ist, wird true zurückgegeben. | Überprüfe, ob ein Produkt das Tag presale nicht hat, indem du None of product tags is equal to presale verwendest.Ein häufiger Fehler ist der Versuch, den Operator mit is not equal to zu negieren. Die Verwendung dieser doppelten Verneinung in None of product tags is not equal to presale macht die Bedingung sowohl schwer verständlich als auch ungültig.
|
| Alle von | Prüft, ob alle Elemente in der Liste die angegebene Bedingung erfüllen. Gibt true zurück, wenn jedes Element in der Liste die Bedingung erfüllt. | Prüfe mit Alle Bestellpositionen haben einen Produktanbieter, der gleich Acme ist, ob alle Artikel in einer Bestellung von einem bestimmten Produktanbieter namens Acme stammen. |
Reihenfolge der Bedingungen
Du kannst Workflows mit mehreren Bedingungen erstellen, von denen jede zu unterschiedlichen Aktionen führen kann. Die Reihenfolge der Bedingungen ist wichtig. Die Prüfung der Bedingungen beginnt am Anfang des Workflows und durchläuft systematisch jede Bedingung. Die Prüfung wird beendet, sobald eine Bedingung erfüllt ist.
In diesem Beispiel werden mehrere Bedingungen verwendet, um zu prüfen, ob Kund:innen aufgrund des Gesamtbetrags, den sie im Shop ausgegeben haben, für ein Treueprogramm infrage kommen. Die Bedingungen werden in der Reihenfolge geprüft, in der sie angezeigt werden:
- Wenn der Gesamtpreis höher als 1.000 USD ist und die Kund:innen dem Erhalt von Marketingmaterialien zustimmen, tagge sie mit dem Tag
Gold. - Wenn der Gesamtpreis weniger als 1.000 USD, aber mehr als 500 USD beträgt und die Kund:innen dem Erhalt von Marketingmaterialien zustimmen, tagge sie mit dem Tag
Silber. - Wenn der Gesamtpreis weniger als 500 USD, aber mehr als 200 USD beträgt und die Kund:innen dem Erhalt von Marketingmaterialien zustimmen, tagge sie mit dem Tag
Bronze.

Mehrere Kriterien in einer Bedingung kombinieren
Beim Erstellen einer Bedingung kannst du mehrere Kriterien festlegen. Du kannst auswählen, wie diese separaten Kriterien kombiniert werden sollen, um zu bestimmen, ob die Gesamtbedingung wahr oder falsch ist.
Wenn alle Kriterien erfüllt sind
Die Auswahl von UND führt nur dann zu einer wahren Antwort, wenn jedes von dir festgelegte Kriterium wahr ist.
Du erstellst beispielsweise einen Workflow, um Kund:innen zu taggen, die sich in Kanada befinden und bei einer einzigen Bestellung mehr als 500 USD ausgeben.

Der Workflow taggt Kund:innen nur, wenn sie sich in Kanada befinden und bei der Bestellung mehr als 500 USD ausgeben. Wenn eine dieser Bedingungen nicht erfüllt ist, werden die Kund:innen nicht getaggt.
Wenn beliebige Kriterien erfüllt sind
Die Auswahl von ODER ergibt „wahr“, wenn eines der von dir festgelegten Kriterien wahr ist.
Du erstellst beispielsweise einen Workflow, um Bestellungen mit der risikobasierten Empfehlung Stornieren oder Prüfen zu taggen. Solange eine dieser Bedingungen wahr ist, wird die Bestellung getaggt.

Statische und dynamische Daten in Bedingungen
Normalerweise ist der zweite Wert in einer Bedingung ein statischer, manuell eingegebener Wert (z. B. product.title == „dein Titel“). Dieser Wert bleibt bei jedem Durchlauf des Workflows gleich.
Du kannst auch dynamische Werte verwenden, wenn das Feld für den zweiten Wert ein -Symbol anzeigt. Dynamische Werte werden bei jedem Durchlauf des Workflows aus den Daten deines Shops übernommen. Um einen dynamischen Wert zu verwenden, klicke auf das
-Symbol und wähle den Wert aus, mit dem du einen Abgleich durchführen möchtest. Dynamische Werte sind nicht für alle Felder verfügbar.
Du erstellst beispielsweise einen Workflow, der eine Bestellung taggt, wenn das Land in der Rechnungsadresse der Bestellung mit dem Land in der Lieferadresse übereinstimmt.

In diesem Beispiel werden sowohl der erste als auch der zweite Wert aus den Daten deines Shops übernommen, anstatt für den zweiten Wert manuell einen statischen String für den Abgleich anzugeben. Wenn das Land in der von den Kund:innen angegebenen Rechnungsadresse mit dem Land in der von den Kund:innen angegebenen Lieferadresse übereinstimmt, ist die Bedingung wahr und die Bestellung wird getaggt.
Manchmal musst du dynamische Daten verwenden, die den falschen Typ haben. Beispielsweise musst du möglicherweise eine als String gespeicherte Zahl mit einer anderen Zahl vergleichen. In diesem Fall kannst du die Option Code ausführen verwenden, um die Daten in den richtigen Typ umzuwandeln.
Vorlagen
Die meisten Vorlagen in der Vorlagenbibliothek enthalten eine Bedingung.
Beispielbedingungen
Prüfen, ob mindestens ein Artikel in einer Liste mit einer Bedingung übereinstimmt
Dieses Beispiel zeigt eine typische Bedingung, die prüft, ob mindestens ein Artikel in einer Liste mit einem bestimmten Wert übereinstimmt.
In diesem Fall prüft die Bedingung, ob eines der Produkte in einer Bestellung den Tag presale hat. Um diese Bedingung zu erstellen, wählst du order / lineItems / product / tags aus. Standardmäßig wählt Flow den logischen Operator mindestens eines von aus:

Die Teile mindestens eines von sind Listenoperatoren und werden für den Abgleich über mehrere Listenelemente hinweg verwendet. Der Teil ist gleich ist ein Operator auf Feldebene, der bestimmt, ob ein einzelnes Listenelement übereinstimmt.
Prüfen, ob keiner der Artikel in einer Liste mit einer Bedingung übereinstimmt
Dieses Beispiel zeigt eine typische Bedingung, die prüft, ob keiner der Artikel in einer Liste mit einem bestimmten Wert übereinstimmt. Ein häufiges Problem ist, dass Listen leer sein können. Wenn eine Liste leer ist, wird die Bedingung vom Listenoperator (in diesem Fall keines von) verarbeitet.
In diesem Fall prüft die Bedingung, ob keiner der Produkt-Tags „foo“ entspricht:

Die Bedingung gibt true zurück, wenn (1) keine Produkt-Tags vorhanden sind oder (2) keiner der Tags „foo“ ist. Andernfalls gibt sie false zurück.
Prüfen, ob ein Artikel in einer Liste mit mehreren Kriterien übereinstimmt
Dieses Beispiel zeigt eine typische Bedingung, die prüft, ob mindestens ein Artikel in einer Liste mit zwei separaten Kriterien übereinstimmt.
In diesem Fall prüft die Bedingung, ob eines der Produkte in einer Bestellung den Tag presale und den productType clothing hat.

Um diese Bedingung zu erstellen, solltest du:
- Wähle order / lineItems / product / tags für das erste Kriterium aus.
- Wähle Kriterien für denselben Artikel hinzufügen in der Liste lineItems aus. Hinweis: Die Auswahl des falschen Listenelements an dieser Stelle ist ein häufiger Fehler.
- Wähle lineItems_item als Objekt der obersten Ebene und dann product / productType` als zweites Kriterium aus. Hinweis: Die Auswahl des falschen Objekts an dieser Stelle ist ebenfalls ein häufiger Fehler.
- Wähle UND aus, um die beiden Kriterien zu kombinieren.
- Gib die Werte
presaleundclothingfür die beiden Kriterien ein.