Building a local delivery marketplace: what the rider side changes
Last updated

A shop marketplace ends when the order is paid. A delivery marketplace only starts there. The moment riders enter the picture you need delivery zones, a way to find a rider, proof that the parcel changed hands, and a plan for the cash a rider collects at the door. This guide follows one order through DEV3 Stallora, a self-hosted delivery marketplace on Laravel 12, Filament 4 and Flutter, and points out where each of those four things changes the design.

Step 1: the cart becomes several jobs
The customer sees one basket. Behind it, each shop's lines form a package with its own delivery fee, tax, commission and ETA, and each package becomes a separate delivery. That matters because the shops prepare at different speeds and the packages may travel with different riders.
Stallora computes the fee from a delivery zone, not from a flat rate. A zone is a circle or polygon with a base fee, a fee per extra kilometre, a free-over threshold, a minimum order, rider base pay, rider pay per kilometre and a surge multiplier. At checkout the customer drops a pin on a map and the address must fall inside a zone, so you never accept an order you cannot deliver.

Step 2: the shop sets the clock
Each shop gets its package on an order board and chooses a prep time when it accepts. By default dispatch starts at acceptance, so the rider arrives as the shop finishes packing; a setting moves it to the moment the shop marks the order ready. If a shop rejects, only that package is refunded, including its share of delivery fee, tax and tip.

Step 3: finding a rider
Auto dispatch offers the job to the nearest free online rider inside the search radius. The offer expires after a timeout and goes to the next rider. After the maximum number of attempts the job is flagged for a person. The dispatch board then shows every zone, shop, rider and open job on one map, and ranks riders by distance to the shop with busy and offline riders marked.
Two practical notes. The scheduler must run, because offers expire and re-offer from a scheduled command. And the maps are drawn by Stallora itself, so there is no map provider to pay for, but they show a stylised city and not real streets.

Step 4: proof that the parcel moved
Pick-up is confirmed with the shop's 4-digit code. Drop-off needs the customer's 4-digit code, a proof photo, or both, depending on a setting. The customer sees the same code while following the rider on a live map.

Step 5: money, in the order it really moves
- The shop's earning is credited when its package is delivered, then held for a configurable number of days before it can be withdrawn.
- The rider earns a base amount plus distance pay and tips from the platform's delivery wallet. If a free delivery cannot cover a rider's pay, the shortfall is booked from commission as a visible entry.
- For cash on delivery the rider's cash wallet goes negative by the amount collected, and an admin settles it later.
- Payouts for shops and riders are requests that an admin approves and marks paid with a reference. Stallora records what is owed; it does not send bank transfers.

See it in action
The video shows the flow from a two-shop cart to a delivered order and the money that follows.
What to check before you rely on it
- Payments: Stripe, PayPal and Razorpay drivers are included but were not run against live or sandbox accounts. The default simulated gateway approves any payment, so change it before launch.
- Push and SMS: drivers exist; nothing was sent through real services.
- Apps: the customer, vendor and rider apps run in a demo mode and were tested with automated tests and builds, not on physical devices. Real push, secure token storage, device GPS and a camera plugin for proof photos still need to be added.
- Stock: stock is taken when an order is paid, so two unpaid orders can both pay for the last unit. The shop then rejects one package and it is refunded automatically.
- Quality checks: 200 Pest tests, Larastan level 6 with no errors, and a headless-browser run over 152 pages.
Storefront home — Neighbourhood shops, one cart and delivery within the hour, with a 3D product orbit in the hero.
Categories and flash deals — Shop by aisle, with a live countdown on today’s offers.





