Oatley Coffee
Dog-friendly café, Hampton
The problemWorking out what to order meant counting the shelves and guessing.
An internal stock and ingredient system. What is on the shelf, what it goes into, and what the next order should be, without anyone guessing. Live, and in use every week.
Before and after
- Before: Working out what to order meant counting the shelves.Now: Every countable line sits in one list, counted in its own unit.
- Before: Nobody could say which drink an empty shelf would stop.Now: The drinks list is costed against stock, naming the ingredient holding each one up.
- Before: Orders chased from memory.Now: What is on order, from whom and where it has got to, in plain words.
What we built
Oatley Coffee count what is on the shelf, and this is where those counts live. Every countable line in the shop sits in one list, grouped the way the shop is walked and held in the unit it is counted in: bags, bottles, boxes, units. Each line says its state as a word rather than only as a colour, and opening one shows what it uses in a day, when it was last counted, when it was last delivered, and whether it is already on its way.
We built it, and it is in use. It is a section inside a dashboard of ours rather than an application of its own.
See every line in stock at once
The whole ledger on one screen. Items are grouped by category, each with a coloured dot, its state said as a word and its count in its own unit beside a level bar, and an index down the side jumps between categories. A summary line at the top counts how many lines are fine, low, out, oversold and waiting on a count, a search covers every item, and a filter row cuts the list down.
Show only what needs doing
The needs attention filter cuts the ledger to what is low, out, oversold, or has gone too long without a count. A line that is otherwise fine but stale keeps its own state word and picks up a quiet caption saying how long it has been, so age never silently changes what a line is said to be.
Open a line, get its whole record
Opening an item slides out everything the system holds on it: a stepper to set the count in its own unit, the supplier, what it uses in a day, when it was last counted and last delivered, whether it is on order and what was said about that order, and the two numbers that decide when it goes on the next one. Those two can be changed from the same panel.
Know what can still be served
Under the ledger sit the two answers a shop wants from a count. One panel costs the drinks list against what is in stock and names the single ingredient holding each one up. The other lists what is already ordered, from whom, and where it has got to, written in plain words rather than a status code.
Count one category at a time
Counting is its own mode. One category fills the screen at a time, with a large stepper per item in that item's own unit, a skip for anything not being counted today, and a progress line saying which category of how many you are on. Nothing is sent as it is typed: the whole walk is held and posted at finish as one batch, and if that batch is refused nothing is written and the numbers stay on the screen.
Stack used
- Square (till data)
- Node.js
- Asana