Update order
PUT api.foodin.ai/users/{user_id}/orders/{order_id}
Updates a delivery or pickup order. You can change the time slot, tip amount, instructions, user details, and items.
Request
Parameters
Field | Type | Description |
---|---|---|
user_id | string | The ID of the user. |
order_id | string | The ID of the order. |
Field | Type | Description |
---|---|---|
service_option_hold_id | integer | The ID of the service option hold. |
initial_tip_cents | integer | The pre-delivery tip amount in cents. |
special_instructions | string | Special instructions about the order to pass on to the shopper. |
user | object | Any additional attributes for the user, these take precedence over values set during user create. |
User Object
Field | Type | Description |
---|---|---|
birthday | string | The user's birthday in ISO 8601 format, this is used for alcohol eligibility validation. |
phone_number | string | The user's phone number. |
sms_opt_in | boolean | Indicator whether the user has opted-in to receive SMS communications. |
User Object
Field | Type | Description |
---|---|---|
line_num | string | The item's line number in the order. |
count | integer | The count of the item. Must be a non-negative integer. |
weight | number | The weight of the item (defaults to lbs in the US). Must be a non-negative number. |
special_instructions | string | Any special instructions about the item selection. |
replacement_policy | string | One of "no_replacements", "users_choice" (default if replacement_items specified), or "shoppers_choice" (default otherwise). |
replacement_items | Array | A list of requested replacement items if the original item could not be found. This field needs to be turned on via configuration. |
item | Object | The item's code. |
Replacement_items object
Field | Type | Description |
---|---|---|
upc | string | The item's universal product code (upc). |
Item object
Field | Type | Description |
---|---|---|
upc | string | The item's universal product code (upc). |
Request examples
const axios = require("axios");
const user_id = "...";
const order_id = "...";
const token = "...";
const data = {
service_option_hold_id: 1,
initial_tip_cents: 1,
special_instructions: "string",
user: {
birthday: "string",
phone_number: "string",
sms_opt_in: true,
},
items: [
{
line_num: "string",
count: 1,
weight: 1,
special_instructions: "string",
replacement_policy: "no_replacements",
replacement_items: [
{
upc: "string",
},
],
item: {
upc: "string",
},
},
],
};
axios({
method: "put",
url: `https://api.foodin.ai/users/${user_id}/orders/${order_id}`,
headers: {
Accept: "application/json",
Authorization: `Bearer ${token}`,
"Content-Type": "application/json",
},
data,
})
.then((response) => {
console.log(response.data);
})
.catch((error) => {
console.error(error);
});
Response
Response data
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. |
warnings | Array | Any warnings associated with this request. |
items | Array | The items in the order. |
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. |
Warnings Object
Field | Type | Description |
---|---|---|
error | Object | Information relevant to the error. |
|meta|Object|The error metadata.|
Meta Object
Field | Type | Description |
---|---|---|
items | Array | The items that triggered the error. |
Items Object
Field | Type | Description |
---|---|---|
item_code | string | The store reference code (RRC) or universal product code (UPC) of an item that triggered the error. |
Items Object
Field | Type | Description |
---|---|---|
line_num | string | The item's line number in the order. |
qty | number | The quantity of the item. |
qty_unit | string | The quantity type, either "each" or "kg". |
qty_fulfilled | number | The fulfilled quantity of the item. |
qty_fulfilled_unit | string | The fulfilled quantity type, either "each" or "kg". |
qty_requested | number | The initally requested quantity of the item. |
qty_requested_unit | string | The initally requested quantity type, either "each" or "kg". |
replaced | boolean | Indicates whether the item was replaced. |
scan_code | string | The scan code of the item. |
replacement_policy | string | The replacement policy for the item. |
deliverer_provided_item_name | string | The item name provided by deliverers for items that they added. |
deliverer_provided_item_price | Object | The item price provided by deliverers for items that they added. |
item | Object | The item's codes. |
Deliverer_provided_item_price Object
Field | Type | Description |
---|---|---|
amount | number | The amount of a specified currency. |
currency | string | The currency type in ISO 4217 format. For example: USD. |
Item Object
Field | Type | Description |
---|---|---|
upc | string | The item's universal product code (UPC). |
rrc | string | The item's store reference code (RRC). |
requested_upc | string | The requested item's universal product code (UPC). |
requested_rrc | string | The requested item's store reference code (RRC). |
delivered_upc | string | The delivered item's universal product code (UPC). |
delivered_rrc | string | The delivered item's store reference code (RRC). |
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": {
"store_location": "000-31205",
"window_starts_at": "2018-02-22T00:00:00Z",
"window_ends_at": "2018-02-22T00:30:00Z"
},
"items": [
{
"line_num": "58",
"qty": 15,
"qty_unit": "each",
"replaced": false,
"scan_code": "00070481001169",
"replacement_policy": "shoppers_choice",
"item": {
"upc": "123456789067",
"rrc": "",
"requested_upc": "123456789067",
"requested_rrc": "",
"delivered_upc": "123456789067",
"delivered_rrc": ""
}
}
]
}
4XX Errors
Code | Cause | Error Message |
---|---|---|
400 | Invalid user id | "User Not Found" |
400 | User and order without phone number | "can't be blank" |
400 | Invalid replacement_policy | "is not included in the list" |
400 | Invalid items | "1 item not found." |
400 | Invalid order params* | "There were issues with your request" |
400 | Tip over maximum | "Tip value is above maximum: $500.00." |
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 | Inactive user | "User Not Active" |