Prijsbeheer
Elke prijs die je klant in de configurator ziet, stel je in via de Product Editor: vaste prijzen op opties, stapprijzen op getalinvoer en berekende prijzen met formules die reageren op wat de klant kiest. Deze pagina behandelt waar de prijsvelden staan, hoe de berekeningseditor werkt en twee uitgewerkte voorbeelden — een m²-prijs en een conditionele prijs.
Waar je het vindt
Manager → Configuraties (Productconfiguraties) → open een product → Product Editor. Selecteer links in de boom een stap, feature of optie (subfeature); de instellingen verschijnen rechts.

Prijsvelden
Vaste prijs op een feature of optie
Open de sectie Logica van een feature of subfeature. Het veld Prijs stelt een vast bedrag in euro's in. Bij een subfeature (een optie die de klant kan kiezen) wordt dit bedrag bij het totaal opgeteld zodra de optie geselecteerd is.
Bij een feature werkt het prijsveld anders: het telt niet vanzelf mee in het totaal. Het is een opgeslagen waarde die je elders in berekeningen kunt gebruiken (via @@featureID.price@@ — zie hieronder). Gebruik het als centrale plek voor een tarief, zoals een prijs per m².

Stapprijs op een getalinvoer
Getalinvoer-features (breedte, hoogte, aantal, …) hebben een sectie Getalwaarden: Waarde bij start, Min. waarde, Max. waarde, Eenheid (bijv. cm), Stap en Stapprijs.
De stapprijs wordt per stap boven het minimum gerekend: prijs = (waarde − min) / stap × stapprijs. Een breedte-invoer van 60 tot 120 cm met stap 10 en stapprijs € 15 telt bij 120 cm € 90 op.

Financiële instellingen per product
De Financiële instellingen van het product gelden voor elke prijs in het product:
| Instelling | Wat het doet |
|---|---|
| BTW | BTW-percentage dat wordt toegepast als prijzen exclusief BTW zijn ingevoerd. |
| Alle prijzen afronden op | Rondt elke berekende regel af, bijv. op 0.05 of 1. |
| Extra percentage | Telt een toeslag-/margepercentage op bij elke regel. |
| Prijsinvoermodus | Prijzen inclusief BTW of Prijzen exclusief BTW. In de exclusief-modus moet elke prijs en berekening in het product zonder BTW worden ingevoerd. |
Prijzen worden in deze volgorde verwerkt: kale prijs → + BTW → + extra percentage → afronding.
Onder Prijsweergave voor klant bepaal je wat de klant ziet: totaalprijs verbergen, prijs per feature verbergen, prijs in het overzicht verbergen en een tekst boven de totaalprijs.

De berekeningseditor
Naast het veld Prijs (en naast Min, Max, Waarde en Zichtbaarheid) staat een rekenmachineknop. Die opent de logica-editor: prijs-logica voor @featureID.

De editor is een lijst rijen die van boven naar beneden worden geëvalueerd, als if/else-if:
- Linkerkolom — de voorwaarden. De eerste rij heet start, latere rijen anders. De eerste rij waarvan de voorwaarden kloppen, wint.
- Rechterkolom (dan) — de formule die de prijs oplevert.
- rij toevoegen voegt een extra voorwaarde/formule-paar toe. Rijen zijn versleepbaar en complete logicablokken kopieer je tussen items met kopiëren / plakken.
Verwijzen naar andere features
Typ @ in het formuleveld om een zoekvenster te openen. Kies een feature of optie en daarna Waarde, Prijs, Minimum of Maximum. Dit voegt een verwijzing in:
| Token | Verwijst naar |
|---|---|
@@featureID.value@@ | De huidige getalinvoer / het aantal van de klant. |
@@featureID.price@@ | Het prijsveld van de feature (een opgeslagen tarief). |
@@featureID.min@@ / @@featureID.max@@ | Het min/max van de getalinvoer. |
@@featureID>optieID.value@@ | De aantalwaarde van de optie. |
@@featureID>optieID.price@@ | De prijs van de optie. |

Operatoren en functies
Formules ondersteunen + - * / ( ) en ^ (macht). De knoppen onder Functies voegen in:
| Functie | Knop | Wat het doet |
|---|---|---|
ROUND(x) / ROUND(x, stap) | Afronden | Afronden, optioneel op een stap (bijv. 0.5). |
FLOOR(x) | Naar beneden | Naar beneden afronden. FLOOR(x, min) begrenst ook op een minimum. |
CEIL(x) | Naar boven | Naar boven afronden. CEIL(x, max) begrenst ook op een maximum. |
CLAMPMIN(x, min) | Minimaal | Nooit lager dan min. |
CLAMPMAX(x, max) | Maximaal | Nooit hoger dan max. |
SQRT(x) | Wortel | Vierkantswortel. |
POW(x, y) | Macht | x tot de macht y. |
Voorbeeld: prijs per m²
Er is geen ingebouwd m²-veld — je bouwt het op uit twee getalinvoeren en één formule.
Maak twee getalinvoer-features, bijv. met ID's
breedteenhoogte, met eenheidcmen logische min/max-waarden.Open op de feature of optie die de prijs draagt de Prijs-rekenmachine en voer in (voor € 125 per m², invoer in cm):
(@@breedte.value@@ * @@hoogte.value@@ / 10000) * 125Verfijn waar nodig — reken minimaal 1 m² en rond af op 5 cent:
ROUND(CLAMPMIN(@@breedte.value@@ * @@hoogte.value@@ / 10000, 1) * 125, 0.05)Houd het tarief onderhoudbaar: zet
125in het Prijs-veld van een feature (bijv.m2prijs) en verwijs ernaar met@@m2prijs.price@@in plaats van het bedrag hard in de formule te zetten.
Tip: om de berekende m² aan de klant te tonen, voeg je een alleen-lezen getalinvoer toe en geef je de Waarde-logica daarvan dezelfde oppervlakteformule.

Voorbeeld: conditionele prijs
Stel dat het m²-tarief afhangt van het gekozen bladmateriaal. Gebruik in de prijs-logica twee rijen:
- Rij 1 (start): voorwaarde — klik + toevoegen, zoek de feature (Zoek feature…), kies bijv.
Bladselectie, operator is gelijk, waardeMarmer wit. Formule:(@@breedte.value@@ * @@hoogte.value@@ / 10000) * 165 - Rij 2 (anders): geen voorwaarde — de terugvaloptie. Formule:
(@@breedte.value@@ * @@hoogte.value@@ / 10000) * 125
Voorwaardegroepen kunnen alle of één van de voorwaarden vereisen en zijn nestbaar. Getalvoorwaarden ondersteunen is hoger dan, is lager dan, is gelijk aan en is niet gelijk aan; selectievoorwaarden ondersteunen gelijk aan / niet gelijk aan met een optiekiezer. Voorwaarden op verborgen of inactieve features tellen als niet voldaan.


Hoe het totaal wordt berekend
De configurator rekent alles live in de browser — er is geen aparte prijsservice. Per feature-regel: de prijs-logica van de feature (indien aanwezig) + de stapprijs van getalinvoeren + de prijzen van geselecteerde opties. Op elke regel worden daarna BTW, het extra percentage en de afronding toegepast; het totaal telt alle actieve, zichtbare regels op. Het totaal staat in de actiebalk en het overzicht van de configurator en wordt met elke inzending en webhook meegestuurd als total_price.
ID's hernoemen die in formules worden gebruikt
Feature-ID's zijn de ankers van je formules. Wijzig je een ID die in logica wordt gerefereerd, dan waarschuwt de editor (ID gewijzigd) met het aantal geraakte regels en biedt Vervangen en opslaan om alle verwijzingen bij te werken, of Opslaan zonder bijwerken. De inklapbare sectie Referenties op elk item toont waar het ID wordt gebruikt.