CLIENT: Rimba Larian Sports🇲🇾Malaysia

Selaras - Omnichannel Inventory Sync Hub with One Stock Ledger

Inventory Sync Hub for a Malaysian Sporting Goods Retailer

Designed and built a clickable inventory sync hub for a Kuala Lumpur sporting goods retailer with 14 stores, a 3PL warehouse, a web shop and two marketplaces: one stock ledger for every variant at every location, an explained available-to-promise number per channel, oversell and conflict alerts, and stock adjustments with four-eyes approval.

Scope of Work
Product design, UI build and clickable demo
Industry
Retail / Inventory Sync
Enterprise
Compliance & Certifications
PDPA 2010 (Malaysia)PDPA (Amendment) Act 2024GS1 GTIN-13 and UPC-A

Most of our work is under NDA. Per agreement, we can share the work but not the company details - all names and identifying information shown here have been changed.

Impact

5 Screens
Clickable end to end

Dashboard, stock overview with variant and matrix views, item detail with 6 tabs, alerts with their detail panel, and adjustments and approvals. Every one of the 13 demo products opens its own item detail.

6 Steps
Behind every channel number

On hand in the channel's pool, minus committed orders, click and collect holds, safety stock and damaged stock, then the allocation cap. Each step shows the rule that applied, down to last unit protection on the marketplaces.

3 Tiers
Adjustment approval rules

Up to 5 units and RM 200 auto-approve, up to RM 2,000 goes to the store manager, above that to the inventory controller. The recorder can never approve their own adjustment.

28 Variants
Realistic demo data

13 products, 15 locations (14 stores and the Shah Alam warehouse), 5 channel connections, 14 alerts, 20 adjustments and 13 staff users across 6 roles.

The Problem

Rimba Larian sold the same running shoes in its stores, on its web shop and on two marketplaces, but each channel had its own stock number. The POS fed the web shop by CSV twice a day, marketplace stock was typed in by hand and the 3PL's morning stock file was never reconciled. Around mega sale days about one marketplace order in thirty was cancelled for being out of stock, and adjustments were made in the POS with no reason and no approval.

Our Solution

Selaras keeps one ledger of stock movements for every variant at every location, works out what each channel may safely sell, pushes those numbers to the POS, web shop, marketplaces and 3PL, and raises an alert the moment a channel disagrees. Every adjustment carries a reason code, a person and a device, and large ones wait for a second person to approve.

The Challenge: One Stock Number Across Every Channel

A pair of shoes in Penang can be sold at the till, on the web shop, on Shopee and on Lazada within the same minute. Each channel reports sales on its own schedule and through its own API, and the retailer's rules decide how much of the stock each one may promise.

Five Systems, Five Stock Numbers

The POS, web shop, two marketplaces and the 3PL's warehouse system each held their own count, updated by CSV exports, manual entry and a daily file. Nobody could say which number was right, so stores sat on sizes the web shop showed as sold out.

Selling What Is Safe to Promise

What a channel may sell is not what is on the shelf. Open orders, click and collect holds, safety stock and damaged or quarantined stock all come off first, the web pool includes ship-from-store stores while marketplaces draw on the warehouse only, and the warehouse is split 60% Shopee and 40% Lazada.

Marketplace Limits and Late Updates

Shopee and Lazada take stock updates through their open platform APIs under their own rate limits and developer terms, which change over time. Updates have to be batched and throttled, and a delayed push is exactly when an oversell happens.

Stock Changes Without a Trail

Counts were on paper once a year and write-offs had no reason or approval, although shrinkage affects the stock value in the accounts. Every barcode, GTIN-13, UPC-A or in-store code from the GS1 restricted range, has to map to exactly one variant.

Our Approach: From Stock Rules to a Clickable Sync Hub

01

Spec and Rules Research

Mapped 8 user roles, 42 screens (34 staff web screens and 8 scanner app screens) and the data model for locations, variants and barcodes, the movement ledger, ATP rules, channel allocations, reservations, sync events, alerts, counts, transfers and adjustments. Wrote down the rules the design follows: a single append-only ledger, the ATP formula, four-eyes on write-offs, GS1 barcodes, marketplace API terms and Malaysia's PDPA for staff data.

02

Clickable Demo on a Production UI Kit

Built 5 key screens on a production dashboard kit: the dashboard with sync KPIs, channel status strip and oversell trend, stock overview with per-channel published numbers and a location matrix, item detail with the ATP waterfall per channel, alerts with the ATP at the moment of the sale, and adjustments that work out the required approver live. All actions run on local state.

03

What a Production Build Adds

Integration with the store POS, the Shopify Admin API and webhooks, the Shopee and Lazada open platforms, the 3PL's WMS by REST API or SFTP, a managed queue with retries and a dead-letter queue, and read-only links to the accounting system. The offline scanner app for Android handhelds, staff auth by role, an append-only audit trail, and counsel review of PDPA duties and retention periods.

Why It Works: Every Number Can Be Explained

One Ledger, Never Edited

Stock on hand is never typed over. Sales, returns, receipts, transfers, count variances and adjustments are each a movement with a reason code, a person or system, a time and a source event, so any number can be rebuilt and traced.

The Channel Number Shows Its Working

Item detail lays out the ATP waterfall for the web shop, Shopee and Lazada step by step, with the rule version behind each step. Stock overview puts the number each channel last published next to Selaras's own, with a warning wherever they differ.

Alerts Carry the Moment of the Sale

An oversell alert shows the ATP when the order arrived, the affected order references and a timeline of the pushes and delays behind it. Staff can acknowledge, assign, request a count, raise a transfer or resolve with an outcome and a note.

Write-Offs Need a Second Person

Recording an adjustment works out the required approver from units and RM value as it is typed, and asks for a photo for reason codes such as damaged or write-off. Selaras holds staff data only and never customer names or addresses, just channel order references.

Related case studies

View all: Retail & POS
Logo
Oceanlab

Enterprise Software Engineering - Human + AI

Languages

Locations

Global Headquarters

21 Merchant Road, 3rd Floor, Singapore 058267

Main corporate office and leadership operations

North America Office

548 Market Street, PMB 12345, San Francisco, CA 94104

Client operations and business development

India Office

402 Shivalik Shilp II, SG Highway, Ahmedabad 380015

Engineering and delivery center

© 2026 - Copyright. All Rights reserved Oceanlab