
Rubbertegels, PVC-stroken, tapijttegels of sportvloer: de prijs hangt af van de kamer, niet van een S/M/L-variant. Wie vloerbedekking per m2 Shopify wil verkopen, botst al snel op twee dingen. Native varianten kennen geen continue breedte en lengte. En de echte kostprijs is zelden “oppervlakte × tarief” — je hebt snijverlies, afronding naar hele meters en vaak een toeslag voor het materiaal.
Dit artikel laat zien waarom een raster van kamerformaten stukloopt, hoe je oppervlakte plus snijverlies in één formule zet, en hoe Options Price Calculator dat live op de productpagina toont — zonder extra SKU per centimeter.
We schreven eerder over prijs per m² in het algemeen. Hier gaat het om vloer: verliespercentage, afronden omhoog en voorraad die op dikte of collectie blijft staan, niet op kamermaat.
Shopify-varianten zijn voorraadbare combinaties. Volgens Adding variants mag een product maximaal drie options hebben (bijvoorbeeld Collectie, Kleur, Dikte) en maximaal 2048 variants. De oude limiet van 100 is verhoogd; de drie-optiegrens niet. Meer cellen in je variantmatrix geven je geen continue kamermaat.
Een vloer van 4,23 × 6,10 m past niet in “4 m × 6 m”. Elke extra centimeter als variant is een SKU die je nooit op voorraad hebt. Line item properties in het thema (`properties[Breedte]`) bewaren de invoer op de orderregel, maar wijzigen de prijs niet. De klant vult dan maten in en betaalt alsnog de vaste productprijs — of jij gaat offertes tikken.
Wat native wél kan: collectie, kleur en dikte als echte variant, omdat die SKU’s inkoop, voorraad en fulfillment sturen. De m²-rekening hoort daar niet in.
Breedtes 3–8 m in stappen van 50 cm, lengtes hetzelfde. Dat vreet je 2048-plafond niet meteen op, maar het is geen echte kamer. Klanten met 3,40 m vallen tussen twee stappen, of ze kopen te veel. Snijverlies zit er niet in.
“Doos 2,23 m²” met een rekenhulp in de beschrijving. Werkt voor DIY-tegels, tot de klant de verkeerde hoeveelheid bestelt, je support de som narekent, en je staffel of installatietoeslag nergens landt.
Meetstaat in, prijs terug. Geen checkout, geen live totaal, geen herhaalorders. Precies het tegenovergestelde van een productpagina die zelf rekent.
Geen van die routes geeft je: één URL, echte SKU’s voor kleur/dikte, en een prijs die meegroeit met de kamer plus snijverlies.
Options Price Calculator is Built for Shopify. De listing: onbeperkte productopties (number inputs, dropdowns, swatches, file upload, …) en dynamische prijzen via formules, zonder extra varianten. Live preview, conditional logic en font picker zitten op Premium — label dat zo.
Voor vloer gebruik je twee Number Input-velden, bijvoorbeeld `width` en `length` in meters. De docs Pricing / Formula Examples tonen het basispatroon “price per square meter”:
``` product_price + (width * height) ```
Dat is oppervlakte plus basisprijs. Voor vloerbedekking per m2 is `product_price` vaak het tarief per m² van de huidige variant. Dan vermenigvuldig je, in de trant van het quantity-voorbeeld (`product_price * quantity`):
``` product_price * width * length ```
Snijverlies is geen extra variant. Het is een factor in dezelfde formule. Tien procent verlies:
``` product_price * width * length * 1.10 ```
Wil je afronden naar hele m² (typisch bij rollen of pakken), dan gebruiken de docs Variables and Field Values `Math.ceil`:
``` product_price * Math.ceil(width * length * 1.10) ```
`product_price` is altijd de prijs van de huidige variant. Wisselt de klant van 8 mm rubber naar 12 mm, dan volgt het tarief mee. Dikte blijft een Shopify-variant (voorraad). Kamermaat blijft een calculatorveld.
Tussenstappen kun je in computed properties zetten: een variabele “oppervlakte” met `width * length`, daarna hergebruiken in de eindformule. Dat staat in dezelfde variables-docs. Houd de formule leesbaar; de best practice op de formula-pagina is afronden als laatste stap.
Materiaal als multiplier: een dropdown `material` met numerieke waarden (1 / 1,15 / 1,4) en `product_price * width * length * 1.10 * material`, zoals example 3 (`product_price * material_type`).
Stel: rubbertegels voor gym en garage. Variantopties: Dikte (8 mm | 12 mm) en Kleur (zwart | grijs). Dat zijn echte SKU’s. De klant vult breedte en lengte in meters in.
Velden:
Number input `width` (m), min/max naar jouw zaagbaar bereik
Number input `length` (m)
Optioneel dropdown `finish` als multiplier (standaard / antislip)
Formule, 8% snijverlies, afronden omhoog:
``` product_price * Math.ceil(width * length * 1.08) ```
Of met afwerking:
``` product_price * Math.ceil(width * length * 1.08) * finish ```
Grote zalen duurder per m²? Dat is Premium conditional pricing, example 7: als `width > 200` (of jouw drempel in cm) een hogere factor, anders de standaardformule. Minimumorder, bijvoorbeeld nooit onder €100, is example 6 — ook Premium. Zet dat niet op Free/Starter.
Een file upload voor de plattegrond kan, met een numerieke handling fee (`product_price + file_upload` in de docs). Alleen doen als je die tekening écht in fulfillment nodig hebt; het is geen voorwaarde voor de m²-som.
Koppel de calculator aan de varianten (dikte/kleur) via Linking Products & Variants. Eén calculator voor alle diktes is genoeg als alleen `product_price` verschilt. Andere formule per collectie? Dan een tweede calculator op die varianten.
Installeer Options Price Calculator. Free: 20 uses (op een Shopify Develop-plan altijd gratis). Starter $9.99/maand: onbeperkte opties, formula builder, metafields, multilingual. Premium $14.99/maand: + conditional logic, live preview, price breakdown. Facturatie in USD.
Zet het app block op de producttemplate, onder de prijs en boven Add to cart — How to Add the Extension to the Product Page.
Maak number inputs voor breedte en lengte. Zet snijverlies in de formule (`* 1.10`) of als metafield-tarief als het per product verschilt (`product_metafield__{ns}__{key}`).
Houd collectie, kleur en dikte als Shopify-varianten. Kamermaten niet.
Test: wissel van variant, vul 4,2 × 6,1 in, controleer live prijs, afronding en winkelwagen.
Server-side price validation (app-instelling) voorkomt dat alleen de browser-prijs telt. Theme bindings zijn er voor thema’s met een afwijkende variantselector — niet “werkt overal zonder setup”.
Verschilt het m²-tarief sterk per SKU, dan kun je het in een numeriek metafield zetten in plaats van in de variantprijs; we behandelden dat in metafields in een prijsformule.
Vloerbedekking per m2 Shopify is geen raster van kamer-SKU’s. Het is oppervlakte × tarief, plus snijverlies en eventueel `Math.ceil`, op een calculator die aan echte voorraadvarianten hangt. Native Shopify stopt bij drie options en 2048 variants; continue meters en verliespercentages horen in de formule.
Zet breedte, lengte en je verliesfactor in Options Price Calculator en laat de volgende klant de kamer afrekenen zonder een offerte.
Diensten
Reviews
5/5
Mail: info@onlineorigins.nl
Tel: 073 234 0612
KVK: 89825624
BTW: NL865123639B01
Bruistensingel 500,© 2026 Online Origins