Product API
Fulfillment guide
Send Order
Update Direct Order

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

FieldTypeDescription
user_idstringThe ID of the user.
order_idstringThe ID of the order.

Request parameters

FieldTypeDescription
start_atstringThe requested delivery window start time in ISO 8601 format.
end_atstringThe requested delivery window end time in ISO 8601 format.
service_option_idintegerThe ID of the service option for the order.
initial_tip_centsintegerThe pre-delivery tip in cents.
items_countintegerThe number of items in the order.
bags_countintegerThe number of bags in the order.
items_weightnumberThe weight of the items in lbs.
cart_totalnumberThe gross merchandise value (gmv) of the cart.
alcoholicbooleanIndicates whether the order contains alcohol.
bag_labelstringA user-friendly label that helps shoppers identify the order.
special_instructionsstringSpecial 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

FieldTypeDescription
idstringThe ID of the order.
statusstringThe current order status.
order_urlstringLink to view the order.
created_atstringThe time of order creation in ISO 8601 format.
cancellation_reasonstringThe reason the order was canceled.
localestringThe order's locale in POSIX format. Example: en_US.
fulfillment_detailsObjectThe order delivery details.

Fullfilment_details Object

FieldTypeDescription
store_locationstringThe 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_atstringThe start time of the delivery window in ISO 8601 format.
window_ends_atstringThe end time of the delivery window in ISO 8601 format.
delivered_atstringThe time the order was delivered in ISO 8601 format.
bag_countintegerThe number of bags in the order.
handoff_window_starts_atstringThe start time of the handoff window in ISO 8601 format.
handoff_window_ends_atstringThe 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

CodeCauseError Message
400User Not Found"User Not Found"
400Invalid order params"Invalid service option id."
400Fails alcohol compliance check"Alcoholic items can not be added to this order. Please remove and retry."
400Order updated recently"Order has been recently updated, please try again in a little while."
403User Not Active"User Not Active"