Catch “options are not unique” before import
When a product has Size and Color variants, two rows with the same `M / Black` combination try to describe the same variant twice. This checker groups rows by URL handle and finds duplicate Option1–3 combinations.
The important unit is the option combination within one product, not whether an individual value appears elsewhere.
Option names and values work as pairs
The checker also catches rows where `Option1 name=Size` but Option1 value is blank, or a value exists without its matching name. The same logic applies to Option2 and Option3, and both current and legacy Shopify header casing are recognized.
If a row contains variant option values but no URL handle, Shopify has no product key to associate that variant row with.
Changing existing option values has a second risk
Shopify can recreate variant IDs when Option1–3 values change. So a CSV can be free of duplicate combinations and still have consequences for apps or systems that depend on existing variant IDs.
This tool checks structure and duplicates; use Shopify’s import preview to confirm the intent of actual option-value changes on existing products.
Example: Size × Color
`S/Black`, `S/White`, `M/Black`, and `M/White` are four unique combinations. Add a second `M/Black` row and the checker points to the duplicate.
The same option values can be reused on another product because matching is scoped by URL handle.