Introductie
Conditions zijn belangrijk voor het instellen van regels en acties in de Rule engine. De advanced mode in de Rule engine maakt het mogelijk om complexere conditions te gebruiken. Deze gebruiken operators, variabelen, constanten en functies om checkout-opties te bepalen op basis van factoren zoals gewicht, winkelwagenwaarde en bestemming.
Regels bestaan uit één of meer conditions die gekoppeld zijn aan actions, die invloed kunnen hebben op velden, addons of leveringsopties, en zo bepalen wat er gebeurt wanneer aan de conditions wordt voldaan. De interface van de Rule engine maakt het eenvoudig om conditions en actions in te stellen.
Voor meer informatie over veelvoorkomende use cases, bekijk ons artikel Gebruik van de Rule engine, dat een stapsgewijze handleiding biedt voor het maken van basic conditions.
Dit artikel richt zich op de meer geavanceerde aspecten van conditions:
- Advanced view in de Rule engine
- Lijst met geldige operators
-
Aangepaste parameters
- Boolean
- Tekst
- Condition lists - Expressions
Advanced view in de Rule engine
In de Rule engine heb je de mogelijkheid om over te schakelen naar Advanced mode. Deze bevat één tekstveld en maakt het mogelijk om conditions handmatig te schrijven voor meer controle.
Houd er rekening mee dat alle ingebouwde of aangepaste parameters die je in de conditions wilt gebruiken, geactiveerd moeten zijn onder Parameters. Lees hier meer: Parameters inschakelen
Voorbeelden:
vip = trueAangepaste tekst "vip" is gelijk aan true
cart_price < 100Winkelwagenwaarde is minder dan 100
to_country != "SE"Land is niet gelijk aan Zweden
to_postal_code < "10000" and to_country = "SE" and to_postal_code > "20000"Postcode van de ontvanger is minder dan 10000 en het land van de ontvanger is gelijk aan Zweden, en de postcode is minder dan 20000
cart_price >= 5000 or weight_kg >= 20Winkelwagenwaarde is groter dan of gelijk aan 5000, of gewicht is groter dan of gelijk aan 20
weight_kg >= 1.9 or volume_cm3 >= 8000Gewicht is groter dan 1,9 kg, of volume in kubieke centimeters is groter dan of gelijk aan 8000
date > "2025-12-31"Datum is na 31 december 2025
cart_price > 600 and currency = "SEK" and VIP = trueWinkelwagenwaarde is groter dan 600 en valuta is SEK en aangepaste parameter VIP is true.
Lijst met geldige operators
Het schrijven van conditions vereist het gebruik van operators:
| Operator |
Uitleg |
|---|---|
| = | Is gelijk aan |
| != | Is niet gelijk aan |
| > | Is groter dan |
| >= | Is groter dan of gelijk aan |
| < | Is kleiner dan |
| <= | Is kleiner dan of gelijk aan |
| | or OR | Of |
| & or AND | En |
| ! or NOT | Niet |
| in | Bevat |
Aangepaste parameters
Hier zijn enkele voorbeelden van hoe aangepaste parameters in advanced mode kunnen worden gebruikt. Aangepaste parameters moeten geactiveerd zijn onder Parameters om beschikbaar te zijn in advanced mode. Zie Parameters inschakelen.
Boolean
Aangepaste parameters kunnen worden ingesteld op true of false, zoals in deze voorbeelden:
bulky = true
b2b = true
VIP = false
Tekst
Je kunt tekst specificeren die aanwezig moet zijn voor een aangepaste parameter. Voorbeelden:
freightclass = "A"
member = “gold”
type = “nailpolish”
Condition lists
Je kunt een parameter specificeren in een condition list volgens het formaat parametername in "conditionlistname". Voorbeeld:
to_postal_code in "zipcodes_zone1"
Voor meer informatie over condition lists, zie dit artikel: Aan de slag met Condition lists. Dit bevat een sectie over het gebruik van condition lists in de Rule engine.
Expressions
Expressions werken vergelijkbaar met Conditions, maar hebben een ander doel. Terwijl Conditions een boolean (true/false) retourneren om te bepalen of een actie moet plaatsvinden, worden Expressions gebruikt om dynamisch waarden in velden zoals prijzen of berichten in te stellen. Expressions moeten tussen accolades "{}" worden geschreven.
Bijvoorbeeld: in een prijsveld kan een expression een aangepaste variabele uit de request gebruiken. Of om een leveringsbericht weer te geven, kun je schrijven:
"Will be delivered on {nextWorkingDayReceiver()}"
Hier is {nextWorkingDayReceiver()} de expression. De accolades {} geven aan het systeem aan dat de inhoud binnenin geëvalueerd moet worden. Als de functie "Monday" retourneert, wordt het uiteindelijke bericht:
"Will be delivered on Monday"
Opmerking: Als een expression een boolean retourneert (zoals een condition), wordt "true" of "false" als tekst weergegeven, wat mogelijk niet gewenst is.
Sommige functies zijn alleen beschikbaar in expressions en niet in conditions, omdat ze afhankelijk zijn van kennis over welke verzendoptie wordt gebruikt — iets wat niet beschikbaar is op checkout-niveau.
| Naam | Resultaattype |
|---|---|
| carrierEtaFromDate | Datum |
| carrierEtaToDate or carrierEtaDate | Datum |
| carrierEtaFromDateTime | DateTime |
| carrierEtaToDateTime or carrierEtaDateTime | DateTime |
| carrierEtaFromDay | String |
| carrierEtaToDay or carrierEtaDay | String |
| carrierEtaInterval | String |
| Operator |
Uitleg |
|---|---|
| + | Optellen |
| - | Aftrekken |
| * | Vermenigvuldigen |
| / | Delen |
| % | Modulo |