A sample cleanup, start to finish
This fictional supplier file shows the report format and examples of changes and decisions. Your report uses the same format, with your data.
Illustrative mode: new products. This is synthetic data, not a customer project or a verified Shopify import. The excerpt uses older Shopify column names that Shopify still supports. The final file follows your current template. It shows the engine output after a manual review: the reviewer leaves row 9’s ambiguous weight for confirmation.
11 source rows become 10 retained rows. One duplicate is removed after logged normalization. Five decisions remain: repeated size, repeated SKU, missing title, inconsistent option name and missing price or unclear weight. Do not import the unresolved rows until those decisions are made.
BEFORE (11 rows as received, problems marked)
Swipe horizontally to see all columns. You can also focus the table and use the arrow keys.
| Row | Handle | SKU | Title | Vendor | Price | Weight | Option1 Name | Option1 Value |
|---|---|---|---|---|---|---|---|---|
| Row 1 | basic-white-t-shirt | SKU-001 | Basic white t-shirt | Acme | 12,95 EUR | 0,2 kg | Size | S |
| Row 2 | basic-white-t-shirt | SKU-002 | Basic white t-shirt | Acme | 12,95 EUR | 200 g | Size | M |
| Row 3 | basic-white-t-shirt | SKU-003 | Basic white t-shirt | Acme | 12.95 | 0,2 kg | Size | M |
| Row 4 | basic-white-t-shirt | SKU-003 | Basic white t-shirt | Acme | 12,95 EUR | 200 g | Size | L |
| Row 5 | ceramic-mug-350ml | SKU-004 | Ceramic mug 350ml | Acme | 8,50 EUR | 350 g | ||
| Row 6 | tea-towel | SKU-005 | Acme | 5,00 EUR | 100 g | |||
| Row 7 | sheet-set | SKU-006 | Sheet set | HomePlus | 1.299,00 EUR | 2 kg | Size | 150cm |
| Row 8 | sheet-set | SKU-007 | Sheet set | HomePlus | 1.299,00 EUR | 2 kg | Dimension | 135cm |
| Row 9 | scented-candle | SKU-008 | Scented candle | HomePlus | n/a | 12 oz | ||
| Row 10 | city-backpack | SKU-009 | City backpack | UrbanCo | 45,00 EUR | 1,5 kg | ||
| Row 11 | city-backpack | SKU-009 | City backpack | UrbanCo | 45,00 EUR | 1,5 kg |
AFTER (the same rows, cleaned)
Swipe horizontally to see all columns. You can also focus the table and use the arrow keys.
| Row | Handle | Title | Vendor | Option1 Name | Option1 Value | Variant SKU | Variant Grams | Variant Price | Note |
|---|---|---|---|---|---|---|---|---|---|
| Row 1 | basic-white-t-shirt | Basic white t-shirt | Acme | Size | S | SKU-001 | 200 | 12.95 | |
| Row 2 | basic-white-t-shirt | Basic white t-shirt | Acme | Size | M | SKU-002 | 200 | 12.95 | (kept, on the risk list) |
| Row 3 | basic-white-t-shirt | Basic white t-shirt | Acme | Size | M | SKU-003 | 200 | 12.95 | (kept, on the risk list) |
| Row 4 | basic-white-t-shirt | Basic white t-shirt | Acme | Size | L | SKU-003 | 200 | 12.95 | (kept, on the risk list) |
| Row 5 | ceramic-mug-350ml | Ceramic mug 350ml | Acme | SKU-004 | 350 | 8.50 | |||
| Row 6 | tea-towel | Acme | SKU-005 | 100 | 5.00 | (kept, on the risk list) | |||
| Row 7 | sheet-set | Sheet set | HomePlus | Size | 150cm | SKU-006 | 2000 | 1299.00 | (kept, on the risk list) |
| Row 8 | sheet-set | Sheet set | HomePlus | Dimension | 135cm | SKU-007 | 2000 | 1299.00 | (kept, on the risk list) |
| Row 9 | scented-candle | Scented candle | HomePlus | SKU-008 | 12 oz | n/a | (kept, on the risk list) | ||
| Row 10 | city-backpack | City backpack | UrbanCo | SKU-009 | 1500 | 45.00 | |||
| (Row 11 removed: exact duplicate of row 10) | |||||||||
CHANGE LOG (every change, with the rule that made it)
Swipe horizontally to see all columns. You can also focus the table and use the arrow keys.
| Row | Field | Before | After | Rule |
|---|---|---|---|---|
| Header | SKU | "SKU" | "Variant SKU" | header-map |
| Header | Price | "Price" | "Variant Price" | header-map |
| Header | Weight | "Weight" | "Variant Grams" | header-map |
| Row 1 | Variant Grams | "0,2 kg" | "200" | weight-to-grams |
| Row 1 | Variant Price | "12,95 EUR" | "12.95" | price-normalize |
| Row 2 | Variant Grams | "200 g" | "200" | weight-to-grams |
| Row 2 | Variant Price | "12,95 EUR" | "12.95" | price-normalize |
| Row 3 | Title | " Basic white t-shirt " | "Basic white t-shirt" | trim-whitespace |
| Row 3 | Variant Grams | "0,2 kg" | "200" | weight-to-grams |
| Row 4 | Variant Grams | "200 g" | "200" | weight-to-grams |
| Row 4 | Variant Price | "12,95 EUR" | "12.95" | price-normalize |
| Row 5 | Variant Grams | "350 g" | "350" | weight-to-grams |
| Row 5 | Variant Price | "8,50 EUR" | "8.50" | price-normalize |
| Row 6 | Variant Grams | "100 g" | "100" | weight-to-grams |
| Row 6 | Variant Price | "5,00 EUR" | "5.00" | price-normalize |
| Row 7 | Variant Grams | "2 kg" | "2000" | weight-to-grams |
| Row 7 | Variant Price | "1.299,00 EUR" | "1299.00" | price-normalize |
| Row 8 | Variant Grams | "2 kg" | "2000" | weight-to-grams |
| Row 8 | Variant Price | "1.299,00 EUR" | "1299.00" | price-normalize |
| Row 10 | Title | "City backpack " | "City backpack" | trim-whitespace |
| Row 10 | Variant Grams | "1,5 kg" | "1500" | weight-to-grams |
| Row 10 | Variant Price | "45,00 EUR" | "45.00" | price-normalize |
| Row 11 | (all fields) | duplicate of row 10 | removed | exact-duplicate |
RISK LIST (values left unchanged, waiting for your decision)
-
Rows 2 and 3 are both "Size: M" of the same product (handle basic-white-t-shirt). Shopify cannot hold two variants with the same options.
Needs your decision: correct the option value of one row, or tell me which row to keep.
-
Rows 3 and 4 use the same SKU (SKU-003) but differ in Option1 Value (M / L). They are different variants, so neither row was removed.
Needs your decision: give each variant its own SKU, or tell me which row is correct.
-
Row 6 – The product has no name in the supplier file.
Needs your decision: provide a title or exclude the product.
-
Rows 7 and 8 belong to the same product (handle sheet-set) but name the option differently ("Size", "Dimension"). The option name needs to be consistent before import.
Needs your decision: which option name to keep.
-
Row 9 – No usable price, and "12 oz" needs confirmation as a weight rather than a volume. Neither value was changed.
Needs your decision: set a price and confirm the weight in grams, or exclude the product.