An Order Status Change Notification is triggered when an order is moved into a new state, such as Customer Care, Payment Hold, Payment Error, Waiting For Manufacturer Acceptance, or Order Canceled. These notifications usually follow the template outlined below, with the appropriate statuses differentiated by the previousOrderStatus and orderStatus parameters to indicate how the order has been changed.
A variant to the standard Order Status Change template is the Create Order Notification, which provides very similar information at the start of the order process but does not include parameters for transfer orders or individual shipments.
Order Status Change Notification
The following data is always included in Order Status Change Notifications.
Field | Type | Parent | Description |
orderID | integer | The identifier of the order created. | |
transferOrderIDs | array <integer> | A list of of transfer order identifiers spawned from this order, if any. | |
externalOrderID | string | Client-generated unique identifier for the order sent to Kibo. | |
customerID | integer | A unique identifier for the customer who created the order. | |
orderItems | array | A list of order items in the order. | |
orderItemID | integer | orderItems | A unique identifier for the individual order item. |
expectedDeliveryDate | string | orderItems | The date the order is expected to be ready for pickup. |
shipments | array | ||
shipmentID | integer | shipment | A unique identifier for a shipment. |
readyDate | string | shipment | The date the shipment became ready to be shipped, or null. |
shipDate | string | shipment | The date the shipment was shipped, or null. |
locationID | integer | shipment | A unique identifier for the fulfilling location. |
externalStoreID | string | shipment | Client-generated unique identifier for the fulfilling location. |
storeName | string | shipment | The name of the fulfilling store or location. |
shipType | string | The speed at which the order will be shipped, ex: “REGULAR”, “EXPRESS_1_DAY” etc. | |
deliveryMethod | string | The method of delivery, such as “IN_STORE_PICKUP” | |
shippingAddressID | integer | The unique identifier of the shipping address, not applicable for the In-Store Pick Up case. | |
isTestOrder | boolean | A flag designating if the order is a test order. | |
previousOrderStatus | string | The status of the order before transitioning. | |
orderStatus | string | The current status of the order. | |
parentOrderID | integer | null for In-Store Pickup. | |
orderType | string | The type of the order, such as “IN_STORE_PICKUP” |
This example shows how the parameters might be defined for an order status change. This example depicts an order going into Customer Care.
{ "orderID": 40000000, "transferOrderIDs": null, "externalOrderID": "NOT-22-b", "customerID": "99988811", "orderItems": [ { "orderItemID": 888999, "expectedDeliveryDate": "2016-08-10T17:09:58+00:00" }, { "orderItemID": 999888, "expectedDeliveryDate": "2016-08-18T17:09:58+00:00" } ], "shipments": [ { "locationID": 121212, "storeName": "AddTest", "externalStoreID": "11223344" } ], "shippingAddressID": "6543456", "isTestOrder": null, "orderStatus": "CUSTOMER_CARE", "previousOrderStatus": null, "parentOrderID": null, "orderType": "IN_STORE_PICKUP", "eventTypeID": "customer_care", "data": null, "scope": { "mfgID": 11111, "catalogID": 0 } }
Create Order Event Notification
When any order is created, it will generate a notification in the below structure. A major difference between this notification and the above default Order Status Change Notification is that this one does not include information about individual shipments, as the order has just been created and is not at that point in fulfillment yet.
Field | Type | Parent | Description |
orderID | integer | The identifier of the order created. | |
externalOrderID | string | Client-generated unique identifier for the Order sent to Kibo. | |
customerID | integer | A unique identifier for the customer who created the order. | |
orderItems | array | A list of order items in the order. | |
orderItemID | integer | orderItems | A unique identifier for the individual order item. |
expectedDeliveryDate | string | orderItems | The date the order is expected to be ready for pickup. |
shipType | string | The speed at which the order will be shipped, ex: “REGULAR”, “EXPRESS_1_DAY” etc. | |
deliveryMethod | string | The method of delivery: “IN_STORE_PICKUP” | |
shippingAddressID | integer | The unique identifier of the shipping address, not applicable for the In Store Pickup case | |
isTestOrder | boolean | A flag designating if the order is a test order | |
orderCreateDate | string | The date the order was created | |
orderStatus | string | The status the order is upon creation | |
parentOrderId | integer | In the case of a transfer order, this is the unique identifier of the parent In-Store Pickup order | |
orderType | string | The type of the order, “IN_STORE_PICKUP” |
This example demonstrates how the Create Order Event parameters might be defined for a standard ISPU order.
{ "orderID": 4000000, "externalOrderID": "NOT-22", "customerID": "444555", "orderItems": [ { "orderItemID": 999888, "expectedDeliveryDate": "2016-08-10T17:09:58+00:00" }, { "orderItemID": 888999, "expectedDeliveryDate": "2016-08-18T17:09:58+00:00" } ], "shipType": "REGULAR", "deliveryMethod": "IN_STORE_PICKUP", "shippingAddressID": "12345678", "isTestOrder": null, "orderCreateDate": "2016-08-19 17:36:59", "orderStatus": "READY", "parentOrderID": null, "orderType": "IN_STORE_PICKUP", "eventTypeID": "create_order", "data": null, "scope": { "mfgID": 00000, "catalogID": 0 } }