
Shopify prijs per m2 klinkt als een simpele som: breedte × hoogte × tarief. In de admin is het dat niet. Varianten zijn discrete SKU’s — 80×120, 90×120, 100×200 — geen continu oppervlak. Zodra een klant 187 cm breed en 243 cm hoog wil, past die cel niet in je catalogus. Je kunt geen variant per centimeter bijhouden, en een dropdown met honderden rijen is geen winkelervaring.
Dit stuk is voor merchants die vloer, behang, raamfolie, spandoeken of stof per oppervlakte verkopen. Je leest waarom een prijstabel als variantmatrix stukloopt, wat line item properties wél en niet doen, en hoe je met Options Price Calculator twee getalvelden plus een formule op de productpagina zet. De klant ziet het totaal bewegen; jij houdt één SKU (of een handvol echte voorraadvarianten) over.
Volgens Adding variants mag een product maximaal drie options hebben en maximaal 2048 variants. Die 2048-grens geldt sinds oktober 2025 voor alle merchants (Shopify-changelog). Handig als je écht 40 lengtes × 50 kleuren als voorraad wilt. Voor prijs per vierkante meter helpt het niet.
Stel je een vinylvloer voor. Klanten bestellen elk formaat tussen 50 cm en 400 cm. Zelfs in stappen van 10 cm is dat 36 × 36 = 1.296 varianten — alleen voor de maten, nog zonder kleur of dikte. Zet die erbij en je zit tegen de cap én tegen de drie-optiegrens. Elke millimeter als SKU is onzinnig: geen magazijn ligt 187×243 op voorraad, en feeds, kortingen en voorraadrapporten worden onleesbaar.
Shopify-varianten zijn gemaakt voor voorraadbare combinaties. Een m²-prijs is een functie van twee continue getallen. Die twee dingen zijn niet hetzelfde productmodel.
In de community komt dat letterlijk terug. In Is there a way to have a product which price is based on the area? vraagt een merchant om een basisprijs plus een bedrag per m², inclusief Markets en btw. Antwoorden wijzen op variantstappen, “quantity is the measurement”, of maatwerk — niet op een native oppervlakteformule. Dezelfde kloof zie je bij How to Create Customized Size in product variant: een invoerveld in Liquid bewaart de maat op de order, maar past de prijs niet aan.
Elke cel (120×180, 130×180, …) wordt een variant met een handmatig berekende prijs. Het werkt tot je een tussenmaat krijgt, tot je tarief wijzigt (dan pas je 400 rijen aan), of tot de klant de verkeerde cel kiest. Het is een spreadsheet in een select-box.
Je zet de productprijs op €45 en vraagt de klant om “aantal” als m² in te vullen. Checkout rekent 3 × €45. Simpel, tot iemand 2,4 m² nodig heeft, tot je ook zoom of een setupkost wilt, of tot voorraad daalt met “3 stuks” terwijl je één baan snijdt. Afronding en halve meters worden giswerk.
`<input name="properties[Breedte]">` in het thema is goedkoop en zichtbaar op de order. De checkout-prijs blijft de variantprijs. Een stuk van 0,8 m² en een stuk van 6 m² kosten hetzelfde, tenzij je er een app of Function naast zet. Dat is precies waarom “custom size”-threads blijven hangen.
Klant stuurt maten, jij rekent in Excel, je maakt een draft order. Betrouwbaar voor eenmalige projecten, dodelijk voor conversie: de productpagina belooft niets en de winkelwagen blijft leeg.
Options Price Calculator is gebouwd voor dit patroon: onbeperkte velden op de productpagina, een formule die de prijs live bijwerkt, geen extra variant per centimeter. De app is Built for Shopify (listing: 5,0 uit 22 reviews) en hangt als theme app extension onder de prijs, boven Add to cart.
De documentatie heeft een letterlijk voorbeeld Price per square meter in Pricing / Formula Examples: twee number inputs (`width`, `height`) en
``` product_price + (width * height) ```
Dat is het startpunt. In de praktijk wil je meestal een tarief per m² en invoer in centimeters. De Number Input-docs gebruiken zelf `Width (cm)` als labellabel, met min/max (bijvoorbeeld 10–300) zodat onmogelijke maten de cart blokkeren. Zet `Required` aan en laat negatieve waarden uit.
Twee heldere manieren:
1. Invoer in meters, productprijs = tarief
``` product_price * width * height ```
Een product van €42,00, 2,4 m breed en 1,8 m hoog wordt €181,44.
2. Invoer in cm, oppervlakte als computed property
Maak in de formula-stap een computed property “Oppervlakte m2” met `width * height / 10000`. De docs laten precies dit patroon zien bij Computed properties: oppervlakte één keer definiëren, daarna hergebruiken. Hoofdformule, met tarief 45 en setup 25:
``` product_price + _cv_oppervlakte_m2 * 45 + 25 ```
`product_price` blijft dan een basis of 0; het tarief staat in de formule (of in een numeriek metafield als je één calculator over veel SKU’s hergebruikt). Helpers als `Math.ceil` en `Math.round` ronden aan het eind af — de Formula Builder raadt afronding als laatste stap aan.
Materiaal als multiplier? Geef dropdown-opties een numeric value (`1`, `1,2`, `1,5`) en vermenigvuldig, zoals in docs-voorbeeld 3: `product_price * material_type`. Voorraadbare collecties (PVC vs. tapijt) houd je als echte Shopify-variants; elk kan een eigen calculator of hetzelfde blok met een andere metafield-tarief krijgen.
Drempels — groter dan 200 cm een hoger tarief, of nooit onder €100 — zijn Premium conditional formulas. Zie Conditional Pricing. Zet die niet in als gratis feature.
Gisteren schreven we over de drie-optiegrens in Shopify. Dit artikel zoomt in op de som die je ná die limiet nog nodig hebt: oppervlakte × tarief.
Je verkoopt vinylplanken op afmeting. Het product in admin heeft één variant (of drie, als je diktes 4/5/6 mm op voorraad legt). Op de pagina:
Breedte (cm) — number, verplicht, min 50, max 400, default 200.
Lengte (cm) — number, verplicht, min 50, max 800, default 300.
Afwerking — dropdown: standaard (waarde 0) of antislip (+€8).
Computed property `opp` = `breedte * lengte / 10000`.
Formule: `product_price + opp * 39 + afwerking`.
Klant typt 240 × 410. Oppervlakte is 9,84 m². Totaal €383,76 plus eventueel antislip. Geen 1.296 maatvarianten, geen mail-heen-en-weer. Op de order staan breedte, lengte en (als je “show as product attribute” aanzet) de berekende m², zodat de snijtafel dezelfde getallen ziet als checkout.
Hetzelfde recept geldt voor een spandoek (oppervlakte × printtarief + zoom), raamfolie, of een stuk vloer met 8% snijverlies: `opp * 1.08 * tarief`. Server-side price validation in de app-instellingen zorgt dat het bedrag niet alleen in de browser klopt.
Installeer Options Price Calculator. Free plan: 20 uses (op een Develop-store altijd gratis). Starter ($9,99/mnd) dekt onbeperkte opties, formula builder en metafields. Premium ($14,99/mnd) voegt conditional logic, live preview en price breakdown toe.
Voeg het app block toe op het producttemplate — How to Add the Extension to the Product Page: onder de prijs, boven Add to cart, daarna Save.
Maak number fields met duidelijke keys (`width`, `height`), units in het label, min/max, geen negatieve waarden.
Bouw de formule (of een computed property voor m²) en test met previewwaarden: 100×100 cm moet 1 m² zijn, geen 10.000.
Link de calculator aan de juiste variant(en). Echte voorraad (dikte, collectie) blijft een Shopify-variant; de maat niet.
Houd native variants voor wat je op voorraad legt. Alles wat een functie van centimeters is, hoort in de calculator.
Shopify prijs per m2 is geen variantoptie die je “Oppervlakte” noemt. Drie options en 2048 SKU’s lossen een continu tarief niet op; een prijstabel of een quantity-truc ook niet. Twee getallen, een oppervlaktevariabele en `tarief × m²` op de productpagina wel.
Zet die som live met Options Price Calculator en laat klanten hun vloer, baan of doek configureren in plaats van een offerte afwachten.
Diensten
Reviews
5/5
Mail: info@onlineorigins.nl
Tel: 073 234 0612
KVK: 89825624
BTW: NL865123639B01
Bruistensingel 500,© 2026 Online Origins