A customer types delivery instructions or a gift message into the cart, completes checkout, and the order arrives in Shopify with no note. The field was visible and looked functional, which makes this especially easy to miss until fulfillment starts losing important information.
The real symptom
- The cart displays a note textarea, but the completed order has no note.
- The note works on the full cart page but not in the cart drawer.
- The note disappears after changing quantity or removing an item.
- The note appears to save, but accelerated checkout skips it.
- A custom field is labeled as an order note but is actually submitted as an unrelated input.
The likely cause
Shopify only treats a cart field as the cart note when it is submitted with the expected name="note" value or explicitly saved through the Cart API. In traditional cart templates, the textarea also needs to be inside the cart form that is submitted. In AJAX carts, rerendering can replace the field or checkout can begin before the latest note update finishes.
The confirmed Community fix
Long-running Shopify Community threads consistently point back to two structural checks: keep the note field inside the cart form, and keep the input name exactly as note. Shopify’s own Liquid example uses the same pattern.
Correct Liquid markup
<label for="CartNote">Special instructions</label>
<textarea id="CartNote" name="note">{{ cart.note }}</textarea>
Place this inside the form that posts the cart to Shopify, normally the form containing the checkout button.
Admin and theme checks
- Go to Online Store > Themes.
- On a duplicate of the active theme, click Customize.
- Open the cart page or cart drawer settings.
- Enable Cart note, Order note, or the equivalent setting if the theme provides one.
- Save and test a real checkout.
- Open the resulting order under Orders and check the Notes section.
AJAX cart check
async function saveCartNote(note) {
const response = await fetch(window.Shopify.routes.root + 'cart/update.js', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ note })
});
if (!response.ok) throw new Error('Cart note update failed');
return response.json();
}
DevTools checks
- Open Network and filter for
cart. - Enter a note and inspect the request to
/cart/update.jsor the cart form submission. - Confirm the payload contains the note.
- Open
/cart.jsand verify the returned cart object contains the expectednote. - Complete checkout and verify the order.

