Skip to the checker

From supplier price list to a safe WooCommerce import

Turn a supplier’s CSV or Excel file into a product CSV for the built-in WooCommerce importer: parents and variations checked and linked, large catalogs split into import batches, weekly price and stock changes kept small. Everything runs on your device.

  • Prepare supplier fileMap a supplier price list (CSV or Excel) to WooCommerce columns and build parents and variations. Pictures placed on the Excel sheet are saved as a ZIP with a manifest that links each file to its row’s SKU.
  • Check Woo CSVVariations listed before their parent are reordered and stray spaces in Parent removed; anything else is explained for you to decide. Numbered batches of up to 500 records never separate a parent from its variations; a larger product group stays in one larger batch. Smaller imports reduce the risk of a timeout.
  • Update catalogCompare this week’s price list with a fresh store export: only the prices and stock that changed are written, by SKU. Nothing is created or deleted.

Your file stays in your browser. It is checked on your device and is not uploaded anywhere. Online purchase talks to our server; an optional image URL check does too, if enabled and started by you (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

What do you want to do?

Up to 50,000 records · 50 MB · CSV or Excel · free check

Drag and drop a CSV or Excel file here

or

No file at hand?

Delimiter
Formats and limits
  • 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 files are processed in this browser tab.

No file selected.

What it checks and fixes

Three workflows for the built-in WooCommerce CSV importer: prepare a supplier file, check a new catalog and split it into safe batches, or update the prices and stock of products already in your store.

01 · Prepare a new catalog

Prepare supplier file

Turn a supplier’s CSV or XLSX price list into WooCommerce columns, products and variations.

Map the supplier’s columns

Match non-standard headers to WooCommerce fields such as SKU, Name, Regular price, Stock and attributes. Use a source column, join columns or set a constant, then preview the result. Save the mapping as a profile for the next price list.

Clean up values with rules you choose

Trim spaces, normalize prices and numbers with decimal commas and thousands separators, and split a combined cell to keep the part you need. For example, 1 299,50 becomes 1299.50. You can also change list separators, map values, add a prefix or suffix, and fill empty cells with a constant.

Build parents and variations from flat rows

When each supplier row is one variation, choose a group key and a parent SKU rule. The builder creates variable parents and links their variations automatically. Existing variation SKUs, prices and stock are preserved; products are not grouped just because their names look alike.

Take pictures out of Excel

Export pictures placed on the selected Excel sheet as a ZIP with manifest.csv recording their product SKU and source row. Review ambiguous matches; unresolved pictures are flagged without a SKU. Upload the files to your media library or image hosting, then put the filenames or public URLs in Images. Excel “Place in Cell” pictures are not supported.

02 · Check and import in batches

Check Woo CSV & Safe Batches

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.

Database IDs, global attributes and “Any…” variations are flagged separately: valid in WooCommerce, but not verifiable from the file. Check mode never generates or changes SKUs, deletes or merges products, changes types, guesses parents from names, or adds prices or attributes. Use the supplier mapper to prepare data with rules you choose.

Smaller imports, whole product families

The full result includes a ZIP of numbered CSV batches and IMPORT-ORDER.txt with the import sequence. Batches target up to 500 records, keeping each parent together with all its variations. A single group larger than 500 stays in one larger batch.

Smaller imports reduce the risk of a 504 Gateway Timeout on your hosting. Server limits still apply, so no file split can guarantee a timeout-free import.

Example

Before
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
After
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. In this check-and-fix workflow, prices, stock, descriptions and unknown columns are left exactly as they were.

03 · Keep an existing catalog up to date

Update catalog

Handle weekly price and stock changes without importing the whole catalog again.

Compare with a fresh store export

Map the latest supplier price list, then add a fresh WooCommerce export from the same store. Products are matched by SKU; missing or ambiguous matches are reported for you to review. Nothing is created or deleted.

Write only what changed

Choose regular price, sale price and stock. Only changed values are written, in separate CSVs for each set of changed fields. Each file contains SKU and just the columns it updates, so a price-only change cannot clear the stock.

Keep your store content intact

Descriptions, images, categories and reviews stay untouched. Update files contain no columns that overwrite or reset them. Import the files with WooCommerce’s “Update existing products” option; the tool does not write directly to your store.

Empty supplier cells keep current values by default; clearing Sale price is an explicit choice. Products missing from the new price list are never deleted or zeroed, and stock management and backorder settings are preserved. Review the changes before importing.

Sample report

Generated by this checker from a synthetic demo CSV (fictional products, 58 product records) with problems the tool fixes by itself: variations listed before their parent and stray spaces in Parent. After 8 automatic fixes no blocking problems remain; the free sample holds 50 of the 58 records. No customer data.

Open sample reportDownload demo CSV

Full processing

For preparing and checking import files: the check of all records, every problem, the HTML and JSON reports, the change log and a fixed sample of up to 50 records are free. If the sample already holds the whole result, there is nothing to buy.

$19
one purchase: up to 3 different results within 30 days, up to 50,000 records each

Before you buy, read the Terms of Service, Privacy Policy and Refund Policy.

  1. Check your file for free and review what the full result contains (“What you get”).
  2. Buy online (payment by Paddle). The page confirms the payment with our server.
  3. 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.

“Update catalog” is free: download the comparison report and the price and stock update files, including their ZIP, without a purchase. The paid download above applies to full corrected import files from “Prepare supplier file” and “Check Woo CSV”.

Send an email

Email button does not open anything? Write to support@catalogdock.org

FAQ

Which CSV files are supported?

Use “Prepare supplier file” for non-standard supplier columns, “Check Woo CSV” for a file already in WooCommerce columns, or “Update catalog” for price and stock changes by SKU. CSV must be UTF-8, with a comma or semicolon delimiter. Each file can contain up to 50,000 records and 50 MB; generated parents count toward the record limit.

The structural check supports new variable products with their variations in the same file, parents referenced by SKU and local attributes. Global attributes, “Any” variations and references by database ID need checks outside this workflow. Output is for Products → Import, the built-in WooCommerce importer, not WP All Import or other importers.

Can I use an Excel workbook instead of CSV?

Yes: .xlsx and .xlsm. Choose the sheet, header row and range, preview the rows and optionally skip hidden rows. Formula cells use their saved values; formulas are not recalculated, macros are never run and external workbook links are not followed. Old .xls, .xlsb, .ods and password-protected workbooks are not supported.

Do I have to set up the same supplier every week?

Save your column mapping and cleanup rules as a supplier profile in this browser. Profiles can also be exported and imported as JSON to move them to another browser. They contain settings, not product rows. If the supplier changes the headers, review the detected changes and confirm the mapping again. A downloadable mapping log shows which cell values were changed.

Will Excel pictures appear in my store automatically?

No. Download the pictures placed on the selected sheet as a ZIP with manifest.csv, which links each resolved picture to its row and SKU. Review ambiguous matches; unresolved pictures are flagged without a SKU. Upload the pictures to your media library or image hosting yourself, then fill the Images column with filenames or public URLs. “Place in Cell” pictures and pictures generated by Excel’s IMAGE formula are not extracted.

The Images report also distinguishes web URLs, media-library filenames and local file paths. Recognizing a URL is not proof that the image is reachable or that WooCommerce can download it.

How do safe batches help with import timeouts?

The import ZIP contains numbered CSV files and IMPORT-ORDER.txt. Import them in that order. The target is 500 records per batch; a parent and all its variations stay together, so a single group larger than 500 remains in one larger file. Smaller imports reduce the risk of a 504 Gateway Timeout, but cannot guarantee that your hosting will complete an import.

What can Update catalog change in my store?

Compare a fresh export from the same store with the supplier’s new price list. Downloads contain only SKU and changed Regular price, Sale price or Stock fields, in separate files for each set of changed fields. Descriptions, images, categories and reviews are not written. Empty cells keep current values by default; only Sale price has an explicit option to clear it. Zero is a value, not an empty cell. Missing products are not created, deleted or set to zero stock.

Review the comparison report, then import with “Update existing products” enabled. The tool does not connect to your store or run scheduled syncs: you export, compare and import each time. It does not switch stock management or backorder settings. Update files also come as a ZIP of parts of up to 500 records, with import instructions.

Is my file uploaded to a server?

No. Files are read and processed by JavaScript in your browser tab (in a background worker). The page does not send their contents anywhere and has no analytics scripts. The contact buttons only open your email app; they never attach your file. Online purchase sends an order number, your access key and the SHA-256 fingerprint of the result to our server. If the optional network image check is enabled and you start it, image URLs are sent too. See the Privacy Policy for payment and data details.

What is included in the free sample?

For “Prepare supplier file” and “Check Woo CSV”, up to 50 records of the result, as whole groups: a parent with all of its variations (generated parents 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 covers the whole file. If the sample holds the whole result, there is nothing to buy.

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). When building parents and variations, you can supply a store export or SKU list to detect conflicts with existing SKUs. This checks the supplied snapshot, not the live store. Global attribute settings, database collation, plugins, server limits, image availability and the importer’s column mapping still need checking. Always test on a staging copy first.