Sample cleanup report
A made-up brand, "Fictional Co.", sent a 21-row product export with 6 products. This is the kind of report that comes back. The checks are real: a script counted the issues in the invented file before and after cleaning.
1. Validation summary
Counts are rows or cells, as labelled. "Before" is the file as sent; "after" is the cleaned working copy.
| Check | Before | After |
|---|---|---|
| Rows | 21 | 21 |
| Products (distinct handles) | 6 | 6 |
| Duplicate SKUs | 1 | 1 |
| Rows missing a required value | 1 | 1 |
| Invalid image URLs | 2 | 0 |
| Rows with no image | 3 | 3 |
| Size labels not in approved list | 5 | 0 |
| Colour values not in approved list | 5 | 1 |
| Option name cells not in the agreed form | 8 | 0 |
| Rows with title spacing, case or encoding problems | 17 | 0 |
| Negative inventory quantities | 1 | 1 |
| Blank inventory quantities | 1 | 1 |
| Option 2 name set but value blank | 1 | 1 |
Some counts do not drop to zero on purpose. A duplicate SKU, a missing price, a negative stock count and a blank colour are not guesses we can make for you. They stay in the file, are flagged in the change log, and are listed in the missing-information report.
2. Sample rows, before and after
As sent
| Handle | Title | Option1 Value | Option2 Value | Variant SKU | Variant Price | Image Src |
|---|---|---|---|---|---|---|
| classic-tee | Classic Tee | S | navy | FC-TEE-NVY-S | 28.00 | https://example.com/img/classic-tee-1.jpg |
| classic-tee | Classic Tee | Small | Navy | FC-TEE-NVY-S2 | 28.00 | https://example.com/img/classic-tee-1.jpg |
| classic-tee | Classic Tee | medium | Navy | FC-TEE-NVY-M | 28.00 | https://example.com/img/classic-tee-1.jpg |
| Harbour Hoodie | HARBOUR HOODIE | X-Large | Cream | FC-HOOD-CRM-XL | 64.00 | https://example.com/img/harbour-hoodie-cream.jpg |
Cleaned working copy
| Handle | Title | Option1 Value | Option2 Value | Variant SKU | Variant Price | Image Src |
|---|---|---|---|---|---|---|
| classic-tee | Classic Tee | S | Navy | FC-TEE-NVY-S | 28.00 | https://example.com/img/classic-tee-1.jpg |
| classic-tee | Classic Tee | S | Navy | FC-TEE-NVY-S2 | 28.00 | https://example.com/img/classic-tee-1.jpg |
| classic-tee | Classic Tee | M | Navy | FC-TEE-NVY-M | 28.00 | https://example.com/img/classic-tee-1.jpg |
| Harbour Hoodie | Harbour Hoodie | XL | Cream | FC-HOOD-CRM-XL | 64.00 | https://example.com/img/harbour-hoodie-cream.jpg |
3. Change log (excerpt)
The full log for this example has 54 entries: 41 changes and 13 flags. Below, the first few of each. Rows are CSV row numbers, with the header as row 1.
| Row | Field | Before | After | Rule | Action |
|---|---|---|---|---|---|
| 2 | Title | Classic Tee | Classic Tee | Collapse repeated spaces, trim ends | changed |
| 2 | Option2 Value | navy | Navy | Colour mapped to client-approved list | changed |
| 3 | Title | Classic Tee | Classic Tee | Collapse repeated spaces, trim ends | changed |
| 3 | Option1 Value | Small | S | Size mapped to client-approved list (S, M, L, XL) | changed |
| 3 | Option2 Value | Navy | Navy | Colour mapped to client-approved list | changed |
| 4 | Title | Classic Tee | Classic Tee | Collapse repeated spaces, trim ends | changed |
| 6 | Variant Price | (blank) | (blank) | Price missing. Not guessed. Client to supply. | flagged |
| 8 | Handle | Harbour Hoodie | Harbour Hoodie | Handle has capitals. Not changed: changing a handle can change the product URL and break matching on import. Client to decide. | flagged |
| 9 | Handle | Harbour Hoodie | Harbour Hoodie | Handle has capitals. Not changed: changing a handle can change the product URL and break matching on import. Client to decide. | flagged |
| 10 | Handle | Harbour Hoodie | Harbour Hoodie | Handle has capitals. Not changed: changing a handle can change the product URL and break matching on import. Client to decide. | flagged |
| 10 | Variant Inventory Qty | -3 | -3 | Negative inventory. Not changed; client to confirm the real count. | flagged |
| 11 | Handle | Harbour Hoodie | Harbour Hoodie | Handle has capitals. Not changed: changing a handle can change the product URL and break matching on import. Client to decide. | flagged |
4. Missing-information report
Facts the file did not contain. Nothing was added.
| Product | Missing | Note |
|---|---|---|
| Classic Tee | Fabric composition, care instructions, country of origin | Body text has none; nothing was added. |
| Womens Crop Tee | Fabric composition, size chart, colour for size L | Option 2 name is set but its value is blank on one row. |
| Everyday Tote | Dimensions, material | Description says only 'Canvas tote bag'. |
| Rib Beanie | Image URLs for all 3 variants, fibre content | Image Src blank on every row. |
| Straight Chino | Price and inventory for XL, fabric composition | Blank values are flagged, never filled in. |
| Harbour Hoodie | Working image URLs (two are malformed), care instructions | Composition is stated in the body ('100% cotton') and was left exactly as supplied. |
5. What the client is told to do next
- Keep the untouched original. Back up the current catalog in the store.
- Answer the flagged items (price, duplicate SKU, missing colour, inventory).
- Import three to five rows into the store first and look at the result on the storefront.
- Check variants and images before importing the rest.
This report does not claim the file was tested inside any store, that images load, or that an import will succeed.
Download the synthetic files
Open them in any spreadsheet app. They are invented data and free to look at.
- synthetic-sample-source.csv, the file as "sent"
- synthetic-sample-cleaned.csv, the cleaned working copy
- synthetic-sample-change-log.csv, the full change log