How Shopify variants work in CSV files

Variants are the part of Shopify's CSV format that breaks most imports. The rules are simple but unforgiving.

Option names go on the first row only

The first row of a product defines its options: Option1 Name = "Size", Option2 Name = "Color". Every variant row after it supplies only the values — "Large", "Red" — and leaves the name columns blank. Putting names on every row, or values without a defined name, corrupts the structure.

Every variant needs every option value

If a product defines Size and Color, each variant row must fill both Option1 Value and Option2 Value. A missing value makes Shopify reject the row or merge variants unpredictably.

No duplicate combinations

Two rows with the same combination (e.g., two "Small / Red" rows) fail with a duplicate-variant error. These usually appear after merging files or copy-pasting rows.

Single-variant products use "Default Title"

A product with no real options should have Option1 Name = "Title" and Option1 Value = "Default Title". That's Shopify's convention, not a bug in your export.

Variant limits

Most Shopify plans cap a product at 100 variants (up to three options). Files that exceed the cap may truncate silently on import.

Check your file: the free Variant Structure Checker finds mismatched options, duplicate combinations, and over-limit products — entirely in your browser, no upload.