The verdict in three sentences
An ERP export once a night is enough to show wrong stock for 23 hours, and for an active distributor that costs 2 to 5% of online orders, cancelled for being out of stock. Fixing it does not require a new ERP: an incremental connector or a middleware layer with a message queue syncs stock movements within seconds for EUR 10,000 to 40,000 excl. VAT. Add stock reservation at cart level and a well-tuned cache, and the store handles peaks without hitting the ERP on every page view.
Why the overnight export makes displayed stock wrong
The classic pattern: at 2 a.m. the ERP generates a CSV of available quantities, the store imports it at 3 a.m., then lives on that snapshot until the next night. During the day, orders taken by phone, by field sales reps or via EDI consume real stock without the store knowing. The result: a customer orders 40 cartons of an item that sold out at 10 a.m., the order is accepted, then cancelled by customer service at 3 p.m.
The cost goes beyond the lost sale. Each cancellation takes 15 to 30 minutes of customer service time, erodes the professional buyer's trust and pushes them back to the phone, which is more expensive to handle than an online order.
| Symptom | Observed frequency (2026 order of magnitude) | Estimated unit cost |
|---|---|---|
| Order cancelled for stock-out | 2 to 5% of online orders | EUR 25 to 60 handling + lost margin |
| Unannounced partial delivery | 3 to 8% of orders | EUR 15 to 40 in reshipping |
| "Is it in stock?" support call | 10 to 25 calls a day | EUR 4 to 8 per call |
| Overselling during a promotion | Peaks of 10 to 15% cancellations | Brand damage |
| Stock hidden for safety (buffer) | 5 to 10% of SKUs masked | Sales never made |
| Wrong delivery lead time | Common when supplier stock is ignored | Disputes and customer penalties |
The four possible architectures and their cost
There is a clear progression, from simply exporting more often to a full event-driven architecture. The right choice depends on order volume, the API available on the ERP side (Sage X3, Cegid, SAP Business One, Odoo, Dynamics 365) and how many channels consume the same stock.
| Option | Stock latency | Setup cost excl. VAT | Monthly cost | Best for |
|---|---|---|---|---|
| CSV export every 15 to 30 min | 15 to 30 min | EUR 2,000 to 6,000 | Negligible | Under 100 orders a day |
| Incremental connector via ERP API | 1 to 5 min | EUR 10,000 to 25,000 | EUR 50 to 300 hosting | Distributor SME, 1 ERP |
| iPaaS middleware (Boomi, Make, Workato, n8n) | Near real time | EUR 8,000 to 20,000 | EUR 200 to 1,500 | Several channels, little code |
| Event-driven architecture (message queue) | A few seconds | EUR 25,000 to 40,000 | EUR 300 to 1,000 | High volumes, marketplaces, EDI |
| Stock reservation at cart level | Immediate on the store | EUR 3,000 to 8,000 | Included | Essential as soon as you have peaks |
| Cache with targeted invalidation | Millisecond reads | EUR 2,000 to 5,000 | EUR 20 to 150 | Catalogues over 10,000 SKUs |
Three technical points make the difference. First, cart reservation: the store decrements an available-to-sell figure as soon as an item is added, with a 20 to 30 minute expiry, so two buyers do not fight over the last batch. Second, the message queue (RabbitMQ, Amazon SQS, Redis Streams) absorbs bursts: the ERP publishes every movement, the store consumes them at its own pace, and an outage of a few minutes loses no data. Third, the cache: never read the ERP on every product page, read a local copy invalidated on each stock event.
What to require in the specification
Before asking for a quote, the CIO should write down six requirements: the target latency (for example 2 minutes), the list of warehouses and supplier stocks to aggregate, the available-to-sell rule (physical minus reserved minus safety buffer), behaviour when the ERP is down (the store keeps the last known value with a banner), traceability of discrepancies (a searchable log) and a full nightly reconciliation that corrects any drift. That reconciliation keeps the overnight export, but as a safety net rather than the main source.
Also plan a simple dashboard: events per hour, average sync delay, discrepancies found at reconciliation. Without these indicators you will not know whether the investment delivers.
Mini case study
Illustrative scenario: Julien, CIO of an industrial supplies distributor in Lyon, handles 180 online orders per working day, about 3,960 a month, with an average basket of EUR 650 excl. VAT. His stock-out cancellation rate is 3.5%, or 139 orders a month.
Need a professional website?
Kolonell builds websites that attract clients, optimized for the Sénégalese market. Free quote in 2 minutes.
- Gross margin lost at 22% on the half of orders not rebooked: 70 x 650 x 0.22 = EUR 10,010 a month.
- Handling 139 cancellations at EUR 35: EUR 4,865 a month.
- Estimated total cost: about EUR 14,900 a month.
He chooses an incremental connector with cart reservation: EUR 22,000 excl. VAT setup and EUR 250 a month. If cancellations drop to 0.5%, he recovers about EUR 12,700 a month. The project pays for itself in under two months, before counting the trust regained with buyers.
FAQ
Do we need a new ERP to get real-time stock?
Rarely. Most ERPs on the market (Sage, Cegid, SAP Business One, Odoo, Dynamics) expose an API or usable triggers, and an incremental connector costs EUR 10,000 to 25,000 excl. VAT, against several hundred thousand euros for an ERP change.
Will real time slow down the ERP?
Not with the right architecture: the store reads a cached local copy and only movements (a few thousand a day) flow through. The extra load on the ERP usually stays under 1% of its activity.
How long does the project take?
Allow 6 to 10 weeks for an incremental connector, including 2 weeks of testing in parallel with the overnight export. A full event-driven architecture takes more like 10 to 16 weeks.
What happens if the connector fails?
The store keeps showing the last known value, messages pile up in the queue and are replayed on restart. The nightly reconciliation fixes any remaining gap, limiting the risk to a few minutes of lag.
Middleware or custom development?
Middleware (EUR 200 to 1,500 a month) makes sense if you have several channels to connect and little in-house skill. Custom code costs more up front but nothing in licences, and becomes cheaper after 24 to 36 months.
Let's scope your project. Send us your ERP, order volume and target latency: we will price the connector, cart reservation and cutover plan. Detailed quote within 48 h. WhatsApp +221 77 596 93 33.
Mohamed Bah
Fondateur, Kolonell
Passionate about digital and entrepreneurship in Africa, Mohamed has been helping Sénégalese businesses with their digital transformation since 2020. Founder of Kolonell, he believes every SME deserves a professional and accessible online présence.
