Bedingungen in Shopify Flow

In Shopify Flow werden Bedingungen verwendet, um den Ablauf eines Workflows zu bestimmen. Normalerweise wird damit gesteuert, ob eine Aktion ausgeführt werden soll. Wenn du eine Bedingung festlegst, wähle ein Datenfeld, das überprüft werden soll (z. B. einen Produkttitel), einen logischen Operator (z. B. equal to) und einen Wert als Prüfwert (Blue jeans) aus.

Beispielbedingungen

Überprüfen, ob mindestens ein Artikel in einer Liste der Bedingung entspricht

Dieses Beispiel zeigt eine typische Bedingung, mit der überprüft wird, ob mindestens ein Artikel in einer Liste mit einem bestimmten Wert übereinstimmt.

In diesem Fall überprüft die Bedingung, ob eines der Produkte in einer Bestellung das Tag presale aufweist. Um diese Bedingung zu erstellen, wähle order / lineItems / product / tags aus. Standardmäßig wählt Flow Mindestens einer von als logischen Operator aus:

If at least one of order / lineItems:
  If at least one of lineItem_item / product / tags
    tags_item
    is equal to
    presale

Die Mindestens einer von-Teile sind Listenoperatoren und werden für den Abgleich mehrerer Artikel in einer Liste verwendet. Der Entspricht-Teil ist ein Operator auf Feldebene, der bestimmt, ob ein einzelner Artikel in einer Liste der Bedingung entspricht.

Überprüfen, ob keiner der Artikel in einer Liste der Bedingung entspricht

Dieses Beispiel zeigt eine typische Bedingung, mit der überprüft wird, ob keiner der Artikel in einer Liste mit einem bestimmten Wert übereinstimmt. Ein häufiges Problem, das berücksichtigt werden muss, ist, dass Listen leer sein können. Wenn eine Liste leer ist, wird die Bedingung vom Listenoperator verarbeitet (in diesem Fall Keiner von).

In diesem Fall überprüft die Bedingung, ob keines der Produkt-Tags "foo" entspricht:

If none of product / tags:
  tag_item
  is equal to
  foo

Die Bedingung gibt true zurück, wenn (1) es keine Produkt-Tags gibt oder (2) keines der Tags "foo" entspricht. Andernfalls gibt sie false zurück.

Überprüfen, ob ein Artikel in einer Liste mehreren Kriterien entspricht

Dieses Beispiel zeigt eine typische Bedingung, mit der überprüft wird, ob mindestens ein Artikel in einer Liste zwei separaten Kriterien entspricht.

In diesem Fall überprüft die Bedingung, ob eines der Produkte in einer Bestellung ein Tag vom Typ presale aufweist und ob es vom Produkttyp (productType) clothing ist.

If at least one of order / lineItems:
  If at least one of lineItem_item / product / tags
    tags_item
    is equal to
    presale
  AND
  If lineItem_item / product
    productType
    is equal to
    clothing

Führe zum Erstellen dieser Bedingungen die folgenden Schritte aus:

  1. Wähle für das erste Kriterium order / lineItems / product / tags aus.
  2. Füge dann Kriterien für den gleichen Artikel für die lineItems-Liste hinzu. Hinweis: An diesem Punkt wird häufig der falsche Artikel in der Liste ausgewählt.
  3. Wähle lineItems_item als Objekt der obersten Ebene und dann product / productType für das zweite Kriterium aus. Hinweis: An diesem Punkt wird häufig auch das falsche Objekt ausgewählt.
  4. Wähle AND aus, um die beiden Kriterien zu kombinieren.
  5. Gib die Werte presale und clothing für die beiden Kriterien ein.

Mit Flow verwendete Datentypen

Der erste Wert in einer Flow-Bedingung sind Daten, die von deinem Shop verwendet werden und von der GraphQL-Admin-API abgerufen werden.

Flow unterstützt die folgenden Arten von Daten:

  • Variabel: Variable Werte sind Zahlen mit einem Dezimalbetrag, zum Beispiel: 4,25.
  • Ganzzahl: Ganzzahlwerte sind ganze Zahlen, die keinen Dezimalbetrag haben, zum Beispiel 42.
  • Datum: Datumswerte sind die Darstellung des Datums in Zahlen, zum Beispiel: 01012021.
  • String: String-Werte bestehen aus Text. Vergleiche, die String-Werte verwenden, berücksichtigen nicht die Groß- und Kleinschreibung.
  • Boolesch: Boolesche Werte sind entweder wahr (true) oder falsch (false).
  • Enum: Enumerationswerte sind Datensätze, die es ermöglichen, dass eine Variable eine Reihe von vordefinierten Konstanten umfasst.

Logische Operatoren

Logische Operatoren definieren, wie deine Bedingung angewendet wird. Mit Bedingungen können einfache Eigenschaften überprüft werden, wie z.  B. ob die Gesamtsumme einer Bestellung über einem bestimmten Betrag liegt oder ob ein Kunde dem Marketing zustimmt. Logische Operatoren können auch komplexere Eigenschaften überprüfen.

Operatoren können entweder Operatoren auf Feldebene, wie entspricht oder entspricht nicht, oder Listenoperatoren, wie Mindestens einer von oder Keiner von sein.

Operatoren auf Feldebene

Operatoren auf Feldebene werden verwendet, um zwei Werte zu vergleichen. Flow kann die folgenden Operatoren verwenden:

Entspricht

Entspricht vergleicht Werte, um zu überprüfen, ob sie identisch sind. Im folgenden Beispiel wird der Wert für order.currentTotalDiscountsSet.shopMoney.amount aus deinen Shop-Daten abgerufen und mit dem zweiten Wert 50 verglichen.

Beispiel für einen Workflow, der den logischen Operator

Wenn der erste Wert 50 entspricht, ist die Bedingung wahr. Die Bestellung wird storniert.

Entspricht nicht

Entspricht nicht vergleicht Werte, um zu überprüfen, ob sie nicht die gleichen sind. Im folgenden Beispiel wird der Wert für order.currentTotalDiscountsSet.shopMoney.amount aus deinen Shop-Daten abgerufen und mit dem zweiten Wert 50 verglichen.

Beispiel für einen Workflow, der den logischen Operator

Wenn der erste Wert 93 entspricht, ist die Bedingung wahr. Die Bestellung wird storniert.

Größer und Größer oder gleich

Größer und größer oder gleich vergleicht Werte, um zu überprüfen, ob der erste Wert größer als oder größer oder gleich dem zweiten Wert ist. Im folgenden Beispiel wird der Wert für order.currentTotalDiscountsSet.shopMoney.amount aus deinen Shop-Daten abgerufen und mit dem zweiten Wert 50 verglichen.

Beispiel für einen Workflow, der den logischen Operator

Wenn der aus deinem Shop abgerufene Wert 137 entspricht, ist die Bedingung wahr, da 137 größer als 50 ist. Die Bestellung wird storniert.

Kleiner als und Kleiner als oder gleich

Kleiner und Kleiner oder gleich vergleichen Werte, um zu überprüfen, ob der erste Wert kleiner bzw. kleiner oder gleich dem zweiten Wert ist. Im folgenden Beispiel wird der Wert für order.currentTotalDiscountsSet.shopMoney.amount aus deinen Shop-Daten abgerufen und mit dem zweiten Wert 50 verglichen.

Beispiel für einen Workflow, der den logischen Operator

Wenn der von deinem Shop abgerufene Wert 47 ist, ist die Bedingung wahr, da 47 kleiner oder gleich 50 ist. Die Bestellung wird storniert.

Mindestens einer von

Der Operator Mindestens einer von überprüft, ob das Feld einem Wert in der bereitgestellten Liste entspricht. Die zu überprüfenden Werte müssen einzeln eingegeben und mit der Eingabetaste bestätigt werden (ähnlich wie bei Tags). Wenn Mindestens einer von für ein leeres Array verwendet wird, führt dies zu einer falschen Bewertung. Im folgenden Beispiel wird der Wert für order.lineitem.product.title aus deinen Shop-Daten abgerufen und mit dem zweiten Satz von Werten verglichen: Ananas, Guave, Kiwi.

Beispiel für einen Workflow, der den logischen Operator

Wenn der von deinem Shop angerufene Wert Guave ist, ist die Bedingung wahr, da Guave im Array "Ananas, Guave, Kiwi" enthalten ist. Die Bestellung wird storniert.

Keins von diesen

Der Operator Keins von diesen überprüft, ob das Feld keinem der Werte in der bereitgestellten Liste entspricht. Die zu überprüfenden Werte müssen einzeln eingegeben und mit der Eingabetaste bestätigt werden (ähnlich wie bei Tags). Im folgenden Beispiel wird der Wert für order.lineitem.product.title aus deinen Shop-Daten abgerufen und mit dem zweiten Satz von Werten verglichen: Ananas, Guave, Kiwi.

Beispiel für einen Workflow, der den logischen Operator

Wenn der von deinem Shop abgerufene Wert hingegen "Himbeere" ist, ist die Bedingung wahr, da Himbeere nicht im Array "Ananas, Guave, Kiwi" enthalten ist. Die Bestellung wird storniert.

Enthält

Enthält vergleicht Wert, um zu überprüfen, ob eine der Eingaben des ersten Werts die Daten in der Eingabe des zweiten Werts enthält. Im folgenden Beispiel wird der Wert für order.lineitem.product.title aus deinen Shop-Daten abgerufen und mit dem zweiten Wert Schrott verglichen.

Beispiel für einen Workflow, der den logischen Operator

Wenn der von deinen Shop-Daten abgerufene Wert "Schrottwichteln" dabei ist, ist die Bedingung wahr, da der exakte String "Schrott" im String "Schrottwichteln" enthalten ist. Die Bestellung wird storniert.

Enthält nicht

Enthält vergleicht Wert, um zu überprüfen, ob eine der Eingaben des ersten Werts die Daten in der Eingabe des zweiten Werts enthält. Im folgenden Beispiel wird der Wert für order.lineitem.product.title aus deinen Shop-Daten abgerufen und mit dem zweiten Wert Schrott verglichen.

Beispiel für einen Workflow, der den logischen Operator

Wenn der von deinen Shop-Daten abgerufene Wert "Schrottwichteln" dabei ist, ist die Bedingung wahr, da der exakte String "Kratzen" im String "Schrottwichteln" nicht enthalten ist. Die Bestellung wird storniert.

Beginnt mit

Beginnt mit vergleicht Werte, um zu überprüfen, ob der erste Wert mit den Daten im zweiten Wert beginnt. Im folgenden Beispiel wird der Wert für order.shippingAddress.country aus deinen Shop-Daten abgerufen und mit dem zweiten Wert Vereinigt verglichen.

Beispiel für einen Workflow, der den logischen Operator

Wenn der von deinem Shop abgerufene Wert "Vereinigtes Königreich" ist, ist die Bedingung wahr, da der String "Vereinigt" den String "Vereinigtes Königreich" startet. Die Bestellung wird storniert.

Beginnt nicht mit

Beginnt nicht mit vergleicht Wert, um zu überprüfen, ob der erste Wert nicht mit den Daten im zweiten Wert beginnt. Im folgenden Beispiel wird der Wert für order.shippingAddress.country aus deinen Shop-Daten abgerufen und mit dem zweiten Wert Vereinigt verglichen.

Beispiel für einen Workflow, der den logischen Operator

Wenn der von deinem Shop abgerufene Wert "Kanada" ist, ist die Bedingung wahr, da der String "Kanada" den String "Vereinigtes Königreich" nicht startet. Die Bestellung wird storniert.

Endet mit

Endet mit vergleicht Werte, um zu überprüfen, ob der erste Wert mit den Daten im zweiten Wert endet. Im folgenden Beispiel wird der Wert für order.lineitems.product.title aus deinen Shop-Daten abgerufen und mit dem zweiten Wert zuletzt verfügbar verglichen.

Beispiel für einen Workflow, der den logischen Operator

Wenn der von deinem Shop abgerufene Wert "Sportsocken zuletzt verfügbar" ist, ist die Bedingung wahr, da der String "Sportsocken zuletzt verfügbar" mit dem String "zuletzt verfügbar" endet. Die Bestellung wird storniert. Die Bestellung wird storniert.

Endet nicht mit

Beginnt nicht mit vergleicht Wert, um zu überprüfen, ob der erste Wert nicht mit den Daten im zweiten Wert beginnt. Im folgenden Beispiel wird der Wert für order.lineitems.product.title aus deinen Shop-Daten abgerufen und mit dem zweiten Wert zuletzt verfügbar verglichen.

Beispiel für einen Workflow, der den logischen Operator

Wenn der von deinem Shop abgerufene Wert "Sportsocken neu" ist, ist die Bedingung wahr, da der String "Sportsocken neu" nicht mit dem String "zuletzt verfügbar" endet. Die Bestellung wird storniert.

Null oder leere Operatoren

Leer oder existiert nicht

Einige Felder in deinen Daten können leer sein. Beispielsweise gibt order.cancelReason den Wert null zurück, wenn eine Bestellung nicht storniert wird. Verwende Leer oder existiert nicht, wenn true zurückgegeben werden soll, wenn ein Feld leer ist, oder null und false, wenn es vorhanden ist.

Nicht leer und existiert

Einige Felder in deinen Daten können leer sein. Beispielsweise gibt order.cancelReason den Wert null zurück, wenn eine Bestellung nicht storniert wird. Verwende Nicht leer und existiert, wenn true zurückgegeben werden soll, wenn ein Feld nicht leer ist, und false, wenn es leer ist.

Listenoperatoren

Listenoperatoren werden mit Operatoren auf Feldebene kombiniert, damit du Bedingungen für Daten in Listen überprüfen kannst.

Wie im Beispiel für "Mindestens einer von" möchtest du möglicherweise überprüfen, ob eine Bestellung ein bestimmtes Produkt (in order.lineItems) mit einem bestimmten Tag (eine Liste unter order.lineItems.product.tags) enthält. In beiden Fällen verwendet das Beispiel den Listenoperator Mindestens einer von.

Flow bietet 3 Operatoren für die Arbeit mit Listen: Mindestens einer von, Keiner von und Alle von.

Mindestens einer von

Die meisten Bedingungen mit Listen verwenden den Operator Mindestens einer von. Dieser Operator gibt true zurück, wenn irgendeiner der Artikel in der Liste mit der Bedingung übereinstimmt. Wenn du z. B. überprüfen möchtest, ob eine Bestellung ein Produkt mit einem bestimmten Tag enthält, würdest du Mindestens einer von verwenden. Wenn die Liste leer ist oder wenn die Bedingung nicht erfüllt ist, gibt die Bedingung false zurück.

Keiner von

In einigen Fällen möchtest du möglicherweise überprüfen, ob eine Liste einen Artikel nicht enthält. Um eine solche Bedingung zu erstellen, änderst du den Listenoperator am besten in Keiner von. Dieser Operator gibt true zurück, wenn keiner der Artikel in der Liste mit der Bedingung übereinstimmt. Und was wichtig ist: Wenn die Liste leer ist, gibt der Operator auch true zurück. Wenn du beispielsweise überprüfen möchtest, ob ein Produkt nicht das Tag presale enthält, verwende None of product tags is equal to presale.

Alle von

In bestimmten Fällen möchtest du möglicherweise überprüfen, ob alle Artikel in einer Liste mit einer Bedingung übereinstimmen. Du kannst beispielsweise überprüfen, ob alle Artikel in einer Bestellung von einem bestimmten Produktanbieter namens Acme stammen. Dafür würdest du All of order line items have a product.vendor equal to Acme verwenden.

Bedingungen anordnen

Du kannst Workflows mit mehreren Bedingungen erstellen, die jeweils verschiedene Aktionen zur Folge haben können. Die Reihenfolge der Bedingungen ist wichtig. Die Prüfung der Bedingungen beginnt am Anfang des Workflows und wird systematisch für jede Bedingung fortgesetzt. Die Prüfung wird beendet, wenn eine Bedingung erfüllt ist.

Mehrerer Kriterien in einer Bedingung kombinieren

Wenn du eine Bedingung erstellst, kannst du mehrere Kriterien festlegen. Du kannst auswählen, wie diese separaten Kriterien kombiniert werden sollen.

Wenn alle Bedingungen erfüllt sind

Die Auswahl Wenn alle Bedingungen erfüllt sind führt zu einer wahren Antwort, wenn eines der von dir festgelegten Kriterien wahr ist. Dies entspricht der Anweisung AND beim Programmieren.

Du erstellst beispielsweise einen Workflow, um Kunden in Kanada zu taggen, die mehr als 500 USD für eine einzelne Bestellung ausgeben.

Beispiel für einen Workflow, der die Und-Bedingung verwendet

Der Workflow taggt den Kunden nur, wenn sich der Kunde in Kanada befindet und mehr als 500 USD für die Bestellung ausgibt. Wenn eine dieser Bedingungen falsch ist, wird der Kunde nicht getaggt.

Wenn eine der Bedingungen erfüllt ist

Die Auswahl Wenn eine der Bedingungen erfüllt ist führt zu einer wahren Antwort, wenn eines der von dir festgelegten Kriterien erfüllt ist. Dies entspricht der Anweisung OR beim Programmieren.

Du erstellst beispielsweise einen Workflow, um Bestellungen zu taggen, die als hohes oder mittleres Risiko gelten.

Beispiel für einen Workflow, der die Oder-Bedingung verwendet

Der Workflow taggt die Bestellung, wenn sie entweder ein hohes oder ein mittleres Risiko aufweist. Solange eine dieser Bedingungen erfüllt ist, wird die Bestellung getaggt.

Bedingungen und Aktionen kombinieren

Du kannst Bedingungen kombinieren, um eine große Bedingung zu erzeugen. Wenn Bedingungen kombiniert sind, müssen alle Bedingungen erfüllt sein, damit die Gesamtbedingung wahr ist. Wenn eine der Bedingungen nicht erfüllt ist, dann ist die Gesamtbedingung falsch. Im folgenden Beispiel muss der Kunde den Erhalt von Marketingmitteilungen akzeptieren und der Gesamtpreis der Bestellung muss einen bestimmten Schwellenwert erfüllen.

Beispiel für einen Workflow, der den Gesamtbetrag der Ausgaben eines Kunden überprüft und Tags hinzufügt

Genauso kannst du Aktionen miteinander kombinieren, damit mehrere Aktionen ausgeführt werden können. In diesem Beispiel werden mehrere Bedingungen angewendet, um zu überprüfen, ob ein Kunde basierend auf dem im Shop ausgegebenen Gesamtbetrag für ein Treueprogramm infrage kommt. Im voranstehenden Beispiel werden die folgenden Bedingungen in der Reihenfolge ihrer Auflistung geprüft:

  1. Wenn der Gesamtpreis mehr als 1.000 USD beträgt und der Kunde eingewilligt hat, Marketingmaterialien zu erhalten, markiere ihn mit dem Gold-Tag.
  2. Wenn der Gesamtpreis weniger als 1.000 USD, aber mehr als 500 USD beträgt und der Kunde eingewilligt hat, Marketingmaterialien zu erhalten, markiere ihn mit dem Silber-Tag.
  3. Wenn der Kunde mehr als 200 USD ausgegeben und eingewilligt hat, Marketingmaterialien zu erhalten, markiere ihn mit dem Bronze-Tag.

Statische und dynamische Daten in Bedingungen

In der Regel ist der zweite Wert in einer Bedingung ein statischer, manuell eingegebener Wert (wie product.title == "your title"). Dieser Wert bleibt jedes Mal, wenn der Workflow ausgeführt wird, gleich.

Du kannst auch dynamische Werte verwenden, wenn das Feld für den zweiten Wert ein </>-Symbol anzeigt. Jedes Mal, wenn der Workflow ausgeführt wird, werden dynamische Werte aus deinen Shop-Daten abgerufen. Um einen dynamischen Wert zu verwenden, klicke auf das </>-Symbol und wähle den Wert aus, der als Vergleichswert dienen soll. Dynamische Werte sind nicht für alle Felder verfügbar.

Beispielsweise erstellst du einen Workflow, der eine Bestellung taggt, wenn das Land in der Rechnungsadresse der Bestellung mit dem Land in der Lieferadresse übereinstimmt.

Beispiel für einen Workflow, der eine Bestellung mithilfe von RHS-Daten taggt, um zu überprüfen, ob das Land der Rechnungsadresse und das Versandland eines Kunden identisch sind.

In diesem Beispiel werden sowohl der erste als auch der zweite Wert aus den Daten deines Shops abgerufen, anstatt manuell einen statischen String anzugeben, wobei der zweite Wert als Prüfwert dient. Wenn das Land in der vom Kunden angegebenen Rechnungsadresse mit dem Land identisch ist, das der Kunde in der Lieferadresse angegeben hat, ist die Bedingung wahr und die Bestellung wird getaggt.

Möglicherweise musst du gelegentlich dynamische Daten verwenden, die vom falschen Typ sind. Angenommen, du musst 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.

Du hast die gesuchten Antworten nicht gefunden? Wir helfen dir gerne weiter.