Retail and supermarkets
High transaction counts, many products and staff turnover at the counter.
- POS
- Inventory
- Branches
Business Management · POS & ERP
CodeWave builds integrated business systems that connect the counter, the stock room, purchasing and the back office — so sales, inventory, customers, suppliers and reporting run from one place, for a single shop or a multi-branch business.
Receipt
01 · The problem
Most businesses do not outgrow their systems all at once. They outgrow them one workaround at a time, until nobody can say what the business actually sold or holds.
A standalone till, a stock spreadsheet and a supplier file are each reasonable on their own. The cost shows up in the gaps between them.
What the system says is on the shelf and what is actually there drift apart between counts.
The sale is recorded, but nothing behind it moves — stock, cost and customer stay where they were.
Reorders happen when someone notices a gap, not when the numbers say they should.
Each outlet reports differently, so the business is read one branch at a time.
M-Pesa, card and cash are reconciled by hand against a till that never saw them.
By the time the numbers are assembled, the decision they were meant to inform has been made.
02 · Who it is for
The common thread is stock that moves, money that arrives through several channels, and more than one person who needs to know the truth about both.
High transaction counts, many products and staff turnover at the counter.
Bulk movement, credit customers and purchasing that has to be planned rather than improvised.
Controlled stock, batch discipline and a counter that cannot slow down.
Fast service, consumable stock and shifts that need to be accountable.
Inputs, outputs and the reporting that connects what was bought to what was sold.
Several outlets that have to be comparable, not just individually profitable.
03 · How it works
The point of an integrated system is that a single action at the counter updates stock, money and the record the business reports on.
Products, prices, categories and the details the rest of the system depends on.
Foundation
Stock is received, valued and held per branch, so quantities mean something.
Stock
The counter rings the sale against real products and a real branch.
Counter
M-Pesa, card or cash is captured as part of the sale rather than reconciled afterwards.
Money
Inventory moves as a consequence of the sale — not as a separate job someone remembers.
Stock
Sales, stock, margin and branch performance are read from what actually happened.
Back office
The counter is the part that cannot be slow; everything else is designed around keeping it quick.
Sales, purchases and adjustments move the same figure rather than three separate ones.
Sales, discounts and adjustments carry the account that made them.
04 · Modules
A system is assembled from these around how a business actually trades — not every business needs every module on day one.
The catalogue the whole system depends on: items, categories, pricing and the attributes a business trades on.
Stock levels, movements and adjustments, held per branch so quantities are answerable.
The counter: quick item entry, discounts where allowed, receipts and the record behind them.
Ordering and receiving stock, so what comes in is recorded the same way as what goes out.
Supplier records, what was bought from them and what is owed.
Customer accounts, history and — where the business gives credit — what they owe.
Outlets as first-class entities: their own stock, their own sales, one comparable view.
Who may sell, discount, adjust stock, receive goods or see reports.
M-Pesa, card and cash captured as part of the sale, with reconciliation built into the flow.
Sales, stock, purchasing and branch performance read from operational data rather than re-entered.
Approvals, transfers and the operational rules a business runs by, modelled where they matter.
Systems are maintained after go-live under an agreement — not handed over and abandoned.
05 · Till and back office
The counter needs speed and almost no thinking. The back office needs depth and control. They fail when they are separate systems pretending to agree.
Designed for someone working quickly with a queue in front of them.
Designed for the people who have to explain the numbers.
06 · Interface
Illustrations drawn for this page. Values are masked deliberately — these show how the screens are organised, not anyone's trading figures.
Receipt
Sales today
Low stock
Purchases due
Stock movements
All branches07 · Roles and users
Permissions decide who can sell, who can discount, who can move stock and who can see the margin.
Works the counter and needs to be fast, not powerful.
Responsible for what is actually on the shelf.
Answerable for one outlet and the people in it.
Reads the business rather than the counter.
08 · Business benefits
Stated as capability rather than percentages — the size of the gain depends on how far apart your systems are today.
Sales, purchases and adjustments move one figure, so counts become a check rather than a rescue.
Quick item entry and integrated payment keep the queue moving at the busiest hour.
M-Pesa, card and cash are captured with the sale instead of matched afterwards.
Outlets can be compared because they are measured the same way.
Discounts, adjustments and voids carry the user who made them.
Reporting comes out of operations, so the numbers arrive while they still matter.
09 · Technology
CodeWave builds these systems on PHP/Laravel or ASP.NET Core with a relational database behind them, chosen for what the business already runs and what it needs to keep running.
Deployment shape — cloud, on-premise or a mix — is decided per business, alongside backups, monitoring and what happens when the connection does not cooperate.
Clients
Application
Integrations
Data
Architecture at a conceptual level
10 · FAQ
Where the honest answer is "it depends", we say so — and then tell you what it depends on.
Prefer the engineering story? Read the POS & ERP Systems case study.
CodeWave builds integrated POS and ERP systems rather than selling one fixed box. The modules on this page — products, inventory, sales, purchasing, suppliers, customers, branches, users, payments and reporting — are the capability areas we build with. What your business gets is assembled and shaped around how it actually trades.
That depends on how the system is deployed, and it is one of the first questions we ask rather than one we answer in advance. Some businesses need the till to survive a connection outage and are willing to pay for that design; others run reliably enough that it is not worth the complexity. We scope it explicitly instead of promising it by default.
Branches, users and roles are part of how these systems are designed. Stock, sales and reporting can be read per branch or across the business, and a cashier at one branch works within that branch.
Yes — M-Pesa integration is a core part of what CodeWave does, including STK Push, Till and PayBill flows with the callbacks and reconciliation that make them trustworthy. Card and cash are handled as payment methods alongside it.
Not necessarily. Many businesses keep their accounting package and want the operational system to feed it. Integration is scoped per business: which figures move, when, and in what direction.
Migration from spreadsheets or an existing system is normal work at the start of a project. What it takes depends on the state of the data — which we look at before committing to an approach.
You do. Custom systems are delivered with source code, documentation and deployment details, and support continues under an agreement rather than a dependency.
More from CodeWave
Payment Verification & Business Operations
Know when the payment arrives.
FinTech / Payments
Payment systems engineered around the money, not around the demo.
Insurance Investigation Management
Manage every investigation from assignment to final report.
Start a conversation
Bring us the workarounds — the spreadsheet beside the till, the stock count that never matches, the branch that reports differently. That conversation is where a useful system starts.