The built-in WooCommerce product importer (Products → Import) often reports success even when variations lose their attributes or end up on an empty placeholder parent. This plugin checks the file before you import it.
Everything is free and runs in your browser. The file is read and checked in the admin page itself (a Web Worker); it is not uploaded to your server or anywhere else. All plugin features — including checking, store comparison, price updates, Excel picture uploads, and downloading the full corrected CSV — are 100% free with no account, licence key, or paid pass (files up to 50,000 product records and 50 MB are supported).
What it checks and does:
- Parent / variation links: missing, ambiguous or misspelt
Parent SKUs, variations placed before their parent, parents that are not variable, links to other variations.
- SKUs: duplicates, SKUs that differ only in letter case or spaces.
- Attributes: variation values that the parent does not offer (
L vs Large), attributes missing on the parent, duplicate combinations.
- Encoding and structure: UTF-8 only (other encodings are reported, never guessed), duplicate headers, broken quoting, up to 50,000 product records and 50 MB per file.
- Two safe automatic fixes: variations moved right after their parent, and outer spaces removed from
Parent when the match is unambiguous. Nothing else is changed: SKUs, prices and attributes are never rewritten.
- The complete corrected CSV (with or without UTF-8 BOM), an HTML report, report.json and changes.csv.
- Excel workbooks (.xlsx, .xlsm): choose the sheet, header row and range; saved formula values are used, formulas are not recalculated, macros are never run.
With WooCommerce active, and only when you click the buttons:
- Store catalogue. Reads the products and variations of your store through this site’s REST API, page by page (ID, SKU, type, parent, attributes and terms, prices, stock and backorders). Then:
- Compare with the store: rows the importer would skip because the SKU or ID already exists, variations whose parent is already in the store (attributes and values checked against that parent), global attributes and terms the import would create.
- Update prices and stock: compares the file’s SKUs with the catalogue and prepares CSV files for Products → Import with “Update existing products” that contain only the changed prices and stock.
The plugin never creates or changes products, attributes or terms itself.
- Pictures embedded in an Excel sheet. Pictures are linked to product rows by their position on the sheet. You choose which files to upload, confirm, and they are added to the media library one by one (each result is shown). The plugin then writes their media library URLs into the Images column of the corrected CSV and checks it again.
Documentation & Links
- Website & Online Checker: CatalogDock.org — check and prepare CSV or Excel files in your browser without installing anything.
- Documentation: CatalogDock Documentation — technical specification, batch splitting, and import rules.
- Troubleshooting Guides: WooCommerce Import Troubleshooting — fixes for invalid SKUs, unlinked variations, 504 timeouts, encoding, and images.
- Support: Email [email protected] or open a topic in the WordPress.org support forum.
Privacy
The plugin does not contact external services, does not track anything and does not use cookies of its own. The checked files never leave the browser tab. Requests go only to this site’s own REST API (the catalogue, which the logged-in user can read anyway, and the pictures the user chose to upload). Uploaded pictures are publicly reachable at their media library URLs, like any other attachment.
Source code and build
The JavaScript in build/ is not minified. Its TypeScript sources and the build script are included in the source/ folder of the plugin (see source/BUILD.md); the same code is used by the command-line version and the website of the tool.
Third-party code bundled in build/worker.js (licence texts in build/THIRD-PARTY-LICENSES.md):
- SheetJS Community Edition (xlsx) 0.20.3 — Apache License 2.0 — https://sheetjs.com/
- csv-parse and csv-stringify — MIT — https://csv.js.org/
- buffer, base64-js — MIT; ieee754 — BSD-3-Clause
React and ReactDOM are not bundled: the plugin uses the copies that ship with WordPress.