
Monogramming is optional. Leave the box blank and the mug stays $18. Type “Alex” and you want a single $6 personalisation fee — not a per-letter rate, not a second SKU. Shopify variants do not store a sentence. A theme field `properties[Monogram]` prints on the order and does not change price. The search is Shopify text field surcharge product option.
Options Price Calculator has a Text Field for that: free text, optional required flag, and a float that enters the formula only after the shopper types something.
Shopify Help Adding variants is still 3 options / 2048 variants. A name is not option four. Related: swap the product image from an option. That post is media. This one is the flat fee on a filled box.
Colour and size are SKUs. “Whatever the customer types” is not. Common workarounds:
A “Personalised” variant at +$6. People buy it with an empty theme field, or buy the cheap variant and still type a name. You reconcile in draft orders.
Line item properties only. The packing slip has the name. The cart charged $18.
Per-character pricing when you meant a setup fee. Long names cost more than “Bo”. The same docs page has a Number of characters helper for that model. Keep it out of this formula if you want one amount.
None of those is: empty → `0`, any text → your float, added to `product_price`.
From the docs:
Label sits above the input. Example: `Text on product`. Write storefront language.
Placeholder is the hint inside the box (`e.g. John Doe`). It is not a default that bills the fee on page load.
Key is the formula id: lowercase, numbers, underscores. `text_input`, `custom_name_1`. No spaces.
Required field blocks Add to cart when empty. Leave it off for optional engraving.
Default value pre-fills on load. A pre-filled name already counts as “typed” for the numeric value — skip it unless you mean that.
Numeric value (float):
Empty field → `0` in formulas.
Any input, with e.g. `5` set on the field → that `5` is what the formula sees.
The docs’ example is a flat personalisation charge once text exists. That is this article.
Per-character is the other path on the same page: drop Number of characters into the formula and multiply. Spaces and line breaks count. Do not stack that helper on the same float if you wanted a setup fee.
Live listing (31 Oct 2026): Built for Shopify, 5.0 from 29 reviews. Free (20 uses). Starter $9.99/mo: unlimited options, AI, formula builder, metafields, styling, multilingual. Premium $19.99/mo: conditional logic, font picker, live preview, price breakdown. $39.99/mo: conditional fields, draft-order checkout. USD. The text field + numeric value is formula-builder territory. Extra if/then on top of that fee is Premium.
Link the calculator to the variant. Theme app extension on the product template. Bindings for price and Add to cart, or the theme keeps showing the variant amount.
Example:
Text Field key `monogram`, required off, numeric value `6`.
Formula:
``` product_price + monogram ```
Blank → catalog price. “Alex” → +$6. No extra variant.
A checkbox “Add text” that reveals the field is conditional show/hide ($39.99 plan) plus Premium conditionals if the fee should depend on the tick. Optional type-or-leave-blank does not need that.
Leave server-side price validation on so checkout recomputes the formula.
QA: empty add-to-cart, one character, a long sentence. Cart line should gain $6 only when the box is non-empty. The string still lands as a line item property.
Shop “Kiln & Co”. Variants stay Glaze: oat / ink — two of three native options, real inventory. Monogram is the Text Field `mug_name`, label “Name on the mug (optional)”, placeholder “e.g. Alex”, numeric value `6`. Formula `product_price + mug_name`.
Font picker and live letter preview are Premium. Skip them for a flat fee.
Test in a private window on both glazes. Empty box matches the variant price. Filled box adds six dollars. Order confirmation shows the name.
Install and open the builder from Options Price Calculator. That listing is the only CTA here.
What not to mix into this field:
Conditional pricing (Premium) for “first 10 characters free, then a fee” — that is a different model. This article is one float when the box is non-empty.
File upload for a logo next to the name. Separate field, separate key. Do not reuse `monogram` for a file.
Default value set to a space or a placeholder name. The docs treat any typed value as non-empty, so the fee fires on load. Leave default blank for optional work.
Claiming the app replaces inventory SKUs. Glaze stays a variant. The name does not.
If the cart ignores the fee, the formula is rarely the first suspect. Theme bindings still have to point at price and Add to cart. A calculator that “works in the preview” and dies on Dawn is the bindings page, not the Text Field.
Free plan to trial (20 uses); Starter if the calculator stays on the storefront.
Add a Text Field. Key in snake_case. Required off for optional work.
Numeric value = the fee. Empty stays zero.
Formula: `product_price +` that key.
Pick price and Add to cart in theme bindings.
Two test orders, empty vs filled.
Docs: Text Field. Character billing is a different topic.
A Shopify text field surcharge product option is not a “with text” SKU. The field contributes `0` until someone types, then your float. Shopify’s 3-option grid cannot do that. The calculator can, with checkout validation behind the number.
Put the field on the product via Options Price Calculator. One key, one float, two carts.
Services
Reviews
5/5
Mail: info@onlineorigins.nl
Tel: 073 234 0612
KVK: 89825624
BTW: NL865123639B01
Bruistensingel 500,© 2026 Online Origins