Skip to content

Reading a customer's choices

A customer’s choices travel with the cart line as line item properties, so they appear wherever Shopify shows line item properties: the cart, the checkout, the order in your admin, packing slips, and the order confirmation email.

Under the product title on the line, one entry per answered option:

Personalised Mug
Engraving: Happy Birthday Mum
Font: Script
Gift wrap: Yes

The label is the option label you set, so name your options the way you want them to read on a packing slip. An option labelled opt_2 is technically fine and useless to whoever is packing the box.

  • Options the customer left blank. An unanswered optional field adds no line.
  • Options that were hidden. If conditional logic hid an option, its answer is not recorded — the customer could not see it, so it is not part of what they bought.

The line’s price already includes the option surcharges, applied at checkout by the Shopify Function. You will not see a separate line item per add-on, because no extra product or variant was created — the single line simply costs more.

To see the breakdown of why a line costs what it does, compare against the product’s own price. The options and their configuration are in Optivo.

File uploads are not available in the current release. When this option is released, it will record a reference — an identifier plus the customer’s original filename — rather than a public link.

This is deliberate. A signed link would either expire, leaving fulfilment with a dead URL months later, or not expire, which would leave a customer’s file behind a permanent guessable address in an order record.

Because these are standard Shopify line item properties, anything that reads them works: Shopify’s own order export, packing slip templates, and third-party fulfilment integrations. No Optivo-specific integration is needed to get the data out.

Changing an option set does not rewrite orders already placed. An order records what the customer chose at the time they bought. Renaming an option changes how new orders read, not old ones.