Import / Export metafields, upload data through CSV

Topic summary

Users are frustrated that Shopify’s native metafield feature lacks built-in bulk import/export functionality via CSV, forcing merchants to either purchase third-party apps or manually enter data.

Key Pain Points:

  • Bulk editor doesn’t support pasting data, making manual entry impractical for large SKU counts
  • Native CSV import can delete existing metafield data when using “overwrite” option
  • Variant-level metafields (like GTIN/UPC) don’t appear in product exports

Workarounds & Solutions:

  • As of 2024, native metafield export/import is possible by including metafield columns in CSV format: Metafield:namespace.key [type]
  • Third-party apps like Matrixify ($20/month for 5,000 items) and DataChamp (limited free plan) offer bulk management
  • Manual entry remains viable for smaller catalogs

Critical Technical Requirements:

  • List-type metafields require line breaks (\n), not commas
  • Column names must exactly match format: Metafield:namespace.key [type]
  • Data types must be precise (e.g., list.single_line_text_field)
  • Standard spreadsheet apps (Excel, Numbers) corrupt line breaks; Python scripts or text editors recommended
  • Predefined list values must match exactly (case-sensitive, no spaces)

Merchants report typical monthly costs of $125-200 including necessary apps, far exceeding base subscription pricing.

Summarized with AI on October 27. AI used: claude-sonnet-4-5-20250929.

This seems to work at the product level, but we need GTIN/UPC/EAN/ISBN at the variant level. When you create the metafield at the variant level, the field does not appear in the product export (although other variant data does). Is there a solution to this without paying for an add-on app?

Have you made sure that the metafield type is one of the ones supported for export? i.e. can you try if a single line text field is exported on the variant level? I haven’t tried it myself…

Only by trying the export. It will show “product” metafields, but not “variant” metafields. I currently have it set as an integer field. I tried setting it as a single line text field but it did not work. How can I check which variant metafields are supported for export and import?

I don’t know how to do what you want. You might try using google since that is how I found my information (nothing from Shopify came up from what I remember. Google must have pulled it from API reference docs or something).

how? tell me please :downcast_face_with_sweat:

I’m sorry I don’t have time to translate my post right now – would you mind using a translation tool for now?

If anything is unclear, feel free to reach out after Easter – my lead developer Chadwick (yes, he’s a legend :grinning_face_with_smiling_eyes: ) and I will be happy to resolve the Problem with you directly.

Wishing you calm nerves and clean metafields until then!

– Sven

? Thema: Warum Shopify-Metafelder beim CSV-Import manchmal komplett den Verstand rauben :sweat_smile:

Hallo Camila,

nachdem ich einige graue Haare gesammelt habe, möchte ich meine Erkenntnisse zum Thema Shopify-Metafelder beim CSV-Import mit euch teilen – vielleicht hilft’s jemandem weiter. Mittlerweile kann man META-Felder im OnBoard-Import-Tool von Shopify hochladen. Man braucht also KEINE teuren APPS, die eh nicht funktionieren!


1. Listenfelder sind der Teufel (aber nur manchmal):

Shopify erwartet für list.single_line_text_field ZEILENUMBRÜCHE, KEINE KOMMAS.
Das bedeutet:

Richtig:

Mars
Venus
Neptun

Falsch:

Mars, Venus, Neptun

Der Import läuft trotzdem – aber Shopify macht aus dem falschen Beispiel nur EINEN Wert: “Mars, Venus, Neptun”


2. Die Spaltennamen müssen exakt so aussehen:

Beispiel:

Metafield:info.planet [list.single_line_text_field]

Format:

Metafield:namespace.key [type]

Wenn du hier nur einen kleinen Tippfehler hast → wird die Spalte ignoriert, ohne jede Fehlermeldung.


3. Datentypen sind heilig:

Shopify akzeptiert z. B. folgende Typen:

  • single_line_text_field
  • multi_line_text_field
  • list.single_line_text_field
  • number_integer
  • number_decimal
  • boolean
  • json
  • url

Falsche oder erfundene Typen? → werden einfach nicht übernommen. Kein Hinweis. Kein Fehler. Einfach… nichts.


4. Leere Felder müssen wirklich leer sein:

Nicht “”, nicht " ", nicht null.
Einfach leer lassen. Alles andere stört den Import oder führt zu Ghost-Werten.


5. Shopify schweigt sich bei Fehlern aus:

Wenn was nicht stimmt, bekommst du KEINE Fehlermeldung – die Werte werden einfach still ignoriert.
Das macht Debugging echt schwer, besonders bei automatisierten Prozessen.


6. Vordefinierte Werte in Shopify? Müssen 1:1 übereinstimmen!

Wenn du in Shopify Metafelder verwendest, die eine Auswahlliste (z. B. Dropdown oder Radio Button) haben, dann muss der Wert in deiner CSV zu 100 % identisch sein.

Beispiel:

Shopify erlaubt im Metafeld:

    • Wellenmuster
    • Zickzack
    • Spirale

Dann darf in der CSV NICHT stehen:

  • “Wellen Muster”
  • “wellenmuster”
  • “Wellen-Muster”

Es MUSS exakt so sein wie in Shopify hinterlegt: “Wellenmuster”

Shopify ist hier sehr streng – und du bekommst KEINEN Hinweis, wenn’s nicht stimmt. Die Spalte sieht aus, als wäre sie importiert – aber der Wert fehlt einfach.

FAZIT:

Shopify-Metafelder sind super mächtig, aber beim Import echt zickig.

Shopify-Metafeldlisten mit Zeilenumbrüchen funktionieren NICHT mit normalen Tabellen-Programmen (Excel, Numbers, LibreOffice etc.) – denn:

  • Diese Programme entfernen oder zerstören die \n-Trennung beim Öffnen & Speichern einer CSV
  • Dadurch wird aus einer schönen Liste wieder ein Fließtext oder Chaos
  • Nur ein sauberes Python-Skript (oder ein Texteditor mit UTF-8 & “\n”-Treue) kann die Datei korrekt erzeugen
  • UND: Man darf sie nach der Verarbeitung nicht mehr in Excel öffnen, sonst plopp, alles weg.

Wenn du per Python oder Script arbeitest:

  1. Kommas durch Zeilenumbrüche ersetzen
  2. Typen hart validieren
  3. Struktur immer gleich halten
  4. Und idealerweise mit einer getesteten Vorlage arbeiten

Grüße, AbruzzoGuy

1 Like

For those landing here and in need of an English translation, here is a translation from ChatGPT o3:


? Thread topic: Why Shopify metafields can sometimes drive you absolutely crazy when importing CSVs :sweat_smile:

Hi Camila,

After earning a few grey hairs, I’d like to share what I’ve learned about Shopify metafields and CSV imports—maybe it’ll save someone else the pain. These days you can upload META‑fields with Shopify’s built‑in import tool, so you DON’T need any expensive apps that barely work anyway!

1. List fields are the devil (but only sometimes)

Shopify expects line breaks for list.single_line_text_field, not commas.

That means:

Correct:

Mars
Venus
Neptune

Wrong:

Mars, Venus, Neptune

The import will still run—­but Shopify turns that wrong example into a single value: “Mars, Venus, Neptune”.

2. Column names must be exact

Example:

Metafield:info.planet [list.single_line_text_field]

General format:

Metafield:namespace.key [type]

Even the tiniest typo → the column is ignored without any error message.

3. Data types are sacred

Shopify accepts, for example:

  • single_line_text_field

  • multi_line_text_field

  • list.single_line_text_field

  • number_integer

  • number_decimal

  • boolean

  • json

  • url

Wrong or made‑up types? → simply not imported. No notice, no error—just… nothing.

4. Empty fields must be truly empty

Not “”, not a single space, not null.

Leave them blank. Anything else disrupts the import or creates ghost values.

5. Shopify stays silent on errors

If something’s off, you get no error message—the values are silently skipped.

Debugging is a pain, especially in automated workflows.

6. Pre‑defined values must match#### exactly

If a metafield in Shopify uses a preset list (dropdown, radio button, etc.), the value in your CSV must be 100 % identical.

Example—Shopify allows:

  • Wellenmuster

  • Zickzack

  • Spirale

Your CSV may not contain:

  • “Wellen Muster”

  • “wellenmuster”

  • “Wellen‑Muster”

It must be exactly “Wellenmuster”.

Shopify is ruthless here—no hint if it’s wrong. The column looks imported, but the value is missing.

Conclusion

Shopify metafields are incredibly powerful, but super finicky on import.

Metafield lists that rely on line breaks do not play well with regular spreadsheet apps (Excel, Numbers, LibreOffice, etc.) because:

  1. Those programs strip or mangle the \n line breaks when opening/saving a CSV.

  2. Your neat list turns into one long mess.

Only a clean Python script (or a text editor that preserves UTF‑8 and literal \n) can create the file correctly—and you must never re‑open it in Excel afterward, or poof, all gone.

If you’re scripting in Python:

  • Replace commas with real line breaks.

  • Validate types strictly.

  • Keep the structure consistent.

  • Work from a tested template whenever possible.

Cheers,

AbruzzoGuy

1 Like

Hi,

There is new update by Shopify we can manage metafields by Shopify native import/export. Here is guide how to do

https://youtu.be/iAfJN-4iMpc?si=bmGk3GNNWAMHVk5X

kindly like if it works.

Thanks for posting this, very helpful update.

Thanks. Could you please mark as completed if it works for you.

@Zeppelin83 this solution is now working for everyone for please mark it as the correct one.

FYI it’s only working for products, not yet for “Variants” as per video here:
Manage Product Metafields Easily with Shopify’s New Import/Export Feature

Shopify have introduced metafields import export in Native Shopify CSV fie. Here is guide

https://youtu.be/iAfJN-4iMpc