Order Status Flow
Order status (status)
Status | Sub Status | Description | Is end status |
---|---|---|---|
IDLE | Scheduled order confirmed, the supplier will see the order in driver app by the time specified | ||
ASSIGNING | Finding a supplier | ||
ACCEPTED | BOARDED | Once supplier accepts the order, the order status will be changed to ACCEPTED | |
IN PROCESS | COMPLETING | When the supplier collects the package at the pickup location, he will click “Pick up” and the order status will be changed to IN PROCESS | |
COMPLETED | IN_RETURN RETURNED | When the supplier completes the order, the order status will be changed to COMPLETED (It does not mean the package is delivered. Check the delivery status description below) | Yes |
CANCELLED | - If the supplier cancels the order, the order status will be changed to CANCELLED, cancel_by_user is set to False - If the user cancels the order, the order status will be changed to CANCELLED, cancel_by_user is set to True - If there is no suppliers accepting order after a certain period of time (depending on service type), the order status will be changed to CANCELLED, cancel_by_user is set to False, and cancel_comment is set to “Auto cancel, no driver accepted” | Yes |
Delivery Status (path[i].status (i>0))
- COMPLETED: When the supplier gives the order to recipient and completes payment, he will choose Complete and the according stop point status will be changed to COMPLETED.
- FAILED: When the supplier arrives at the recipient point, but the recipient does not show up or due to various reasons, he will choose Fail and the according stop point status will be changed to FAILED
Check the list of failed and cancelled reason in Fail/Cancel Comment
Sub Status (sub_status)
- BOARDED: When the supplier is close to the pickup location, our system will rely on the supplier's app location and will return sub_status BOARDED
- COMPLETING: When the supplier is close to the drop-off location, our system will rely on the supplier's app location and will return sub_status COMPLETING
- IN_RETURN: After the supplier confirms the failed delivery and start to return the failed package to the sender , our system will return sub_status IN_RETURN
- RETURNED: When the supplier returned the failed package to the sender successfully, our system will set sub_status of the order to RETURNED
(*) Rebroadcast
When the supplier cancels the order which has been accepted, our system will run a rebroadcast process. When this happens, the order status will revert from ACCEPTED to ASSIGNING to find another supplier. If an order has been cancelled for the [x] times in rebroadcast duration or broadcast timeout, the order status will change to CANCELLED
Depending on the type of service, the rebroadcast duration and the [x] times of each service will be different
Order timeline
Order timelime status
order | order.path | Description | Order Status |
---|---|---|---|
create_time | When User create order | IDLE or ASSIGNING | |
order_time | When order appear on supplier’s app - If user create an instant delivery order then order_time = create_time - If user create a scheduled order then order_time > create_time | ASSIGNING | |
accept_time | When supplier accepts the order | ACCEPTED | |
board_time | When supplier is close to the pickup location | ACCEPTED | |
cancel_time (exceed the [x] times) | When supplier cancels order after accepting, rebroadcast process will start and when the number of cancellation > [x] times | CANCELLED | |
cancel_time (auto cancel) | When no suppliers accepted order until the broadcast timeout in rebroadcast process | CANCELLED | |
pickup_time | When supplier submits collect package at pickup location | IN PROCESS | |
complete_time (path[i],i>0) | When supplier confirm successfully delivery | COMPLETED (path_status) | |
fail_time (path[i],i>0) | When supplier confirm failed delivery | FAILED (path_status) | |
complete_time | As soon as supplier done all confirm (both successful or failed delivery) | COMPLETED | |
return_time | When supplier return the package to pickup location in case failed delivery | RETURNED (order.sub_status) |