Shopify can't copy metafields between stores by itself. You need three things in the other store: the definitions (the fields themselves), the metaobjects they point to, and the values on each product, with any reference re-pointed to the other store's products and files. You can do it by hand, with a spreadsheet import tool, with the Admin API, or with an app such as Cartsella Studio that copies them for you.
What "copying metafields" really means
- Definitions: each field's name, namespace and key, type and validations (Settings › Custom data). A value without a matching definition in the other store isn't shown in the admin the same way and can't be used in the theme editor.
- Metaobject definitions and entries: if a field points to a metaobject (a "fabric", a "size chart", a "designer"), those entries have to exist in the other store first.
- Values: what's filled in on each product, variant, collection or page.
- References: a field that points to a product, collection, file or metaobject stores that record's ID. IDs are different in every store, so a copied reference points to nothing unless it's matched to the same record in the other store.
References are where most copies go wrong: the text fields arrive, and the "related products", images and metaobject fields come through empty.
Option 1: By hand
- In the source store, open Settings › Custom data and note each definition: name, namespace and key, type, validations.
- Create the same definitions in the other store, with the same namespace and key, so your theme keeps working.
- Create the metaobject definitions and their entries.
- Fill in each product's values, picking the other store's products, files and entries for reference fields.
Fine for a handful of fields on a few products. Slow and error-prone beyond that.
Option 2: Spreadsheet export and import
Bulk import tools (Matrixify is the best known) export products with metafield columns and import them into another store. Create the definitions first, check that every column's namespace and key match, and look closely at reference fields: they need the other store's records, not the original IDs.
Option 3: The Admin API
A developer can read definitions and values from one store and write them to the other with the GraphQL Admin API (metafieldDefinitionCreate, metaobjectDefinitionCreate, metaobjectCreate, metafieldsSet), matching references by handle. It's flexible, but it's a project: two apps or tokens, rate limits, and the reference matching above.
Option 4: Cartsella Studio
Cartsella Studio has several ways to move fields between your stores, depending on what you need:
- Copy definitions: copy your metafield and metaobject definitions as text and paste them in the other store. Existing definitions there are never changed.
- Copy fields: tick up to 25 fields of a product (or collection, page…), then paste them on another product or in the other store, choosing which values to paste.
- Clone & sync: cloning your live store into a staging store copies metafields and metaobjects with the products, collections and pages they belong to, with references matched to the copies.
- From test store: fill in fields in staging, then bring the ones you choose into your live store with a preview of what changes, and undo for 30 days. Values edited in both stores are kept unless you choose to overwrite them.
- Send to another store: send a product's filled fields to another store on your plan, or create the product there first (as a draft in a live store).
Move your product fields between stores without a spreadsheet.
Join the waitlist: 50% off your first yearChecklist before you copy
- Same namespace and key in both stores, or your theme's dynamic sources go blank.
- Metaobject definitions and entries first, then the fields that point to them.
- Reference fields matched to the other store's products, collections and files.
- Fields that belong to another app (in that app's namespace) usually need that app installed in the other store too.
- Try it on a few products first, and keep a copy of what you're about to overwrite.
Frequently asked questions
Can Shopify copy metafields between stores?
Not by itself. You recreate the definitions and import the values with a tool or the Admin API, or use an app that copies them.
Why are my reference fields empty after copying?
A reference field stores the ID of a product, file or metaobject, and IDs are different in every store. The reference has to be matched to the same record in the other store.
Do I need to copy metafield definitions first?
Yes. Create the definitions (and any metaobjects they use) in the other store before the values, with the same namespace and key.
Can I move metafields from a staging store to my live store?
Yes. Cartsella Studio's From test store brings the fields you choose from staging into your live store, with a preview and undo for 30 days.
Read next: Everything you can do with metafields · Create a Shopify staging store · Pricing