StriveFormats
WooCommercestructureImport blocker

Invalid product type

The Type value is not one of WooCommerce's supported types.

What is this issue?

The Type value is not one of WooCommerce's supported types.

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

Why WooCommerce rejects this

Invalid types can cause rows to import incorrectly or be rejected.

WooCommerce-specific note

WooCommerce distinguishes between variable products (parent rows, Type = 'variable') and variation rows (Type = 'variation', Parent = parent SKU). The Parent column in variation rows must match the SKU of the parent row exactly, including case.

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 WooCommerce) 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
WooCommerce's variable product model requires a strict two-tier structure. Parent rows must have Type = "variable" and define the product-level data. Variation rows must have Type = "variation" and a Parent value matching the SKU of the parent row exactly (case-sensitive). A variation row with no matching parent is an orphan -- WooCommerce will either skip it or create a broken variation with no parent product. The parent SKU must exist in the same file or already be present in the store.