What needs to stay in sync

After the first import, titles, descriptions and images rarely change. What moves every day is stock and price, and sometimes whether an item is still available at all. Selling what your supplier ran out of yesterday means refunds and unhappy customers. So decide which fields the supplier controls (usually stock and cost price) and which you control (titles, descriptions, your margin).

Ask your supplier three things first:

  1. Is there a hosted feed URL (XML or CSV that always returns the current catalog), or only emailed files?
  2. How often is it refreshed?
  3. Which field is the stable product code, such as SKU or supplier ID? Without one, products can't be matched reliably on later runs.

Option 1: WooCommerce's built-in CSV importer (no plugin)

WooCommerce can update existing products from a CSV file. It matches rows by product ID or SKU.

  1. Go to Products → Export and export the columns you need, at least SKU, regular price and stock.
  2. In a spreadsheet, look up each SKU in the supplier's latest file (for example with XLOOKUP) and copy in the new stock and price. Add your margin with a formula.
  3. Keep only the SKU, price and stock columns, then save as CSV.
  4. Go to Products → Import, choose the file, tick Update existing products, map the columns and run it.
  5. Spot-check a few products whose stock you know changed.

This works for a small catalog updated weekly. It is only as current as your last round-trip, it is easy to paste a column one row out of line, and the built-in importer has no schedule and does not read XML.

Option 2: Scheduled sync from the supplier feed

If your supplier provides a feed URL, a plugin or service can re-read it on a schedule and update the matching products. Check these points whichever tool you choose:

  • Format: does it read the format your supplier actually sends?
  • Matching: does it match by a code such as SKU, not by title?
  • Frequency: how often can it run, and how long do runs take on your catalog size?
  • Where it runs: imports run by WP-Cron or server cron use your hosting's CPU and time limits. Large catalogs may need a real server cron job or a hosted service.
  • Safety: what happens to products already in your store, and to items the supplier drops?
  • Pricing rules: can it add your margin and round prices, or do you need a spreadsheet step?
  • Variations: does it update stock per variation (size, colour), not only the parent product?

Common choices include WP All Import Pro with its WooCommerce add-on (scheduled imports in the Pro version), Dropshipping XML for WooCommerce (cron sync in its PRO version) and hosted tools such as FeedPup. For a fair look at the first, read our WP All Import alternative comparison.

A safe rollout checklist

  1. Test on a staging copy or with draft products first.
  2. Run the first sync manually and compare five products against the supplier's file, including one variable product.
  3. Decide what "out of stock" should mean when the supplier only says in stock or out of stock: a fixed quantity, or zero.
  4. Consider a small stock buffer, so you stop selling before the supplier's last unit.
  5. Write down your markup rule, so you can tell a supplier price change from a mapping mistake.

Using FeedPup for scheduled WooCommerce sync

FeedPup is our tool for this job. Install the free plugin from WordPress.org and connect in WooCommerce → FeedPup. Paste the supplier's XML or CSV feed URL, confirm the suggested field matches, preview products and run a free draft test import. On a paid plan, FeedPup imports the catalog and re-reads the feed every 24 hours (Starter), 6 hours (Growth) or 2 hours (Pro). A run with no supplier changes makes no product writes.

Stock is updated with WooCommerce's standard stock functions, including per variation. Growth and Pro add pricing rules (a percentage, a fixed amount, a multiplier or different percentages by price range, plus rounding), a stock buffer and category mapping. FeedPup never overwrites or deletes products it did not import. It only asks for product access, never orders, customers or payments. Plans are on FeedPup for WooCommerce, and the first import is covered in how to import XML products into WooCommerce.