
Feature · Branches and team
Multi-branch stock, staff and control
The second branch is where most Kenyan retail systems quietly fall over. Not because the software refuses — because the shop starts keeping two of everything. Two product lists that drift apart, two stock figures nobody can reconcile, two sets of prices, and a WhatsApp group standing in for stock transfers.
sell.ke splits the problem the way it actually divides: the catalogue is shared, the stock is not. One product record, priced once, with a separate quantity per branch. Moving goods between branches is a recorded movement out of one and into the other, so the total is always right and the location is always known.
What this actually does
One catalogue, stock per branch
Add a product once and every branch has it. Quantities are held per location, so "do we have it?" has a per-branch answer.
Transfers as recorded movements
Stock leaves one branch and arrives at another as a tracked movement, including what is in transit. The total never changes by accident.
Role permissions per branch
A Kisumu supervisor sees Kisumu. A cashier sells without seeing cost prices, editing products or opening reports.
Branch-level P&L
Each branch's own profit and loss, so a location that is busy but unprofitable cannot hide inside the group total.
Shifts and drawer counts per cashier
Open and close a shift with a denomination count, so a shortfall attaches to a person and a period.
Manager PIN on the risky actions
Discounts, voids and refunds gated and attributed — the same control at every branch, not whatever each manager enforces.
Unlimited branches on the top tier
Adding a location is a configuration change, not a new subscription and a new set of numbers to reconcile.
Why the transfer has to be a movement
The common shortcut is to reduce stock at the sending branch and increase it at the receiving one as two separate adjustments. It looks equivalent and it is not, because the two halves can be done at different times, by different people, or only once.
Modelled as a single movement with a state, the goods exist in transit — visible, attributed, and not yet sellable at the destination. If 20 cartons leave Nairobi and 18 arrive in Nakuru, the discrepancy is attached to a specific transfer with two names on it, rather than dissolving into the general stock variance at year end.
Permissions are a control, not a convenience
It is tempting to give everyone a manager login because it is simpler and the staff are trusted. The cost only becomes visible later: with no role separation, there is no way to tell who changed a price, who authorised a discount, or who ran a report at 11pm.
Role permissions per branch make the audit trail meaningful. A cashier account that cannot see cost prices cannot leak your buying terms to a competitor; one that cannot edit products cannot fix a stock error by overwriting it. The trail is only worth having if the actions in it could only have been taken by the person named.
- →Cashier, supervisor and manager roles scoped per branch
- →Cost prices, product edits and reports gated separately
- →Every discount, void, refund and price change attributed
- →Shift open and close with a denomination count per cashier
Where this decides the sale
The trades this matters most to, and what they need from it.
Multi-branch stock, staff and control — questions
Can I run two shops from one account?
Yes. Branches share one product catalogue and hold their own stock, so you add a product once and each location tracks its own quantity. Reports run per branch or across the whole business.
How do stock transfers between branches work?
As a single recorded movement rather than two separate adjustments. Stock leaves the sending branch, sits in transit, and arrives at the destination. A shortfall is attached to that transfer and the people on it, instead of appearing as unexplained variance later.
Can I stop a branch manager from seeing other branches?
Yes. Permissions are scoped per branch, so a supervisor in Kisumu sees Kisumu's stock, sales and staff and nothing else. Group-level reporting stays with whoever should have it.
Can I see which branch is actually profitable?
Yes. Each branch produces its own profit and loss, so a location with high takings and thin margin is visible as such rather than being averaged into a healthy-looking group figure.
What can a cashier not do?
By default a cashier sells and nothing more: no cost prices, no product edits, no reports, and no discounts, voids or refunds without a manager PIN. Every gated action that is authorised records who authorised it.
Can I use it for more than one shop?
Yes. Branches share one product catalogue but hold their own stock, so a transfer between them is a recorded movement rather than a re-count. Reports run per branch or across all of them, and staff permissions are set per branch — a Kisumu supervisor does not need to see Nairobi's margins.
Do I need internet?
Not to keep selling. Offline mode lets the till take sales, print receipts and reserve stock while the connection is down, then syncs everything when it returns. You do need connectivity for the parts that are inherently online: an M-Pesa STK push, an eTIMS submission and the online shop all need a live link.
Can I stop staff from giving discounts or deleting sales?
Yes. Discounts, voids and refunds sit behind a manager PIN, and every one of them records who authorised it and when. Staff accounts carry role permissions, so a cashier can sell without seeing cost prices, editing products or opening reports. A void that reverses stock is a movement in the audit trail, not a gap in it.
Read next
Stock you can trust
Batch and expiry, serial numbers, reorder levels, stock takes and the formulas behind them.
Reports and real accounting
Double-entry books — trial balance, P&L, balance sheet — not a CSV export to somebody else's software.
Selling at the counter
Split payments, held orders, manager-gated discounts and a drawer count that reconciles.
See it on your own products
Fourteen days, no card. Import your product list or let Amina build it from a photo of your price list, and run it alongside whatever you use now.