CatalogDock — CSV check and automatic fixes
"Errors found" counts errors in the original file. "Errors fixed" and "Errors remaining" come from the re-check of the corrected data for the whole file. The free sample CSV contains only the selected groups (50 of 58 product records); it is not the complete corrected file. These counters refer to the whole processed file.
Next steps
- No blocking problems remain after the automatic fixes. The free sample covers 50 of 58 product records. The complete corrected file, its UTF-8 BOM copy and the ZIP of import batches are available online after purchase (Full processing). Before importing everything, test a few products on a staging copy of your store.
Supported scenario: Creating new products with the built-in WooCommerce CSV importer (Products → Import, without "Update existing products"). Parents (variable) and variations (variation) in one file, linked by SKU in the Parent column, local attributes. Passing these checks does not guarantee a successful import into every store.
Free sample
Free sample: 9 product groups, 50 of 58 product records. This is not your complete catalogue.
The sample contains only whole product groups (a parent with all of its variations, or a standalone product) that pass all checks after the automatic fixes. It was re-checked before being offered.
Automatic fixes
Value changes: 2. Moved records: 7. These are the changes full processing applies to the whole file.
Value changes
| Original record | SKU | Field | Before | After | Reason |
|---|---|---|---|---|---|
| 11 | 000210-M | Parent | ·000210 | 000210 | Leading/trailing spaces in Parent; without them the value unambiguously points to the parent in record #9. |
| 12 | 000210-L | Parent | 000210· | 000210 | Leading/trailing spaces in Parent; without them the value unambiguously points to the parent in record #9. |
Reordering
| Original record | SKU | Old position | New position | Reason |
|---|---|---|---|---|
| 8 | TEE-100 | 8 | 2 | Position shifted because variations were moved; relative order is preserved. |
| 2 | TEE-100-S-W | 2 | 3 | Variation moved directly after its parent (original record #8). |
| 3 | TEE-100-S-B | 3 | 4 | Variation moved directly after its parent (original record #8). |
| 4 | TEE-100-M-W | 4 | 5 | Variation moved directly after its parent (original record #8). |
| 5 | TEE-100-M-B | 5 | 6 | Variation moved directly after its parent (original record #8). |
| 6 | TEE-100-L-W | 6 | 7 | Variation moved directly after its parent (original record #8). |
| 7 | TEE-100-L-B | 7 | 8 | Variation moved directly after its parent (original record #8). |
After automatic fixes (re-check)
No blocking problems after automatic fixes
After automatic fixes, no blocking problems remain in the supported scenario.
Record numbers below refer to the corrected order; "Original record" is the number in your original file.
| Level | Code | Record | Original record | File lines | SKU | Field | Explanation | Recommended action |
|---|---|---|---|---|---|---|---|---|
| Info | UNKNOWN_COLUMN |
— | — | — | — | Supplier note | The column "Supplier note" is not part of the built-in schema, so WooCommerce does not import it by default. Its values are kept unchanged. | If it is a custom field, rename the column to "meta:your_key" or choose "Import as meta data" on the column mapping screen. |
Problems in the original file
| Level | Code | Record | File lines | SKU | Field | Explanation | Recommended action |
|---|---|---|---|---|---|---|---|
| Error | VARIATION_BEFORE_PARENTauto-fixed in processed result |
2 | 3 | TEE-100-S-W |
Parent | The variation (record #2) comes before its parent (record #8). WooCommerce creates a temporary placeholder parent without attributes, and the variation's attributes are lost. | Fixed automatically: rows are reordered so the parent comes before its variations. |
| Error | VARIATION_BEFORE_PARENTauto-fixed in processed result |
3 | 4 | TEE-100-S-B |
Parent | The variation (record #3) comes before its parent (record #8). WooCommerce creates a temporary placeholder parent without attributes, and the variation's attributes are lost. | Fixed automatically: rows are reordered so the parent comes before its variations. |
| Error | VARIATION_BEFORE_PARENTauto-fixed in processed result |
4 | 5 | TEE-100-M-W |
Parent | The variation (record #4) comes before its parent (record #8). WooCommerce creates a temporary placeholder parent without attributes, and the variation's attributes are lost. | Fixed automatically: rows are reordered so the parent comes before its variations. |
| Error | VARIATION_BEFORE_PARENTauto-fixed in processed result |
5 | 6 | TEE-100-M-B |
Parent | The variation (record #5) comes before its parent (record #8). WooCommerce creates a temporary placeholder parent without attributes, and the variation's attributes are lost. | Fixed automatically: rows are reordered so the parent comes before its variations. |
| Error | VARIATION_BEFORE_PARENTauto-fixed in processed result |
6 | 7 | TEE-100-L-W |
Parent | The variation (record #6) comes before its parent (record #8). WooCommerce creates a temporary placeholder parent without attributes, and the variation's attributes are lost. | Fixed automatically: rows are reordered so the parent comes before its variations. |
| Error | VARIATION_BEFORE_PARENTauto-fixed in processed result |
7 | 8 | TEE-100-L-B |
Parent | The variation (record #7) comes before its parent (record #8). WooCommerce creates a temporary placeholder parent without attributes, and the variation's attributes are lost. | Fixed automatically: rows are reordered so the parent comes before its variations. |
| Error | PARENT_WHITESPACEauto-fixed in processed result |
11 | 15 | 000210-M |
Parent | Parent " 000210" has leading or trailing spaces and does not exactly match any SKU. Without the spaces it unambiguously points to record #9 ("000210"). | Fixed automatically: the spaces are removed from Parent; the parent SKU is not changed. |
| Error | PARENT_WHITESPACEauto-fixed in processed result |
12 | 16 | 000210-L |
Parent | Parent "000210 " has leading or trailing spaces and does not exactly match any SKU. Without the spaces it unambiguously points to record #9 ("000210"). | Fixed automatically: the spaces are removed from Parent; the parent SKU is not changed. |
| Info | UNKNOWN_COLUMN |
— | — | — | Supplier note | The column "Supplier note" is not part of the built-in schema, so WooCommerce does not import it by default. Its values are kept unchanged. | If it is a custom field, rename the column to "meta:your_key" or choose "Import as meta data" on the column mapping screen. |
What cannot be checked without your store
- SKUs that already exist in the store. If a SKU from the file already exists in the store, the built-in importer skips the row unless "Update existing products" is enabled ("A product with this SKU already exists"). The file alone does not contain this information.
- Global attribute and term settings. Global attributes (Attribute N global = 1) depend on the attributes and terms configured in the store.
- How the database compares SKUs. Whether SKU lookups are case- and trailing-space-sensitive depends on the MySQL/MariaDB table collation.
- Plugin and theme conflicts. Plugins can change how rows are parsed through importer hooks (woocommerce_product_importer_*).
- Server limits. Upload size, PHP memory and execution time limits decide whether the import runs as one file.
- Images, categories, tags, shipping and tax classes. Image URL availability and the existence of tax classes are not checked.
- The column mapping screen. Columns can be remapped manually, or a previously saved mapping can be applied.