Syncing Inventory Between Shop and ERP: How to Permanently Prevent Overselling and Negative Stock in E-Commerce
This guide walks step by step through how to permanently solve the problem of unsynced shop inventory in the ERP, so overselling losses never wreck your revenue again.
Physical stock ≠ sellable stock: Transferring the wrong stock value to your shop builds overselling in structurally, regardless of how well the integration works technically.
Reservations have to be subtracted: Open orders that haven't shipped yet tie up inventory even while it still sits in the warehouse. Before transferring a stock value to channels, subtract reservations.
Event-based sync is required: With more than one active channel (e.g. selling on Amazon and your own shop simultaneously), interval-based sync every 15 minutes isn't enough.
Channel-specific buffers in the ERP prevent overselling: Amazon and your own shop should never see the same stock value, because the suspension risk and cancellation rates differ per channel.
Negative stock almost always follows returns: Goods come in physically but aren't immediately booked back correctly.
Xentral syncs event-driven: Through Xentral Connect, the AI-based ERP updates all connected channels in real time as soon as inventory moves, without middleware workarounds for standard setups.
When ERP integration alone doesn't sync your shop inventory reliably
Shoppers who get a rejection buy elsewhere. If it repeats, they don't come back, while your team spends hours reconciling inventory by hand, apologizing to buyers, and correcting errors.
Recent data shows how serious customer loss from bad delivery experiences is. According to the Metapack E-Commerce Delivery Benchmark Report 2025 for the UK, 60.1% of consumers switch to another brand as soon as it offers more convenient delivery options. And 56.4% buy elsewhere if a retailer disappoints them once, for example with an order that can't be delivered. A 2024 study by Sendcloud also highlights that past delivery experiences drive the buying decision: 77% of respondents say prior delivery experiences determine whether they buy from a retailer again.
An order you can't fulfill because of wrong inventory data means lost revenue, lost customers, and lost time, which is already bad enough. But the consequences can be worse: Amazon treats cancellations as a quality signal and punishes them with worse rankings or even account suspensions.
The underlying problem is almost always the same: shop and ERP don't talk to each other fast enough. Or they do talk, but on the wrong stock figure.
It comes down to the right configuration
You know what matters in inventory reconciliation, your shop is connected to your ERP, and you still can't prevent overselling in your e-commerce? Then this guide is for you. From sellable inventory configuration to sync intervals to channel-specific buffers and returns logic, we walk through in practical terms how to reliably sync your inventory between shop and ERP.
Why overselling happens and why just having an interface isn't enough
It's a mistake to think that connecting your shops and your ERP technically eliminates all overselling and negative stock issues. The interface runs, inventory gets transferred, what could go wrong?
Plenty. Because the decisive question isn't whether stock data gets transferred, but which stock value gets transferred and how fast that happens.
In the ERP there are three different stock figures you have to keep separate:
Physical stock: what's actually in the warehouse, counted, booked in, present.
Reserved stock: goods already reserved for open orders but not yet shipped.
Sellable stock: what you can actually still sell.
Sellable stock = physical stock − reservations − safety buffer
If you don't map this distinction in your ERP configuration and instead transfer the raw physical stock to your shop, you have a systematic error in your setup. Unsynced shop inventory isn't a human error, it's an ERP configuration error. And that's fixable.
Step 1: Define sellable inventory correctly
Here's the most common mistake. Not the interface itself, but the question of which number gets transferred in the first place.
What reservations are and why they count
Picture this: you have 10 units of an item in stock. At the same time, 8 open orders sit waiting to ship. The goods are already reserved for customers but still physically at your warehouse. Your shop still shows 10 units available. A new customer orders 3 units. You can't deliver. This is misconfigured inventory logic showing itself.
Reservations happen whenever an order is created in the ERP but the goods haven't left the warehouse yet. This reserved stock has to be subtracted from physical stock before the value gets transferred to your shop or marketplace.
„What really helps is managing our product data in one place. It saves time and cuts down on errors.“
Alexander Kessler, E-Commerce-Manager at VanDeBord
The ERP configuration that keeps inventory synced across multiple marketplaces
In Xentral, you define which stock value serves as the basis for channel transfers. The correct setting is sellable stock, meaning physical stock minus all open reservations minus your defined safety buffer.
That's the configuration decision that prevents the most common cause of overselling right off the bat. With your inventory data organized this way, you have the foundation for sync, buffers, and returns logic.
Step 2: Pick the right sync mode. Sync inventory in real time
Even when the right stock value gets transferred, overselling can still occur if the transfer is too slow.
Interval-based vs. event-based sync
The decisive question is when your inventory gets pushed to each channel. You can work with interval-based or event-based sync:
Mode | How it works | When it's enough |
Interval-based | Stock is transferred to the channel every X minutes | Only with one channel at low order volume |
Event-based | Transfer happens immediately on every inventory movement | Standard from two active channels onward |
Interval-based sync is a common cause of overselling in multichannel. Between the fixed sync intervals sit exactly the seconds in which a second channel sells the same unit. The more channels active in parallel, the more critical every minute of delay becomes.
Why 15-minute intervals are too long
Imagine you sell the same item on Amazon and your Shopify shop simultaneously. You have 2 units in stock. At 2:03 PM, a customer on Amazon buys the last 2 units. Your system syncs on 15-minute intervals; the next sync is at 2:15 PM. At 2:07 PM, a second customer buys those same 2 units in the Shopify shop. The shop still shows availability because inventory hasn't been updated yet.
That's overselling as a result of the wrong sync mode. Especially if you run multiple shops, interval-based sync is setting yourself up for failure long-term.
Event-based sync as the gold standard
With event-based sync, every inventory movement (every order, every reservation, every shipping booking) triggers an immediate stock update in all connected channels. There's no time window in which inventory can diverge.
Xentral Connect is the technical basis for this. Xentral Connect pushes inventory changes event-driven to all connected shops and marketplaces (including Shopify, Shopware 6, and OTTO) without needing a separate middleware tool.
„Xentral Connect is a real game-changer for us because it enables us to establish new marketplace integrations faster and with better performance. Integrations that are crucial for our future.“
Lucas Linder, E-Commerce Manager at anndora
Step 3: Prevent overselling in the ERP. Configure channel-specific inventory buffers
Event-based sync solves the timing problem. But there's a second error source: all channels see the same inventory.
That sounds logical at first: you have one inventory, and it gets synced. The problem is that your own shop and Amazon in particular have very different risk profiles.
Why Amazon needs a higher buffer
According to Amazon Seller Central guidelines, seller-initiated cancellations (e.g. due to unavailability) negatively impact the cancellation rate and thus seller performance, because Amazon expects sellers to keep inventory current. Sustained poor performance metrics can lead to enforcement action against the seller account, up to deactivation. The cancellation rate is a core quality signal for the algorithm. Anyone accepting an order on Amazon they can't fulfill because of zero stock has to cancel, and every seller-initiated cancellation hurts seller performance directly. Amazon doesn't care whether the item is still available in your own shop. All the algorithm sees: order received, not fulfilled.
On top of that, return rates on Amazon are structurally higher than in your own shop. Returned goods aren't resellable for a while. Factor that in so you don't create shortages.
Configure safety buffers per channel
Amazon monitors sellers on hard KPIs: pre-fulfillment cancellation rate has to stay under 2.5%, and the Order Defect Rate under 1%. If those thresholds get exceeded, account suspension can happen without prior warning. You then have 17 days to submit a convincing Plan of Action, or you lose marketplace access permanently.
Kaufland, for example, also imposes penalties but differently: exceeding a 3% seller-initiated cancellation rate triggers a 10% penalty fee on affected transactions. Account suspension only follows repeated violations.
In Xentral, you can configure a separate safety buffer for each connected channel, technically via the pseudo-stock function and inventory correction values. That means Amazon sees a lower stock than actually available. That's your buffer against the risks above.
As a reference point, you can start with the following safety buffers. Realistic values ultimately depend on your product count and return rate:
Channel | Recommended safety buffer | Reasoning |
Own shop | 1 to 2 units | Low cancellation rate, direct control over processes |
Amazon | 3 to 5 units | Suspension risk, structurally higher return rate |
Kaufland | 2 to 3 units | Medium risk, lower suspension risk than Amazon |
Flash sale scenario: raise buffers temporarily
Before a promotional window (Black Friday, a marketplace deal, your own discount campaign) raise the buffers manually before traffic ramps. Waiting until the first overselling case hits means you already have the problem.
How high your safety buffer should be also depends on your optimal order quantity. Our optimal order quantity calculator helps you find the right baseline. What happens if you hit zero stock despite buffers is explained in our article on preventing out-of-stock situations.
After the sale, reset the value to your standard buffer. Put the reset date on the calendar directly, because elevated buffers forgotten after a Black Friday weekend cost you unnecessary reach in the following weeks.
„“
Step 4: Prevent negative stock. Book returns back correctly
Negative stock rarely comes from faulty sync. It almost always comes after returns, when the returns logic is misconfigured in the ERP.
Why the timing of the rebooking matters
A return moves through multiple stations: customers announce it, ship the goods back, the goods arrive at the warehouse, get inspected, then booked back in. The problem arises when stock is corrected too early or too late.
Too early: The return gets marked complete in the shop as soon as the customer announces it; stock rises immediately. But the goods are still in transit. If they arrive damaged, you have stock that doesn't exist.
Too late: The goods sit in the warehouse but haven't been booked in yet. Stock stays negative even though the unit is physically present.
The right configuration to prevent negative stock after a return
Stock should only rise once the return has physically arrived at the warehouse and been inspected. Not on announcement, not on shipping of the return label, but only after actual receipt and a positive inspection confirming the goods are resellable.
Xentral controls this timing through returns logic: the goods receipt of the return triggers the stock correction. Only after the item passes quality inspection does the ERP list it as sellable again.
See how to map returns cleanly in the ERP and which processes matter in our article on returns management in the ERP.
Step 5: Catch errors and sync issues in the journal
You've set up the configuration cleanly and inventory still doesn't match. Sounds annoying, but it happens. There are error sources you can't rule out entirely. What matters is spotting them fast.
Typical error sources
Connection drops: The transfer fires but doesn't arrive.
API timeouts: The marketplace responds too slowly, the transfer breaks off. This happens more often during load spikes.
Mis-configured channel mapping: An item is listed under a different SKU in the ERP than on the marketplace. Stock gets transferred but lands on the wrong item.
The transfer journal in Xentral Connect
Xentral Connect logs every inventory transfer. Failed transfers are visible in the journal immediately with timestamp, affected SKU, and error cause. You don't have to wait for customers to report errors. You see the problem before it turns into overselling.
Manual re-sync
If you spot an error in the journal and need to correct stock immediately, you can trigger a manual re-sync for individual items or channels in Xentral Connect. That's the escalation scenario (not the normal case, but important to know).
If sync issues occur regularly, it's usually a symptom of a deeper configuration problem. Then it's worth re-checking steps 1 to 3, especially the stock definition and channel mapping.
Checklist: is your inventory sync configured correctly?
Before you connect the next channel or scale up volume, walk through this list:
☐ Sellable stock (NOT raw physical stock) is transferred to all channels.
☐ Reservations from open, unshipped orders are subtracted from stock.
☐ Event-based sync is active, NOT interval mode with multiple channels.
☐ Safety buffers are configured per channel individually, NOT uniform across channels.
☐ The Amazon inventory buffer is higher than the one for your own shop.
☐ Returns logic is set so stock only rises on physical receipt and passed quality inspection.
☐ The transfer journal in Xentral Connect is checked regularly for failed transfers.
☐ Flash-sale buffers are raised manually BEFORE promotional windows.
☐ All channels are active in Xentral Connect and correctly mapped (SKU assignment verified).
☐ Channel mappings are checked for completeness after EVERY assortment expansion.
„Xentral is our single source of truth for every order. I can let orders run through without a second thought and end up with accurate numbers. Because we can rely on everything being correct, it's much easier for us to plan around large volumes.“
Adrian Gellissen, Logistik & Operations Manager at vly
Bottom line: configure it once, sync your shops permanently in the ERP
Overselling is the result of a configuration that wasn't built for multiple channels and growing volume.
If you implement the five steps in this guide cleanly (define sellable stock, activate event-based sync, set channel-specific buffers, configure returns logic correctly, keep an eye on the journal), you have a setup that grows with the business. Without constant manual corrections, without customer complaints about undeliverable goods, without Amazon enforcement.
If you want to see how Xentral handles inventory management concretely, all the details are on the product page. And if you're not sure whether your current setup can deliver, a needs analysis will show you where your business stands in a few minutes.
Is your inventory setup in place?
Then the next step is automation. See how AI agents in Xentral's AI-native ERP take over operational tasks around inventory, returns, and order fulfillment and prepare your decisions.