Variants or personalization: the first decision
The first step is separating what is a variant from what is personalization. A variant is a specific product with its own SKU, price and stock: size M in black, for example. Shopify allows up to 3 options per product and up to 2048 variants, and anything that tracks inventory or has its own price should go there.
Personalization, on the other hand, is information the customer adds that doesn't change stock: the name they want engraved, a wedding date or a gift note. Putting that into variants makes no sense, because there's no way to create a variant for every possible text. That's what line item properties are for.
Line item properties: the native building block
Line item properties are name and value pairs stored on each cart line that carry through to the order. You create them by adding fields to the theme's product form with a name like properties[Engraving]. Whatever the customer types in that field travels with the product to the cart, the checkout and the order you see in the admin.
If the property name starts with an underscore, for example properties[_reference], Shopify hides it from the customer at checkout. It's useful for storing internal data, like a design ID or a template version, without the customer seeing it.
Since it's part of the theme, you don't depend on any app: a text field, a dropdown or a few well-designed checkboxes on the product page cover most simple cases. What you need to get right is validation (maximum length, required fields) and making sure the text displays clearly in the cart before payment.
- Text fields for engravings, names or dedications
- Dropdowns for font, position or text color
- Checkboxes for gift wrapping or adding a card
- Hidden properties with an underscore for internal data
Metafields to control which products can be personalized
In a store with hundreds of products, not all of them can be engraved, and not all allow the same number of characters. This is where metafields come in: you define fields in the admin like “supports engraving”, “maximum characters” or “available fonts” and fill them in per product.
The theme reads those metafields and shows or hides the personalization fields accordingly. That way the team controls what can be personalized from the product page in the admin, without touching code or duplicating templates. With Online Store 2.0 you can also connect those metafields to theme editor blocks for help text or lead time notices.
When personalization changes the price
Line item properties store information, but they don't change the price on their own. If engraving costs extra, there are a few common ways to handle it. The simplest is to create a service product (“Engraving”) that is added to the cart together with the main product. Another is to use a variant of the product itself (“with engraving” and “without engraving”), as long as you don't run out of available options.
For more complex logic, like prices that depend on several choices at once, stores usually turn to product options apps or custom development with Shopify Functions. Each approach has different implications for inventory, reporting and how the order looks, so decide before you build the product page, not after.
Product options apps: when they're worth it
Product options apps add visual builders, conditional logic (show a field only if another is selected), file uploads and live previews. They're useful when there are many options or when the customer needs to upload an image or a logo, which takes more work to build in the theme.
The cost isn't just the monthly fee. Many of these apps inject scripts into the product page, which affects speed, and keep part of the configuration outside Shopify. Before installing one, check whether line item properties and metafields cover what you need. If the app is necessary, make sure the data ends up as order properties and not only in its own dashboard.
What happens after the order
Personalization only works if it reaches whoever fulfills the order correctly. Check how the properties look on the order in the admin, on the packing slip, in the confirmation email and in your fulfillment system or ERP if you have one connected. Notification and packing slip templates can be edited so the engraving stands out.
Think about returns too. A personalized product usually can't be resold, and that should be clear in your return policy. Exceptions to the right of withdrawal for personalized products are a legal matter, so check the exact wording with your advisor.
Frequently asked questions
Do I need an app to sell personalized products on Shopify?
Not always. For text fields, dropdowns and checkboxes, line item properties in the theme's form are enough. Apps are worth it when you need complex conditional logic, file uploads or a design preview.
Do line item properties show up on the order?
Yes. They're stored on the product line and appear in the cart, the checkout and the order in the admin. Those starting with an underscore are hidden from the customer at checkout.
How do I charge extra for engraving?
The usual options are adding a service product to the cart, using a variant with and without engraving, or turning to an app or Shopify Functions if the pricing logic is complex.
Can I decide which products allow personalization without touching code?
Yes, if the theme reads metafields. You define fields like “supports engraving” or “maximum characters” and the team turns them on per product from the admin.
