← NotesTR
4 min read

Shopify Line Item Properties: Getting Personalization Data to Fulfillment

Engraving text missing from the order, logo file inaccessible, production asking on WhatsApp. How to pass personalization data into orders correctly with line item properties.

  • shopify
  • line-item-properties
  • fulfillment
  • personalization
  • order-management

The customer entered engraving text, added to cart, and paid. Fulfillment opened the order in admin — no engraving text. The logo file was lost somewhere; production messaged the customer on WhatsApp asking them to resend. Material choice appeared in the cart but did not reach the ERP; production started with the wrong material. Shopify line item properties are the standard mechanism for carrying personalization into the order — when set up wrong, operations turn chaotic.

Line item properties are key-value pairs attached to each cart line item. They are the core integration point for personalization apps and theme forms. The problem is usually not "do we have properties?" but "are they passing with the right field names, excluding conditionally hidden fields, in a format fulfillment can read?" Example property set: Engraving Text, Material, Logo file, Add-on Fee — each appears as a separate line in order details.

Line Item Properties, Variants, or Cart Attributes?

Putting data in the right mechanism keeps fulfillment clear.

Use variants when:

  • Stock-tracked standard options (size, color)
  • Price can be managed through variant combinations

Use line item properties when:

  • Personalization text (engraving, gift note)
  • Options beyond variant limits (material, print type)
  • Upload file reference
  • Surcharge information
  • Production instructions

Use cart attributes when:

  • Cart-level information (order note, reference number)
  • General information not tied to a single line item

Cleanest split: variants for standard options, properties for personalization.

How Is This Problem Generally Solved?

Data flow works like this:

  1. Customer makes selections on the product page
  2. Theme form or app prepares selections as properties
  3. On "Add to cart", properties attach to the cart line item
  4. After checkout, properties transfer to the order line item
  5. Admin, fulfillment apps, and webhooks read this data

For fulfillment, properties carry: production instructions (engraving text, print color, size), file reference (uploaded logo), material choice, add-ons (gift wrap, rush shipping). Clear, readable property names in admin directly affect operational efficiency.

For ERP and third-party integrations, watch for: consistent property names (avoid mixing languages); special character and emoji support; file access URL on upload properties; whether surcharge data passes as a separate property or is included in price.

On complex option sets, changing field names can create inconsistency on new orders; existing orders keep values from order time. JSON backup before major changes is good practice.

Test checklist: fill every field type and add to cart → do properties appear in cart? → after checkout, are they in order details? → do hidden conditional fields stay out? → can you access upload files from admin? → are they correct in webhook payload?

ERP, Webhook, and Operations Integration

For stores sending Shopify orders to ERP, MRP, or custom production systems, reading line item properties correctly in the webhook payload (orders/create) is critical. Freeze property names before integration development; inconsistency between "Engraving Text" and "engraving_text" breaks automation. On upload properties, ensure file URLs are accessible; fulfillment apps or print systems need that URL. In multilingual stores, keeping property names language-independent and consistent simplifies mapping tables on the ERP side. Support staff should be able to read properties from order details; vague field names increase ticket volume. JSON backup before large option set changes makes rollback easier. Moving personalization collected via WhatsApp or order notes into a properties flow systematically reduces manual error.

Ring Product Options and Line Item Properties

Ring Product Options is one app that writes personalization fields automatically to line item properties. Every field defined in the visual builder appears as a readable property in order details. Values from conditionally hidden fields do not pass to the order. JSON backup protects option set configuration; multilingual support translates field labels per language while keeping property names consistent. Verify the flow with a test order during the 7-day trial. Agree on property names with fulfillment before setup to avoid confusion later.

Are properties visible to the customer on the order email?

Yes. Shopify order confirmation emails show line item properties. Customer-friendly property names matter.

Can properties be used for stock tracking?

No. Stock tracking runs through variants. Properties carry personalization data; they do not affect inventory.

Do properties on old orders disappear if the app is removed?

No. Properties saved at order time remain in Shopify. Removing the app does not delete existing order data.

Can properties be read in bulk via API?

Yes. Line item properties can be read through Shopify Admin API and webhooks. ERP integrations typically use the orders/create webhook.

Next Step

Line item properties are the standard path for personalization data into orders. Define property names with fulfillment, test conditionally hidden fields, and validate ERP/webhook flow. If you use upload fields, separately confirm file access from admin. Going live without validating the properties flow means continuing the WhatsApp manual collection loop.

With Ring Product Options, set up an option set and place a test order to validate the properties flow end to end during the 7-day trial.