Formel-Beispiele
Preisberechnungen
Der max-Operator wählt aus einer Liste immer den größten Wert aus. Im folgenden Szenario werden die Quadratmeter (berechnet in einer Zwischenberechnung) mit dem Produktpreis multipliziert. Durch den max-Operator wird der Preis niemals kleiner als 49.99.
Profimodus:
{"max":[
49.99,
{"*":[
{"var":"calculations.quadratmeter"},
{"var":"product.price"}
]}
]}
Preis abhängig von Textlänge
Berechnung: 2 Euro pro Buchstabe
{"*": [2, {"length": {"var": "fields.text.value"}}]}
Mindestpreis mit Bedingung
{"max": [
9.90,
{"if": [
{">": [{"length": {"var": "fields.text.value"}}, 5]},
{"*": [{"var": "product.price"}, 2]},
{"var": "product.price"}
]}
]}
Komplexe Staffelpreise
{"if": [
{"<": [{"var": "fields.menge.value"}, 10]}, 5.00,
{"<": [{"var": "fields.menge.value"}, 50]}, 4.50,
{"<": [{"var": "fields.menge.value"}, 100]}, 4.00,
3.50
]}
Flächenberechnungen
Annahme: Zwei Felder: Länge (length) und Breite (width).
Eingabe in cm
Länge x Breite
Einfacher Modus:
fields.laenge.value * fields.breite.value
Profimodus:
{"*":[
{"var":"fields.hoehe.value"},
{"var":"fields.breite.value"}
]}
Länge x Breite und Umrechnung in m²
Einfacher Modus:
(fields.laenge.value * fields.breite.value) / 10000
Profimodus:
{"/":[
{"*":[
{"var":"fields.hoehe.value"},
{"var":"fields.breite.value"}
]},
10000
]}
Länge x Breite und Umrechnung in m², Wert darf nicht kleiner sein als 0,5m²
Der max-Operator nimmt den größeren der beiden Werte, in diesem Beispiel entweder 0.5 oder das Ergebnis der Berechnung.
Beispiel I
- Kundeneingabe Länge (cm): 10, Breite (cm): 10
- Ergebnis in m²: 0.01 m²
- Ergebnis der Formel: 0.5, da der max-Operator den größeren Wert auswählt
Beispiel II
- Kundeneingabe Länge (cm): 100, Breite (cm): 60
- Ergebnis in m²: 0.6 m²
- Ergebnis der Formel: 0.6, da der max-Operator den größeren Wert auswählt
Profimodus:
{"max":[
0.5,
{"/":[
{"*":[
{"var":"fields.hoehe.value"},
{"var":"fields.breite.value"}
]},
10000
]}
]}
Länge x Breite und Umrechnung in m², Wert darf nicht größer sein als 0,5m²
Der min-Operator nimmt den kleinsten der beiden Werte, in diesem Beispiel entweder 0.5 oder das Ergebnis der Berechnung.
Beispiel I
- Kundeneingabe Länge (cm): 10, Breite (cm): 10
- Ergebnis in m²: 0.01 m²
- Ergebnis der Formel: 0.01, da der min-Operator den kleinsten Wert auswählt
Beispiel II
- Kundeneingabe Länge (cm): 100, Breite (cm): 60
- Ergebnis in m²: 0.6 m²
- Ergebnis der Formel: 0.5, da der min-Operator den kleinsten Wert auswählt
Profimodus:
{"min":[
0.5,
{"/":[
{"*":[
{"var":"fields.hoehe.value"},
{"var":"fields.breite.value"}
]},
10000
]}
]}
Validierungen / Sichtbarkeitssteuerung
Bei Validierungen / Sichtbarkeitssteuerungen muss immer ein boolescher Wert (wahr / falsch) zurückgeliefert werden.
Prüfung, ob bestimmter Wert eines Mehrfachauswahlfeldes gewählt wurde
Hier wird geprüft, ob "rechts" im Feld mit dem Schlüsselwert "seiten" gewählt wurde
Profimodus:
{"in":[
"rechts",
{"map":[{"var":"fields.seiten.value"}, {"var":"value"}]}
]}
Prüfung, ob einer von zwei Werten eines Mehrfachauswahlfeldes gewählt wurde
Hier wird geprüft, ob "rechts" oder "links" im Feld mit dem Schlüsselwert "seiten" gewählt wurde
Profimodus:
{"or":[
{"in":[
"rechts",
{"map":[{"var":"fields.seiten.value"}, {"var":"value"}]}
]},
{"in":[
"links",
{"map":[{"var":"fields.seiten.value"}, {"var":"value"}]}
]}
]}
Prüfung, ob exakt zwei Werte eines Mehrfachauswahlfeldes gewählt wurden
Hier wird geprüft, ob "rechts" UND "links" im Feld mit dem Schlüsselwert "seiten" gewählt wurde
Profimodus:
{"and":[
{"in":[
"rechts",
{"map":[{"var":"fields.seiten.value"}, {"var":"value"}]}
]},
{"in":[
"links",
{"map":[{"var":"fields.seiten.value"}, {"var":"value"}]}
]}
]}
Validierung mit mehreren Bedingungen
{"and": [
{">": [{"var": "fields.laenge.value"}, 10]},
{"<": [{"var": "fields.laenge.value"}, 500]},
{">": [{"var": "fields.breite.value"}, 5]}
]}
Matrix-Operatoren sind besonders nützlich für komplexe Staffelpreise und können beliebig viele Dimensionen abbilden.