Keeping supplier stock updates separate from product content
Guide. Published 14 October 2026.
A supplier stock refresh should change only the fields the supplier owns, normally stock quantity and stock status, and nothing else. When it re-creates a product instead, it replaces the descriptions, prices and images your team has corrected. The fix is to decide in advance which fields the supplier owns and which your team owns, to match products by SKU, and to let the refresh change only the first group.
In short
- Stock and product content are different kinds of data, so keep them apart.
- Let the supplier own stock quantity and stock status. Let your team own descriptions, images and categories.
- Match products by SKU, never by title, and decide in advance what happens to products that do not match.
- Test on a private copy, check a sample of products before and after, keep a log and take a backup before the first live run.
Why a refresh can undo your team's edits
Stock and product content are different kinds of data. Stock quantity changes often, and the supplier is the one who knows it. A description, a photo or a corrected price changes rarely, and your team is the one who knows what is right. Trouble starts when one import handles both.
If a refresh deletes and re-creates a product, or cannot find the existing product and creates a new one, the product comes back with whatever the supplier's feed holds: its description, its image, its price. The corrections your team made are gone, and often nobody notices until a customer does.
Two causes are common:
- The refresh writes every field it receives, not only stock.
- The refresh matches products by title, so when a title has been corrected it no longer finds the product and makes a duplicate.
Decide which fields the supplier owns
Before anything is built, list the product fields and decide who owns each one. The supplier owns the first group, and the refresh may change only that group. Your team owns the rest, and the refresh leaves it alone. For example:
| Field | Owned by | Refresh changes it? |
|---|---|---|
| Stock quantity | Supplier | Yes |
| Stock status | Supplier | Yes |
| Description | Your team | No |
| Images | Your team | No |
| Category | Your team | No |
| Regular price | Your decision | Only if you decide the supplier sets it |
Price is a decision for your shop. If the supplier's price is your cost rather than your selling price, you usually do not want the refresh copying it over what customers pay. If you do want the supplier to set prices, decide that on purpose and write it down.
Where WooCommerce manages stock for a product and the feed gives quantities, WooCommerce works out in stock or out of stock from the quantity. If the feed gives only in stock or out of stock, the refresh sets the status itself.
Match products by SKU, and decide the exceptions in advance
The refresh has to know which supplier row belongs to which product in your shop. Use a stable identifier, normally the SKU, and never the product title. Titles are what your team corrects, and a supplier can rename a product at any time. A SKU is a code for one product, and WooCommerce does not allow two products to share one. For products with variations, match on the variation's SKU, because stock is held per variation.
Then decide what happens when the match fails. Agree the rule before the first run, and have the refresh log every exception instead of deleting anything:
- A SKU in the feed with no product in your shop. Skip it, or create it as a draft for your team to complete. Do not publish it automatically.
- A product in your shop that the supplier no longer lists. Do not delete it. Flag it, and decide whether it becomes out of stock, is hidden or is kept as it is. Apply this rule only to products you source from this supplier, so your own stock and other suppliers' products are never marked out of stock because they are missing from this feed.
- A blank, duplicated or odd-looking SKU. Skip it and log it, so someone can fix the source.
The exception log is a to-do list for your team. It is a better outcome than a refresh that quietly removes products.
What the import depends on, and what to ask
A stock import is only as good as what it is given. It depends on:
- The supplier giving you feed or API access.
- The feed being available and stable.
- The supplier's SKUs and stock data being reliable, and the SKUs in your shop matching them.
Access can be slow to arrive, so ask early, before the rest of the work is waiting on it.
Ask your supplier
- Do you offer a feed or API for stock, and in which format?
- How often is it updated, and is there a limit on how often it may be requested?
- Does it give exact quantities, or only in stock and out of stock?
- Are SKUs permanent? Are codes ever changed or reused?
- How do you mark a product you have discontinued?
- Who should be contacted when the feed is down?
Ask your developer
- Which fields will the refresh change, and which will it never touch?
- How are products matched?
- What happens to unmatched, missing and discontinued products?
- What happens if the feed arrives empty or incomplete?
- Will there be a log of what each run changed?
Run it safely and check the result
- Take a backup before the first live run, of both the database and the files, so a mistake can be undone.
- Test on a private copy first. Run the refresh against a copy of the shop, not the live shop.
- Check a sample before and after. Choose products from different categories, including some your team has corrected. Note their stock, description, price and images, run the refresh, then compare. Only the fields the supplier owns, such as stock quantity and stock status, should have changed.
- Keep a log of what changed. For each run, record the products changed, the old and new stock values, and everything skipped or flagged.
- Decide how often it runs. That depends on how quickly the supplier's stock moves and what an oversold product costs you. There is little point in running more often than the supplier updates its feed.
Make sure an empty or half-complete feed stops the refresh. It should never be read as "everything is out of stock". Keep checking a few products now and then, since a feed can change without notice.
How we can help
We build imports from supplier feeds or APIs that keep stock up to date without wiping the descriptions and prices your team has corrected. We check what data your supplier provides and agree with you which fields the import changes. We build on a private copy that you approve before go-live. See supplier stock on our ecommerce page for how we approach it, and how we look after shops for keeping supplier connections working once the shop is live.
Tell us where your products come from and what has gone wrong, and we will quote from your brief.
Planning a shop launch? Read the WooCommerce launch checklist, or browse all our guides.
Have a project in mind?
A new website, a shop, a design refresh or a feature your site is missing: tell us a little about what you need and we will talk through the options.