Playbook · Shopify cart attributes not saving

The Shopify cart attribute disappears before the order is complete.

Written for a Shopify DTC owner whose custom cart field, delivery instruction, gift detail, or other cart attribute is not saving. DIY-first: prove whether the value fails in the theme form, cart JSON, checkout handoff, or admin order, then repair the smallest confirmed break. This is distinct from a cart note / order note and from line-item properties. No earnings claims.

Nico at Latch AI Ops · Sep 16, 2026 · ~10 minute read

Buy the 72-hour install — $997Cart note?Line-item properties?Merchant FAQ

01

Cart attributes are not cart notes or line-item properties.

Use this page when a value belongs to the attributes object on the cart and is expected to travel to checkout or the order. A cart note is the separate note field; line-item properties belong to one product line; a checkout UI extension is a different surface.

Write down the exact label, value, cart URL, market, device, customer state, theme name, and where you expected to see it. If the input is present but never posts, start in the theme. If cart JSON has it but the order does not, inspect the checkout handoff or the app that rewrites the cart.

02

Prove where the attribute disappears.

Use the published storefront in a private window. Add a product and enter a unique harmless value such as ATTR-TEST-2026-09-16. In DevTools Network, capture the request after blur or Save and after the cart changes. Compare the request body with /cart.js or the cart response, then inspect the checkout and the resulting test order.

  • Form exists but request has no value: check the field’s name, disabled state, serialization, and whether the submit handler prevents the native form.
  • Request contains the value but cart JSON does not: check /cart/update.js, JSON encoding, the attribute key, and a second request that overwrites the object.
  • Cart JSON has the value but checkout or Admin does not: verify the supported checkout mapping and whether an app, cart drawer, or market-specific path drops it.
  • Only one browser or market fails: compare consent state, cached theme assets, localization, and app embed configuration before editing the global theme.

Do not use a private customer token or real personal data for the test. Keep the request, cart response, timestamp, and before/after screenshot so the repair is reversible.

03

Repair the theme form and AJAX cart path.

Fix the first confirmed loss point, not every nearby cart field. Give the input a stable attribute key, make sure the value is included in the submitted payload, and preserve existing attributes when updating one key. A full-object replacement can silently delete gift, delivery, or marketing fields written by another component.

For AJAX carts, check the order of events: the drawer may submit the attribute, rerender from stale cart JSON, and then write the old object back. Debounce duplicate updates and inspect the last successful response. Remove or reconfigure only the app that demonstrably clears the field. Do not put secrets or unnecessary personal data in cart attributes, and do not claim an attribute is saved until the order-side destination is verified.

If the field is really a buyer note, use the cart-note playbook. If it belongs to a particular SKU, use the line-item properties playbook.

04

Retest the checkout and admin order.

Start with a fresh cart, repeat the same unique value, and test the actual buyer path on desktop and mobile. Confirm the attribute survives a quantity change, cart drawer open/close, shipping step, payment step, and any market or consent branch that matters. Use a test order or a controlled paid order you can inspect; do not infer success from the field remaining visible on the cart page.

Verify the exact destination in Admin Orders, order notes or attributes, and any fulfillment or support tool that is supposed to read it. Then remove the test value and repeat once to rule out stale cache. Record the theme revision, app setting, request, response, and final order result.

05

When to stay DIY vs pay $997.

Stay DIY when one attribute has one confirmed form, serialization, AJAX update, or mapping repair. Publish the smallest change, retest with a fresh cart, and document the result.

Pay $997 one-time when the work is wiring the Shopify stack you already use: lead capture, ops alerts, and a checkout-ready workflow on one live store. Nico at Latch AI Ops installs it in 72 hours after collaborator access is in. You are buying the install, not an earnings promise, more orders, or legal certification.