Mit Formeln kannst du komplexe Preisberechnungen realisieren, die über einfache Aufpreise hinausgehen. Formeln greifen auf die Werte und Aufpreise aller Merkmale zu und berechnen daraus einen Preis in Echtzeit.
Für Standardfälle reichen einfache Formel-Ausdrücke. Für sehr komplexe Logik steht zusätzlich vollständiger JavaScript-Code zur Verfügung.
Wo werden Formeln hinterlegt?
Formeln werden in den Preiseinstellungen einer Option oder direkt als Formel-Preisregel auf Komponentenebene hinterlegt. Du kannst Formeln für einzelne Optionen oder als Gesamtpreis-Formel verwenden.
Einfache Formeln
Merkmalswerte referenzieren
[merkmal_name] → Zahlenwert des Merkmals (bei Freieingabe)
[merkmal_name.price] → Aufpreis der gewählten Option
[_base_price] → Basispreis der Komponente
Grundoperatoren
+ Addition
- Subtraktion
* Multiplikation
/ Division
^ Potenz
() Klammern für Reihenfolge
Funktionen
ROUND(wert, stellen) → Runden auf n Dezimalstellen
CEIL(wert) → Aufrunden auf ganze Zahl
FLOOR(wert) → Abrunden auf ganze Zahl
MAX(a, b) → Größerer der beiden Werte
MIN(a, b) → Kleinerer der beiden Werte
IF(bedingung, a, b) → Wenn bedingung wahr → a, sonst → b
ABS(wert) → Absolutwert (ohne Vorzeichen)
Praxisbeispiele
Flächenpreis (Breite × Höhe):
[breite] * [hoehe] * 0.025
Flächenpreis mit Mindestpreis:
MAX([breite] * [hoehe] * 0.025, 49.00)
Aufgerundeter Meterpreis:
CEIL([laenge] / 100) * 12.50
Staffelpreis (Mengenrabatt):
IF([menge] >= 100, [menge] * 8.90,
IF([menge] >= 50, [menge] * 9.50,
[menge] * 10.90))
Kombination aus Fläche und Aufpreisen:
([breite] * [hoehe] * 0.020) + [farbe.price] + [antrieb.price]
Erweiterte Berechnungen mit JavaScript
Wenn die einfache Formel-Syntax nicht ausreicht, kannst du vollständigen JavaScript-Code hinterlegen. Das erlaubt beliebig komplexe Berechnungslogik — Schleifen, Arrays, externe Lookups, eigene Algorithmen.
Grundstruktur
Der JavaScript-Code muss am Ende einen numerischen Wert zurückgeben:
// Alle Merkmalswerte stehen als Variablen zur Verfügung
var flaeche = breite * hoehe;
var grundpreis = flaeche * 0.025;
// Mindestpreis
if (grundpreis < 49) {
grundpreis = 49;
}
// Rückgabe
grundpreis;
Merkmalswerte im JavaScript
Alle Merkmale stehen als JavaScript-Variablen bereit — benannt nach ihrem internen Namen:
// Zahlenwerte direkt
breite // Wert des Merkmals "breite"
hoehe // Wert des Merkmals "hoehe"
menge // Wert des Merkmals "menge"
// Aufpreise der gewählten Option
farbe_price // Aufpreis der gewählten Farbe
antrieb_price // Aufpreis des gewählten Antriebs
// Basispreis
_base_price // Basispreis der Komponente
Praxisbeispiele
Komplexer Staffelpreis mit Tabelle:
var staffel = [
{ ab: 1, preis: 10.90 },
{ ab: 10, preis: 9.50 },
{ ab: 50, preis: 8.90 },
{ ab: 100, preis: 7.90 },
{ ab: 500, preis: 6.90 }
];
var einzelpreis = staffel[0].preis;
for (var i = 0; i < staffel.length; i++) {
if (menge >= staffel[i].ab) {
einzelpreis = staffel[i].preis;
}
}
menge * einzelpreis;
Preisberechnung mit Zuschlägen je nach Kombination:
var basis = breite * hoehe * 0.022;
// Material-Zuschlag
var materialFaktor = 1.0;
if (material === 'edelstahl') materialFaktor = 1.35;
if (material === 'holz') materialFaktor = 1.20;
// Expressaufschlag
var express = (lieferzeit === 'express') ? basis * 0.25 : 0;
// Mindestpreis
Math.max(basis * materialFaktor + express, 59.00);
Preisberechnung mit Rundungsregeln nach Branchenstandard:
// Fläche in m² (Eingabe in cm)
var flaeche_m2 = (breite / 100) * (hoehe / 100);
// Auf 0,1 m² aufrunden (Mindestabnahme)
var flaeche_gerundet = Math.ceil(flaeche_m2 * 10) / 10;
// Preis aus Preiszone
var preis_pro_m2 = 45.00;
if (flaeche_gerundet > 5) preis_pro_m2 = 42.00;
if (flaeche_gerundet > 10) preis_pro_m2 = 38.00;
flaeche_gerundet * preis_pro_m2 + antrieb_price;
Verfügbare JavaScript-APIs
Im Formel-Kontext stehen Standard-JavaScript-Objekte zur Verfügung:
Math.round(), Math.ceil(), Math.floor()
Math.min(), Math.max(), Math.abs()
Math.pow(), Math.sqrt()
parseInt(), parseFloat()
Array, Object, JSON
Kein Zugriff auf DOM, externe HTTP-Requests oder Browser-APIs — die Berechnung läuft serverseitig.
Formeln testen
Im Backend zeigt die Vorschau sofort das Ergebnis bei verschiedenen Eingabewerten. Gib Testwerte ein und prüfe ob die Berechnung stimmt.
KI-Agent für Formeln und JavaScript
Der KI-Agent kann sowohl einfache Formeln als auch komplexen JavaScript-Code erstellen:
„Der Preis soll Breite mal Höhe mal 0,025 Euro sein, aber mindestens 49 Euro."
„Ich brauche einen Staffelpreis: bis 10 Stück 10,90€, ab 10 Stück 9,50€, ab 50 Stück 8,90€, ab 100 Stück 7,90€."
„Der Preis soll auf volle 0,1 m² aufgerundet werden und bei größerer Fläche günstiger pro m² werden."
Der Agent schreibt den Code und hinterlegt ihn direkt in der Komponente.
Fehlersuche
Formel ergibt 0 oder NaN:
- Merkmalsnamen prüfen — Groß-/Kleinschreibung beachten
- Sicherstellen dass das referenzierte Merkmal ein Zahlenfeld ist
- JavaScript-Syntax auf Fehler prüfen (fehlende Semikolons, Klammern)
JavaScript gibt keinen Wert zurück:
- Sicherstellen dass am Ende ein numerischer Ausdruck steht (kein
return, keinconsole.log) - Auf
undefinedodernullprüfen bei bedingter Logik
Unerwartete Werte:
- Einheiten beachten (mm vs. cm vs. m)
console.log()zur Fehlersuche — Ausgaben erscheinen in der Browser-Konsole der Vorschau