Update direct order
PUT api.foodin.ai/users/{user_id}/orders/{order_id}/direct
Updates a last mile delivery order. You can change the delivery window, order details, and the pre-delivery tip amount.
When changing the delivery window, the start and end timestamps must fall within the window specified in the selected service option (time slot). If the timestamps are outside the window, the request fails. To select a new service option, list the available service options and select one. You don’t need to reserve it. Copy the values for the service option id, start_at, and end_at fields, and put these values in the request's service_option_id, start_at, and end_at fields.
Request
Parameters
Field | Type | Description |
---|---|---|
user_id | string | The ID of the user. |
order_id | string | The ID of the order. |
Request parameters
Field | Type | Description |
---|---|---|
start_at | string | The requested delivery window start time in ISO 8601 format. |
end_at | string | The requested delivery window end time in ISO 8601 format. |
service_option_id | integer | The ID of the service option for the order. |
initial_tip_cents | integer | The pre-delivery tip in cents. |
items_count | integer | The number of items in the order. |
bags_count | integer | The number of bags in the order. |
items_weight | number | The weight of the items in lbs. |
cart_total | number | The gross merchandise value (gmv) of the cart. |
alcoholic | boolean | Indicates whether the order contains alcohol. |
bag_label | string | A user-friendly label that helps shoppers identify the order. |
special_instructions | string | Special instructions about the order to pass on to the shopper. |
Request example
var axios = require('axios');
async function updateLastMile(user_id, order_id, token) {
try {
const response = await axios({
method: 'put',
url: https: //api.foodin.ai/users/${user_id}/orders/${order_id}/direct,
headers: {
Accept: 'application/json',
Authorization: Bearer $ {
token
},
'Content-Type': 'application/json',
},
data: {
start_at: 'string',
end_at: 'string',
service_option_id: 1,
initial_tip_cents: 1,
items_count: 1,
bags_count: 1,
items_weight: 1,
cart_total: 1,
alcoholic: true,
bag_label: 'string',
special_instructions: 'string',
},
});
console.log(response.data);
} catch (error) {
console.error(error);
}
}
Response
Field | Type | Description |
---|---|---|
id | string | The ID of the order. |
status | string | The current order status. |
order_url | string | Link to view the order. |
created_at | string | The time of order creation in ISO 8601 format. |
cancellation_reason | string | The reason the order was canceled. |
locale | string | The order's locale in POSIX format. Example: en_US. |
fulfillment_details | Object | The order delivery details. |
Fullfilment_details Object
Field | Type | Description |
---|---|---|
store_location | string | The location code of the store where the order was fulfilled. The store_location is often the same as the location_code that was used to create the order. However, orders can be fulfilled from a different store location. |
window_starts_at | string | The start time of the delivery window in ISO 8601 format. |
window_ends_at | string | The end time of the delivery window in ISO 8601 format. |
delivered_at | string | The time the order was delivered in ISO 8601 format. |
bag_count | integer | The number of bags in the order. |
handoff_window_starts_at | string | The start time of the handoff window in ISO 8601 format. |
handoff_window_ends_at | string | The end time of the handoff window in ISO 8601 format. |
Response example
{
"id": "12345676789012345678780",
"status": "created",
"order_url": "https://foodin.ai/example_store//example-order",
"created_at": "2022-02-22T00:00:00Z",
"cancellation_reason": "delivery_driven",
"locale": "en_US",
"fulfillment_details": {
"window_starts_at": "2018-02-22T00:00:00Z",
"window_ends_at": "2018-02-22T00:30:00Z"
},
"is_fallback_window": false
}
4XX Errors
Code | Cause | Error Message |
---|---|---|
400 | User Not Found | "User Not Found" |
400 | Invalid order params | "Invalid service option id." |
400 | Fails alcohol compliance check | "Alcoholic items can not be added to this order. Please remove and retry." |
400 | Order updated recently | "Order has been recently updated, please try again in a little while." |
403 | User Not Active | "User Not Active" |