The three rules that matter
Most failed variant imports break one of these rules:
Common Scenarios:
- Every variant row must repeat the exact product Handle - a typo creates a new product.
- Option1 Name and Option1 Value must both be filled - a half pair rejects the row.
- Each variant needs a unique SKU - duplicates block the whole import.
Check the structure before the import
ShopTools validates Handle consistency, Option pairs and SKU uniqueness before you upload - the three rules that cause 90% of variant import failures.
Features:
- Handle consistency: Catches typos that would split products
- Option pair check: Finds half-filled Name/Value pairs
- SKU uniqueness: Flags duplicates that block the batch
Building the file
- Export the product CSV and copy the product's Handle row.
- Duplicate the row once per variant, changing Option values and SKUs.
- Fill Variant Price and Variant Inventory Qty for every variant.
- Run the file through a validator before uploading.
Before and after
- Before: One product row with no Option columns After: 4 variant rows: S/M/L/XL, each with size, price and SKU
- Before: Variant rows with blank Option1 Value After: Every row has Name+Value pairs filled
Who bulk-imports variants
- Apparel and footwear stores: Size/color matrices are the classic use case
- Catalog migrations: Move thousands of variants in one upload
Frequently Asked Questions (FAQ)
- How many variants can one product have?
- Shopify supports up to 100 variants per product, across up to 3 options.
- Do all variant rows need the Handle?
- Yes - the Handle is what groups them under one product. Missing or mistyped handles create duplicate products.
- Can I add variants to an existing product?
- Yes - use the product's existing Handle and import rows with new Option values.
- What is the file size limit?
- Shopify accepts product CSVs up to 15 MB, which covers tens of thousands of variant rows.