Declare metafields

Choose owner types, keys, types, and access flags in the Developer Portal before review.

Open Metafields for the app in the Developer Portal. The owner types shown match the Store API permissions your app currently requests — add a scope on Permissions first, then the resource appears here.

Namespace and keys#

Each declaration becomes a live definition under app:{slug}.{key} on install. Keys must be unique per owner_type within your app. Choose human-readable Name and optional Description text; merchants see these in Store Admin metafield settings.

Scopes and materialization#

Declaration validates against your app's requested permissions. Materialization on a store additionally requires the merchant to have granted those scopes at install. A declaration for read_products does not appear on a store where the merchant denied product access.

Access and capabilities#

Set App access (private or shared) and optional storefront, search, filter, and translation capabilities according to the type's capability matrix. These flags are part of the reviewed contract — they govern which other apps can read values and which merchant or buyer surfaces can read or edit them. Shared app access permits reads; it does not permit another app to write your definitions.

Limits#

Scope

Limit

App-owned definitions per app

50, across every owner type and value type

Key, name and description length

Enforced when you declare; the Metafields page shows the live caps

Properties on one cart or wishlist line

20, shared with every other app on that line

Property value

Validated against the definition's type, choices and validation rules, and against the platform's per-value size caps

Line owner value types

Text, True / false, Date, Single select. The wider registry belongs to catalog, order and order-item owners.

Artifact lease (line_artifact)

1 hour minimum, 90 days maximum, 30 days by default — see Line artifacts