Hey everyone,
We’ve shipped a new capability that lets you carry cart metafield values through to orders automatically. If you’ve been using cart attributes, order notes, or custom post-purchase flows to persist cart data—this is for you.
What’s shipping
As of API version 2026-04, order metafield definitions support a new cartToOrderCopyable capability. When enabled:
- Cart metafields with a matching namespace and key automatically copy to order metafields at checkout completion
- The capability is opt-in per definition—you control exactly which cart data persists
- You can enable it using metafieldDefinitionUpdate
Why we built this
We’ve heard from many of you that persisting cart data to orders has been painful and common workarounds like cart attributes and order notes each have tradeoffs.
With this new capability, cart metafields become our reliable, first-class path to persist onto orders custom context such as age verification, consent records, gift messages, delivery preferences, and even attribution tracking data. They are safer than cart attributes as they support edit and view permissions, and app-reserved namespace to prevent other apps from reading and writing the metafields.
Learn more about metafield capabilities.
What this means for you
We now recommend using cart metafields instead of cart attributes and checkout metafields for custom cart/checkout data storage.
If you’re using cart attributes, order notes, and checkout metafields, you can start migrating to cart metafields now and take advantage of all the benefits metafields have to offer—permissions, reserved namespace, data type validation, and seamless integration within Shopify’s ecosystem.
Cart metafields are accessible in all APIs for interacting with the buyer journey—from Storefront API, Checkout UI extensions, Functions, and Admin API.
Questions?
I’d love to hear how you’re planning to use this, what we’re missing, or if you run into any edge cases. Drop your thoughts below—happy to dig into specifics.
Gil Greenberg
Product Manager, Checkout