Native CSV import
From Products > Import you can upload a CSV file in Shopify's format. The most practical approach is to export a sample product first so you have the exact template with the correct columns and order. To create new products, only the Title column is required; if you import variants, you also need the URL handle.
To update existing products, you need the handle and the title. When importing, Shopify asks whether you want to overwrite products with the same handle. If you don't check that option, matching products are skipped. If you do, empty cells in non-required columns erase the current value, while columns you leave out of the file are kept.
Variants and options without surprises
Each variant goes on its own row with the same handle as the main product. A product supports up to 3 options (size, color, material) and up to 2048 variants. Variant columns, like SKU or weight, also need Option1 name and Option1 value; if they're missing, Shopify may create a default variant and delete the existing ones.
Be careful when changing option values in an update import: Shopify deletes the variant IDs and creates new ones. If you have integrations with an ERP, a marketplace or a Google feed that rely on those IDs, they break. To fix option names in a live catalog, weigh the impact first.
Images and metafields
Images are referenced with public HTTPS URLs, without passwords. Shopify downloads them during the import, so you can delete them from the source afterward. Each product supports up to 250 images, one per row. Avoid file names with _thumb, _small or _medium, and keep in mind that videos and 3D models can't be imported by CSV.
Product metafields can be imported, using columns like “Name (product.metafields.namespace.key)”. Variant metafields aren't supported in the native CSV; for those you use the variant bulk editor or an app. Create the metafield definitions before importing so the data arrives with the correct type.
When to move to Matrixify
Matrixify is an import and export app widely used for migrations and large uploads. It works with Excel, CSV and Google Sheets, and covers far more than products: collections, customers, orders, discounts, pages, blogs, menus, redirects, metaobjects, metafields and translations.
It's worth it when you need variant metafields, bulk redirects, historical order imports during a migration or repeated updates to a large catalog. It has a limited free plan for testing and paid plans by volume; check the current terms on its Shopify App Store listing.
- Variant metafields and metaobjects
- Bulk 301 redirects in a migration
- Historical orders and customers
- Automated collections with their conditions
- Catalog translations
Best practices before importing
Prepare the file carefully and always test with a small batch before the full catalog. That way you see how a real product looks with its variants, images and metafields, and you fix the file once instead of undoing a thousand products.
Take time to normalize the source data before converting it to Shopify's format. Consistent option names (always “Size”, never sometimes “Sizes” or “Talla”), values written the same way across the catalog, product types and tags designed for the store's filters, and descriptions without the messy HTML that many legacy systems carry over. Whatever goes into the import disorganized stays disorganized in the store, and fixing it product by product later takes much longer.
Export a backup of the catalog before any import that overwrites data. If something goes wrong, you have the previous state to upload again. And if you can, run the first import in a test or development store.
- Export a sample product and use its structure
- Save the file as UTF-8 so accents and special characters don't break
- Clean handles, lowercase and without accents
- A unique SKU per variant
- Test with 5 or 10 products first
- Back up before overwriting
Common errors in bulk uploads
The most frequent is encoding: a CSV saved from Excel without UTF-8 turns accented characters into strange symbols across the whole catalog. The second is duplicate or misspelled handles, which create repeated products instead of variants. The third is overwriting with empty columns and losing descriptions or tags that were fine.
In a migration, the handle also defines the product URL. If it changes from the old store, you need 301 redirects so you don't lose rankings. Plan the handles together with the redirect map, not afterward.
Frequently asked questions
Which columns are required in the Shopify product CSV?
To create products, the title; with variants, the handle too. To update existing products, the handle and the title.
Can I import metafields with the Shopify CSV?
Product metafields, yes. Variant metafields aren't supported in the native CSV and are handled with the bulk editor or an app like Matrixify.
Can I import images from my computer?
Not directly in the CSV. Images must be at public HTTPS URLs; Shopify downloads them during the import.
When do I need Matrixify instead of the native CSV?
When you import variant metafields, redirects, orders, customers or translations, or when you update large catalogs on a recurring basis.
