
Custom window film Shopify is a cut-to-size problem, not a Size dropdown. A shopper measures the glass (44 in wide, 78 in tall), picks frosted, solar-control, or security film, and expects the product page to show a total — not a “request a quote” form. Native Shopify gives you three variant options and a ceiling of 2048 combinations. A free centimetre is not one of those options.
This article is for film installers, glaziers, and shops that slit rolls to order. You will see why kit-size grids break down, how width, height, film type, and a square-metre rate belong in one formula, and how Options Price Calculator puts that on the product page without a SKU per pane.
The general pattern — continuous measurements instead of S/M/L — is in Shopify custom size pricing. This piece is one vertical: window film, including a material dropdown and min/max on each field.
Shopify Help Adding variants is the source of truth:
Each product can have up to three options (for example Size, Color, Material).
Each product can have up to 2048 variants.
The variant cap moved from 100 to 2048 in October 2025 (Shopify changelog). That helps a t-shirt with many sizes × colours, not film. A realistic order needs at least:
Glass width (continuous cm, mm, or inches)
Glass height (continuous)
Film type (frosted, solar, reflective, security, decorative)
Thickness or grade (50 µm vs. 100 µm)
Optional: installation, cut-outs, a waste allowance
Items 1 and 2 are not dropdown values. Items 3–5 already fill the three option slots. A variant per centimetre is impossible: 40–300 cm in 1 cm steps is 261 widths before height and film. How can I add a custom sizing feature for blinds and curtains? is the same request: type width × drop, get a price. Custom price for my product at runtime is the fence-shop version. Film is that workflow with a square-metre rate.
“80 × 120” and “100 × 150” as Size. Fast in admin, useless for a patio door at 93 × 214 cm. Shoppers who land between kits email you or trim an oversized sheet — which is how you get returns.
Banded sizes can stay inside 2048 with ten steps per axis. Real centimetres explode the count. Inventory per cell is meaningless (you buy rolls, not 112×198 SKUs).
`<input name="properties[Width]">` stores the measurement on the line item. It does not change the price. A 40 × 60 cm transom and a 240 × 220 cm façade cost the same until you add a calculator or a Shopify Function. Quote-by-WhatsApp works for a local installer. It kills Shop Pay and abandoned-checkout recovery.
Film price is area × rate, sometimes plus a fixed cutting fee. Customers should measure the glass, not the frame — width and height in three places, smallest number, so the film does not bind. Native variants cannot multiply those inputs. You need number fields with min/max, a dropdown or swatch with a numeric value, and a formula.
Options Price Calculator is built for that: unlimited fields on the product page, a live total, no extra variant per size. The app is Built for Shopify (listing: 5.0 from 25 reviews). Conditional logic, live preview, and price breakdown are Premium; AI-assisted fields and formulas start on Starter.
Typical fields for one film calculator:
| Field | Type | Role in the price | |------|------|-------------------| | Width (cm) | Number Input, key `width` | required, min/max | | Height (cm) | Number Input, key `height` | same | | Film type | Dropdown or swatch, key `film_type` | multiplier, e.g. `1` / `1.4` / `1.8` | | Installation | Checkbox | `0` or a flat fee | | Photo of the pane | File upload | optional; numeric value for a handling fee |
Pick units on purpose: metres (`width / 100`) or a rate per cm². The formula builder supports `+ - × ÷ ( )` and helpers such as `Math.ceil`. Leave *Is quantity input* off — that binds the number to cart quantity, not to a measurement.
Simple case, when `product_price` is the m² rate of the selected variant (privacy vs. solar as real SKUs):
``` product_price * (width / 100) * (height / 100) ```
One product, film type as a dropdown multiplier, plus a €25 setup fee from the formula examples:
``` product_price + 25 + ((width / 100) * (height / 100) * film_type) ```
`product_price` can be 0 if the formula is the whole price, or a fixed cutting charge. An install checkbox with value `45` adds on:
``` product_price + ((width / 100) * (height / 100) * film_type) + install ```
For a generic area rate without the film vertical, see Shopify price per square meter. Film is different because you measure glass (not fabric drops) and often want a real purchase SKU per roll.
Premium conditional pricing is for thresholds, not the base formula. Docs examples in Conditional Pricing: if `width > 200`, apply a higher rate, or enforce a minimum so a 30 × 40 cm bathroom pane does not undercut cutting cost. Live preview of film on a window photo is Premium too.
The calculated price is validated server-side, not only in the browser. Width, height, and film type travel on the line item so the cutting table sees the same centimetres as checkout.
Solar-control film, €38 per m² (as the numeric value on `film_type`, or as `product_price` on the solar variant), pane 240 × 220 cm, 10% waste, €25 setup, no install.
Area: 2.40 × 2.20 = 5.28 m²
With 10% waste: 5.28 × 1.10 = 5.808 m²
Film: 5.808 × 38 ≈ €221, plus €25 cutting
In the formula, with a computed property for area or inline:
``` product_price + 25 + ((width / 100) * (height / 100) * 1.10 * film_type) ```
That is one product, one calculator, zero extra variants. “Frosted” versus “solar” can stay a native variant if you need a purchase SKU and a photo per roll — link the calculator per variant, or keep one calculator and let the dropdown carry the multiplier. Keep native variants for what you actually stock (a starter kit, a 60-inch roll), not for 112.3 cm of glass.
A fourth choice (grade, install, cut-out) sits beside those SKUs, not inside them. The same window-treatment logic, with fullness instead of glass area, is in made-to-measure curtains on Shopify.
Install Options Price Calculator. Free plan: 20 uses, always free on a Shopify Develop store. Starter ($9.99/mo) for unlimited options, the formula builder, and AI. Premium ($14.99/mo) for conditional logic, the font picker, live preview, and price breakdown.
Add the app block on the product template, ideally under the price and above Add to cart — How to Add the Extension to the Product Page.
Create the fields above. Number inputs: label `Width (cm)` / `Height (cm)`, default a common pane size, min/max so a 12-metre façade cannot check out by accident. The docs say to always set a minimum and maximum.
Set the formula and test with preview values (240 × 220, both film types). Round only at the end with `Math.round` or `Math.ceil` if you want whole euros.
Link the calculator to the film variants. A whole collection at once: bulk linking.
Window film is not a Size option. It is glass × rate, with a film choice beside it. Shopify stops at three options and SKU variants; a continuous measurement belongs in a number field and a formula. Put the calculator on the product page and keep the catalog on the rolls you actually buy.
Install Options Price Calculator and price the first pane before you open another variant matrix.

Custom webshops, websites, and applications combined with smart online marketing to help your business grow online!
Reviews
5/5
Mail: info@onlineorigins.nl
Tel: 073 234 0612
KVK: 89825624
BTW: NL865123639B01
Bruistensingel 500,© 2026 Online Origins