Prepare, validate and update your WooCommerce product CSV
Check, prepare and update your catalog before importing into WooCommerce. Automatically fix parent–variation links, map supplier price lists, and generate clean import batches directly on your device.
- Check Woo CSV — validate and auto-fix parent–variation relationships.
- Prepare supplier file — map a supplier price list (CSV or Excel) and build parents and variations.
- Update catalog — update prices and stock of existing products, compared with a fresh store export.
Your file stays in your browser. It is checked on your device and is not uploaded anywhere. Online purchase and the optional image URL check do talk to our server (never with your file): see Privacy.
Tested with WooCommerce 11.1.2 · Designed for the built-in CSV importer
Up to 50,000 records · 50 MB · UTF-8 CSV or Excel · free check of the whole file · free fixed sample of up to 50 records
Check your CSV
- A CSV for the built-in WooCommerce importer (Products → Import), UTF-8 with or without BOM, or an Excel workbook (
.xlsx,.xlsm, converted to CSV in this tab: up to 3,000,000 cells per sheet and 150.0 MB of decompressed data). - Limits per file: 50,000 records and 50,000,000 bytes (50 MB). A record is a CSV record after the header; parents built from a price list count too. Bytes are the actual size of the file.
- Free: the check of the whole file and a fixed sample of up to 50 records, whole product groups only. Nothing is uploaded: the file is processed in this browser tab.
Drag and drop a CSV or Excel file here
or
No file selected.
What it checks and fixes
Rules follow the built-in WooCommerce CSV importer (checked against WooCommerce 11.1.2) for new products whose parents and variations are in the same file, linked by SKU.
Fixed automatically
Parents before variations
A variation listed before its parent loses its attributes on import. Rows are reordered so each parent comes first; the rest of the file keeps its order.
Stray spaces in Parent
" TEE" becomes "TEE", but only when it then matches exactly one variable parent and nothing else changes. SKUs themselves are never edited.
Explained for you to decide
Missing or wrong parent
Empty Parent, a parent that is not in the file, a variation pointing to itself, to another variation or to a non-variable product.
Duplicate SKUs
Exact duplicates and SKUs that collide once spaces or letter case are ignored.
Attribute mismatches
Attribute names or values the parent does not have — L and Large are treated as different — and duplicate combinations under one parent.
File problems
Missing required columns, broken quotes, wrong delimiter, non-UTF-8 encoding, duplicate headers. Nothing is guessed or repaired.
Unsupported scenarios
Database IDs, global attributes and “Any…” variations are flagged separately: valid in WooCommerce, but not verifiable from the file.
Never done automatically
Generating or changing SKUs, deleting or merging products, changing types, guessing parents from names, adding prices or attributes.
Example
Type,SKU,Parent,Attribute 1 name,Attribute 1 value(s) variation,TEE-S,TEE,Size,S variable,TEE,,Size,"S, M" variation,TEE-M," TEE",Size,M
Type,SKU,Parent,Attribute 1 name,Attribute 1 value(s) variable,TEE,,Size,"S, M" variation,TEE-S,TEE,Size,S variation,TEE-M,TEE,Size,M
The parent TEE moved above its variations, and the space in " TEE" was removed. Prices, stock, descriptions and unknown columns are left exactly as they were.
Sample report
Generated by this checker from a synthetic demo CSV (fictional products, 57 records) with fixable problems and problems that need a decision. No customer data.
Full processing
Free for every file: the check of all records, every problem, the HTML and JSON reports, the change log and a fixed sample of up to 50 records. If the sample already holds the whole result, there is nothing to buy.
- Check your file for free and review what the full result contains (“What you get”).
- Buy online (payment by Paddle). The page confirms the payment with our server.
- Download the full corrected CSV, its UTF-8 BOM copy and the ZIP of import batches. Downloading the same result again is free during the 30 days.
Paying unlocks the download of a result that already passes every check. A full result exists only when no problem remains after the automatic fixes: problems that need a decision (such as a missing parent or L vs Large) are listed for free, never guessed and never fixed by paying.
Email button does not open anything? Write to drakkar.wave@gmail.com
FAQ
Which CSV files are supported?
Files for the built-in WooCommerce product importer (Products → Import) in UTF-8, with a comma or semicolon delimiter, where new variable products and their variations are in the same file, variations point to their parent by SKU in the Parent column, and attributes are local. Excel workbooks are converted in the browser. Supplier price lists are supported through “Prepare supplier file” (column mapping, optional parents and variations), and price and stock updates by SKU through “Update catalog”. Files for WP All Import or other importers and updates by database ID are not supported.
Is my file uploaded to a server?
No. The file is read and checked by JavaScript in your browser tab (in a background worker). The page does not send its contents anywhere and has no analytics scripts. The contact buttons only open your email app or Telegram; they never attach your file. Online purchase sends only an order number, your access key and the SHA-256 fingerprint of the result to our server; the optional image URL check sends the image URLs. See Privacy below.
What is included in the free sample?
Up to 50 records of the result, as whole groups: a parent with all of its variations (parents built from a price list included), or a standalone product. A group larger than 50 records is never cut, so it cannot be in the sample; the page says so. Only groups that pass every check after the automatic fixes are included, and the sample is re-checked before download. The report always covers the whole file.
What should I do about problems the tool does not fix?
Each one is listed with its record number, SKU, field and a recommended action. Correct them in your source data and check again. Full processing applies the automatic fixes to the whole file; problems that need a decision stay your decision, and the report shows exactly where they are. Unsupported scenarios are valid WooCommerce features this tool cannot verify from the file — test them on a staging copy of your store.
Does a passing check guarantee the import will work in my store?
No. It confirms the structural checks for the supported scenario. Rules are verified against WooCommerce 11.1.2 (on WordPress 7.1.2). SKUs that already exist in your store, global attribute settings, database collation, plugins, server limits, images and the column mapping screen are outside what a file check can see. Always test on a staging copy first.
Privacy, terms and refunds
Privacy
- Your files are never uploaded. CSV files, Excel workbooks and store exports are read and processed by JavaScript in your browser tab (a background worker). Their content, SKUs and prices are not sent anywhere. Supplier profiles are stored in this browser only (IndexedDB).
- The site has no analytics or advertising scripts and sets no tracking cookies. The hosting provider (Netlify) serves the pages and keeps its usual access logs.
- Online purchase. Payment is processed by Paddle, which collects your payment details and email under its own privacy policy. Our server (a Cloudflare Worker with a Cloudflare D1 database) stores: an order number, the Paddle transaction and customer IDs, the SHA-256 of your access key (never the key itself), and the SHA-256 fingerprints of the results you unlocked (never the files). The access key is kept in this browser's local storage.
- Restoring a purchase. Your email is sent to our server to look up your purchase at Paddle and to email you a one-time code. The server keeps only a keyed hash of the email next to the hashed code, for 1 day.
- Optional image URL check (only when you start it, after a purchase): the image URLs of your file and the SHA-256 of the checked file are sent to our server, which requests those URLs from their hosts. The file itself is not sent.
- Rate limits count requests under a keyed hash of your IP address (and, for restoring, of the email), never the address itself. Server logs contain no file data, keys or codes.
Terms
- The free check covers every record of a supported file (up to 50,000 records and 50,000,000 bytes) and shows every problem found. The free sample holds up to 50 records, whole product groups only.
- One purchase ($19) unlocks the full corrected result — the CSV, its UTF-8 BOM copy and the ZIP of import batches — for up to 3 different results within 30 days of the payment. During those 30 days downloading the same result again, in any format, is free; after that the purchase no longer unlocks downloads. A full result exists only for a file that passes every check after the automatic fixes; paying never removes remaining problems.
- Our order process is conducted by our online reseller Paddle.com. Paddle.com is the Merchant of Record for all our orders. Paddle provides all customer service inquiries and handles returns.
- The tool checks the structure of the file for the built-in WooCommerce importer. It does not check your store (existing SKUs, attributes, plugins, server limits) and does not import anything. Always test the import on a staging copy first. The check and the fixes run in your browser; the purchase unlocks a download, it is not copy protection.
Refunds
- Paddle.com is the Merchant of Record and handles refund requests and payments. Contact us (drakkar.wave@gmail.com) or Paddle with your order number; describe what went wrong with the file. For questions regarding your files and orders, we typically reply within 24–48 hours.
- After a full refund or a chargeback the purchase is revoked: new results can no longer be unlocked and downloads through it stop. Files already downloaded stay with you.
- Check the free report and sample first: they show exactly what the full result contains before you pay.