Voorwaarden in Shopify Flow

In Shopify Flow worden voorwaarden gebruikt om te bepalen welk traject in een workflow wordt gebruikt, meestal om te beheren of een actie wordt ondernomen. Als je een voorwaarde instelt, kies je een gegevensveld om te na te gaan (zoals een producttitel), een logische operator (zoals equal to) en een waarde om op te controleren (Blue jeans).

Voorbeelden van voorwaarden

Controleer of ten minste één artikel in een lijst overeenkomt met een voorwaarde

Dit voorbeeld geeft een gebruikelijke voorwaarde weer die controleert of ten minste één artikel in een lijst overeenkomt met een bepaalde waarde.

In dit geval wordt met de voorwaarde gecontroleerd of een van de producten in een bestelling de tag presale bevat. Kies order / lineItems / product / tags om deze voorwaarde op te bouwen. Flow kiest standaard ten minste een van als de logische operator:

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

De onderdelen Ten minste een van zijn lijstoperators en worden gebruikt om overeenkomsten te verwerken in meerdere lijstartikelen. Het onderdeel Is gelijk aan is een operator op veldniveau die bepaalt of één lijstartikel overeenkomt.

Controleer of geen van de artikelen in een lijst overeenkomt met een voorwaarde

In dit voorbeeld wordt een gebruikelijke voorwaarde weergegeven waarin wordt gecontroleerd of geen van de artikelen in een lijst overeenkomt met een bepaalde waarde. Een veelvoorkomend probleem is dat lijsten leeg kunnen zijn. Als een lijst leeg is, wordt de voorwaarde verwerkt door de lijstoperator (in dit geval Geen van).

In dit geval wordt met de voorwaarde gecontroleerd of geen van de producttags gelijk is aan foo:

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

De voorwaarde retourneert true als (1) er geen producttags zijn of (2) geen van de tags foo is. Anders retourneert deze false.

Controleer of een artikel in een lijst aan meerdere criteria voldoet

Dit voorbeeld geeft een gebruikelijke voorwaarde weer die controleert of ten minste één artikel in een lijst overeenkomt met twee afzonderlijke criteria.

In dit geval controleert de voorwaarde of een van de producten in een bestelling de tag presale en het producttype clothing bevat.

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

Je kunt het volgende doen om deze voorwaarde op te bouwen:

  1. Kies order / lineItems / product / tags als eerste criterium.
  2. Kies Criteria voor hetzelfde artikel toevoegen voor de lijst lineItems. Opmerking: een veelvoorkomende fout is het kiezen van het verkeerde lijstartikel.
  3. Kies lineItems_item als het toplevelobject en vervolgens product / productType als tweede criterium. Opmerking: een andere veelvoorkomende fout is het kiezen van het verkeerde object.
  4. Kies AND om de twee criteria te combineren.
  5. Voer de waarden presale en clothing voor de twee criteria in.

Gegevenstypen die worden gebruikt met Flow

De eerste waarde in een Flow-voorwaarde is dat gegevens uit je winkel worden afgenomen en afkomstig zijn van GraphQL-admin-API.

Flow ondersteunt de volgende soorten gegevens:

  • Float: Float-waarden zijn getallen met een decimaal getal. Bijvoorbeeld 4,25.
  • Geheel getal: gehele getallen zijn getallen zonder decimaal getal. Bijvoorbeeld 42.
  • Datum: datumwaarden zijn numerieke weergave van de datum. Bijvoorbeeld 01012021.
  • Tekenreeks: tekenreekswaarden zijn tekst. Vergelijkingen met tekenreekswaarden zijn niet hoofdlettergevoelig.
  • Boolean: Boolean-waarden zijn waar of onwaar.
  • Enum: Enum-waarden zijn reeksen gegevens waarmee een variabele een reeks vooraf gedefinieerde constanten kan zijn.

Logische operators

Logische operators definiëren hoe je voorwaarde wordt toegepast. Voorwaarden kunnen eenvoudige eigenschappen controleren, zoals of het totaal van een bestelling hoger is dan een bepaald bedrag of dat een klant marketing accepteert. Logische operators kunnen ook controleren op complexere eigenschappen.

Operators kunnen operators op veldniveau zijn, zoals Gelijk aan of Niet gelijk aan, of lijstoperators, zoals Ten minste een van of Geen operators.

Operators op veldniveau

Operators op veldniveau worden gebruikt om twee waarden te vergelijken. Flow kan de volgende operators gebruiken:

Gelijk aan

Gelijk aan vergelijkt waarden om te controleren of ze hetzelfde zijn. In het volgende voorbeeld wordt de waarde voor order.currentTotalDiscountsSet.shopMoney.amount uit je winkelgegevens opgehaald en vergeleken met de tweede waarde, 50.

Voorbeeld van een workflow die de logische operator 'gelijk aan' gebruikt om een bestelling te annuleren als de opgehaalde gegevens gelijk zijn aan 50

Als de eerste waarde gelijk is aan 50, dan is de voorwaarde waar. De bestelling is geannuleerd.

Niet gelijk aan

Niet gelijk aan vergelijkt waarden om te zien of ze hetzelfde zijn. In het volgende voorbeeld wordt de waarde voor order.currentTotalDiscountsSet.shopMoney.amount uit je winkelgegevens opgehaald en vergeleken met de tweede waarde, 50.

Voorbeeld van een workflow die de logische operator 'Niet gelijk aan' gebruikt om een bestelling te annuleren als de opgehaalde gegevens gelijk zijn aan 50

Als de eerste waarde gelijk is aan 93, dan is de voorwaarde waar. De bestelling is geannuleerd.

Meer dan en Groter dan of gelijk aan

Groter dan en Groter dan of gelijk aan vergelijken waarden om te zien of de eerste waarde groter is dan, of groter dan of gelijk is aan de tweede waarde. In het volgende voorbeeld wordt de waarde voor order.currentTotalDiscountsSet.shopMoney.amount uit je winkelgegevens opgehaald en vergeleken met de tweede waarde, 50.

Voorbeeld van een workflow die de logische operator 'Groter dan' gebruikt om een bestelling te annuleren als de opgehaalde gegevens groter zijn dan 50

Als de waarde die uit je winkel wordt afgenomen 137 is, dan is de voorwaarde waar, omdat 137 groter is dan 50. De bestelling is geannuleerd.

Minder dan en Minder dan of gelijk aan

Kleiner dan en Kleiner dan of gelijk aan vergelijken waarden om te zien of de eerste waarde kleiner is dan, of kleiner dan of gelijk is aan de tweede waarde. In het volgende voorbeeld wordt de waarde voor order.currentTotalDiscountsSet.shopMoney.amount uit je winkelgegevens opgehaald en vergeleken met de tweede waarde, 50.

Voorbeeld van een workflow die de logische operator 'minder dan of gelijk aan' gebruikt om een bestelling te annuleren als de opgehaalde gegevens minder zijn dan of gelijk zijn aan 50

Als de waarde die uit je winkel wordt afgenomen 47 is, is de voorwaarde waar, omdat 47 minder dan of gelijk is aan 50. De bestelling is geannuleerd.

Ten minste een van

Met de operator Ten minste een van wordt gecontroleerd of het veld gelijk is aan de waarde in de opgegeven lijst. De te controleren waarden moet je afzonderlijk invoeren, gevolgd door de enter-toets (zoals bij tags). Als je Ten minste een van met een lege matrix gebruikt, resulteert dit in een onjuiste beoordeling. In het volgende voorbeeld wordt de waarde order.lineitem.product.title uit je winkelgegevens opgehaald en vergeleken met de tweede reeks waarden: ananas, guava, kiwi.

Voorbeeld van een workflow die de logische operator Ten minste een van gebruikt om een bestelling te annuleren als de opgehaalde gegevens ananas, guave of kiwi bevatten

Als de waarde die uit je winkel wordt afgenomen guave is, is de voorwaarde waar, omdat guava is opgenomen in de array ananas, guava, kiwi. De bestelling wordt geannuleerd.

Geen van deze

De operator Geen van deze controleert of het veld niet gelijk is aan de waarden in de opgegeven lijst. De te controleren waarden moet je afzonderlijk invoeren, gevolgd door de enter-toets (zoals bij tags). In het volgende voorbeeld wordt de waarde order.lineitem.product.title uit je winkelgegevens opgehaald en vergeleken met de tweede reeks waarden: ananas, guava, kiwi.

Voorbeeld van een workflow die de logische operator 'niet minstens een van' gebruikt om een bestelling te annuleren als de opgehaalde gegevens geen ananas, guave of kiwi bevatten

Als de waarde die uit je winkel wordt opgehaald framboos is, is de voorwaarde waar, omdat framboos niet is opgenomen in de array ananas, guava, kiwi. De bestelling wordt geannuleerd.

Bevat

Bevat vergelijkt de waarden om te zien of de invoer van de eerste waarde de gegevens in de invoer van de tweede waarde bevat. In het volgende voorbeeld wordt de waarde voor order.lineitem.product.title uit je winkelgegevens opgehaald en vergeleken met de tweede waarde, krabben.

Voorbeeld van een workflow die de logische operator 'bevat' gebruikt om een bestelling te annuleren als de opgehaalde gegevens de string 'krab' niet bevatten

Als de waarde die je uit je winkelgegevens haalt wolkenkrabber is, dan is de voorwaarde waar, want de exacte string krab is niet opgenomen in de string wolkenkrabber. De bestelling wordt geannuleerd.

Bevat geen

Bevat geen vergelijkt de waarden om te zien of de invoer van de eerste waarde niet de gegevens in de invoer van de tweede waarde bevat. In het volgende voorbeeld wordt de waarde voor order.lineitem.product.title uit je winkelgegevens opgehaald en vergeleken met de tweede waarde, krabben.

Voorbeeld van een workflow die de logische operator 'bevat geen' gebruikt om een bestelling te annuleren als de opgehaalde gegevens de string 'krabben' niet bevatten

Als de waarde die je uit je winkelgegevens haalt krapper is, dan is de voorwaarde waar, want de exacte tekenreeks 'krab' is niet opgenomen in de tekenreeks krapper. De bestelling wordt geannuleerd.

Begint met

Begint met vergelijkt waarden om te zien of de eerste waarde begint met de gegevens in de tweede waarde. In het volgende voorbeeld wordt de waarde voor order.shippingAddress.country uit je winkelgegevens opgehaald en vergeleken met de tweede waarde, Verenigd.

Voorbeeld van een workflow die de logische operator 'begint met' gebruikt om een bestelling te annuleren als de opgehaalde gegevens beginnen met Verenigd

Als de waarde die wordt afgenomen uit je winkel Verenigd Koninkrijk is, is de voorwaarde waar, omdat de reeks Verenigd Koninkrijk de tekenreeks Verenigd voorafgaat. De bestelling wordt geannuleerd.

Begint niet met

Begint niet met vergelijkt waarden om te zien of de eerste waarde niet begint met de gegevens in de tweede waarde. In het volgende voorbeeld wordt de waarde voor order.shippingAddress.country uit je winkelgegevens opgehaald en vergeleken met de tweede waarde, Verenigd.

Voorbeeld van een workflow die de logische operator 'begint niet met' gebruikt om een bestelling te annuleren als de opgehaalde gegevens niet beginnen met Verenigd

Als de waarde die wordt afgenomen uit je winkel Canada is, is de voorwaarde waar, omdat de reeks Verenigd Koninkrijk niet wordt voorafgegaan door Canada. De bestelling wordt geannuleerd.

Eindigt met

Eindigt met vergelijkt waarden om te zien of de eerste waarde eindigt met de gegevens in de tweede waarde. In het volgende voorbeeld wordt de waarde voor order.lineitems.product.title uit je winkelgegevens opgehaald en vergeleken met de tweede waarde, laatst-beschikbaar.

Voorbeeld van een workflow die de logische operator 'eindigt met' gebruikt om een bestelling te annuleren als de opgehaalde gegevens eindigen op de laatste beschikbare string

Als de waarde die wordt afgenomen uit je winkel sportsokken laatst-beschikbaar is, is de voorwaarde waar, omdat de tekenreeks sportsokken laatst-beschikbaar eindigt met de tekenreeks laatst-beschikbaar. De bestelling wordt geannuleerd.

Eindigt niet met

Begint niet met vergelijkt waarden om te zien of de eerste waarde niet begint met de gegevens in de tweede waarde. In het volgende voorbeeld wordt de waarde voor order.lineitems.product.title uit je winkelgegevens opgehaald en vergeleken met de tweede waarde, laatst-beschikbaar.

Voorbeeld van een workflow die de logische operator 'eindigt niet met' gebruikt om een bestelling te annuleren als de opgehaalde gegevens niet eindigen met de tekenreeks laatste beschikbaar

Als de waarde die uit je winkel is gehaald sportsokken nieuw is, dan is de voorwaarde waar omdat de tekenreeks sportsokken nieuw niet eindigt op de tekenreeks last-available. De bestelling is geannuleerd.

Null- of lege operators

Leeg of bestaat niet

Sommige velden in je gegevens kunnen leeg zijn. Zo retourneert order.cancelReason bijvoorbeeld null als een bestelling niet is geannuleerd. Gebruik Leeg of bestaat niet als je true retour wil als een veld leeg is of null en false als een veld aanwezig is.

Niet leeg en bestaat

Sommige velden in je gegevens kunnen leeg zijn. Zo retourneert order.cancelReason bijvoorbeeld null als een bestelling niet is geannuleerd. Gebruik Niet leeg en bestaat als je true retour wil als een veld niet leeg is en false als een veld leeg is.

Lijstoperators

Lijstoperators worden gecombineerd met operators op veldniveau, zodat je de voorwaarden kunt controleren op gegevens die op lijsten zijn opgenomen.

Net als in het voorbeeld van Ten minste een van kun je controleren of een bestelling een specifiek product bevat (dat zich in order.lineItems bevindt) via een specifieke tag (een lijst onder order.lineItems.product.tags). In beide gevallen wordt in het voorbeeld de lijstoperator Ten minste een van gebruikt.

Flow biedt 3 operators voor het werken met lijsten: Ten minste een van, Geen van en Alle.

Ten minste een van

Voor de meeste voorwaarden met lijsten is het handig Ten minste een van te gebruiken. Deze operator retourneert true als artikelen op de lijst overeenkomen met de voorwaarde. Als je bijvoorbeeld wil controleren of een bestelling een product met een specifieke tag bevat, gebruik je Ten minste een van. Als de lijst leeg is of niet aan de voorwaarde is voldaan, retourneert de voorwaarde false.

Geen van

In sommige gevallen wil je misschien controleren of een lijst geen artikel bevat. De beste manier om deze voorwaarde op te bouwen, is door de lijstoperator te wijzigen naar Geen van. Deze operator retourneert true als geen van de artikelen op de lijst overeenkomt met de voorwaarde. Nog belangrijker, als de lijst leeg is, retourneert deze true. Als je bijvoorbeeld wil controleren of een product niet de tag presale bevat, gebruik je None of product tags is equal to presale.

Alle

In beperkte gevallen wil je misschien controleren of alle artikelen in een lijst overeenkomen met een voorwaarde. Je wil misschien controleren of alle artikelen in een bestelling de specifieke productleverancier Acme hebben. Hiervoor gebruik je All of order line items have a product.vendor equal to Acme.

Voorwaarden in de juiste volgorde zetten

Je kunt workflows aanmaken met meerdere voorwaarden, die elk verschillende acties kunnen activeren. De volgorde van de voorwaarden is belangrijk. De controle op voorwaarden begint bij het begin van de workflow en gaat systematisch door elke voorwaarde heen. De controle stopt als aan een voorwaarde voldaan is.

Meerdere criteria in één voorwaarde combineren

Bij het opbouwen van een voorwaarde, kun je verschillende criteria instellen. Je kunt kiezen hoe deze afzonderlijke criteria gecombineerd moeten worden.

Als aan alle voorwaarden is voldaan

Het kiezen van Als aan alle voorwaarden is voldaan geeft alleen een waar antwoord als elk criterium dat je instelt waar is. Dit werkt als een AND-verklaring in programmering.

Je maakt bijvoorbeeld een workflow om klanten in Canada te taggen en meer dan USD 500 uit te geven aan één bestelling.

Voorbeeld van een workflow dat de voorwaarde 'en' gebruikt

De workflow tagt de klant alleen als de klant zich in Canada bevindt en diegene meer dan USD 500 aan de bestelling uitgeeft. Als een van deze voorwaarden onjuist is, wordt de klant niet getagd.

Als aan alle voorwaarden wordt voldaan

Als je de resultaten Als aan alle voorwaarden wordt voldaan selecteert, krijg je een waar antwoord als een van de criteria die je instelt waar is. Dit werkt als een OR-verklaring in programmering.

Je maakt bijvoorbeeld een workflow om bestellingen te taggen die worden beschouwd als hoog of gemiddeld risico.

Voorbeeld van een workflow dat de voorwaarde 'of' gebruikt

De workflow tagt de bestelling als het een hoog of gemiddeld risico heeft. Zolang een van die voorwaarden waar is, wordt de bestelling getagd.

Voorwaarden en acties combineren

Je kunt voorwaarden combineren om één grote voorwaarde te maken. Wanneer voorwaarden worden gecombineerd, is de hele voorwaarde alleen waar als aan alle voorwaarden is voldaan. Als niet aan een voorwaarde wordt voldaan, is de hele voorwaarde onwaar. In het volgende voorbeeld moet de klant marketingmateriaal accepteren en moet de totale prijs van de bestelling aan een bepaalde drempel voldoen.

Voorbeeld van een workflow die het totale uitgavenbedrag van een klant controleert en tags toevoegt

Je kunt acties ook combineren om meerdere acties tegelijk uit te voeren. In dit voorbeeld worden meerdere voorwaarden gebruikt om te controleren of een klant in aanmerking komt voor een loyaliteitsprogramma op basis van het totale bedrag dat de klant in de winkel heeft uitgegeven. In het bovenstaande voorbeeld worden de voorwaarden gecontroleerd in de weergeven volgorde:

  1. Als de totale prijs hoger is dan $ 1000 en de klant marketing accepteert, dan geef je de klant de tag Goud.
  2. Als de totale prijs lager is dan $ 1000, maar hoger dan $ 500 en de klant marketing accepteert, dan geef je de klant de tag Zilver.
  3. Als de klant meer dan $ 200 heeft besteed en marketing accepteert, dan geef je deze klant de tag Brons.

Statische en dynamische gegevens onder voorwaarden

Normaal gesproken is de tweede waarde in een waarde een statische, handmatig ingevoerde waarde (zoals product.title == "your title"). Deze waarde blijft hetzelfde, bij elke uitvoering van de workflow.

Je kunt ook dynamische waarden gebruiken als in het veld voor de tweede waarde een symbool </> wordt weergegeven. Dynamische waarden worden uit je winkelgegevens gehaald telkens als de workflow wordt uitgevoerd. Als je een dynamische waarde wilt gebruiken, klik je op het symbool </> en selecteer je de waarde die je wilt controleren. Dynamische waarden zijn niet voor alle velden beschikbaar.

Je maakt bijvoorbeeld een workflow die een bestelling tagt als het land op het factuuradres van de bestelling overeenkomt met het land op het bezorgadres.

Voorbeeld van een workflow die een bestelling tagt met behulp van RHS-gegevens om te controleren of de facturering en het land voor verzending van een klant hetzelfde zijn.

In dit voorbeeld zijn zowel de eerste als de tweede waarden afkomstig van de gegevens van je winkel, in plaats van handmatig een statische tekenreeks op te geven om tegen te gaan voor de tweede waarde. Als het land op het factuuradres dat door de klant wordt opgegeven, hetzelfde is als het land dat de klant heeft opgegeven in het bezorgadres, is de voorwaarde waar en wordt de bestelling getagd.

Je moet mogelijk af en toe dynamische gegevens van het verkeerde type gebruiken. Het kan bijvoorbeeld nodig zijn een nummer dat als tekenreeks is opgeslagen te vergelijken met een ander nummer. In dat geval kun je de optie Code uitvoeren gebruiken om de gegevens om te zetten naar het juiste type.

Klaar om te beginnen met verkopen met Shopify?

Probeer het gratis