Franchise Supply Management System

Stores order online.
HQ ships with one click.

From a store order to expiry-aware batch picking, invoice PDFs and month-end stocktakes, all in one system.

  • Running in a live franchise supply chain
  • Works on phone, iPad and desktop
  • English・繁中・简中
Dashboard / Overview
Trusted by
Before → After

Ordering used to live in chats and spreadsheets. Now every step is on record.

Four everyday headaches in a franchise network, and how FSMS handles them.

Before
With FSMS
Orders arrive by WhatsApp, text and phoneHQ copies each one into Excel, and a missed message means a missed delivery.
Every store orders in one placeOrders land in Pending orders. Nothing to copy, nothing missed.
Invoices typed and emailed by handTotals don't match until month-end reconciliation.
Accepting an order sends the invoice PDFThe server prices every line from the catalogue and tax rate; statements are ready at month-end.
Stock expires before anyone noticesOlder stock sits at the back and ends up in the bin.
First-expiry, first-out (FEFO)Accepting an order draws from the earliest-expiring batch, and near-expiry stock is flagged.
Stocktakes on paper, retyped laterAn interruption means starting over, and differences are guesswork.
Count item by item, resume any timeDifferences are applied to each batch automatically, and every count is kept.
Core features

Three features that save HQ the most time

One-click acceptance

Press Accept. Stock, batches and the invoice are handled together.

FEFO picks the earliest-expiring batches, stock is deducted, and an invoice PDF goes to the store and HQ.

  • Preview and adjust the allocation first
  • Expired stock raises a warning before you confirm
  • An interrupted acceptance resumes without double-deducting
Batches & expiry

Every batch is tracked by production and expiry date, so near-expiry stock stands out.

Receiving fills in the expiry date from the product's shelf life. Batch management colours in-stock, expiring and expired batches.

  • Sort by expiry, production date or quantity left
  • Depleted batches stay in history
  • Low-stock email alerts
Stocktake

Count item by item; stock adjusts itself.

Pick the products and enter what's on the shelf. Leave and come back any time; applying the count adjusts every batch.

  • Confirm matching counts in one tap
  • Differences are highlighted
  • Every stocktake is kept on record
Dashboard / Orders / Pending
Dashboard / Inventory / Passion Fruit Syrup
Dashboard / Stocktake / New
Try it

A store orders on an iPad. One look is enough.

The window runs the real FSMS front end on mock data. After the walkthrough, press "Try it yourself" to take over, or open the demo page for the full flow.

See the full demo
Store / Menu
And more

Everything else day-to-day operations need

Receiving

Enter the production date and the expiry date is calculated from shelf life. Drafts save themselves.

Monthly statements

Statement PDFs per store and month, emailed and ready for the accountant.

Low-stock alerts

An email goes out when a product drops below its safety level.

Overview

Twelve months of sales by store and product, readable at a glance.

Multi-store, multi-language

Separate HQ and store roles, English and Chinese UI, each store on its own time zone.

Phone & iPad layouts

iPad for receiving and counting in the warehouse, iPad or phone for ordering in the store.

Curious how it's built?

Serverless architecture, resumable stock transactions and E2E fault-injection tests against a real environment, written up on the engineering page.

React 18Redux ToolkitMUIAWS LambdaDynamoDBPlaywright
Read the engineering notes
Contact

Want this for your franchise? Let's talk.

Tell me how many stores you run and how they order today, and I'll suggest a setup. Recruiters are welcome to reach out too.