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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.

Designed and built a clickable till and back office for a chain of 9 hardware and home stores in Gran Asunción: a tablet till that keeps selling when the internet drops, sells cable by the metre and nails by the kilo, records every approval, and issues electronic invoices through Paraguay's SIFEN system.

Designed and built a clickable head office console for a chain of 40 parapharmacy and beauty stores in Morocco: send task campaigns in French and Arabic, track every store to the last photo, run product recalls against a deadline, and see which stores are compliant this week and why.
Enterprise Software Engineering - Human + AI
Contact Us
© 2026 - Copyright. All Rights reserved Oceanlab
Location
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
Enterprise Software Engineering - Human + AI
Contact Us
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