Shopify Metaobject CSV Import & Export
How to mass-input metaobject fields with a spreadsheet — the way you already do for products.
Shopify does not offer a native CSV importer for metaobject entries the way it does for products — the admin only lets you create them one at a time. To bulk-import metaobject data from a CSV you either script the GraphQL API yourself, or use an app. Structa adds CSV export and import directly inside your Shopify admin: export a definition to a spreadsheet, edit it in Excel or Google Sheets, and import it back — rows match on handle, so existing entries update and new ones are created.
Why isn't there a native metaobject CSV importer?
Products, customers, and inventory all have a built-in Import button in the Shopify admin that accepts a CSV. Metaobjects don't. When you open Content → Metaobjects, the only way to add an entry is the Add entry form — one record, one screen, one save at a time.
That's fine for five size charts. It falls apart when you're seeding 200 store locations, a product-spec library, or a season's worth of bundles. There are three realistic ways around it:
1. Script the GraphQL Admin API
If you have developer time, you can read a CSV and call metaobjectCreate / metaobjectUpsert in a loop, or use bulk operations for large batches. It's the most flexible route and the most work — you own auth, rate limits, field formatting, and error handling.
2. A full-store data tool
Migration-oriented tools can move metaobjects as part of a larger export/import job. They're powerful but built around whole-store files and matching — usually more setup than a merchant who just wants to edit a table.
3. CSV import/export inside the admin (Structa)
The middle ground: a spreadsheet round-trip that lives where your data already is. Export → edit in Excel or Sheets → import. No scripts, no whole-store files.
How CSV import & export works in Structa
- Open a definition in the bulk editor. Structa auto-detects every metaobject type in your store — no setup.
- Export CSV. You get the rows currently on screen (search and filters are respected), with Display Name, Handle, and Status columns added automatically. It opens cleanly in Excel and Google Sheets.
- Edit in your spreadsheet. Change values, fill columns down, paste from another sheet — whatever's fastest at scale.
- Import CSV. Structa reads the file and parses common value types automatically (booleans, numbers, dates, colors, lists). Rows with a handle update the matching entry; rows without one create a new entry with an auto-generated handle. This "upsert by handle" is what lets one file both edit and add. Import can partially succeed and reports any row-level failures.
This is the "can I mass-input metaobject fields with CSV like products?" workflow merchants keep asking for. The shape is the same as a product CSV — a header row of fields, one entry per row — applied to any metaobject definition you've created.
The limits, stated plainly
Honest numbers matter more than big claims when you're deciding whether a tool fits:
- CSV import: up to 250 rows and 5 MB per file. For larger seeds, split into multiple files — each import upserts by handle, so batches compose safely.
- CSV export: covers what's on screen, up to the 5,000-entry bulk-editor view, and respects your active filters — so you can export exactly the subset you need.
- Inline bulk editing has no per-save row cap — edit hundreds of rows in the table and save them together with one Cmd/Ctrl+S. The 250-row limit is specific to a single import file, not to editing.
- Definition JSON export/import moves the structure (fields, validations) — not the entry data. Entry data moves via CSV.
Full details live in the Export & Import documentation.
When to use which method
| Your situation | Best route |
|---|---|
| A few edits across existing entries | Edit inline in the bulk editor — no CSV needed |
| Mass-input new entries from a spreadsheet | CSV import (250 rows/file, upsert by handle) |
| Back up or hand off entry data | CSV export |
| Tens of thousands of rows, recurring pipeline | GraphQL bulk operations (developer route) |
Frequently asked questions
Can I mass-input metaobject fields with CSV, like I do for products?
Yes — with an app. Shopify's admin has no native metaobject CSV importer, but Structa gives you the same shape of workflow you know from product CSVs: a header row of fields, one entry per row, imported with automatic value parsing and matched to existing entries by handle. The per-file limit is 250 rows / 5 MB.
Does Shopify support CSV import for metaobjects out of the box?
No. The native admin only creates metaobject entries one at a time through the Add entry form. CSV bulk import requires the GraphQL API or a third-party app.
Will importing overwrite my existing entries?
Only the entries you target. Import matches on handle: a row whose handle already exists updates that entry; a row with no handle creates a new entry. Rows you don't include are untouched.
How many entries can I export at once?
Up to the 5,000-entry bulk-editor view, respecting any active search and filters. Export reflects exactly what you see on screen.
What if a row fails to import?
Structa validates against your definition before writing. Rows that pass are saved; rows that fail are reported so you can fix the spreadsheet and re-import — successful rows aren't lost.
Structa installs in under a minute and reads your existing definitions automatically. Add Structa on the Shopify App Store — the free plan includes CSV export; CSV import is on the $8/mo Pro plan with a 14-day trial.