# Shopify and WooCommerce inventory sync, explained

URL: https://360iss.com/guides/shopify-woocommerce-inventory-sync/ · Author: Samar Khader · Last updated: 2026-10-08

To sync inventory between Shopify and WooCommerce reliably, pick one system as the source of truth for stock, push every sale and adjustment to it, and let it update every channel. Use webhooks for speed, scheduled reconciliation to catch what webhooks miss, and a small safety buffer on fast-moving products to prevent overselling.

## Why is syncing inventory between Shopify and WooCommerce hard?
It is hard because each platform keeps its own stock count, sales happen on both at once, and updates between them are never truly instant. Two customers can buy the last unit on different stores within seconds. Without a clear rule for which number is correct, counts drift and you end up overselling or hiding stock.

The usual symptoms are familiar to anyone running two stores:

- Orders for items that are not actually on the shelf.
- Products showing out of stock on one store while units sit in the warehouse.
- Staff fixing counts by hand at the end of the day.
- Returns, damaged goods and manual adjustments that reach one store but not the other.

Most of these problems come from the design of the sync, not the platforms. Shopify and WooCommerce both expose the data you need. The question is who owns the number.

## What is a single source of truth for inventory?
A single source of truth is the one system whose stock count is always treated as correct. Every sale, return, receipt and adjustment is recorded there first, and every sales channel receives its available quantity from it. It can be Shopify, WooCommerce, an inventory or ERP system, or a small custom service.

How to choose:

- **One main store, one secondary.** Make the main store the source of truth if most sales and stock work happen there.
- **Warehouse or ERP already in place.** Let that system own stock and treat both stores as channels.
- **Several channels and locations.** A dedicated inventory system or a custom sync service usually works better than making one store do everything.

Whatever you choose, write it down and make sure your staff adjust stock in that system only. A sync design falls apart the moment someone edits counts directly in the secondary store.

## Should you use webhooks or polling for inventory sync?
Use both. Webhooks send a notification the moment an order or stock change happens, which keeps channels close to real time. Polling checks on a schedule, which is slower but catches anything a webhook missed. A reliable sync uses webhooks for speed and scheduled reconciliation for correctness.

| Approach | How it works | Strengths | Weaknesses |
|---|---|---|---|
| Webhooks | The platform calls your endpoint when something changes | **Fast**, efficient, no wasted calls | Can be delayed, duplicated, arrive out of order or fail |
| Polling | Your system asks for changes on a schedule | Simple, predictable, easy to recover | Slower, uses more API calls, can hit rate limits |
| Webhooks plus reconciliation | Webhooks for live updates, scheduled full comparison | **Fast and self-correcting** | More to build and monitor |

Both platforms document their webhook and API options: see [Shopify's developer documentation](https://shopify.dev/) and the [WooCommerce site](https://woocommerce.com/) for its REST API and webhooks. Design your handlers so that processing the same event twice does not change stock twice.

## How do you prevent overselling across channels?
Prevent overselling by reserving stock as soon as an order is placed, pushing the new available quantity to every channel quickly, and holding back a small buffer on products that sell fast or run low. No sync is instant, so the buffer covers the seconds or minutes between a sale and every channel catching up.

Practical controls that work together:

1. **Decrement on order, not on fulfilment.** Stock should drop when the order is placed, so other channels stop selling it.
2. **Safety buffers.** Show slightly less than you have on hot items or low stock, for example holding back one or two units. Tune this per product.
3. **Low-stock thresholds.** Below a set level, some merchants show the item on one channel only.
4. **Handle cancellations and returns.** Put stock back only when the return is actually received and checked.
5. **Alert on conflicts.** If an order arrives for stock that is not there, flag it immediately for a person to resolve.

Buffers trade a little lost revenue for fewer cancelled orders and unhappy customers. Most merchants find that trade worth it on their fastest movers.

## How do you sync inventory across more than two channels?
Use a hub-and-spoke design. The source of truth sits in the middle, and each channel, whether Shopify, WooCommerce, a marketplace or a point-of-sale system, is a spoke that sends sales in and receives available stock out. Channels never update each other directly, which keeps the logic in one place.

Things to plan for as channels grow:

- **Consistent SKUs.** Every product and variant needs the same SKU everywhere. Mismatched SKUs are the most common cause of silent sync errors.
- **Multiple locations.** Decide which warehouse or store location feeds which channel.
- **Bundles and kits.** A bundle's stock depends on its components, and the sync has to calculate it.
- **Accounting.** Inventory value and cost of goods often need to reach your accounting system too. Our guide on [QuickBooks and CRM integration](https://360iss.com/guides/integrate-quickbooks-with-crm/) covers similar patterns.

This is standard [system integration](https://360iss.com/services/system-integration/) work, and it pays to design it once properly rather than patching each new channel.

## Should you use a sync app or build a custom integration?
Start with an existing app or connector if your setup is simple: a few hundred SKUs, two channels, one location and no unusual rules. Consider a custom integration when you have bundles, several locations, a warehouse or ERP system, strict accounting needs, or when the app's rules no longer match how you sell.

| Factor | Off-the-shelf sync app | Custom integration |
|---|---|---|
| Setup time | Depends on configuration and testing | Depends on scope and testing |
| Upfront cost | Low, usually a monthly fee | Higher, a one-time build |
| Fit to unusual rules | Limited to what the app supports | **Built around your rules** |
| Control and visibility | Depends on the vendor | Full logs and alerts you own |
| Maintenance | Vendor handles platform changes | You or your partner handle them |

There is a middle option. Low-code tools can handle moderate workflows; our comparison of [n8n vs Zapier vs Make](https://360iss.com/guides/n8n-vs-zapier-vs-make/) explains where they fit. For the budgeting side of a custom build, see [how much custom software costs in Canada](https://360iss.com/guides/custom-software-cost-canada/).

## Frequently asked questions
### Can Shopify and WooCommerce sync inventory without a third-party tool?
Not natively. Neither platform syncs stock with the other out of the box. You need either an app or plugin that connects them, a low-code workflow, or a custom integration that uses both platforms' APIs and webhooks to keep counts aligned.

### How often should inventory sync between stores?
Live updates should arrive within seconds to a few minutes through webhooks. On top of that, run a scheduled reconciliation, often hourly or nightly depending on volume, that compares counts across systems and corrects any drift. Fast-moving catalogues usually need more frequent reconciliation.

### What should happen if an oversold order still comes through?
Treat it as an exception for a person to handle. Flag the order, check whether stock exists elsewhere or is arriving soon, and contact the customer quickly with options. Then look at why it happened, since repeated oversells usually point to a sync gap or a buffer that is too small.

### Does inventory sync need to include our accounting system?
Often, yes. If you track inventory value or cost of goods, sales and adjustments need to reach accounting with the right SKUs and costs. Many merchants start with stock sync between stores and add accounting later, but it helps to design for it from the beginning.

### How do we know if our current sync is reliable?
Compare stock counts across every channel and your warehouse on the same day, and track oversells, manual corrections and failed sync events over a month. If staff regularly fix counts by hand, the sync is not reliable. [Contact us](https://360iss.com/contact/) if you want a second opinion on your setup.
