StriveFormats
ShopifyvariantImport blockerAuto-fixable

Missing URL handle

URL handle is blank on at least one row.

What is this issue?

URL handle is blank on at least one row.

Affected field:Handle
Import blocker: your file will fail to import until this is resolved.

Why Shopify rejects this

Shopify groups variants and images by URL handle, and uses it to update existing products. Missing handles break grouping and updates.

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

This issue is auto-fixable. Upload your CSV and click Fix Issues to apply all safe corrections at once.

Auto-fixable: this issue is corrected automatically when you click Fix Issues.

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.