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" |