Skip to content
CatalogImport Fix

Existing product updates

Update WooCommerce prices and stock by CSV.

Match the right existing products, change only approved fields, and test the outcome before updating a full catalog.

Reviewed 11 October 2026Core importer · Two-row update example

Written and maintained by Catalog Import Fix. How to assess our guides and examples.

Quick answer: export the target products first, keep their exact existing SKU values, and prepare SKU,Regular price,Stock for a price-and-quantity update. In Products → Import, select Update existing products and review the mapping. Start with two products on staging. Use a numeric Stock value for managed quantity; a mapped blank is a different instruction.

This guide concerns the built-in WooCommerce CSV importer and existing simple products that you deliberately want to manage by quantity. It is a narrow update example, not a new-product starter or a stock synchronization service. Plugins, variation-level inventory, and supplier integrations need their own reviewed mapping.

Keep the matching SKU unchanged

A price update needs two separate decisions: which record you mean, and which value should change. An unchanged SKU from your store export answers the first. An approved replacement price or quantity answers the second. Keep an original export alongside your edited file so you can compare both.

Store SKUs as text in your spreadsheet. A code such as 00124 must not become 124. Do not swap in a supplier's different identifier or invent a replacement SKU during this job. Compare each selected row with the product you can open in the store.

WooCommerce's current documentation describes update matching by ID or SKU and additional version-dependent matching options. This example uses exact existing SKUs and makes no promise about new-product creation. Review any skipped-row reason instead of assuming the row updated. See the official update workflow.

Download a two-row price and stock update example

Download update example

SKU,Regular price,Stock
REPLACE-WITH-EXISTING-SKU-1,24.90,12
REPLACE-WITH-EXISTING-SKU-2,18.00,0

Replace both placeholder SKUs with identifiers already present in your staging store. The prices and quantities are illustrative too. The first row proposes a regular price of 24.90 and an inventory quantity of 12; the second proposes 18.00 and quantity 0. These are target quantities, not “add 12” or “subtract 0” adjustments.

For a worked comparison, suppose the first existing product has a regular price of 22.00 and quantity 8. Record that before state. After the test, inspect whether its regular price is 24.90 and its quantity is 12, while its name, images, status, and SKU agree with the original. If those comparisons do not pass, stop the batch.

The file omits Published, product names, descriptions, categories, and images because they are outside this update. Adding Published=-1 would introduce a product-status change; it is not a harmless label for a test update. Use a staging copy for testing instead.

Does the CSV need a “Manage stock?” column?

The core CSV schema uses Stock for the quantity and stock-management behavior. It does not list a separate Manage stock? CSV header. Do not copy a product-editor checkbox label into the file and assume the importer recognizes it. An extension may define another format. See the official core schema.

Stock values are different update instructions
Input or mapping choiceMeaning in this workflowReview before use
Stock=12Set a numeric quantity and enable stock management.Is 12 the approved available quantity for this exact product?
Stock=0Set zero quantity while retaining quantity management.Inspect the existing backorder policy and resulting availability.
Mapped blank StockDisable stock management; it is not the same as zero.Use only when that change is intended.
Stock omitted or set to Do not importExclude stock from the requested update.Use for a price-only batch and verify the existing inventory afterward.

The numeric-versus-blank distinction is stated in WooCommerce's schema and implemented in the core importer's stock parsing. A missing supplier quantity therefore needs a decision, not an automatic conversion to blank or zero. Split mixed-intent rows into separate files when one group should preserve stock and another should change it.

Map only the fields you intend to change

For a price-only job, make a smaller file containing SKU,Regular price. For a quantity-only job, use SKU,Stock. If you retain extra columns for your own notes, set them to Do not import in WooCommerce. Review every mapping rather than relying on recognized headers alone.

Write down the agreed scope before importing: for example, “These two existing simple products, regular price and managed quantity only.” Keep the matching SKU separate from fields you are changing. If another field appears mapped, resolve it before running the importer.

Test a small batch and retain a recovery reference

  1. Back up the store and use staging. Save an untouched product export and a note of the current price, quantity, stock-management setting, and backorder policy.
  2. Replace the two placeholder SKUs and values. Save the edited copy as UTF-8 CSV. Inspect the saved text for changed identifiers or extra columns.
  3. Run the free CSV checker, then review each warning in the context of an update.
  4. Choose Update existing products in WooCommerce. Confirm the SKU, Regular price, and Stock mapping; ignore fields outside the agreed scope.
  5. Run the small import and save its report. Open both products and compare the before and after values, including fields expected to stay unchanged.
  6. Once staging matches the plan, prepare a current live export and repeat the reviewed workflow in small batches. Account for orders or other inventory changes that occurred since the source data was prepared.

The original CSV is a comparison and recovery reference, not a complete store backup or an automatic undo button. Test any reverse update on staging too. Re-importing an old stock snapshot into a trading store can overwrite newer inventory changes.

Diagnose an update that did not match the plan

Use the observed result to choose the next check
Observed resultWhat to inspectNext step
Row skippedUpdate mode, the exact existing SKU, and the import report.Resolve the reported matching or validation issue on one row.
Wrong product changedWhether the identifier belongs to the intended store record.Stop further batches and compare against the untouched export.
Quantity management disabledA blank Stock cell was mapped.Decide whether to restore a numeric quantity or omit stock from this job.
Regular price changed, displayed price unexpectedThe product's other price settings and the intended merchandising result.Review the product before adding more price fields to the update.
Quantity differs after the importImport outcome and any concurrent inventory activity.Reconcile the source timestamp with orders and other stock updates.
Unrelated fields changedAll mapped columns, including blanks.Narrow the file and mapping, then repeat the staging comparison.

What can the free checker verify?

It checks CSV structure and common field problems locally in your browser. This update example intentionally omits Name and Images, so it can produce warnings about absent names and images even when there are no file-level errors. Review those warnings; do not add blank columns merely to hide them.

The checker cannot connect to your store, prove that a placeholder SKU exists, confirm the importer mode or mapping, observe concurrent orders, or guarantee which product changes. A clean file report is one step before the staging test.

Pass condition for this example

The two intended existing products match. Their regular prices and quantities equal the approved target values, quantity management behaves as intended, and the comparison reveals no unexplained changes. The import report contains no unresolved skipped or failed row.

If you need help preparing a narrow update file, request a scoped review with a redacted row, the intended fields, and the import report. Keep account credentials and private customer data out of that request.

References reviewed 11 October 2026: WooCommerce product CSV importer and exporter, official CSV schema, and core importer source. Check your installed version and any extension-specific importer documentation.