
Je eindformule begint overzichtelijk: `product_price + (width * height) * 12 + 25`. Na twee extra toeslagen, een checkbox en een afronding is het één lange regel die niemand meer durft aan te raken. Wie Shopify computed properties prijs zoekt, wil die `width * height` één keer vastleggen — en diezelfde tussenstap overal hergebruiken. Niet drie keer hetzelfde product, en niet een tweede SKU voor “groot oppervlak”.
Native Shopify-varianten bewaren geen tussenberekening. Een thema-veld `properties[Oppervlakte]` belandt op de orderregel, maar wijzigt de prijs niet. Options Price Calculator heeft daar een eigen tab voor: 4a. Custom variables, in de docs computed properties. Je schrijft een klein stukje formule, geeft het een naam, en pakt die waarde in de hoofdformule of in een Premium-branch.
Dat is een ander artikel dan Math.min en Math.max (bodem en plafond in dezelfde som) of plexiglas op maat (dikte als SKU, millimeters in een veld). Hier gaat het om de woordenschat van de som: oppervlakte, setup, korting — één keer gedefinieerd.
Adding variants laat maximaal drie options per product en maximaal 2048 variants. De oude grens van 100 is weg. De drie-optiegrens niet. Materiaal, dikte en afwerking vullen dat plafond al. Elke extra “tussenmaat” als variant is een SKU die je magazijn nooit ziet.
Wat native wél kan: voorraad per echte combinatie. Wat native niet kan: een continue centimeter, een prijs = oppervlakte × tarief zonder een cel per maat, of een herbruikbare tussenwaarde. Line item properties in het thema bewaren de invoer. Checkout houdt de vaste variantprijs.
Daarom groeit de formule in de calculator — en daarom wordt die formule onleesbaar als je alles in 4c. Formula dumpt.
`width * height` staat in de hoofdformule, nog eens in een notitie voor fulfillment, en een derde keer in een Premium-branch voor “boven 2 m²”. Wijzig je de eenheid van centimeters naar meters, dan vergeet je er één. De checkout wijkt af van de zaaglijst.
`product_price + (width * height) * 12 + 25 + polish + file_upload` werkt tot je het tarief 12 naar 15 wilt. Iedereen is bang de haakjes te breken. De Formula Builder zegt het zelf: als een formule lastig leesbaar wordt, splits je logica naar 4a.
Klopt één week. Daarna wijzigt het tarief alleen in de sheet. De productpagina blijft de oude som tonen. Geen live prijs, geen enkele bron.
Geen van die routes: één benoemde tussenstap, hergebruikt, zichtbaar op de orderregel als je dat wilt.
Computed properties (in de UI: Custom variables) zitten in de Formula-stap van de calculator, naast 4b. Lookup tables (Premium), 4c. Formula en 4d. Calculation display (Premium). Per rij stel je in:
Label — de menselijke naam, bijvoorbeeld Oppervlakte of Setup.
Formula — dezelfde bouwstenen als de hoofdformule: formuliervelden, `product_price`, numerieke product- of variant-metafields, helpers zoals `Math.round`.
Use as price variable — aan, anders verschijnt de waarde niet in de formula picker.
Show as product attribute — aan, dan gaat de tussenwaarde mee als line item property. Handig voor admin, fulfillment of de orderbevestiging. Dat is géén native thema-input: dit is output van de som, niet een extra prijsbron.
De interne key wordt `_cv_{slug}` vanuit het label. Typ dat niet uit je hoofd: de Form fields picker zet de juiste chip. Variabelen zijn hoofdlettergevoelig en moeten tot een getal resolven, anders faalt de formule.
Voorbeeld uit diezelfde docs. Twee number fields `width` en `height`. Computed property Oppervlakte met `width * height`. Hoofdformule:
``` product_price + _cv_surface_area * 12 + 25 ```
Wijzig je het tarief van 12 naar 15, dan raak je alleen de hoofdformule. Wijzig je hoe oppervlakte wordt berekend (millimeters delen door 1000, of een snijtoeslag in de tussenstap), dan raak je alleen de computed property. De formula-voorbeelden blijven geldig: example 1 is `product_price + (width * height)`, example 5 telt `25` als setup. Jij tilt de vermenigvuldiging eruit.
Operators: `+ - × ÷ ( )`. Afronden als laatste stap op de eindformule, niet op elke tussenwaarde — tenzij je bewust hele m² naar boven wilt. Helpers `Math.min`, `Math.max`, `Math.ceil`, `Math.floor`, `Math.round` mogen in een computed property, niet in een conditional rule.
Premium Conditional pricing kan een computed property per branch overschrijven. Zelfde naam, andere betekenis. Docs-voorbeeld: Korting is `0` in de default-branch en `price * 0.1` als een klanttag of drempel matcht. If/then zelf is Premium; de basis-custom-variable niet. Label dat.
Lookup tables (`lookup2d`) en realtime price breakdown blijven Premium. Claim die niet op Starter.
Product: composiet keukenblad. Native options: Dikte (2 / 3 cm) en Kleur (wit / antraciet). Twee options, onder de drie. Variantprijs = basistarief voor die plaat. Klant vult lengte en diepte in meters in. Vast zaag-/templatingbedrag €45. Checkbox Waterkering +€35.
Number Input-velden:
Label `Lengte (m)`, key `width`
Label `Diepte (m)`, key `height`
Required aan, negatieve waarden uit, Minimum en Maximum altijd — anders typt iemand 8 mm of 12 meter. Quantity blijft het aantal bladen, niet de zaagsnede. Slechts één number field per calculator mag quantity zijn.
Computed property Oppervlakte, formula `width * height`, Use as price variable aan. Optioneel Show as product attribute aan, zodat de orderregel de m² toont.
Computed property Setup, formula `45` — of later een metafield `product_metafield__custom__setup` als het bedrag per product verschilt. Hoofdformule:
``` product_price * _cv_surface_area + _cv_setup + splashback ```
`splashback` is de checkbox: aangevinkt = geconfigureerde waarde, uit = `0`. Preview: 2,40 × 0,65 m op 3 cm à €280/m² = €436,80 + €45 = €481,80 zonder waterkering. Met vinkje €516,80. 0,10 × 0,10 mag niet door je minimum heen.
File upload voor de zaagtekening: listing heeft file upload; example 9 telt de numeric value als er een bestand is. Geen live preview beloven — Product Personalizer is Premium.
Theme app extension op de productpagina. Selector picker voor prijs en Add to cart, omdat thema’s verschillen. Claim niet “werkt op elk thema zonder setup”. Koppel de calculator per variant; bulk linking als dezelfde tussenstappen op alle diktes passen. Server-side price validation hoort bij de app.
AI-powered generation van opties/formules zit op Starter+. Handig voor een eerste draft; de meters, de setup en het vinkje controleer je zelf met previewwaarden.
Options Price Calculator is Built for Shopify (5.0, 26 reviews). Onbeperkte productopties — listing noemt Numbers, Dimensions, Checkboxes, Dropdowns, file upload — plus formules, zonder extra varianten. Starter $9.99/maand: onbeperkte opties, formula builder, metafields, multilingual, AI. Premium $14.99/maand: + conditional logic, Font Picker, live preview, price breakdown. Free: 20 uses; op een Shopify Develop-plan altijd gratis. Facturatie in USD.
Installeer de app. Open de calculator die je al hebt, of maak er één op het product met de langste formule.
Ga naar de Formula-stap → 4a. Custom variables. Voeg Oppervlakte toe: `width * height`. Zet Use as price variable aan.
Vervang in 4c elke herhaalde `width * height` door de chip uit de picker. Test preview: klein reststuk, gangbaar blad, te groot vlak.
Tweede variable alleen als die écht een eigen betekenis heeft (setup, toeslag). Niet elke constante hoeft een rij.
Show as product attribute alleen voor waarden die fulfillment moet zien. Afronden op de eindformule.
Koppel per variant. Plaats de theme app extension. Bestel zelf. Check regel, m², bedrag.
Wil je dat “Oppervlakte” boven 2,4 m een andere factor krijgt? Dat is Premium if/then, eventueel een override op dezelfde variable. De tussenstap zelf draait op Starter.
Shopify computed properties prijs is geen extra variantoptie en geen Excel ernaast. Het is een benoemde tussenberekening in tab 4a: oppervlakte, setup, korting. Je wijzigt de logica op één plek. Native Shopify stopt bij drie options en 2048 variants. De calculator vult de continue maat in, en de custom variable houdt de som leesbaar.
Zet de tussenstap in de custom variables van Options Price Calculator. Daarna rekent de productpagina dezelfde oppervlakte als de orderregel — niet drie kopieën van `width * height`.
Diensten
Reviews
5/5
Mail: info@onlineorigins.nl
Tel: 073 234 0612
KVK: 89825624
BTW: NL865123639B01
Bruistensingel 500,© 2026 Online Origins