WooCommerce catalog import documentation

How CatalogDock prepares, checks and updates catalog files for the built-in WooCommerce CSV importer (Products → Import): what each workflow reads, what it changes, what it leaves to you, and where its limits are.

Overview and architecture

Your file is processed in your browser

The file you choose is read by JavaScript in your browser tab and processed in a background Web Worker, so the page stays responsive on large catalogs. Its contents are not sent anywhere, and the page has no analytics scripts. The Excel reader is loaded only when you open an Excel file. Online purchase sends an order number, your access key and the SHA-256 fingerprint of the result to our server, never the file. If the optional network image check is enabled and you start it, image URLs are sent too. See the Privacy Policy.

Supported files

  • CSV: UTF-8, with or without a byte order mark (BOM), comma or semicolon delimiter. The delimiter, the BOM and the line endings of your file are kept in the corrected file.
  • Excel: .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.
  • Not supported: CSV files in other encodings (Windows-1251, Windows-1252, UTF-16) are refused with the position of the first invalid byte; save them as UTF-8 and check again. Old .xls, .xlsb, .ods and password-protected workbooks are not read.
  • Limits: up to 50,000 records and 50 MB per file. Generated parents count toward the record limit.

Output is for the built-in WooCommerce importer (Products → Import), not WP All Import or other importers. Rules are checked against WooCommerce 11.1.2.

Workflow 1: supplier price list mapping (CSV and XLSX)

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

Map non-standard supplier columns

Match the supplier’s headers to WooCommerce fields such as SKU, Name, Regular price, Stock and attributes. For each field use a source column, join several columns or set a constant, then preview the result before building the CSV.

Cleanup rules

  • Trim stray spaces.
  • Normalize prices and numbers with decimal commas and thousands separators: 1 299,50 becomes 1299.50.
  • Split a combined cell and keep the part you need; change list separators; map values.
  • Add a prefix or suffix; fill empty cells with a constant.

Supplier profiles

Save the column mapping and cleanup rules as a supplier profile in this browser, or export and import it as JSON to move it to another browser. Profiles 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.

Parents and variations from flat rows

When each supplier row is one variation, choose a group key and a parent SKU rule: variable parents are created and their variations linked automatically. Existing variation SKUs, prices and stock are preserved, and products are never grouped just because their names look alike. You can supply a store export or SKU list to detect conflicts with existing SKUs.

Pictures from Excel (DrawingML)

Pictures inserted over cells on the selected sheet are stored in the workbook as DrawingML drawings. The tool follows the sheet’s drawing to each picture and works out its row from the anchor geometry and the row heights saved in the file, not from the file name. That row is then matched with its record and SKU.

  • One picture on one product row is linked automatically.
  • Several pictures in one row, a picture spanning several rows and absolutely positioned pictures need your confirmation; the likely row is suggested, never applied silently.
  • Pictures on the header row, outside the data or on a row without a SKU are reported without a SKU.

Download pictures and manifest (ZIP) gives the original picture files (JPEG, PNG, GIF, WebP, BMP, TIFF, ICO), named after their SKU, and manifest.csv:

ColumnMeaning
fileFile name inside the ZIP
link_statusauto, confirmed, not_linked, needs_confirmation, outside_data or no_sku
sku, recordThe product the picture belongs to (empty until the link is resolved)
sheet, sheet_row, cellWhere the picture sits in the workbook
format, width, height, bytes, sha256What the file is

The tool does not upload pictures to your store and never writes the Images column. Upload the files to your media library or image hosting, then put the filenames or public URLs in Images (first value: main image, the rest: gallery). Excel “Place in Cell” pictures, pictures produced by the IMAGE() formula, linked pictures, charts and pictures on other sheets are reported but not extracted.

Workflow 2: validation, variations and variation-safe batches

For new products whose parents and variations are in the same file, linked by SKU, with local attributes. Check mode never generates or changes SKUs, deletes or merges products, changes types, guesses parents from names, or adds prices or attributes.

Parents must come before their variations

The WooCommerce importer reads the file from top to bottom. 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.

Fixed automatically

  • Variations listed before their parent are moved below it.
  • 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

  • Empty Parent, a parent missing from 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 names or values the parent does not have (L and Large are different) and duplicate combinations under one parent.
  • 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.

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

Variation-safe batches

Importing a large catalog in one run can hit the limits of your hosting, such as PHP max_execution_time or a proxy timeout, and end with a 504 Gateway Timeout. The full result therefore also comes as a ZIP of numbered CSV batches and IMPORT-ORDER.txt with the import sequence.

  • Batches target up to 500 records.
  • A parent and all its variations are never split between batches.
  • A single product group larger than 500 records stays whole, in one larger batch.

Smaller imports reduce the risk of a timeout. Server limits still apply, so no file split can guarantee a timeout-free import.

Workflow 3: delta price and stock updates

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

  1. Map the supplier’s new price list (a saved supplier profile reuses last week’s mapping).
  2. Add a fresh WooCommerce export from the same store. Products are matched by SKU; missing or ambiguous matches are reported.
  3. Choose Regular price, Sale price and Stock. Only changed values are written, in separate CSVs for each set of changed fields, each with SKU and just the columns it updates, so a price-only change cannot clear the stock.
  4. Review the comparison report, then import with “Update existing products” enabled.
  • Descriptions, images, categories and reviews are not written: update files contain no such columns.
  • Empty supplier cells keep current values by default; only Sale price has an explicit option to clear it. Zero is a value, not an empty cell.
  • Products missing from the new price list are not created, deleted or set to zero stock. Stock management and backorder settings are preserved.
  • Update files also come as a ZIP of parts of up to 500 records, with import instructions.

The tool does not connect to your store or run scheduled syncs: you export, compare and import each time.

What a passing check does not cover

A passing check confirms the structural checks for the supported scenario. A supplied store export is a 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 of your store first.