Case study · Retail & E-commerce
From separate channels to a single commerce operation
Kentro built an omnichannel platform for a retail group that unifies the storefront, keeps inventory honest across every channel, and routes each order through a single fulfillment pipeline.

The client is a retail group that sells through physical stores and its own webstore. The physical and online sides of the business grew up separately. Stores ran on point-of-sale systems feeding an ERP. The webstore ran on its own platform, with its own stock count and its own customer records. For years the separation was tolerable, because customers treated the channels as separate too.
Then buying behavior changed. Customers checked availability online before driving to a store. They wanted to order online and collect at a branch, or return a webstore purchase over a counter. The group's systems could not support any of it. Availability shown online was routinely wrong, because inventory lived in each store's POS and in a separate warehouse system. Online orders were rekeyed into the ERP and fulfilled over email and spreadsheets. Every promise the business wanted to make to customers broke on a system boundary.
The group engaged Kentro to remove those boundaries. The brief was direct: a unified storefront across web and mobile, a shared view of stock across every store and the warehouse, and an order pipeline that could route any order to any location. Kentro designed and built the platform end to end.
The problem was not any single system. It was that stock, orders and customer records lived in systems that never met, and every omnichannel ambition broke on that gap.
- Disconnected channels: The webstore and the physical stores ran on separate platforms with no shared view of stock, orders or customers. Each channel operated as its own business, with its own version of the truth.
- No single version of stock: Inventory lived in each store's POS and in a separate warehouse system. The availability shown online was routinely wrong, and reconciling counts across systems was slow manual work.
- Manual order handling: Online orders were rekeyed into the ERP and fulfilled over email and spreadsheets. A webstore purchase could not be returned in a store, because no system connected them.
Kentro approached the build in layers. A headless storefront on a shared commerce engine at the top, an event backbone that keeps inventory honest underneath, and an order management layer that treats every store as a fulfillment point. The whole platform runs on Kubernetes with rolling deployments, so releases do not pause trading.
- A unified headless storefront: A server-rendered Next.js storefront sits over Magento (Adobe Commerce), serving web and mobile from a single catalog, cart and promotions engine. Redis handles cart sessions and availability caching in front of it.
- Event-driven inventory sync: Stock movements from every POS terminal and the warehouse stream over Apache Kafka into a central availability service. The webstore shows what is actually on the shelf, not what a batch export said the night before.
- Distributed order management: An order routing layer fulfills each order from the best-placed location. Ship-from-store, click and collect, and returns at any branch all run on the same pipeline.
- Search and personalization: Elasticsearch powers catalog search. Recommendations are built from browsing and purchase events tied to a single customer profile that spans store and online activity.
- ERP and payments integration: Bidirectional integration keeps pricing, catalog and finance postings in sync with the group's ERP. Regional card and BNPL gateways handle payment at checkout.
The change is operational. Work that used to happen in spreadsheets and inboxes now happens inside the platform, and the channels behave as one business.
- A single stock ledger: Every channel reads the same availability. The manual reconciliation between store counts and the webstore is gone.
- Stores became fulfillment nodes: Orders route to the branch best placed to serve the customer. Collection runs on the same pipeline as delivery, and a return can land at any counter.
- One customer record: In-store and online purchase history sit on a single profile, so personalization and customer support work from the same data.
- Catalog changes without rekeying: Pricing and product updates flow from the ERP to every channel automatically instead of being uploaded by hand. New products launch as configuration, not as a project.
Let's build the next release together
Book a discovery call with our team and we'll map the fastest, lowest-risk path from where your technology is today to where your business needs it to be.
