What the builder measures
- Used length — how much of the roll the packed sheet takes, from the film’s top edge to the bottom of the lowest piece. Gaps and edge padding count; they are part of what the customer used.
- Billable length — the used length rounded up to the billing increment (inch, foot, centimeter) and never below the minimum billable length. With fixed sheet lengths the value is the number of sheets.
- Sheets — an order longer than the maximum sheet length overflows onto a second sheet; the billable total is the sum across sheets.
Path 1 — Print Options (recommended)
Set Price target topo:dimensions and add a
Print Options option set to the product with
a Per length price modifier on the film choice. The builder streams the
film width and used length into the widget, which prices live and verifies
the total on our servers at add-to-cart.
A typical film choice:
with a 10 minimum order.
Example. Four logos at 40/30/30/25 copies pack into 13” of 22” film.
Billed per inch that is 13” = 1.083 ft × 8.67, plus the 11.67**. Add a fifth logo that fits in the free length and the price
does not move.
The widget prices from the saved design’s canvas once the customer
has saved. Until then it shows the live pushes only if the option set
has a dimensions field to receive them; without one the in-builder price
stays at the minimum until save. The final price is always right.
Path 2 — a theme input (no Print Options)
Set Price target to the CSS selector of a quantity input on your product page, for example#quantity or input[name="quantity"]. The
builder writes the billable value into it — inches, feet, centimeters or
sheet count, matching Bill per — and fires the input’s change event, so
whatever your theme or pricing app does with quantity happens with the
length.
This suits a product priced per inch or per foot with a plain unit price.
It cannot do length tiers, setup fees or server-side verification; the
price is whatever the store computes from the quantity.
Path 3 — Transfers by size
In this mode the customer never sees a sheet. Each design gets a print size and a copy count, and the order is priced by print area with cumulative copy breaks, which is how transfers are sold. Set Price target topo:quantity (or a theme quantity selector) and
give the film choice a Per area modifier with quantity tiers:
The builder pushes the total copy count and hands the widget the total
print area on save.
Example. A 4” × 4” design × 10 copies plus a 2” × 6” design × 5 copies
is 15 copies over 220 sq in. At the 15-copy rate: 220 × 9.90,
plus a 11.90**. Fourteen copies of a 4” × 5” design would cost
15.50 — the copy break makes the larger order cheaper,
which is exactly the incentive shops want.
Showing the price in the builder
Set Price display source topo:price and the builder shows the Print
Options total in its summary, updating as the customer works. On a theme
without Print Options, point it at the element that shows the line
total — many themes render only the unit price, which would be misleading
in the builder. Leave it empty to hide the price.