New `owner_type` field for metafield declarations in Checkout and Customer Account UI extensions, required in 2027-01
- Announced
- Tags
- Checkout-UI, Customer-Accounts
- Severity
- breaking, set by
reef/rss-rule-v1 - Source
- https://shopify.dev/changelog/metafield-owner-types-required-for-checkout-and-customer-account-ui-extensions
Starting with API version 2026-10, Checkout and Customer Account UI extensions can specify an owner_type for each metafield declaration in shopify.extension.toml. Starting with API version 2027-01, owner_type is required for every metafield declaration, and deployments without it will be blocked.
What changed
Metafield declarations in [[extensions.metafields]] and [[extensions.targeting.metafields]] accept a new owner_type property. owner_type names the resource that owns the metafield, such as PRODUCT or CUSTOMER.
Shopify uses owner_type to fetch only the metafields from the resource types your extension needs, which improves extension performance. On API version 2027-01 and later, every metafield declaration must include owner_type.
Who's affected
Checkout and Customer Account UI extensions that declare metafields in shopify.extension.toml and use API version 2027-01 or later are affected.
Extensions that don't declare metafields in shopify.extension.toml are unaffected.
What to do
On API version 2027-01 or later, deployments will be blocked if any metafield declaration is missing an owner_type. Add owner_type to each metafield declaration before you upgrade. You can add it now on 2026-10.
To migrate:
- Open your extension's
shopify.extension.tomlfile and add the appropriateowner_typevalue for each metafield declaration. - If your extension needs the same
namespaceandkeyfrom multiple resource types, create a separate declaration for eachowner_type. - Redeploy the extension and confirm that the deployment completes without validation errors related to metafield declarations.
Related docs
The text above is the source's. reef added the severity, the dates it could read from the text, and the endpoints and scopes named in code.