Playbook · Shopify line item properties / custom options missing

Shopify line item properties missing — custom options blank on cart or order.

Written for a Shopify DTC owner whose line item properties / custom product options are not showing on the cart or Admin order — theme product form never posts properties[], AJAX add-to-cart drops properties, custom options / engraving apps offline, cart Liquid skips item.properties. DIY-first: prove theme form vs properties[] vs apps vs blank Admin line item; repair the live path; retest with a unique string on a real order. Distinct from cart note / order note not saving, variant picker / swatches not updating, product metafields not showing on storefront, and cart drawer / AJAX cart not updating. No earnings claims, no invented case studies.

Nico at Latch AI Ops · Sep 8, 2026 · ~12 minute read

Buy the 72-hour install — $997Cart noteVariant pickerMerchant FAQ

01

Line item properties / custom options — not cart note, not variant picker, not product metafields, not cart drawer.

Several product / cart products can look like “buyer text did not stick.” They do not share a settings panel. This page is only when per-line custom options the buyer typed (engraving, monogram, gift wrap text, properties[]) never appear on the cart line or Admin order line item — theme form, properties[], apps. Cart note / order note (cart-level note, not line properties) is shopify-cart-note-not-saving. Variant picker / swatches not updating price / image / ATC is variant-picker-not-updating. Product metafields / custom fields not showing on the PDP is product-metafields-not-showing. Cart drawer / AJAX cart not refreshing after add-to-cart is cart-drawer-not-updating. This page is only: line item properties / custom options missing on cart or order.

Six ordinary reasons properties never land: the theme input omits name="properties[Label]" or sits outside the product form, AJAX add-to-cart sends only id / quantity without properties, cart / drawer Liquid never loops item.properties, a custom options / engraving / personalization app is offline or strips properties on add, staff looked at order note instead of line item properties (or vice versa), or support tested cart note / variant picker / metafields / cart drawer and called it “custom options.” Walk them in that order. You already pay for Shopify.

02

Prove theme form vs properties[] POST vs custom options apps vs blank Admin line item.

On the live storefront (not theme editor preview), open a product with custom options, type a unique string, add to cart, and complete a paid or test order you can open in Admin. Capture: whether the option field exists on the PDP, Network tab /cart/add / /cart/add.js body including properties[…], cart / drawer line showing the property, and Admin → Orders → the order → line item → Properties after pay. Screenshot before you change theme or apps.

Honest proof: if the only problem is a cart-level note blank in Admin, leave for shopify-cart-note-not-saving. If variant selection does not update price / image / ATC, leave for variant-picker-not-updating. If defined product metafields do not render on the PDP, leave for product-metafields-not-showing. If the drawer fails to refresh line items after add-to-cart (not missing properties on a successful add), leave for cart-drawer-not-updating. Do not mix those proofs with blank line item properties.

03

Theme product form: inputs present but never posted as properties[].

Native line item properties use Shopify's properties[Key] naming on the product form. A pretty engraving / gift-message field that uses name="note", a random id, sits outside <form action="/cart/add">, or only writes to localStorage will look fine to the buyer and still leave cart and Admin blank. Underscore-prefixed keys (e.g. properties[_internal]) are often hidden from the cart by design — not a bug if you meant them to be private.

Fix path: inspect the product form Liquid for inputs named properties[Label] inside the same form that submits add-to-cart. Confirm the unique string appears in the add request. Publish the live theme (not only the draft). Retest on the market / language where buyers complained. If the POST includes properties but the cart UI never shows them, skip to AJAX / Liquid — that is a different failure mode than a field that never posts.

04

AJAX add-to-cart / cart drawer dropping properties, and Liquid not rendering item.properties.

Themes and drawers that POST only { id, quantity } (or FormData without property fields) will add the variant and drop custom options. Cart / drawer / mini-cart snippets that never loop item.properties make a successful save look “missing” on the storefront even when Admin has the values. Checkout line-item display can also hide properties while Admin still shows them — check both.

Fix path: include every properties[…] field in the AJAX payload (FormData from the product form, or an explicit properties object). Render properties in cart, drawer, and checkout line templates. Retest add → cart → pay. If the drawer itself fails to refresh after add-to-cart (line items stale), that is cart-drawer-not-updating. Cart-level note (not per-line properties) is shopify-cart-note-not-saving.

05

Custom options / engraving apps stripping properties, and wrong Admin field checked.

Custom options / product options / engraving / personalization apps can replace the native form, then fail if the app embed is off, the block is missing on the live template, or the app rewrites add-to-cart without properties. Some apps store options only in their own metafields / draft orders — Admin line item Properties stays empty while the app dashboard looks fine. Staff sometimes open Notes / additional details (order note) and call line properties “not saving.”

Fix path: temporarily disable custom-options apps on the live theme and retest with native properties[]. Re-enable one app at a time. In Admin, open the line item Properties panel — not only the order note. Product metafields that should show on the PDP (not as cart properties) are product-metafields-not-showing. Variant option names / swatches that fail to update are variant-picker-not-updating. An intentionally empty optional field is not a bug.

06

You tested cart note, variant picker, product metafields, or cart drawer instead.

Cart note / order note not saving to Admin is shopify-cart-note-not-saving. Variant picker / swatches not updating price image or add-to-cart is variant-picker-not-updating. Product metafields / custom fields not showing on storefront is product-metafields-not-showing. Cart drawer / AJAX cart not updating after add-to-cart is cart-drawer-not-updating.

The only honest test for this page: a unique custom option string does not appear on the cart line and/or Admin line item properties after add / pay — fixable with theme properties[Label] + AJAX payload, cart Liquid rendering, and conflicting options apps off — not a cart-level note alone, not a variant picker alone, not a PDP metafield alone, not a drawer refresh alone. Capture PDP field + /cart/add payload + cart line + Admin line item properties, fix the path. Anything else is a different product.

07

When to stay DIY vs pay $997.

Stay DIY if you can spend one afternoon on the list above: prove theme form vs properties[] vs apps vs blank Admin line item, wire properties[Label] through AJAX and cart Liquid, disable conflicting options apps, and stop confusing cart note / variant picker / metafields / cart drawer with line item properties. That is the whole playbook. No agency required. Short answers also live on the merchant FAQ. Related pages: shopify-cart-note-not-saving, variant-picker-not-updating, product-metafields-not-showing, cart-drawer-not-updating.

Pay for help when the work is not the properties row — it is connecting the stack you already have so lead capture is not dying in DMs, storefront and checkout-ready exceptions land in a channel you already check, and the live store is one workflow instead of a spreadsheet plus a Slack bot you forgot. That is the Latch AI Ops install.

What $997 USD one-time buys: lead capture on the live store, ops alerts in a channel you already check, and a checkout-ready workflow. 72 hours after collaborator access, not after payment. One live Shopify store. Access plus a delivery thread. Store URL collected at checkout. Not a SaaS seat, not a custom-options-app rebuild, not an earnings number.

Other shops' public ranges, not testimonials: a checkout / ops install typically runs $500–$2,500. A full ops consulting block typically runs $2,000–$5,000. $997 is the cheap end of that work, sold as a 72-hour install of three systems — not as an earnings number or properties-capture guarantee.

What it does not buy: more orders, recovered option capture, a forever line-item-properties uptime guarantee, or a case study. Latch AI Ops has not published customer proof because there are no customers yet. You are buying the install.

Checkout is on Whop. Operator is Nico. United States offer. You can revoke collaborator access after handoff. We do not take owner passwords.