
Een catalogus met veertig stoffen, twintig printmaterialen of een handvol metaalsoorten heeft zelden veertig *verschillende* rekenregels. Breedte × hoogte × tarief blijft hetzelfde; alleen het tarief verandert per SKU. Toch bouwen shops vaak een calculator per product, of ze stoppen elk tarief in een variant. Beide paden schalen slecht. Shopify metafields in prijsformule lossen dat op: je bewaart het getal op het product (of de variant) en de formule leest het live uit.
Shopify zelf rekent die velden niet voor je uit. In threads als Price formula calculation with custom meta feilds vragen merchants precies dit: een tarief per m² in een metafield, de klant vult oppervlakte in, de productpagina toont het totaal. Met alleen Liquid of JavaScript zie je een bedrag — de checkout blijft op de variantprijs staan. En een metafield voert geen formule uit; dat bevestigt ook How to insert a dynamic math formula in a product price metafield?.
Daarom hoort het tarief in custom data, en de berekening in een app die de prijs ook naar de cart schrijft. Options Price Calculator koppelt numerieke metafields als variabelen in de formula builder. Eén calculator, veel producten, geen extra SKU per tarief.
Custom metafield definitions zijn het officiële hulpmiddel voor extra productdata. Je maakt een definitie met een namespace en key (bijvoorbeeld `custom.m2_rate`), kiest een type, en vult per product een waarde in. Voor tarieven kies je een number type: integer of decimal. Dat is de juiste plek voor “€24,50 per m²” of “€0,18 per mm”.
Wat metafields *niet* doen:
ze vermenigvuldigen zich niet met de maten die de klant intypt;
ze wijzigen de checkoutprijs niet;
ze omzeilen de variantlimiet niet.
Die limiet blijft relevant. Volgens Adding variants mag een product maximaal drie options en 2048 variants hebben. De oude grens van 100 is in oktober 2025 verhoogd (changelog); de drie-optiegrens bleef staan. Een tarief per stof als vierde option past daar niet in. Elke stof × elke centimeter als variant aanmaken is al even onbruikbaar: je catalogus groeit, feeds en voorraad worden zwaarder, en de klant krijgt een dropdown in plaats van twee getalvelden.
Native variants horen bij echte SKU’s met voorraad. Een decimaal tarief hoort in een metafield.
Kopieer de “stof per m²”-calculator, hardcode `24.5` in de formule, herhaal dat veertig keer. Bij een prijsverhoging moet je veertig formules openen. Eén typefout en één SKU rekent te goedkoop.
Zet `product.price` op het m²-tarief en schrijf `product_price * width * height`. Dat werkt voor één tarief per product. Zodra dezelfde stof drie afwerkingen heeft (elk een eigen SKU *en* een eigen m²-prijs), wil je het tarief per variant bewaren — niet een nieuwe calculator.
Een Custom Liquid-blok kan `product.metafields.custom.m2_rate` tonen en vermenigvuldigen. Handig als demo. De orderregel blijft de variantprijs. Zonder cart transform of een prijscalculator-app is dat een etalagebedrag, geen checkoutbedrag.
In de Variables and Field Values-docs staan twee patronen. Alleen numerieke metafields (integer of decimal) verschijnen in de picker:
``` product_metafield__{namespace}__{key} variant_metafield__{namespace}__{key} ```
Voor `custom.m2_rate` op het product wordt dat `product_metafield__custom__m2_rate`. Voor een tarief per variant (aluminium versus staal) gebruik je `variant_metafield__custom__mm_rate`. Typ de naam niet uit het hoofd: de Form fields-picker in de formula builder plakt de juiste identifier. Variabelen zijn hoofdlettergevoelig; een onbekende naam laat de formule falen.
`product_price` is altijd de prijs van de geselecteerde variant. Combineer die met het metafield als het tarief *naast* de basisprijs staat, of gebruik alleen het metafield als dat het hele tarief is.
Een eenvoudige oppervlakteformule, in lijn met de pricing examples:
``` product_price + ((width / 100) * (height / 100) * product_metafield__custom__m2_rate) ```
Hier is `width` en `height` in centimeters, het metafield in euro per m², en `product_price` een vaste startkost (snijden, handling). Zonder startkost:
``` (width / 100) * (height / 100) * product_metafield__custom__m2_rate ```
Hulpfuncties zoals `Math.ceil` en `Math.round` ronden het eindbedrag af. Computed properties (`_cv_surface_area`) houden lange formules leesbaar. If/then-drempels — groter dan 200 cm een hoger tarief, of een minimum van €100 — zitten in Conditional Pricing en horen bij Premium. Live preview en een prijs-breakdown ook.
We schreven eerder over de prijsformule op de Shopify-productpagina; dit stuk zoomt in op het tarief dat je *niet* in die formule hardzet.
Stel: je verkoopt raamtextiel. Elke stof is een product (of een variant) met een eigen m²-tarief. De klant vult breedte en hoogte in centimeters in. Native Shopify geeft je drie options; continue maten plus een decimaal tarief passen daar niet in.
Inrichting:
Maak in admin een product-metafield `custom.m2_rate` (decimal). Pin het zodat je het op elk product ziet.
Vul per stof het tarief in — 18,50 voor katoen, 32,00 voor dim-out, 41,75 voor verduistering.
Bouw één calculator: number inputs `width` en `height` (min/max zodat 12 meter niet als 12 cm binnenkomt), optioneel een dropdown voor zoom met een numeric value.
Formule: `(width / 100) * (height / 100) * product_metafield__custom__m2_rate + hem`.
Link de calculator aan alle stof-varianten. Assignments zitten op variantniveau; bij één variant is dat het product.
Prijs wijzigt? Je past het metafield op het product aan. De calculator blijft staan. Nieuwe stof? Zelfde calculator, nieuw getal in admin. Voorraad blijft op de stof-SKU, niet op elke millimeter.
Hetzelfde patroon geldt voor spandoeken (materiaalmultiplier in een variant-metafield), vloer per m², of metaal op lengte (`lengte_mm * variant_metafield__custom__mm_rate + zaagkosten`).
Installeer Options Price Calculator. Free dekt 20 uses (op een develop-store altijd gratis). Metafields in formules zitten op Starter ($9.99/maand): unlimited options, formula builder, metafield data integration. Premium ($14.99) voegt conditional logic, font picker, live preview en price breakdown toe.
Voeg het theme app extension-blok toe op het producttemplate — onder de prijs, boven Add to cart — en sla het thema op.
Maak het numerieke metafield aan, vul waarden per product of variant, en kies de variabele via de picker. Koppel daarna de calculator en test met twee SKU’s die een ander tarief hebben: het veld mag hetzelfde blijven, het totaal niet.
Thema’s verschillen; selector picker (price + add to cart) bestaat juist omdat niet elk thema de prijs vanzelf bijwerkt. Server-side validatie controleert het berekende bedrag, niet alleen wat de browser toont.
Een metafield is een getal op het product. Een prijsformule is de regel die dat getal met klantinput vermenigvuldigt. Shopify bewaart het eerste; het tweede hoort in een calculator die de cart bijwerkt. Zo houd je één rekenregel voor een hele catalogus, binnen de drie-optie- en 2048-variantlimiet, zonder Liquid-hacks die alleen op de productpagina kloppen.
Zet je tarieven in metafields en laat Options Price Calculator de live prijs uitrekenen.
Diensten
Reviews
5/5
Mail: info@onlineorigins.nl
Tel: 073 234 0612
KVK: 89825624
BTW: NL865123639B01
Bruistensingel 500,© 2026 Online Origins