Order Status Notifications

Warning

This documentation is for translated notifications and intended only for some implementations who have upgraded from a previous version of Order Management. Verify whether your implementation uses translated APIs before continuing, as you will receive different data if your tenant is not configured to use these. If your implementation is not configured to do so, then refer to the standard Notifications documentation instead.

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.

FieldTypeParentDescription
orderIDinteger
The identifier of the order created.
transferOrderIDsarray <integer>
A list of of transfer order identifiers spawned from this order, if any.
externalOrderIDstring
Client-generated unique identifier for the order sent to Kibo.
customerIDinteger
A unique identifier for the customer who created the order.
orderItemsarray
A list of order items in the order.
orderItemIDintegerorderItemsA unique identifier for the individual order item.
expectedDeliveryDatestringorderItemsThe date the order is expected to be ready for pickup.
shipmentsarray

shipmentIDintegershipmentA unique identifier for a shipment.
readyDatestringshipmentThe date the shipment became ready to be shipped, or null.
shipDatestringshipmentThe date the shipment was shipped, or null.
locationIDintegershipmentA unique identifier for the fulfilling location.
externalStoreIDstringshipmentClient-generated unique identifier for the fulfilling location.
storeNamestringshipmentThe name of the fulfilling store or location.
shipTypestring
The speed at which the order will be shipped, ex: “REGULAR”, “EXPRESS_1_DAY” etc.
deliveryMethodstring
The method of delivery, such as “IN_STORE_PICKUP”
shippingAddressIDinteger
The unique identifier of the shipping address, not applicable for the In-Store Pick Up case.
isTestOrderboolean
A flag designating if the order is a test order.
previousOrderStatusstring
The status of the order before transitioning.
orderStatusstring
The current status of the order.
parentOrderIDinteger
null for In-Store Pickup.
orderTypestring
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.

FieldTypeParentDescription
orderIDinteger
The identifier of the order created.
externalOrderIDstring
Client-generated unique identifier for the Order sent to Kibo.
customerIDinteger
A unique identifier for the customer who created the order.
orderItemsarray
A list of order items in the order.
orderItemIDintegerorderItemsA unique identifier for the individual order item.
expectedDeliveryDatestringorderItemsThe date the order is expected to be ready for pickup.
shipTypestring
The speed at which the order will be shipped, ex: “REGULAR”, “EXPRESS_1_DAY” etc.
deliveryMethodstring
The method of delivery: “IN_STORE_PICKUP”
shippingAddressIDinteger
The unique identifier of the shipping address, not applicable for the In Store Pickup case
isTestOrderboolean
A flag designating if the order is a test order
orderCreateDatestring
The date the order was created
orderStatusstring
The status the order is upon creation
parentOrderIdinteger
In the case of a transfer order, this is the unique identifier of the parent In-Store Pickup order
orderTypestring
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
  }
}