
A blind at 1287 mm, a profile at 2480 mm, a tabletop at 142.5 × 78 cm: that is not “Large”. Put continuous dimensions vs Shopify variants side by side and the catalogue stalls. Shopify variants are discrete combinations — S/M/L, black/white, oak/walnut. Every extra millimetre wants another option value, and therefore another SKU.
This article covers why a grid of sizes is not a continuous range, what merchants try in Community threads (line item properties that never change the price), and how Options Price Calculator uses number inputs plus a formula: the shopper types the measurement, the price updates live, with no variant per millimetre.
We already covered the Shopify variant limit and custom options. That post was about the ceiling. This one is about the data type: a continuous number does not belong in a list of option values.
According to Adding variants, a product can have at most three options (for example Size, Color, Material) and at most 2048 variants. The old cap of 100 was raised; the three-option limit was not. Shopify’s own note: to go beyond 2048 variants or three options you need a third-party app, or theme code that collects line item properties.
That ceiling looks generous until you treat it as a millimetre grid. Width from 80 to 200 cm in 1 cm steps = 121 values. Height the same: 121. Those two options alone make 14,641 combinations — well above 2048, and you still have no colour or fabric left. Millimetres make it worse. Each cell is a SKU with its own price, inventory and (optionally) media. Shopify allows up to 250 media per product; a photo per size is not a plan.
What native *can* do: fabric colour or a hanging system as a real variant, because purchasing and stock follow those values. What native cannot do: a continuous range (every mm between min and max) as option values, and a price `width × height × rate` without a cell per combination.
“80 cm”, “81 cm”, … up to “200 cm” as Size values. That burns the 2048 ceiling on a single option, leaves no second axis (height), and forces the shopper to round. Anyone who needs 128.7 cm still emails you.
Fewer SKUs, more rounding errors. The workshop cuts 1287 mm; the line item says “130 cm”. Callbacks and remakes follow.
In the Shopify Community the default answer is: add `properties[Width]` and `properties[Height]` to the product form. That stores the measurements on the line — useful for fulfilment — but does not change the price. Shopify Help names that path as a way to collect “custom requirements”, not as a pricing engine. The shopper types 142 × 78, pays the fixed variant price, and you fix it with a draft order or a follow-up invoice.
None of those routes give you a continuous range, a live total, and one SKU for the roll or bar you actually keep in stock.
Options Price Calculator is Built for Shopify (5.0 from 25 reviews on the listing). The listing promises unlimited product options (including Dimensions and Numbers) and dynamic pricing based on dimensions and selections — “without extra variants or manual quotes”. Starter $9.99/month: unlimited options, formula builder, metafields, multilingual, AI generation. Premium $14.99/month: + conditional logic, Font Picker, live preview, real-time price breakdown. Free: 20 uses; always free on a Shopify Develop plan. Billed in USD.
So the measurement does not belong in the variant matrix. It belongs in a number field; the variant stays the SKU (fabric, profile type, hanging).
The Number Input is built for measurements. Label `Width (mm)`, placeholder `e.g. 1287`, key `width` (lowercase letters, numbers, underscores only). Turn Required field on: no measurement, no Add to cart. Leave Allow negative values off. Always set Minimum and Maximum — the docs say so explicitly, otherwise someone types 8 mm or 12 metres.
Add a second field `height` for area. Leave Is quantity input off: that binds the number to the Shopify line quantity. Here the input is a measurement, not a cart count. Default value can be a common width; the shopper overwrites it.
The key becomes the formula variable. What the shopper types is the numeric value — not a pre-baked label “128 cm”.
In the Formula Builder `+ - × ÷ ( )` are allowed. `product_price` is the price of the selected variant. The docs Pricing / Formula Examples show the “price per square meter” pattern:
``` product_price + (width * height) ```
If `product_price` is 0 and you put the rate in the formula or a metafield, the variant is only the SKU. Alternative: variant price = rate per m², fields in metres:
``` product_price * width * height ```
Setup fee on top (same docs):
``` product_price + 25 + (width * height) ```
Helpers: `Math.min`, `Math.max`, `Math.ceil`, `Math.floor`, `Math.round`. Round at the end. A computed property (“area”) keeps the main formula readable.
A floor price, or a higher m² rate above 200 cm, is Premium conditional — not Free/Starter. Docs example: if `width > 200` then rate × 1.3, else the standard rate. Do not put that in Starter copy.
SKUs stay native: profile type (20×20 / 30×30) and colour (mill / black). That uses two of your three options. No “Length” option.
Calculator on Starter:
Number Input `length`, label `Length (mm)`, required, min `200`, max `6000`, default `1000`
Formula, variant price = price per mm: `product_price * length`
Or variant price 0 and a metafield rate: `product_metafield__custom__price_per_mm * length`
Shopper picks 30×30 black (€0.085 per mm) and types 2480: `0.085 × 2480 = 210.80`. Live on the page, the same total at checkout. The line item shows 2480 mm; fulfilment cuts that length. Inventory stays on the two variant SKUs (the bar stock), not on 5,800 imaginary lengths.
Link the calculator with Linking Products & Variants. One calculator for the whole profile line is enough if only `product_price` differs. A second product (sheet instead of profile) gets `width` and `height` and the area formula.
Multilingual (Starter+): translate labels `Lengte (mm)` / `Length (mm)` in the Translations tab. The formula stays the same.
Install Options Price Calculator. Free: 20 uses (always free on Develop). Starter $9.99/month for fields and formulas. Premium $14.99/month if you need thresholds or size tiers.
Add the app block on the product template — How to Add the Extension to the Product Page.
Create Number Inputs for the continuous axes. Keep colour, material or profile type as Shopify variants; do not put millimetres there.
Write the formula (`product_price * length` or `product_price + (width * height)`). Test min, max and a mid-range value such as 1287.
Link the calculator to the variants. Turn on server-side price validation so the browser total is not the only check.
Theme bindings (price and Add to cart selectors) exist because themes differ — not “works everywhere with no setup”.
Continuous dimensions vs Shopify variants is not a debate about which ceiling you have not hit yet. It is the difference between a list of SKUs and a number. Native Shopify stops at three options and 2048 variants; every millimetre in that matrix is a cell too many. Line item properties store the measurement, not the price.
Put the continuous axis in Options Price Calculator as a Number Input, keep the real SKU as a variant, and let the next shopper type 1287 mm — instead of picking from a hundred rounded sizes.

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