A customer orders the last ceramic lamp on your store at 9 PM. Two hours earlier, your shop assistant sold the same lamp at the counter. Nobody notices until the packing slip prints. Now you’re writing an apology and processing a refund.
That’s a stock sync problem, and it gets worse every time you add a channel. This guide explains how WooCommerce inventory sync works, where mismatches come from, and which method fits your store.
Quick Answer: WooCommerce inventory sync keeps stock counts identical across your store and every other system that changes them, such as an ERP, a warehouse tool, or a second store. You can do it with manual CSV updates, a custom API build, or a connector app. For most growing stores, a connector is the quickest to set up and the easiest to maintain.
What Is WooCommerce Inventory Sync?
WooCommerce deducts stock automatically on each sale. What it can’t see is stock that changes somewhere else, like a delivery received at your warehouse or a return processed in your ERP.
Inventory sync closes that gap. A change in one system is copied to the others, so every place that sells or counts stock shows the same number. If Odoo is your ERP, the WooCommerce Odoo connector does this in both directions, and we’ll look at how it works below.
You likely need sync if:
- You sell on WooCommerce and through a shop, marketplace, or second site
- Stock is tracked in an ERP or spreadsheet that staff edit by hand
- You’ve refunded an order because the item wasn’t actually there
- Someone spends part of every day comparing stock counts
What Stock Mismatch Really Costs
One oversold order is a nuisance. Ten a month is a pattern, and the cost lands in places most stores don’t track.
- Support time: every oversold order means emails, refunds, and sometimes a discount to smooth things over.
- Reviews: late or cancelled orders show up in ratings, and those stick around.
- Bad reorders: wrong counts push you to overbuy slow items and run short on best sellers.
- Staff hours: daily reconciliation feels small until you add up a month of it.
A Quick Example: One Store, One Warehouse
Picture a home decor store with a WooCommerce site and a warehouse run on Odoo. On Monday morning, a supplier delivery adds 200 lamps to Odoo. This is an illustrative case, but it happens in some form at almost every store.
- Without sync: WooCommerce still shows zero stock, the lamps stay hidden, and sales stall until someone edits the product by hand.
- With a 5-minute sync: the new count reaches the store within minutes, and orders start coming in again.
It works the other way too. When 30 lamps sell online by lunchtime, the warehouse system knows before the pickers start their shift.
Where Inventory Mismatches Come From
Most mismatches trace back to a handful of causes. Here’s what to look for.
| Cause | What goes wrong | Fix |
| Two systems edit the same product | The latest edit overwrites the other one | Pick one system as the owner of stock |
| Sync runs too rarely | Customers buy during the gap | Shorten the sync interval |
| Returns handled in one place only | Stock never goes back up | Sync order status both ways |
| Variants mapped wrongly | The wrong size or colour gets deducted | Map SKUs and attributes before launch |
| Failed syncs nobody sees | Errors run for weeks | Turn on sync logs and check them weekly |
How to Sync Inventory in WooCommerce: 3 Methods Compared
The right method depends on order volume, technical resources, and how many systems touch your stock.
| Method | Setup time | Ongoing effort | Best for |
| Manual CSV | Minutes | High, someone has to repeat it | Very low order volume |
| Custom API build | Weeks | Your developer maintains it | Unusual workflows |
| Connector app | Under a day | The vendor handles updates | Most growing stores |
Manual CSV updates
Export from one system, import into the other. It costs nothing and works for a few orders a week. Past that, the gap between updates is long enough for oversells to slip through.
Custom API development
A developer builds the sync on the WooCommerce REST API. You get full control, which helps with unusual workflows. You also own every fix when WooCommerce or your ERP ships an update.
A connector app
A ready-made connector sits between the two systems and runs the sync for you. Elsner’s WooCommerce Odoo connector, for example, covers:
- Inventory sync every 5 minutes by default, with an adjustable interval
- WooCommerce orders imported into Odoo as sales orders
- Customers matched or created in Odoo automatically
- Coupon import, update, and export
- A log of every sync attempt, so failures show up
- Multiple WooCommerce stores connected to one Odoo database
It supports Odoo 19 Community and Enterprise on Odoo.sh or on premise, and needs WooCommerce 5.0 or later. The price is $49.99, one time per Odoo version, and support replies within about 24 hours. If you need something the connector doesn’t cover, such as custom pricing rules, an Odoo development company can extend it for you.
How to Set Up WooCommerce Inventory Sync, Step by Step
Screens differ from tool to tool, but the flow below is typical for a connector like Elsner’s.
- Take a backup. Back up your Odoo database and your WooCommerce store first. A sync writes data in both directions, so you want a way back if something looks wrong.
- Install the module in Odoo. Add the connector from the Apps menu. It relies on the standard Sales, Inventory, and Invoicing apps, so make sure those are active.
- Create your WooCommerce API keys. In WooCommerce, open Settings, then Advanced, then REST API, and generate a Consumer Key and Consumer Secret. Give them read and write permissions, since stock changes travel both ways.
- Add your store in Odoo. Open the connector’s WooCommerce configuration, enter your store URL, and paste in the key and secret. Save it and confirm the connection works.
- Test with one product. Leave the interval at the 5-minute default to start. Change the stock on a single test product, wait for the next run, and check that the number matches on both sides. Then read the sync log.
How Often Should Inventory Sync Run?
There’s no universal number. Use these as a starting point and adjust after a few weeks of real orders.
- A few orders a day: every 15 to 30 minutes is usually fine
- Steady daily sales: every 5 to 10 minutes
- Sales events or high volume: as short as your server can handle
Shorter isn’t automatically better. Very frequent syncs add load to your server, so tighten the interval only where oversells actually happen.
5 Habits That Keep WooCommerce Stock Accurate
- Pick one boss for stock. Decide which system owns stock edits and stick to it.
- Test the ugly cases first. Try a partial refund, a cancelled order, and a variable product before going live.
- Read the sync log weekly. A silent failure that runs for a month costs far more than one caught on day two.
- Turn on low stock alerts. The WooCommerce inventory settings include email notifications for low and out-of-stock items.
- Keep both platforms updated. API behaviour changes between versions, and old connectors are the first thing to break.
Common Inventory Sync Mistakes to Avoid
Most sync problems are setup problems. These are the ones that show up again and again:
- Going live without a backup. One wrong mapping can overwrite real stock counts.
- Syncing the whole catalogue on day one. Start with a small group of products, confirm they behave, then widen the scope.
- Forgetting a sales channel. A point-of-sale terminal or marketplace that bypasses the sync will pull your counts out of line.
- Running two sync tools on one store. They end up overwriting each other’s updates.
- Leaving test products live. Dummy items with fake stock can reach real customers.
- Treating the default interval as final. Defaults are a starting point. Review them once you have real order data.
What to Look for in an Inventory Sync Tool
Whichever route you take, check a few basics before you commit:
- Two-way sync, so changes in either system reach the other
- Clear logs that show what synced and what failed
- An adjustable interval instead of a fixed schedule
- Support for variants and multiple stores if you need them
- Active updates, since both platforms keep changing
- A support team you can actually reach when a sync breaks
Conclusion
Accurate stock isn’t exciting, but it protects refunds, reviews, and your team’s time. Start by finding where your counts drift apart. Then pick the lightest method that closes the gap, whether that’s a tidy CSV routine, a custom build, or a connector. Whatever you choose, give one system ownership of stock and check the logs.
FAQs
How do I sync inventory in WooCommerce?
Enable stock management in WooCommerce, then connect the system that holds your other stock counts. For a single store, the built-in settings are enough. With an ERP or extra stores, use a connector app or a custom API integration to copy changes automatically.
Does WooCommerce sync inventory automatically?
It reduces stock when an order is placed. It doesn’t know about changes made elsewhere, such as warehouse receipts or ERP adjustments, unless another tool sends them over.
How often should WooCommerce inventory sync run?
Every 5 to 10 minutes suits most stores with steady orders. Smaller stores can sync less often, and stores running sales events may need shorter intervals.
Can I sync stock across multiple WooCommerce stores?
Yes. A connector that supports multiple store connections lets you configure each store separately and manage stock from one central system. Decide upfront whether stock is shared or split between stores.
Is there a WooCommerce inventory sync plugin?
Yes, several exist. Some handle only products, while connector apps like Elsner’s also cover orders, customers, and coupons. Check that any plugin logs failures and gets updated regularly.
Do I need a developer to set up inventory sync?
Not for a standard setup. Most connectors need only your store URL and the API keys from WooCommerce. A developer helps if you need custom pricing rules or routing across warehouses.




