Overview
A same-city errand dispatch platform connects customers who need items picked up and delivered with on-demand riders. Everything starts with the customer ordering experience — if placing an order feels slow or confusing, no amount of dispatch logic or payment integration will save the product.
This article is the first in a series that walks through our errand dispatch platform module by module. Each part covers a tightly related set of features. This part focuses on the customer ordering flow: how users open the app and place their first order.
Part 1 — Customer Ordering Flow
In our platform, the user home screen is not a menu or dashboard — it is the order page. A full-screen map sits behind a draggable bottom sheet where the user fills in pickup, delivery, item details and sees a live fee estimate. This design keeps location context visible at all times.
Map + Bottom Sheet Layout
- Map layer — Shows pickup and delivery pins; the map recenters when the user edits an address or relocates to current GPS position.
- Bottom sheet — Collapsible order form with pickup/delivery fields, item type, weight, vehicle choice, pickup time window and submit button.
- Float actions — Quick access to profile drawer, notifications and one-tap re-location.
- Address swap — Users can swap pickup and delivery sides with a single tap when direction is reversed.
Auto-Composed Pickup Address
When a user opens the app for the first time, the platform automatically assembles the pickup (sender) side from three sources — once, and only once:
- Current GPS location — Reverse-geocoded to a real street address (not a nearby POI name).
- User display name — Pulled from the registered profile.
- User phone number — Pulled from the account contact field.
If GPS and profile data arrive at different times, the system fills in whichever field becomes available without overwriting values the user has already edited manually. Returning from the address book or map picker does not trigger a second auto-location — the user's edits are preserved.
Address Book
The address book is tightly linked to the order flow. Users pick a saved address for pickup or delivery, or add new entries via map search.
- Store full, display short — Each entry saves the complete geocoded address plus latitude/longitude for routing and fee calculation. Lists and cards show a short POI label (e.g. "Sinochem Building") for readability.
- Map pick — New addresses are created by searching or dragging a pin on the map; the full formatted address is stored, not just the POI name.
- Search — Filters match both the short label and the full address string.
- Picker mode — When opened from the order sheet, selecting an address returns it directly to the pickup or delivery field.
- Batch delete — Users can enter batch mode to select and delete multiple saved addresses at once.
Order Sheet Fields
The current product flow is single pickup → single delivery. Before submitting, the user configures:
- Item type — Category selection (documents, food, etc.) with an optional flat surcharge configured in admin.
- Weight — Parcel weight in kg; excess over the vehicle's included allowance adds to the fee.
- Vehicle type — Motorcycle, e-bike or other enabled options, each with its own fee profile, weight limit and max distance.
- Pickup time — "Ship now" or a scheduled pickup window; the chosen time is used for night-rate and special-date pricing coefficients.
- Coupon — Optional discount applied before payment; the sheet shows original and discounted amounts.
- Live fee estimate — Updates as addresses or item details change; displays "from" pricing while the route is still computing.
Both pickup and delivery addresses are validated against configured operating areas before the order can be submitted. Out-of-area addresses show an inline error rather than failing silently at checkout.
Order List and Detail
After submission, users track orders through a dedicated list and detail view:
- Status tracking — Pending assignment, accepted, picked up, in transit, completed or cancelled.
- Live rider location — Map display during active delivery.
- Cancel before pickup — Users can cancel unpaid or unassigned orders within allowed rules.
FAQ
Why should the home screen be the order entry page?
In a delivery app, the primary user action is placing an order. A map-based home screen with an embedded order sheet reduces navigation steps and keeps location context visible while the user fills in details.
Should the address book store full or short addresses?
Store the complete geocoded address with coordinates for ordering, routing and fee calculation. Display a short POI label in lists and cards. The short label is a display tag, not a sign that the address data is incomplete.


