Why nightly batch jobs are killing your stock accuracy
If your web shop and your stores agree on inventory once a day, they disagree the other 23 hours. Here is what that costs — and what real-time actually requires.
Ask a store manager how much stock of a given line they have and they will check the shelf. Ask the e-commerce team and they will check a number that was true at 2am. Between those two answers sits most of the customer frustration in modern retail: the "in stock" that isn't, the click-and-collect order that gets cancelled an hour later, the markdown applied to product that already sold.
The reconciliation tax
Nightly integration was a reasonable design in 2008. POS systems were on-premise, bandwidth was expensive, and the web was a side channel. None of that is true anymore, but the architecture persists because replacing it feels risky. The cost is paid daily, in small amounts: cancelled orders, safety stock buffers set too high, and a team whose first job each morning is to find out what broke overnight.
What "real time" actually means
Real-time inventory does not mean every channel queries a central database on every page view. It means there is one ledger of record, every transaction — sale, return, transfer, count — writes to it as an event, and every channel reads a projection of it that is seconds old, not hours. Dynamics 365 Commerce is built this way; the hard part is committing to it rather than layering it over the old batch jobs.
Where to start
Pick one flow — click-and-collect is usually the right one — and make it truly event-driven end to end. Measure cancellation rates before and after. That single number tends to make the business case for the rest of the estate.