Esok Supply Co.
A food wholesaler’s order desk where WhatsApp messages become checked orders, then pick lists by route, deliveries with proof, invoices and credit control.

The brief
Trade customers order on WhatsApp in their own words and shorthand. Someone re-types every message, checks stock and credit by hand, and chases short deliveries and overdue invoices somewhere else.
What we shipped
A website with delivery days by postcode and a catalogue, a WhatsApp order line (simulated) whose messages become draft orders, an order desk, pick lists by route, a driver app with proof of delivery, credit control, a customer portal and an owner dashboard.
Built for: Food and beverage wholesalers and distributors, and any supplier whose trade customers order on WhatsApp.
Inside the build
Every part, and what it does
A closer look at what was actually built — screen by screen, so you can judge the depth for yourself.

Delivery days by postcode
A cut-off bar on every page, and a postcode check that names the route, the delivery days and the order-by time for each.
- 5 pm cut-off, counted down
- Route and days by postcode
- Four routes on a map

Order on WhatsApp in your own words
Customers send a text, a voice note or a photo of their list, the way they already order. The demo phone shows the whole thread: confirmations, delivery updates and invoices.
- Text, voice note or photo of a list
- “Same as last week” understood
- Simulated: nothing is sent

Priced confirmation
The customer gets the order back with their own prices, the delivery slot and the total, and answers any substitute question with one tap.
- Their price tier on every line
- Delivery day and time window
- Substitutes need their OK

Customer portal
Customers can also sign in to reorder their usual items at their own prices, pick a valid delivery day, track orders and pay invoices.
- Usual items first
- Only valid delivery days offered
- Invoices and statement

WhatsApp inbox with draft orders
Each message becomes a draft order. Every line shows the words it came from and why it matched, and staff check it before the customer sees a price. In the prototype, fixed rules stand in for the AI.
- Lines linked to the customer’s words
- Usual items explain “fries” or “patty”
- Staff confirm every order

Credit holds
An account that is overdue or over its limit cannot be confirmed. The desk sees why, the last promise to pay and whether it was kept, and asks accounts to release it.
- Held when more than 14 days past due
- Promise-to-pay history
- Release requests go to accounts

Pick lists by route
Confirmed orders join their route’s pick list, picked dry, then chilled, then frozen last. A short pick changes the order and tells the customer the new total.
- Picked in temperature order
- Short picks message the customer
- Loading the van issues the invoices

Driver app with proof of delivery
Drivers work stop by stop on a phone: returns with a reason, the receiver’s signature and a photo of the stamped delivery order. A return raises a credit note.
- Signature and stamped DO photo
- Returns with reasons
- Cash or cheque collected

Invoice with proof attached
Loading the van issues the invoice and delivery order. The invoice carries its e-invoice status (simulated), any credit note and the proof of delivery.
- e-Invoice status (simulated)
- Credit notes netted off
- Signature and DO photo on file

Credit control
Who owes what by age, who is on hold and who has promised to pay. Reminders are drafted from the account in a tone set by how overdue it is, and staff edit them before sending.
- Aging by customer
- Holds, releases and promises
- Reminders with a payment link

Owner dashboard
Sales, orders by channel, fill rate, on-time deliveries and money owed by age, from the same orders and invoices the team works on.
- Orders by channel
- Fill rate and on-time deliveries
- Money owed beside sales
Click through it yourself
Every screen above is interactive. No sign-up, nothing to install.
Behind the build
Researched first, then built
Before designing anything, we studied 12 sites: Malaysian food wholesalers and a B2B marketplace, foodservice distributors in the US and UK, ordering tools built for distributors, a Malaysian WhatsApp inbox and a proof-of-delivery app. Nothing was copied. Each finding below changed a decision.
Studied (12)
- Pok Brothers
- Low Seat Hoong Food Service
- Borong
- Sysco
- Bidfood
- JJ Foodservice
- Choco
- Pepper
- Cut+Dry
- Ordermentum
- respond.io
- Detrack
What we saw
What Esok Supply Co. does
What we saw
Wholesalers show a floating WhatsApp button but take orders through a consumer cart.
What Esok Supply Co. does
WhatsApp is the order line: a text, a voice note or a photo of a list becomes a draft order.
What we saw
AI ordering tools sell speed but do not show how staff check a draft.
What Esok Supply Co. does
Every draft line shows the words it came from and why it matched, and staff confirm it.
What we saw
The best tools read shorthand using each customer’s order history.
What Esok Supply Co. does
Usual items explain words like “fries” and “patty”, and “same as last week” repeats the right order.
What we saw
Minimum orders appear as one line, while cut-offs and delivery days stay hidden.
What Esok Supply Co. does
A cut-off bar on every page and a postcode check showing the route and the next delivery days.
What we saw
Shared inboxes route chats but know nothing about stock or credit.
What Esok Supply Co. does
Beside each chat sits the order: price tier, credit used, holds and the delivery slot.
What we saw
Proof-of-delivery apps take a photo, a signature and cash on delivery.
What Esok Supply Co. does
Drivers take a signature and a photo of the stamped delivery order, and record returns and cash.
What we saw
Payments and reminders sit in separate products.
What Esok Supply Co. does
Statements, reminders, promises to pay and a payment link in the same system as the orders.
Rules it follows
The business rules, built in
The prototype enforces each of these, so you can test them yourself.
Ordering and delivery
- Order by 5 pm on the working day before delivery (Saturday for Monday)
- Routes A and B Monday to Saturday, C Monday, Wednesday and Friday, D Tuesday, Thursday and Saturday
- RM 250 minimum per drop, or a RM 20 small-drop fee
Prices and matching
- Three price tiers: standard, trade (4% off) and key account (7% off)
- Each customer’s usual items explain their words
- Kilos converted to packs are flagged for checking
Stock and substitutes
- Drafts check what is free to sell, not just what is on hand
- Substitutes need the customer’s OK, and unanswered ones are not sent
- A short pick changes the order and tells the customer the new total
Credit
- An account is held when an invoice is more than 14 days past due or an order would pass the limit
- An unpaid cash-on-delivery balance also holds the account
- Releases expire on a date, and promises to pay are tracked
Documents
- Loading the van issues the invoice and delivery order
- Invoices and credit notes show their e-invoice status (simulated)
- A short delivery or a return raises a credit note
Connected roles
One action, every screen
Every role works on the same records, so one person’s action shows up for the others.
- 1
A WhatsApp message becomes a draft order in the inbox, and confirming it sends a priced confirmation with the delivery slot.
- 2
A confirmed order joins its route’s pick list, and a short pick messages the customer with the new total.
- 3
Loading the van issues the invoice and delivery order, and starting the route tells customers the van is on its way.
- 4
Proof of delivery updates the order, the invoice and the customer’s chat, and a return raises a credit note.
- 5
An overdue account blocks confirmation at the desk until accounts release it.
- 6
Payments update balances, holds, the customer’s chat and the owner dashboard.
- 7
An account application from the website reaches accounts, and approving it sends a WhatsApp welcome.
Services it proves
Where Esok Supply Co. is our example
Each of these service pages uses a part of Esok Supply Co. to show the work. Open one to see what we would build for you.
- Delivery appsShows: Driver app with proof of deliveryThe driver’s phone: returns with a reason, the receiver’s signature and a photo of the stamped delivery order, which update the invoice and the customer’s chat.
- Dealer portalsShows: Customer portalTrade customers reorder their usual items at their own prices, choose a valid delivery day and pay invoices; an overdue account is held until accounts release it.
- WhatsApp automationShows: WhatsApp inbox with draft ordersA WhatsApp inbox where each order message becomes a draft order, every line linked to the customer’s words. Staff confirm before a price goes back.
- Workflow automationShows: Invoice with proof attachedLoading the van issues the invoice and delivery order. Proof of delivery and any credit note attach to the invoice without anyone re-typing them.
- Inventory systemsShows: Pick lists by routePick lists by delivery route, picked in temperature order. A short pick changes the order and tells the customer the new total.
Core systems
What this build is made of
These are systems we build repeatedly — each links to every other project that contains it, so you can compare implementations before deciding what you need.
Unique to this build
Built specifically for this project rather than assembled from the shelf.
Words to order lines
Each draft line is linked to the words it came from, and the customer’s usual items decide what “fries” or “same as last week” means.
Cut-off and route days
Orders in by 5 pm go out on the next delivery day of the customer’s route, and the minimum order is checked for each drop.
Credit holds with promises
Overdue accounts are held until accounts release them, and every promise to pay is tracked.
Want a build like this for your business?
Tell us what you have in mind and we'll put together a functional prototype of your project — free.



