Shopify how-to guides

How to add an engraving option to a Shopify product (and charge for it)

Shopify has no built-in engraving field. You can add one for free with a few lines of theme code, but charging for it is where it gets awkward. Here are the three ways stores do it, and the trade-offs of each.

1. Free: a text field in your theme

Shopify calls the answer a line item property. Any input named properties[Something] inside the product form is saved on the order, and shows in your admin and on most packing slips.

In the theme editor, open a product page, add a Custom Liquid block to the product information section and paste this in. The form attribute ties the field to the Add to cart form, so the answer is sent with the product. This works on Dawn and most current Shopify themes; if your theme names its product form differently, the field will appear but its answer will not reach the cart.

<p>
  <label for="engraving">Engraving (up to 20 characters)</label><br>
  <input id="engraving" type="text" maxlength="20"
         name="properties[Engraving]"
         form="product-form-{{ section.id }}">
</p>

The catch: this way cannot charge anything

A line item property is just text attached to the item. It does not change the price, so a free text field means free engraving. It also cannot be made required on every theme, and it appears on every product that uses the template.

2. Charge with variants

The usual workaround is a second option on the product, such as Engraving: None / Yes (+$10), with a higher price on the Yes variants. It works, but it doubles every variant you already have, your inventory is split across the copies, and you still need the free text field above for the actual wording.

3. Use an options app

An options app adds the field and the charge together. When choosing one, check how it adds the charge: many apps create a hidden duplicate product or variant for each priced option, which clutters your catalog and reports. Also check that a shopper cannot change the price by editing their cart.

Varia is our app, so weigh this accordingly. It adds the field, shows the price next to it, keeps a running total on the product page and adds the charge at checkout as its own line, without creating a duplicate product for each option. The free plan covers one live option set with text, dropdown and checkbox fields and flat add-on prices.

For engraving priced by length, Varia can also charge per character and shows the running amount as the customer types.

More guides