Appearance
CSV import/export basics (coming soon)
CSV import/export is coming soon and is not yet generally available. This page describes the planned workflow so early testers and internal teams can understand how it will work once enabled.
Move faster by exporting current data, editing offline, and importing changes.
When to use
- Large updates that are easier to model in a spreadsheet.
- Bulk fixing inconsistent fields (e.g., SKUs, titles).
- Coordinating with teammates who prefer Google Sheets/Excel.
Prerequisites
- Export a sample first to learn the expected headers.
- Use UTF-8 CSV; avoid formulas that evaluate to blank cells.
- Use the in-app Filters & search guide to create the scope you’ll export/import.
- If CSV is not enabled for your shop yet, you might not see Import/Export screens in the app navigation. This doc is still useful for planning and formatting.
CSV vs in-app bulk editing
| Choose… | When it shines |
|---|---|
| In-app jobs | Fast tweaks to a single field, need instant preview/rollback, smaller scopes (<5k variants), want guardrails on allowed values. |
| CSV import/export | Huge scopes, offline collaboration, complex multi-field edits, copy/pasting from other systems, needing a permanent audit file. |
Guidelines:
- Start in-app when you only need one action (price change, tag cleanup) and want instant previews plus one-click rollback.
- Switch to CSV when:
- You need to touch dozens of columns at once (price + SKU + metafield).
- You prefer spreadsheet formulas to generate values.
- You’re working offline or need approvals before running the job.
- Hybrid approach: run an in-app filter/export for the scope, make spreadsheet edits, then import just those rows.
Map CSV columns to in-app actions
Common column names and their in-app equivalent:
title,body_html,vendor,product_type→ same as editing those fields in the action editor.tags(replace entire tag set),tags_add,tags_remove→ correspond to add/remove tag actions.price,compare_at_price,cost→ same as price/compare-at edits.sku,barcode→ variant SKU/barcode actions (supports pattern-like formulas in Sheets).status,published_at,published_scope→ publish/unpublish actions.metafield:namespace.key→ metafield editor; ensure the namespace/key matches what you set in the app.
Previewing the import shows the same before/after table as the in-app job so you can confirm mappings before running.
Export
- If CSV export is enabled for your shop, open Export CSV in the app and select the scope (Products/Variants, fields).
- Apply filters to limit the export to your target set.
- Download the CSV and open in your spreadsheet tool.
Edit
- Keep the ID/handle columns intact for matching.
- Don’t change column headers.
- For metafields, use the correct namespace.key and data types.
Import
- If CSV import is enabled for your shop, open Import from CSV in the app and upload your CSV.
- The app validates headers and sample rows.
- Preview the changes (side-by-side) and resolve any errors.
- Run the import; monitor progress in Job History.
Common headers (examples)
- product_id, variant_id, title, body_html, tags
- price, compare_at_price, cost
- sku, barcode
- metafield:
namespace.key(e.g.,custom.brand)
Troubleshooting
- Invalid header: ensure exact header names; export a fresh sample.
- Type mismatch: check number vs. text columns; remove stray symbols.
- Encoding: save as UTF-8 without BOM.
- Permission denied: confirm the app still has write access (see Permission denied).
- Variant mismatch: re-export IDs/option values if variants fail to align (see Variant mismatch).
- Job errors: review CSV import errors for detailed fixes, then re-run Preview.
Was this helpful?
Need a sample CSV? Visit the Support & contact checklist for what to include (shop URL, job ID, sample rows), then email support@xyppy.com or open an issue at GitHub Issues.