StriveFormats
ShopifyvariantImport blocker

Option columns out of order

Option2/Option3 has values while Option1 is blank.

What is this issue?

Option2/Option3 has values while Option1 is blank.

Affected field:Option columns out of order
Import blocker: your file will fail to import until this is resolved.

Why Shopify rejects this

Shopify expects options to be filled sequentially (Option1 then Option2 then Option3).

Shopify-specific note

Shopify groups variant rows by the Handle column value. All rows sharing the same Handle belong to the same product. Option columns (Option1 Name, Option1 Value, etc.) must be consistent across every variant row in the group.

Examples

Bad valueGood valueNote
Option2 filled but Option1 blankOption1 filled first, then Option2
Variant row appears before its parent rowParent row appears directly above variant rows

Fix in StriveFormats

StriveFormats detects variant structure issues and highlights the rows that are misaligned or missing required option values.

Fix in Excel

  1. 1In Excel, sort your rows by the parent identifier column (Handle for Shopify, parent SKU for WooCommerce).
  2. 2Verify the parent row appears before all its variant rows in the sorted result.
  3. 3For WooCommerce: parent rows should have Type = 'variable'. Variation rows should have Type = 'variation' and the Parent column set to the parent's SKU.
  4. 4For Shopify: all rows in a product group must share the same Handle. Check that Option1 Name is filled before Option2 Name.
  5. 5Save as CSV (Comma delimited).

Fix in Google Sheets

  1. 1In Google Sheets, go to Data > Sort range and sort by the parent identifier column (Handle or Parent SKU).
  2. 2Verify parent rows appear directly before their variant rows.
  3. 3For WooCommerce: parent rows need Type = 'variable'. Variation rows need Type = 'variation' and Parent = the parent SKU.
  4. 4For Shopify: all variant rows in a product group must share the same Handle.
  5. 5Go to File > Download > Comma Separated Values (.csv).

Prevent it next time

  • --Always keep parent product rows directly above all their variant rows.
  • --For Shopify: use the same Handle value for all rows in one product group.
  • --For WooCommerce: parent rows have Type = variable; child rows have Type = variation with Parent = parent SKU.
  • --Test with a single product (one parent, two to three variants) before importing your full catalog.

How StriveFormats detects this

StriveFormats groups rows by their parent identifier (Handle for Shopify) and checks that the structure matches the platform's variant model. Orphaned variation rows, missing parent rows, and duplicate option combinations are each flagged separately.

Technical detail
Shopify groups product rows by the Handle column value. All rows sharing a Handle are treated as variants of the same product. The first row of a group must contain the product-level fields (Title, Body, Vendor). Subsequent rows for the same Handle only need variant-level fields (Option values, Price, SKU). If Option columns are inconsistent between rows in a group -- for example, Option1 Name changes between variant rows -- Shopify will create duplicate or broken variants, or reject the import.