Skip to Content
/Pharmacies · Kenya

A pharmacy management system, built on Odoo.

We build pharmacy systems on Odoo for retail pharmacies in Kenya, single shops and multi-branch groups. Stock is bought centrally, priced, distributed to the branches, sold over the counter for M-Pesa, cash or card, fiscalised with KRA on the spot, and the shelf is refilled before it runs empty.

ShopsOne shop or a group of branches, on one system
CounterM-Pesa, cash and card at the till, with eTIMS receipts on the spot
MedicinesBatch and expiry tracking on every product
After go-liveTraining for your team, and an optional monthly support plan
01What the system covers

From the supplier to the counter.

The till

A fast counter screen with barcode scanning, M-Pesa, cash and card, and split payments on one sale. Each cashier works a session that opens with a float and closes with a counted drawer, and every sale lands in the stock and the accounts at the same time.

Sales

Batch and expiry

Every medicine is tracked by batch and expiry date, and stock approaching expiry is flagged early enough to return it, transfer it or discount it while it still has value.

Stock

Price control

Selling prices are set per branch with a floor under them. A discount below the floor carries the approving manager's name, and selling below cost is blocked for everyone.

Margin

Central buying and transfers

Head office buys, holds the bulk stock and distributes to the branches, with stock in transit visible so nothing goes missing between stores.

Purchasing

Stocktakes and refills

Count sessions per branch, with several staff counting at the same time. Reorder levels follow what each branch actually sells, and a person approves every suggestion.

Operations

Reports per branch

Fast movers, dead stock, near-expiry lists, sales per branch and per cashier, and stock valuation, with every figure clickable through to the records behind it.

Reporting
02The full build

Twenty areas of build sit under those six cards.

These are their names.

01Branch structure
02Roles and access
03Catalogue, packs and units
04Batch and expiry
05Branch pricing and floors
06Discount approvals
07The till and cash sessions
08M-Pesa per till
09eTIMS per branch and till
10Vendor approval
11Price-increase alerts
12Receiving and transfers
13Stocktake sessions
14Replenishment
15Inter-branch balancing
16Dashboards
17Branch profitability
18Payroll
19Customer notifications
20Data migration
03Who it is for, and why Odoo

Who we build it for.

Retail pharmacies and chemists in Kenya, whether that is one shop or a group of branches, usually running on a standalone till, a stock book and a spreadsheet that never quite agree with each other.

We build it on Odoo so the counter, the stock and the accounts run on one platform and give one set of numbers. We recommend Odoo Enterprise, and there is an optional monthly support plan after go-live.

Scope it on a call
01

Single pharmacies

One shop and one or two tills, with the same control over prices, expiry and stock.

02

Multi-branch groups

Two branches or twenty on one system, each with its own stock, tills and prices, and head office seeing all of them.

03

Retail with a wholesale side

Counter sales and bulk sales from the same stock and the same books, in packs or single pieces.

04

Groups tidying up

Replacing a till per branch and a spreadsheet at head office with one system and one set of numbers.

04Questions we get asked

Pharmacies on Odoo, answered.

Can it run several branches?
Yes. Every branch runs on the same system with its own stock, tills and prices, head office sees all of them, and new branches are added on the same platform when you open them.
Does the till take M-Pesa?
Yes. M-Pesa, cash and card, including split payments on one sale, and each till reconciles to its own drawer and its own M-Pesa account.
Is it eTIMS compliant?
Yes. Branches are registered with KRA eTIMS, and receipts, invoices and credit notes are fiscalised as they are raised at the counter.
Can it stop staff from underpricing?
Yes. Prices are set per branch with a floor under them. A discount below the floor needs a manager's approval, and selling below cost is blocked for everyone.
How does expiry control work?
Every medicine carries its batch and expiry date. The system flags stock approaching expiry early enough to return it to the supplier, move it to a branch that will sell it, or discount it.
Can we sell in packs and single pieces?
Yes. Products are bought in cartons, boxes or packs and sold in wholes or single pieces, and the stock, costs and reports stay correct in every unit.
Can staff bend the rules at the counter?
No. A confirmed sale locks, reversing it is a manager action that is logged, and a till session only closes when the cash count is explained. What each role can see and do is set in the system, not in a staff memo.
What happens after go-live?
We train every team on their own screens, cashiers on the till, managers on approvals and reports, head office on buying and stock. There is an optional monthly support plan covering fixes, questions, small changes and upgrades, with a 24-hour weekday response. Without a plan, we still help when you call, and each request is quoted and billed on its own.
How do we start, and what does it cost?
It starts with a discovery call. After that you get a written scope and a fixed price for your branches, catalogue and tills.
/Get in touch

Start with a discovery call.

Tell us how many shops you run, how the counter works today and where the stock comes from. We come back with a written scope and a fixed price.

What happens next
  1. 1
    You write to us. Form, email, or WhatsApp. ~5 min
  2. 2
    We reply. Real questions, not a pitch. within 24h
  3. 3
    We meet. 45 minutes, no charge. within a week

Begin a project

Replies within 24h

By submitting, you agree to be contacted about your project. We never share enquiries with third parties.

That did not go through. Email sahalinnovation@gmail.com or WhatsApp +254 705 109 086 and we will pick it up.

Thanks. We have your note.

An Odoo consultant will reply within 24 hours, weekdays.