A retailer with several shops and a growing website kept two pictures of its stock: one in the in-store point-of-sale system, another on the e-commerce platform. Every night someone reconciled the two by hand, exporting figures, comparing them, and adjusting the website to match. By the next afternoon the two had drifted apart again, because a busy Saturday in a shop did not show up online until the following night’s patch-up.
The gap had real consequences. Items sold in store still showed as available online, so the website occasionally took orders for stock that was already gone, and someone then had to apologise and unwind the sale. Popular lines were quietly marked down online out of caution, to reduce the risk of overselling — which is its own kind of cost.
The challenges we had to solve
- Store and online stock were two separate figures, reconciled once a day, so they were almost always out of step.
- The nightly reconciliation was manual, slow, and error-prone, and it still left a full day’s drift.
- The same product was identified differently in the POS and the e-commerce catalogue, which broke naive matching.
- Overselling damaged customer trust, so the fix had to actually close the window where a sale could be made on nothing.
How we approached it
We made one system the authority for stock and had the others follow it, rather than trying to keep two equals in step. Sales events — an item sold at a till, an order placed online, a return processed — flow as they happen and adjust the single figure, so a sale in a shop is reflected online in near real time instead of overnight. Before any of that could work, we had to reconcile how each system named the same product, mapping the POS and catalogue identifiers onto a shared reference so matching was reliable.
We rolled it out carefully, running the new flow alongside the manual reconciliation until the figures agreed and the team trusted them, then retired the nightly job. We kept a lightweight periodic check that confirms the systems still agree, so a quiet failure is caught rather than discovered through an oversell. The integration and the product mapping were documented at handover, since a retailer’s catalogue is never static.
Where it stands
Stock is now one current figure that the shops and the website share, and the nightly reconciliation is gone along with the hour it took and the errors it introduced. The website sells what is genuinely there, so the apologetic cancellations have largely stopped, and the team no longer marks lines down out of fear of overselling. Inventory has gone from two arguing copies to a single number the business can act on.