Shopify Product CSV Import: Format, Required Columns, and a Safe Import Workflow

Shopify CSV Import Getting Started Product Data

If you import products into Shopify using CSV (or you start from an XLSX supplier file and convert it), the safest approach is to follow Shopify’s documented format rules and test a small batch before doing a full import. This guide focuses on: required columns, correct CSV formatting (headers + UTF-8), overwrite risks, and common import errors—using only Shopify’s documented behaviors in the sources listed at the end.


What Shopify product CSV import is (and when to use it)

What CSV import/export is used for in Shopify

Shopify lets you use a CSV (comma-separated values) file to import products into your store and to export products from your store. This is a way to import or export a large number of products and their details at the same time.

If your source file is XLSX — convert carefully

Shopify’s product import workflow uses CSV. If your supplier sends XLSX, convert it to CSV in your spreadsheet tool and then check that the resulting CSV meets Shopify’s formatting requirements (headers on the first row, commas between columns, UTF-8 encoding). If something looks off after conversion, verify in Shopify Admin / Help Center.


Shopify product CSV format basics

Headers must be on the first row (and match Shopify’s table)

Shopify requires that the first line of your product CSV file contains the column headers as specified in Shopify’s product CSV description table. If your headers are missing or incorrect, you can see an error like “Invalid CSV header: missing headers” (examples later).

Comma-separated columns + case-sensitive header names

Each column in the CSV must be separated by a comma. Shopify also notes that column header names are case-sensitive, so Handle and handle aren’t treated the same.

Save as UTF-8 with LF-style linefeeds

Shopify requires UTF-8 encoding for CSV files. Shopify also specifies saving your product CSV in UTF-8 format using LF-style linefeeds. This is one of the most common causes behind unexpected characters and quoting-related import errors.


Required columns (new products vs updates)

New products: Title required (Handle required if adding variants)

When you create a product CSV to import new products, the only required column is Title. If you’re adding variants for a product, then the URL handle column is also required.

Updates: Handle + Title required

When you update products using a CSV file, the only required columns are URL handle and Title.

Dependency warning: variant fields require Option1 name/value

Shopify warns that even if Title and URL handle are the only required columns for updates, some columns depend on other columns.

Example: If you update a variant-related column like SKU or Weight value (grams), Shopify says you must also include:

  • Option1 name
  • Option1 value

Critical caution (from Shopify): If you don’t include Option1 name and Option1 value, then a new default variant is created and existing variants are deleted.


Step-by-step instructions (safe import workflow)

These steps follow Shopify’s documented process and add safety checks that Shopify explicitly recommends.

1) Backup/export your current products first

Before you start, Shopify cautions you to make sure that you have a backup of your product data. A common way to do that is to export products first (verify the exact export steps in Shopify Admin / Help Center).

2) Start from a known-good header row

Make sure your CSV’s first row is the column headers Shopify expects. Header names are case-sensitive. If you’re troubleshooting header issues, Shopify’s common issues page provides an example of the “missing headers” expected first line:

Handle,Title,Body (HTML),Vendor,Type,Tags,Published,Option1 Name,Option1 Value,Option2 Name,Option2 Value,Option3 Name,Option3 Value,Variant SKU,Variant Grams,Variant Inventory Tracker,Variant Inventory Qty,Variant Inventory Policy,Variant Fulfillment Service,Variant Price,Variant Compare-at Price,Variant Requires Shipping,Variant Taxable,Variant Barcode,Image Src,Image Alt Text

You don’t necessarily need every column for every import, but your header row must follow Shopify’s requirements. If you’re unsure which columns you need, verify in Shopify Admin / Help Center.

3) Prepare a small test CSV (subset of changes)

Shopify recommends you test a small subset of changes first using a dev store before performing the actual import job. Create a small CSV with a few products/variants that represent the changes you plan to roll out.

4) Validate formatting: commas, quotes, and encoding

Check these before uploading:

  • Columns are separated by commas
  • Header names are case-sensitive and on the first line
  • File is saved with UTF-8 encoding (required)
  • If you see quoting errors, check for missing/stray quotes and “smart quotes”

Shopify notes:

  • “Illegal quoting on line”: file must be UTF-8; sometimes caused by a missing or stray quote
  • “Missing or stray quote on line”: often caused by Excel or another spreadsheet tool adding curly quotes (smart quotes)—replace with straight quotes

5) Confirm file size limit (15 MB)

Shopify’s product CSV file size limit is 15 MB. If you get an error after trying to upload a new CSV or the upload times out, Shopify recommends splitting the file into multiple smaller files and uploading each file.

Shopify recommends:

  • Using Google Sheets to work with CSV files
  • Using Google Chrome to avoid issues when uploading your product CSV
  • Google Sheets saves files with UTF-8 encoding automatically by default

These don’t guarantee success, but they align with Shopify’s guidance.

7) Upload in Shopify Admin (Products → Import)

Follow Shopify’s documented import steps:

  1. From your Shopify admin, go to Products
  2. Click Import
  3. Click Add file, and select the CSV file
  4. Optional: deselect “Publish new products to all sales channels” to publish only to the online store
  5. Optional: select “Overwrite products with matching handles” to update existing products
  6. Click Upload and continue
  7. Review the import details, then click Import products

8) Treat the import as irreversible once it starts

Shopify states that product imports started with a CSV file can’t be cancelled once they begin, and you can’t view a history of past imports. That’s why the backup and test batch matter.

9) Watch for Shopify’s confirmation email and verify results

Shopify says: when your CSV file is uploaded, you receive a confirmation email from Shopify. After that, check the affected products in Shopify Admin to confirm the changes match what you expected.


Overwrite behavior and “blank cell” risks

Overwrite products with matching handles

When importing, Shopify lets you select Overwrite products with matching handles.

  • If overwrite is not selected, then products that match an existing handle are ignored during CSV import.
  • If overwrite is selected, Shopify uses the CSV to update products with matching handles (and your data choices matter a lot—especially blanks and variant-related columns).

Blank columns vs missing columns (critical difference)

Shopify distinguishes between:

  • Column included but blank in the import CSV → If a non-required column is blank, the matching value in the product list is overwritten as blank.
  • Column not included in the import CSV → If a non-required column isn’t included in the import CSV (but exists on the product already), the value in the product list remains the same.

Practical takeaway: If you don’t intend to clear a field, avoid uploading a column full of blanks. Instead, consider removing that column from the CSV (verify in Shopify Admin / Help Center based on your exact use case).

Variant ID warnings when changing option values

Shopify cautions:

  • Changing data in Option1 value, Option2 value, or Option3 value deletes existing variant IDs and creates new variant IDs.
  • If you update SKU but don’t include the Option1 name and Option1 value columns, Shopify’s example warns the product variant option can be deleted.

If you’re unsure whether a change affects variant IDs, verify in Shopify Admin / Help Center and test on a small batch first.


Images, variants, tags, and options — constraints

Images: one row per image, up to 250, public URLs

Shopify’s CSV guidance includes these image rules:

  • You can add up to 250 images to a product.
  • You must use only one row per image.
  • Image URLs from external sources need to be publicly accessible.

Important caution: When uploading a product with a CSV that includes a link to an image in the Files area, Shopify warns the image is redownloaded and duplicated.

Short example snippet (illustrative structure):

Handle,Title,Image Src
my-product,My Product,https://example.com/image-1.jpg
my-product,,https://example.com/image-2.jpg

This shows the pattern Shopify describes for multiple images: first row contains product fields + first image URL; following rows use the same handle and include additional image URLs. Keep your exact columns aligned with your header row.

Variants: up to 3 options; option changes can recreate variant IDs

Shopify states:

  • A product can have up to 3 options.
  • Changing option values can delete and recreate variant IDs.

Also remember the dependency rule: updating SKU/grams implies you must include the relevant option columns (Option1 name / Option1 value) or Shopify warns variants can be replaced by a default variant.

Tags: up to 250 per product

Shopify allows a maximum of 250 tags per product.

Variant creation limit (when you might see an error)

Shopify’s “common import issues” page documents an error message:

  • “Daily variant creation limit reached”: For stores with 50,000 product variants (excluding Plus stores), no more than 1,000 new variants can be created by CSV uploads (or API) within a 24-hour timeframe.

If you’re unsure whether this applies to your store, verify in Shopify Admin / Help Center.


Common pitfalls

Shopify warns that importing a CSV file that has been sorted by a spreadsheet editor such as Microsoft Excel or Apple Numbers might cause products to be removed from their relevant image links on the CSV, and product images can be lost.

Safer approach: If you need to edit, Shopify recommends using Google Sheets. Always re-check image rows after any sorting or restructuring.

Pitfall 2: “Invalid CSV header: missing headers”

If your first row isn’t valid, Shopify may show Invalid CSV header: missing headers. Compare your header row to Shopify’s example header line (shown earlier) and ensure:

  • Headers are on the first line
  • Names match exactly (case-sensitive)

Pitfall 3: UTF-8 and quoting errors

Common error messages and Shopify’s guidance:

  • Illegal quoting on line: CSV must be UTF-8 encoded; sometimes caused by missing or stray quote
  • Missing or stray quote on line: often caused by spreadsheet tools inserting curly quotes; replace with straight quotes
  • Unexpected characters: Shopify says UTF-8 encoding is required to prevent unexpected characters

Pitfall 4: Validation errors (price/options/fulfillment)

From Shopify’s documented errors:

  • Validation failed: price can’t be blank → “The price needs to be added to this line.”
  • Validation failed: options are not unique → product has duplicate options
  • Fulfillment service can’t be blank → if not using a fulfillment service, set it to manual

Safety note

Shopify’s CSV import can change or overwrite product data, and Shopify states some aspects are not reversible.

  • Backup/export first: Shopify cautions to have a backup of your product data before importing.
  • Test a small subset first: Shopify recommends testing a small subset of changes first using a dev store before doing the actual import job.
  • Imports can’t be cancelled: Product imports started with a CSV file can’t be cancelled once they begin.
  • No import history: Shopify says you can’t view a history of past imports.
  • Overwrite risk reminders:
    • If overwrite is enabled, products with matching handles are updated; if not enabled, matching handles are ignored.
    • Blank non-required cells can overwrite existing values with blanks.
    • Variant-related edits can require option columns; missing option columns can delete existing variants and create a default variant.
    • Changing option values can delete and recreate variant IDs.

If anything here conflicts with what you see in your Shopify Admin, verify in Shopify Admin / Help Center and use a small test import to confirm behavior.


FAQ

1) What columns are required to import new products via Shopify product CSV?

For new products, Shopify states the only required column is Title. If you’re adding variants for a product, then URL handle is also required.

2) What columns are required to update existing products via CSV?

Shopify states that when updating products, the only required columns are URL handle and Title.

3) What happens if I update SKU/weight but forget to include Option1 name/value columns?

Shopify warns that if you update a variant-related column such as SKU or Weight value (grams), you must also include Option1 name and Option1 value. If you don’t include them, Shopify cautions that a new default variant is created and existing variants are deleted.

4) What does “Overwrite products with matching handles” change during import?

Shopify states you can select Overwrite products with matching handles. If overwrite isn’t selected, products that match an existing handle are ignored during CSV import.

5) If a column is blank in my CSV, will Shopify overwrite existing values with blanks?

Shopify states: if a non-required column in the import CSV is blank, then the matching value in the product list is overwritten as blank. If a non-required column isn’t included in the import CSV, then the existing value remains the same.

6) What is the maximum Shopify product CSV file size, and what should I do if upload times out?

Shopify states your product CSV can’t exceed 15 MB. If you get an error after trying to upload a new CSV file, or if the upload times out, Shopify recommends splitting the CSV into multiple smaller files and uploading each file.

7) Why did my product images disappear after sorting the CSV in Excel/Numbers?

Shopify warns that sorting a product CSV in tools like Microsoft Excel or Apple Numbers might cause products to be removed from their relevant image links on the CSV, and your product’s images can be lost.

8) What encoding should my CSV use to avoid unexpected characters or “illegal quoting” errors?

Shopify requires UTF-8 encoding. Shopify also notes illegal quoting errors can be related to UTF-8 encoding and sometimes to missing/stray quotes, and that unexpected characters can appear when UTF-8 encoding isn’t used.

9) How many images, tags, and options can I include per product in a product CSV?

Shopify states:

  • Up to 250 images per product (one row per image)
  • Up to 250 tags per product
  • Up to 3 options per product

10) Why am I seeing “Daily variant creation limit reached,” and what does it mean?

Shopify documents: for stores with 50,000 product variants (excluding Plus stores), no more than 1,000 new variants can be created by CSV uploads (or API) within a 24-hour timeframe.