Order lifecycle
An order on Te Lo Llevo is not a single moment — it is a journey. From the instant the customer taps "Confirm" to the moment the courier places the parcel in their hands, the platform moves through a well-defined set of states, with clear rules about who acts at each step and what happens if something goes wrong.
This chapter explains every order state, how a courier is dispatched, the delivery protocol, what happens when a customer does not show up, and how exceptions are handled — cancellations, refunds and return-to-origin.
The big picture
A delivery order passes through three pairs of hands: the customer who places it, the merchant who prepares it and the courier who delivers it. Each handover between them has its own state. The diagram below shows the main route — the happy path — from start to finish.
Behind this linear sequence is a state machine that records exactly where each order stands at every moment. Anyone with access — the customer, the merchant, the courier or the Operations team — can check the state in real time.
This state cycle applies to orders with home delivery. In-store sales (POS receipts) have their own shorter flow: select products, take payment, print the receipt. That flow is detailed in the POS in depth chapter.
Every state explained
Below is every state in the order it typically appears, who is in control at that moment, and what can happen next.
-
PENDING — Pending
The customer has confirmed their order and payment has been authorised. The order is waiting for the merchant to review it. The merchant receives an immediate notification. At this stage the customer can still cancel at no charge if the merchant has not yet acted, subject to the cancellation policy.
-
ACCEPT / REJECT — Merchant decision
The merchant either accepts or rejects the order. If accepted, it moves to
PREPARING. If rejected, the merchant must provide a reason (out of stock, closed, capacity). A rejection triggers an automatic full refund to the customer, and the order becomesCANCELLED. -
PREPARING — Being prepared
The merchant is making the order. The customer sees this state in their live tracking. In parallel, the platform begins searching for an available courier so one is ready when the order is.
-
READY_FOR_PICKUP — Ready for pickup
The merchant has marked the order as ready. The assigned courier is alerted to head to the pickup point. If no courier has been assigned yet, the platform intensifies its search.
-
ASSIGNED — Courier assigned
A courier has accepted the task. The customer sees the courier's name and live position on the map. The courier is now heading to the merchant to collect the order.
-
Pickup — On the way
The courier has collected the order from the merchant (action
pickup) and is on the way to the customer's address. Live tracking updates with the courier's position. -
ARRIVED — Arrived at destination
The courier has reached the delivery address and taps "Arrived". The customer receives an alert to come down or come outside. The wait counter starts.
-
WAITING_CUSTOMER — Waiting for customer
The courier is at the delivery point waiting for the customer to appear. The wait time has a limit (the no-show timer). If the customer does not appear before it expires, the system can auto-complete the delivery or initiate the return-to-origin protocol.
-
DELIVERED — Delivered
The order has reached the customer. The courier marks the delivery as complete (action
complete). The customer can rate the experience. Loyalty points are credited. The amount enters the merchant's settlement cycle. -
CANCELLED — Cancelled
The order has been cancelled — by the customer, the merchant or the platform. The cancellation policy determines whether a charge applies or a full refund is issued. The order is kept in the history (never deleted) for fiscal compliance.
-
FULLY_REFUNDED — Fully refunded
A 100% refund is equivalent to a cancellation. The full amount is returned to the customer. Any loyalty points earned are reversed. The order is marked
FULLY_REFUNDEDrather than deleted.
Dispatch & the 15-second window
When an order needs a courier, the platform sends an offer to available couriers in the area. This process is called dispatch and operates on a tight time window to keep the fleet engaged and delivery times low.
-
Finding a courier
The platform identifies the nearest online couriers to the pickup point and sends them a task offer with the details: merchant, destination, estimated distance and fee.
-
The 15-second window
The courier has exactly 15 seconds to accept the offer. During those 15 seconds they see a countdown in the courier app. If they do not respond — whether because they are busy, miss the notification or choose not to accept — the offer expires automatically.
-
Automatic reassignment
If the offer expires without being accepted, the platform immediately re-offers it to the next available courier. This cycle repeats until someone accepts or until the Operations team intervenes manually.
-
Confirmation and tracking
As soon as a courier accepts, the order moves to
ASSIGNEDand the customer receives confirmation with the courier's name and real-time position.
A longer window increases the customer's wait and allows couriers to routinely decline without consequence. A shorter one does not give enough reaction time. Fifteen seconds is the operational balance that keeps the fleet committed and customers satisfied.
The delivery protocol
The final leg of the lifecycle — from the moment the courier arrives at the customer's door to the point the delivery is closed — has its own protocol to protect both the customer and the courier.
When the courier taps "Arrived" (arrived), the customer receives a
push notification in the customer app. The courier then marks that they are waiting
(wait) and the no-show timer starts.
This timer protects the courier: if the customer does not appear within the allotted time, the system auto-completes the delivery. The courier can move on to the next task without being stuck indefinitely at a door.
If the delivery cannot be completed — for example, the parcel requires a signature or the customer is unreachable — the courier can initiate the return-to-origin protocol.
Courier actions during delivery
The courier executes these actions in that order. Each action changes the order state and notifies the relevant parties.
When things go wrong
Not every order reaches DELIVERED. These are the exception paths and
how the platform handles them.
Rejection by the merchant
If the merchant rejects an order, they must state a reason (product out of stock,
establishment closed, insufficient capacity). The order moves to
CANCELLED and the customer receives an automatic full refund. The
merchant earns nothing for rejected orders.
Cancellation by the customer
The customer can cancel an order, but the cancellation policy determines whether they are charged. The general rule is:
| When the cancellation happens | Is the customer charged? |
|---|---|
Before the merchant accepts (PENDING) |
No — full refund |
After the merchant has accepted (PREPARING) |
Depends on the service type and the current policy |
| Once the courier has collected | Generally yes — the order is already on its way |
Return to origin
If the delivery fails — the customer is absent, the address is wrong or the parcel
cannot be handed over — the courier initiates the return-to-origin
action. The order is taken back to the originating point. The platform records who
bears the cost of the failure, the reason and the associated risk. Once returned,
the courier marks return-complete.
A cancelled or refunded order is never removed from the system. It is kept as
CANCELLED or FULLY_REFUNDED for fiscal compliance:
every transaction must remain permanently on record to meet tax obligations.
Partial refund
A partial refund occurs when only part of the amount is returned — for example, if one item arrives damaged. The platform recalculates VAT proportionally to the amount refunded. The stock of the affected item returns to the merchant's inventory.
Scheduled orders
A customer can book a future time slot for their order. Scheduled orders enter the
system with the state PENDING but are not processed until the agreed
slot arrives. This allows customers to plan deliveries for midday, the afternoon
or even the following day.
Rescheduling
The customer can change the time slot of a scheduled order as long as the merchant has not yet accepted it. Once accepted, any change requires cancelling and placing a new order.
Cancelling a scheduled order
A scheduled order can be cancelled well in advance at no charge. The cancellation policy applies in the same way as for immediate orders once the merchant has started acting.
In summer, demand along the Mar Menor coast surges. Scheduled orders let customers lock in their preferred delivery slot without competing in real time for the available fleet.
What each persona sees
The same order is presented differently depending on who is looking at it. The table below summarises what information and actions are available to each person at each key state.
| State | Customer sees / can do | Merchant sees / can do | Courier sees / can do |
|---|---|---|---|
PENDING |
"Order received, waiting for merchant" · can cancel | New order notification · accepts or rejects | Nothing yet — order is not ready for dispatch |
PREPARING |
"Your order is being prepared" · live tracking | Manages order on the kitchen rail · marks as ready | May see an upcoming offer; 15-second countdown if received |
READY_FOR_PICKUP |
"Ready, waiting for courier" | Order ready; waiting for courier | Active 15-second offer countdown |
ASSIGNED |
Courier's name and live position on the map | Name of assigned courier | Full details: merchant, address, route, fee |
ARRIVED |
"Your courier has arrived" · timer visible | Order on its way to delivery | Wait action active; no-show timer running |
WAITING_CUSTOMER |
Push alert · "Call the courier" button | No action required | Timer running; return-to-origin option if it expires |
DELIVERED |
"Delivered!" · can rate · points credited | Order closed; enters settlement cycle | Task closed; available for next offer |
CANCELLED |
Cancellation notification · refund if applicable | No earnings for this order | Task withdrawn if already assigned |
The Operations console shows all active, scheduled and cancelled orders in real time. The team can intervene at any state: reassign a courier, force-cancel a stuck order or manage the return-to-origin queue.