Ask how an e-commerce platform handles delivery and you usually get an answer about a courier integration. Ask in Luweero and the honest answer is: a boda-boda rider, who is already carrying everything else in the district.
A third side, with an account
On ArcardeMall the rider is not a courier API. They register, they have a dashboard, they see and accept assigned deliveries, and they are paid per completed trip to their own mobile-money account. Treating that as a first-class side of the marketplace rather than as plumbing is what makes same-day delivery something you can promise.
The code that closes the loop
A delivery is complete when the buyer gives the rider a one-time code and the rider enters it. That single event does three things: it confirms receipt, it releases the vendor’s payment, and it records the rider’s completed trip.
It also means a rider should never accept “leave it with the neighbour”. Without the code from the buyer, the delivery cannot be confirmed and nobody is paid — which is inconvenient exactly often enough to be worth the protection it buys.
Batching and routes
Several orders heading the same way can be batched into one run, which is how the economics work for a rider on a short-distance trip. The route and the drop sequence are in the rider dashboard; the buyer sees their own order move through the same stages.