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.