Why running multiple WooCommerce stores is harder than you think
Most SA business owners start with one WooCommerce store. It works, sales grow, and at some point you spin up a second store — maybe for a different brand, a different audience, or to sell to wholesale customers separately. Then you spin up a third. By the time you have three or four stores, your warehouse is a battlefield.
The problem is simple: each WooCommerce store tracks its own inventory. Store A doesn't know what Store B sold five minutes ago. Both think the stock is still there. Both will let customers buy it. One of those orders is going to be refunded, and that customer is never coming back.
This isn't a WooCommerce flaw. WooCommerce is doing exactly what it was designed to do — manage one store's inventory. The flaw is in expecting it to handle something it was never built for: shared stock across multiple stores.
The 'oversell cascade' — how it actually breaks
Let's walk through a typical day at a SA business running three WooCommerce stores. You have 10 units of a popular protein powder in your warehouse. All three stores show 10 in stock.
| Time | What happens | Reality |
|---|---|---|
| 09:00 | Store A shows '10 in stock' | 10 physical units |
| 09:05 | Customer buys 4 on Store A | Store A now shows 6 in stock |
| 09:06 | Customer buys 5 on Store B | Store B still thinks 10 → allows it |
| 09:07 | Customer buys 3 on Store C | Store C still thinks 10 → allows it |
| 09:10 | Total orders: 12 units sold | Only 10 physical units exist |
| 10:00 | Picker fulfills 10 orders, 2 cancellations | 2 customers refunded + angry |
It compounds with more stores
With 2 stores, you might oversell occasionally. With 3-5 stores, it happens daily. The bigger the catalog, the more it cascades. Without sync, every popular SKU becomes a potential refund situation.
What proper multi-store stock sync actually looks like
Real multi-store stock sync isn't about updating each store's inventory hourly or even every 5 minutes. By the time the update runs, you've already oversold. Proper sync uses one shared pool of stock and updates every store the moment anything changes.
Here's what the correct flow looks like:
- All your stock lives in ONE database (not in each WooCommerce store)
- Each WooCommerce store reads from that shared database
- When ANY store records a sale, the shared database is updated immediately
- All other stores see the new stock level instantly — usually within seconds
- Stock reservations happen at order-creation, not at fulfillment, so paid orders can't be undercut
How Fulnex handles multi-store stock natively
Fulnex was built for multi-store from day one. The warehouse isn't a feature attached to a store — the warehouse is the source of truth, and stores are read-only views into it. This is the opposite of how most multi-store plugins work.
Here's what happens in Fulnex when you connect multiple WooCommerce stores:
| Stage | What Fulnex does |
|---|---|
| Setup | Connect each WooCommerce store via API. Each one pulls its product catalog in. |
| Mapping | Match SKUs across stores. The same SKU on different stores = the same physical stock. |
| Pool | Stock lives once in the Fulnex warehouse, not per-store. |
| Sync down | Every store gets the same stock level pushed back regularly (every 2-5 min depending on plan). |
| Order in | Order arrives on any store → instantly reserves stock from the shared pool. |
| Sync down again | All other stores immediately update to reflect the new available quantity. |
| Fulfillment | Pickers see all orders in one queue, regardless of which store they came from. |
What 'instant' really means
When Fulnex reserves stock at order creation, the reservation is in Fulnex's database within milliseconds. Pushing the new level to the other WooCommerce stores takes a few seconds (depending on plan, between 2 and 30 seconds). Compare that to syncing once an hour — you go from 'will probably oversell' to 'will almost never oversell'.
Plan structure — how many stores you actually need
Fulnex plans are organized around how many WooCommerce stores you connect. The actual warehouse capacity (bins, picks, orders) doesn't have hard limits — the limiting factor is store connections.
| Plan | Stores | Best for |
|---|---|---|
| Starter (R149/m) | 1 store | Single store running properly with bins, picking, dispatch |
| Growth (R599/m) | Up to 3 stores | Multi-brand operations, retail + wholesale split, B2B + B2C |
| Professional (R1,299/m) | Up to 5 stores | Brand groups, regional store splits, channel-specific stores |
Common SA multi-store setups
Most SA businesses running multiple WooCommerce stores fit one of these patterns. Each pattern has its own quirks Fulnex handles automatically:
| Pattern | Example | How Fulnex handles it |
|---|---|---|
| Multi-brand | Same warehouse, separate brands like supplements + cosmetics | Each brand = own store, all share warehouse stock |
| B2C + B2B | One retail store, one wholesale store with different pricing | Same SKUs, different pricing tiers per store |
| Brand + Discount outlet | Premium brand store + clearance store | Different products on each store, shared warehouse |
| Multi-channel | Branded store + Takealot + Bidorbuy | WooCommerce stores synced now, Takealot/Bidorbuy on the roadmap |
| Multi-region | ZA store + NAM store + ZIM store | Same warehouse, region-specific stores, different currencies |
When to split stores (and when to consolidate)
Multi-store sync is powerful, but it's not always the right answer. Sometimes running more stores creates more complexity than it solves. Here's how to think about it:
Reasons to split into multiple stores:
- Different brand identities you want to keep separate visually
- Different audiences with different pricing expectations
- Different geographic markets (different currencies, languages, courier options)
- B2B vs B2C — different checkouts, different payment terms, different catalogues
- Testing — running a discount outlet store without diluting the main brand
| If you're doing... | ...consider... |
|---|---|
| Same products, same audience, just on 2 stores | Consolidate into 1 with category-based navigation |
| Customers buying across both stores | Consolidate so loyalty/discount programs work |
| Below 200 orders/month total | 1 store is fine, multi-store is overkill |
| Spending more time on duplication than selling | Consolidate, simplify your operations first |
Want help planning your multi-store setup? Start with the free WooCommerce store scanner to audit each one first.
Scan a storeSetting up multi-store sync in Fulnex (checklist)
Going from 'separate stores with separate stock' to 'one shared pool' takes about a day if you have your data clean. Here's the checklist:
- Audit your SKU codes across all stores — they MUST match exactly for stock to share
- Use the free SKU Generator to standardize messy codes before importing
- Sign up for Fulnex Growth (or Professional for 4-5 stores)
- Connect Store 1, import products, set bin locations
- Connect Store 2, map matching SKUs to the same warehouse stock
- Connect Store 3, 4, 5 the same way
- Run a test order on each store, verify it shows up in Fulnex picking queue
- Watch stock levels — confirm all stores update when one sells
- Train your pickers (they see one queue, not 3-5 separate ones)
Start standardizing your SKUs across stores with the free SKU Generator.
Open SKU GeneratorFrequently asked questions
Will Fulnex automatically map SKUs across my stores?
Fulnex matches SKUs exactly — if Store A has 'WPC-1KG' and Store B has 'wpc-1kg', they won't match without manual mapping. The cleanest setup is to standardize your SKUs across all stores first, which the free SKU Generator can help with.
What happens if a customer tries to buy the last item on two stores at the same time?
Fulnex uses database-level reservations. The first order to reach the database wins. The second order is rejected at checkout (or marked as backorder, depending on your settings). No oversells.
How fast does stock actually update between stores?
When an order is placed on Store A, Fulnex reserves the stock immediately. Pushing the new stock level back to Stores B, C, D, E takes 2-30 seconds depending on your plan. For most businesses this is fast enough — overselling only really happens when sync takes minutes or hours.
Can different stores have different pricing for the same product?
Yes. The stock is shared, but pricing is set per store in each WooCommerce admin. Fulnex doesn't touch your pricing — just your stock levels.
What if one store has different product names or descriptions?
That's fine. Fulnex matches by SKU only. The name 'Premium Whey Protein 1kg' on Store A and 'WPC 1kg Pouch' on Store B can both be the same SKU 'WPC-1KG' and share stock.
Can I add a 6th store?
Not on current plans — Professional caps at 5 stores. The Multi-Warehouse module (on the roadmap) will allow unlimited stores across multiple physical warehouses. Contact us if you need 6+ stores sooner.
What about non-WooCommerce stores — Shopify, Takealot, Bidorbuy?
Multi-channel sync to Shopify, Takealot, Loot, and Bidorbuy is on the Fulnex roadmap (Stock Sync Hub module). For now, WooCommerce is the only fully-supported channel for automatic stock sync.
Does multi-store work for B2B (wholesale) customers?
Yes. A common setup is one retail WooCommerce store and one B2B store with different pricing and login-required checkout. Both share stock through Fulnex.
Stop overselling. Start running multi-store properly.
Fulnex Growth (R599/month) supports up to 3 stores with shared stock pool. Professional (R1,299/month) supports up to 5. No setup fees, no per-order fees, cancel anytime.
Start free trial