Scale: group range vs. window measurement
At group level the advisor enters a min/max width and height across all windows in the group — informational, to quickly pick a suitable product line for the entire group. At window level the exact finished sizes of the frame apply; these determine actual system suitability and price.
Matrix lookup (per window)
price(height, width, priceGroup) = matrix[ceil(height → tier)][ceil(width → tier)][priceGroup]
Tiers are fixed per system (from the Erfal price list). On input the value is rounded up to the next tier ≥ the entered mm.
Suitability check (per window)
| Condition | Formula |
|---|---|
| Width within range | system.min_width ≤ window.finishedWidth ≤ system.max_width |
| Height within range | system.min_height ≤ window.finishedHeight ≤ system.max_height |
Window-info validation
On + Add to order the combination of system + window info is checked. Blocking:
- Horizontal frame → only systems that can be mounted horizontally.
- Slanted frame → only tensioned models.
- Movable window → tensioned required.
- Plastic/aluminium frame that opens + drilled → choose clamp or stick-on.
Advisory (warning):
- Extra-wide view-through required → Megaview.
- Bathroom + wooden venetian → moisture warning (warping/swelling).
- Inward-opening + venetian in recess → frame can no longer be opened.
Group consistency
When adding, it is checked whether the product type already occurs elsewhere in the group. Adding a new product type to a group with other products → confirm dialog.
Side-guide surcharge
Fixed amount per height tier (€16–€30). Lookup: sideGuide(height) = arr[ceil(height → tier)].
DIN EN 13120 — operating length
When fully extended, the operating cord/chain must sit more than 1.5 m from the floor (child safety). The configurator automatically proposes operatingLength = finishedHeight − 150 cm.
Order total
Order total = sum of all decoration totals across all windows in all groups, excluding TBD accessories.