Import WPGet Pro
Menu

WooCommerce

Update Existing WooCommerce Products

Update WooCommerce products from a supplier feed without duplicates by matching on SKU and setting update permissions.

Most WooCommerce catalogues are imported once, then updated from supplier feeds (price, stock, images, categories). Getting unique identifiers and permissions right prevents duplicates. For price and stock-only feeds, see stock and price sync. See the WooCommerce importer. The common error is:

Not enough permissions to create record.
Not enough permissions to update record.
No Unique fields present.

How Import WP decides insert vs update

On the Permissions step you choose a unique identifier. For each row Import WP looks up an existing product with that identifier:

Lookup result Create enabled Update enabled Result
No match Yes — Insert new product
No match No — Error / skip — often “Not enough permissions to create record”
Match found — Yes Update existing product
Match found — No Error / skip — “Not enough permissions to update record”

The unique identifier search includes items in trash. Changing the identifier type or values between imports can create duplicates or appear to “lose” matches.

See also the core Permissions documentation.

Identifier When to use Template field
Product SKU Best default for most feeds Inventory → Product SKU
GTIN, UPC, EAN, or ISBN Supplier feeds keyed by barcode Inventory → GTIN, UPC, EAN, or ISBN
Product ID Updating from an export that includes WordPress IDs Use ID carefully; not always ideal for supplier feeds
Slug Stable slugs in the feed Product Fields → Slug
Custom identifier Combine columns when no single SKU exists Permissions → custom identifier from file

SKU setup

  1. Map Inventory → Product SKU.
  2. On Permissions, choose Product SKU as the unique identifier.
  3. Ensure every row that should update has a stable, unique SKU.
  4. Variation rows need their own SKUs (different from the parent).

GTIN setup

  1. Map Inventory → GTIN, UPC, EAN, or ISBN.
  2. On Permissions, choose GTIN, UPC, EAN, or ISBN as the unique identifier.
  3. Values must be unique per product (and per variation if used on variations).

SKU and GTIN only appear as unique-identifier options when those fields are mapped in the template.

Permissions step

Typical settings:

First import (create catalogue)

  • Unique identifier: Product SKU (optional but recommended)
  • Create enabled
  • Update optional
  • Delete usually off

Ongoing feed sync

  • Unique identifier: Product SKU or GTIN (must match the first import)
  • Create enabled if new products should be added
  • Update enabled
  • Optionally enable delete-missing-records only if you understand the impact on products and media

Update-only imports (stock / price sync)

When you only want to refresh stock or prices on products that already exist:

  1. Map SKU (unique identifier) plus the fields to change (Stock quantity, Regular Price, Sale Price, etc.).
  2. Permissions:
  • Create = disabled
  • Update = enabled
  • Optionally restrict update to Only the following fields (e.g. inventory / price fields)

If a SKU in the file does not exist on the site, the row will fail with a create-permissions error — expected for update-only mode.

Create new products and update existing ones

  1. Unique identifier = SKU (or GTIN).
  2. Enable Create and Update.
  3. Keep SKUs stable forever for products you want to update.

Skip existing products

To import only new products and never change existing ones:

  • Enable Create
  • Disable Update

Rows that match an existing unique identifier will not update.

Field-level update restrictions

Under Update permissions you can choose:

Option Meaning
All Fields No field restrictions
Only the following fields Allow-list of fields/patterns that may change
None of the following fields Block-list of fields that must not change

Useful WooCommerce field groups include pricing, inventory, product attributes, product gallery, and related products. This is how you update stock without overwriting descriptions or images.

Examples of why restrictions matter:

  • Feed sends empty image columns → without restrictions you might clear galleries
  • Feed sends partial attributes → without “keep existing attributes” or field limits you might wipe attributes

Common mistakes

Mistake Result
No unique identifier mapped “No Unique fields present” / duplicates
SKU mapped but Permissions still use a different ID Products never match; duplicates or create errors
Create disabled on a feed that includes new SKUs “Not enough permissions to create record”
Update disabled when you intended to sync “Not enough permissions to update record”
Changed unique identifier after first import Duplicates or no matches
Parent and variation share the same SKU Conflicts / unpredictable matching
Update by product name Fragile — names change; prefer SKU/GTIN
Empty SKU on some rows Those rows cannot match reliably

Updated 2026-09-07