Room map is an option for products priced from a real space: flooring, fencing, baseboard, turf, or a multi-room install. The customer lists each wall (length and the turn into that wall) and sees the outline update. They can also start from a rectangle or an L and fill in the lengths. The calculator prices from the total area, the total perimeter, or how many rooms were measured — not from a wall the customer has not created yet.
Add it from Calculator Editor → Options & Pricing → + Add option → Room map.
| Setting | What it does |
|---|---|
| Unit | Feet, feet and inches, inches, centimetres, or meters for the whole map. Feet and inches uses a feet box and an inches box on each wall. Feet is a single feet length. |
| Require a closed shape | Add to cart waits until every room closes. Turn this off for an open run, such as a fence. |
| Minimum rooms | How many rooms the customer starts with. They cannot delete below this. Blank means 1. |
| Maximum rooms | Most rooms they can add. Blank means no limit. 1 is a single room (no Add room). |
| Allowed shapes | Custom, Rectangle, and/or L-shape. If only one is on, every room uses it and the shape picker is hidden. |
| Translations | System words (Wall, Close, Perimeter, and the rest) are already translated. Open Translations on the option to review a language. |
Rectangle is always four walls (length and width, opposite sides copied). L-shape is always six walls with left turns; the two long sides stay equal to the walls across from them. Custom is the free walk: each later wall stores the turn at its start (left, right, or an angle). Wall 1 always starts to the right.
12', 6", 12' 6". Area stays N sq ft (or the unit you chose).INPUT("KEY", "area"), INPUT("KEY", "perimeter"), or INPUT("KEY", "rooms"). OPT("KEY") is this option’s own price, not the area. There are no per-wall or per-room formula tokens — the customer creates the rooms, so a formula cannot name “room 2, wall 3” ahead of time. Put waste in the formula (INPUT("KEY", "area") * 1.1).INPUT("ROOM", "area") * 4.50. The customer starts from the L, types the six lengths, and the opposite sides stay matched.INPUT("FENCE", "perimeter") * 12.