Stores that actually sell, process payments cleanly and deliver without drama.
Before you read: Written from live engineering practice — the money-moving, million-user work our team runs on our own products, set down so anyone building something can learn from it.
01 · What it is
An online store is a sales operation, not a brochure, so we build them to close: a catalog that is fast and searchable, a checkout that accepts M-Pesa and cards without making customers fight the page, order tracking that keeps buyers calm, and inventory that syncs with the real world so you never sell what you don't have. Campaign hooks — vouchers, discounts, bundles — are built in, and analytics show what sells, at what margin, through which channel, so the store improves instead of plateauing.
What a e-commerce build covers:
E-commerce at TGJOF is a storefront welded to a bank branch: the catalog invites, but the checkout only earns when it can take money the way the customer prefers to pay, whether that is mobile money, a card, a wallet balance or a direct bank transfer. A store that accepts one rail quietly turns away everyone who lives on another, so the payment layer has to be wide without being sloppy. Everything a store sells must then reconcile into one ledger that matches reality to the shilling. We engineer the whole loop so the store closes orders, captures money safely across every rail, and balances at the end of each day.
What we do
How we do it
02 · The full discipline
Every e-commerce failure has the same shape: a beautiful storefront, a catalog that loads slowly, a checkout that stalls at the payment step, and a customer who leaves at the exact moment they were ready to spend. In Kenya that moment usually involves M-Pesa — the customer has their phone in hand and expects to pay with it — and every second of hesitation on that screen is revenue walking out the door.
We build online stores the way a payments studio has to, because KodiiPay is a live platform that moves real money through M-Pesa on Safaricom's Daraja rails — STK pushes, PayBills, tills, C2B callbacks, B2B and B2C settlement, wallets, escrow, ledgers and daily reconciliation. We bring the exact same discipline to commerce: the cart, the checkout, the M-Pesa charge, the stock, the dispatch, the tracking, the return, the refund, and every shilling accounted for between order and doorstep.
Below is how we build e-commerce that holds its numbers — the order lifecycle, the payment states, the callback verification, the inventory that matches reality, the delivery observability, the returns machinery and the honest limits of selling online in Kenya.
03
The catalog matters, the photography matters and the copy matters — but a store is not finished when it looks good. It is finished when it can take an order, take money, and deliver the thing. Every piece below is what turns a website into a sales operation, and every one of them is engineered rather than assumed.
The web is full of counters where nothing is sold. We build stores where the numbers reconcile — orders, stock, money and parcels all agree, all the time.
04
Most visitors to a store never reach the cart. The journey from an ad, a WhatsApp link or a Google result to a completed order is a series of decisions, each one a place to lose the customer. We engineer the journey the way we engineer the payment — deliberately, with the failure points identified in advance.
Conversion is a series of small honest wins, not one big trick. We build each step to reduce friction — and we measure which friction actually mattered.
05
The checkout is where the store either becomes a business or stays a website. In Kenya the decisive rail is M-Pesa — the customer pays with a PIN from their own phone — and beside it sit cards, wallet gateways and bank transfers for the customer who lives on those. We run every payment surface, on every rail, through the same machine that handles money on our own platform:
The checkout is the moment the website earns its keep. We make sure it accepts the money people actually pay with — M-Pesa, cards, wallet gateways, bank transfers — and that 'the money moved' is true on whichever rail before anyone touches a box.
06
M-Pesa is the home rail for a Kenyan store and it will be the lived core of any build here — the STK pushes, the PayBill and till flows, the B2C refunds. But a store that grows, or that serves travellers, diaspora customers or business buyers, will meet PayPal, Stripe and PayStack, Visa and Mastercard, and direct bank transfers besides. The rule we hold is that every one of those rails is boarded through the same money machine — the same verification, the same idempotency, the same reconciliation — so none of them becomes an easier way to steal or a quieter way to lose money:
A store that is honest on M-Pesa and sloppy on PayPal has simply chosen a cheaper way to leak. We build so the money machine is identical whichever door the customer uses — and the books stay right because the discipline does not change with the brand.
07
An order is not 'paid' the instant a push lands. Real payment software has explicit states and explicit transitions, and the store's order state machine mirrors them. Nothing jumps states, nothing settles twice, and at any moment someone can ask 'what is this order?' and get one true answer:
The rule is simple to state and brutal to hold: credit exact money once, however many times the network, the gateway or the customer says 'again.' The lifecycle below is how 'exactly once' is built.
08
When Safaricom says 'the customer paid', that message arrives over the ordinary, forgable, replayable internet. The single most dangerous assumption in commerce software is trusting it at face value — a store that credits an order on a fake callback ships goods it was never paid for. We treat every callback as a claim to verify:
On our own platform this exact loop is what separates the sandbox from production: the sandbox accepts the callback; production asks the gateway to prove it. Every store we build gets the proof requirement.
09
The nightmare of e-commerce is selling what you don't have — the customer pays, the staff discovers there is no stock, and the refund machinery has to run at the worst possible moment. Inventory is a concurrency problem as much as a logistics one, and we engineer it so overselling is structurally impossible:
We have watched real platforms learn the lesson that stock is money. We engineer it so the store never has to learn it the hard way.
10
The cart is where the purchase is decided and where most purchases are lost. Abandonment is not one problem — it is dozens of small rational refusals, each with a name: hidden delivery fee, no M-Pesa at checkout, a demand for details the customer does not want to type on prepaid data. We attack each one in the architecture:
Every abandoned cart has a reason, and most reasons are ours to fix. We build the checkout so the customer only leaves when they genuinely changed their mind.
11
An e-commerce site stops being a website the moment an order is confirmed — now there is a physical promise in the world. The order state machine carries the promise forward, so the buyer, the warehouse and the finance team all read the same truth:
Fulfilment is where trust is either kept or spent. We build the state machine so the promise is observable at every step — for the customer and for you.
12
In Kenya the customer usually knows delivery will take a day or two, and what they actually fear is silence. Tracking is not convenience; it is the mechanism that stops the 'where is my order?' flood to your support line. We treat it as an engineered channel:
The calmer the buyer, the fewer the calls and the better the review. Delivery observability is a feature, and we build it as seriously as the checkout.
13
Returns are the part of e-commerce everyone hopes to skip and nobody can. A refund is not a favour — it is a payment event that must move back through the same rail it arrived on, matched to its original transaction, exactly once. We build the reverse flow with the same discipline as the forward one:
A good returns flow costs the store a little margin and buys it a loyal customer. We build the reverse journey so it never turns a sale into a burnt relationship — or a hole in the books.
14
An e-commerce platform is a small holding company: customer payments in, delivery and cost of goods out, platform fees aside, refunds back. All of it must answer one question — does the money reconcile? — and the answer is not a spreadsheet ritual. It is a ledger with the same discipline our own wallets run on:
The storefront is what the customer sees; the ledger is what the business actually is. We build both, and we hold the ledger to the standard a regulator would recognise.
15
However good your books are, the final truth on mobile money is the gateway's statement — Safaricom's record of what actually moved into your PayBill or Till. Reconciliation is the daily proof that the store's orders, the money captured, the refunds and the statement all agree, and it must be a system, not a month-end ritual:
The first day your store's ledger matches the M-Pesa statement to the shilling is the day you know it is real. We build towards that day from the first sprint.
16
Fraud is a feature of the environment on any commerce platform — fake callbacks, stolen M-Pesa numbers, co-ordinated voucher abuse, card-not-present attacks, delivery scams. None of it is stopped by a checkbox that hopes people behave. Every control below is structural:
The design goal is deliberately asymmetric: the legitimate customer completes a purchase in seconds with zero friction, while the fraudster meets a wall at every move. Structural rules, not hoping.
17
A flash sale begins, and a thousand customers hit the same five yellow-dress items at once. Two of them are on the same stock row, and the system must decide honestly. This is the same concurrency discipline that protects money on our own platform — applied to stock, wallets and order states:
Concurrency bugs are the most expensive bugs in commerce because they only reproduce under load, at the exact moment everything is on fire. We engineer them out of the architecture — and prove it with tests that simulate the exact overlaps a flash sale produces.
18
Kenya's e-commerce traffic is overwhelmingly mobile, much of it on prepaid data and mid-range devices over a network that drops and flaps. A store tuned for a fibre office will feel broken on the phone in a matatu. Performance is not polish; it is conversion, and we treat it as an engineering requirement:
A store that is slow on prepaid data taught its users to walk to the shop instead. We build stores that stay fast where the customer actually is.
19
An online store never operates alone. It sits between suppliers, couriers, payment gateways, SMS providers, analytics and frequently an accounting package. Every integration is a failure point and a data seam; we wire them so the store talks to its partners the way the store talks to its own ledger — exactly and observably:
An integration that fails silently is worse than no integration. We wire every seam with retries, verification and observable failure.
20
The process is the same whether we are building your store or extending the machinery that runs our own live platform. It is staged, honest and delivered in increments a business can absorb:
You own the storefront, the data, the ledger and the gateway keys. No hostageware — the commerce machinery is yours.
21
Because the store spends real money, we are direct about the trade-offs — the ones a vendor who wants the logo would never mention:
We will tell you honestly when your store does not need a full ledger-and-float build — and give you the smallest correct one. And when it does need the real thing, this is the real thing.
The toolchain
This is the stack we use to build stores that close and reconcile — the same machinery that runs a live payments platform, applied to selling things. Every layer exists because a real order required it.
01
The surface that sells
02
Where the order becomes money
03
The promise carried to the door
04
The books behind every order
05
Traffic that becomes orders
06
The honest Kenya reality
07
Running the store while you sleep
Lifecycle
Building a store that sells, ships and reconciles is a standing discipline. This is the lifecycle every commerce build we deliver passes through — the same one our own platform runs on.
01
Map every money and stock movement in the current operation: double-charge risks, reconciliation gaps, fraud surface, fulfilment truth.
02
Products, variants, pricing, images and search decided before the storefront, grounded in real data.
03
Every order state and transition; 'exactly once' as a property of the schema.
04
Real gateway keys, real callbacks, real verification loops against Daraja's status APIs, rehearsed under failure.
05
Accounts, entry types, references and the revenue/settlement split decided before screens.
06
Picking, dispatch and delivery states tied to the warehouse and the courier.
07
Returns, same-rail refunds and stock reconciliation built the same week as the sale.
08
Carts, vouchers, recovery flows and attribution wired and measured from day one.
09
Double-callbacks, races, flash-sale overloads, network drops, refunds, reconciliation — simulated in the build.
10
Monitoring on money and order paths, cron sweeps, support logs, incident runbooks.
11
The M-Pesa statement matched every day; anomalies surfaced as workflows, never as surprises.
12
More channels, more volume, more markets — added to the architecture, never as a bolt-on.
Closing
An online store is a sales operation with a checkout, a warehouse, a ledger and a promise. We build all four — and we build them to the standard a live payments platform demands. That includes:
E-commerce is web design plus a warehouse plus a bank — and the weakest of the three decides the experience. We build so none of the three can be the weak one.
We run one of these every day on money that is real. When you need a store, you get the machinery that survived being live — not the one that survived only a sandbox.
Previous capability
ERP & Operations Systems
Next capability
Booking & Reservation Systems
The discipline above is what we run on our own products every day. If it would help on yours, our door is open.