Next-generation platform

Pick request events

Pick request events are generated as part of the Pick APIs whenever a pick request is created or completed in the Store Inventory Management microservice.

The following examples illustrate the pick request events in Sterling Store Engagement.

Pick Request Created event

When you create pick requests in Store Inventory Management, Sterling Store Engagement triggers the Pick Request Created event. The code for this event is pickRequestCreated.

The following sample JSON illustrates the published event. Sterling Store Engagement encodes and adds the event data to messages[].data JSON path.

{
  "messages": [
    {
      "data": {
        "pickRequestId": "3cacb233-de1b-47f9-97a6-4486488f3205",
        "storeId": "Matrix_Store_1",
        "status": "NOT_STARTED",
        "orderNo": "10001",
        "cartId": "4cacb233-de1b",
        "shipmentNo": "10036633733",
        "reservationReference": "de1b-47f9-97a6",
        "requestedBy": "John",
        "deliveryMethod": "PICK",
        "priority": 1,
        "expectedCompletionTime": "2018-12-20T17:34:08+00:00",
        "createdTimestamp": "2018-12-19T17:34:08+00:00",
        "stagingLocationId": "L2",
        "assignedToUserId": "joe",
        "performedByUserId": "John",
        "cancellationRequested": false,
        "references": {
          "CustomRef1": "CustomValue1",
          "CustomRef2": "CustomValue2"
        },
        "requestedProducts": [
          {
            "productId": "100001",
            "unitOfMeasure": "EACH",
            "requestedQuantity": 2,
            "shortageQuantity": 0,
            "requestProductReferenceId": "101",
            "reservationId": "6crft233-de1b-47f9-97a6-4486488f3492",
            "inventoryStatus": "GOOD",
            "productClass": "NEW",
            "segmentType": "CHANNEL",
            "segment": "PFS",
            "references": {
              "CustomLineRef1": "CustomLineValue1",
              "CustomLineRef2": "CustomLineValue2"
            }
          }
        ],
        "pickTasks": [
          {
            "taskId": "500345rt-de1b-47f9-97a6-4486488f3105",
            "status": "NOT_STARTED",
            "productId": "SMART-TABLET",
            "unitOfMeasure": "EACH",
            "requestedQuantity": 2,
            "shortageQuantity": 0,
            "completedQuantity": 0,
            "sourceLocationId": "L1",
            "targetLocationId": "L2",
            "requestProductReferenceId": "101",
            "inventoryStatus": "GOOD",
            "productClass": "NEW",
            "segmentType": "CHANNEL",
            "segment": "PFS",
            "sourceLocationSequence": 0,
            "requestedSerials": [
              "Serial1",
              "Serial2"
            ],
            "completedSerials": []
          }
        ]
      },
      "attributes": {
        "eventCode": "pickRequestCreated",
        "timestamp": "2021-11-18T10:34:49.997304Z",
        "messageId": "100345rt-de1b-47f9-97a6-4486488f3204"
      }
    }
  ]
}

The following sample illustrates the JSON schema specification that defines the structure of JSON data published to the pickRequestCreated event.

{
  "title": "Pick Request Created event message",
  "type": "object",
  "description": "Indicates the message payload published for Pick Requested Created event.",
  "properties": {
    "messages": {
      "type": "array",
      "items": {
        "type": "object",
        "description": "Indicates the event data published in the message.",
        "properties": {
          "data": {
            "type": "object",
            "description": "Pick request details",
            "properties": {
              "pickRequestId": {
                "type": "string",
                "format": "uuid",
                "description": "Indicates the pick request identifier."
              },
              "storeId": {
                "type": "string",
                "description": "The store identifier."
              },
              "status": {
                "type": "string",
                "description": "Status of the pick request. Possible Value()s) are NOT_STARTED,PICKED,IN_PROGRESS,COMPLETED,CANCELLED"
              },
              "orderNo": {
                "type": "string",
                "description": "Identifier of the order for which the pick request is created."
              },
              "cartId": {
                "type": "string",
                "description": "Identifier of the shopping cart for which the pick request is created."
              },
              "shipmentNo": {
                "type": "string",
                "description": "Identifier of the shipment for which the pick request is created."
              },
              "reservationReference": {
                "type": "string",
                "description": " Reference to the reservations obtained for the inventory requested as part of this pick request."
              },
              "requestedBy": {
                "type": "string",
                "description": "Information about the requestor of this pick request."
              },
              "deliveryMethod": {
                "type": "string",
                "description": "Indicates product(s) delivery mode. Allowed values - CARRY, PICK-UP, SHIP"
              },
              "priority": {
                "type": "integer",
                "description": "Priority of pick request"
              },
              "expectedCompletionTime": {
                "type": "string",
                "format": "date-time",
                "description": "Pick request is expected to be completed before this time. Date format - yyyy-MM-ddTHH:mm:ss.SSSZ"
              },
              "createdTimestamp": {
                "type": "string",
                "format": "date-time",
                "description": "Pick request's created timestamp. Date format - yyyy-MM-ddTHH:mm:ss.SSSZ"
              },
              "stagingLocationId": {
                "type": "string",
                "description": "Suggested deposit location for the picked products as part of this pick request."
              },
              "assignedToUserId": {
                "type": "string",
                "description": "User identifier to whom the move request is assigned to."
              },
              "performedByUserId": {
                "type": "string",
                "description": "User identifier who has performed the create pick request operation."
              },
              "cancellationRequested": {
                "type": "boolean",
                "description": "Flag to indicate if cancellation request."
              },
              "references": {
                "type": "object",
                "description": "References at the request level. Key value pairs (only text) can be passed to store custom fields.",
                "patternProperties": {
                  "^.*$": {
                    "type": "string"
                  }
                },
                "additionalProperties": {
                  "type": "string"
                }
              },
              "requestedProducts": {
                "type": "array",
                "description": "List of Requested products",
                "items": {
                  "type": "object",
                  "description": "Requested product details.",
                  "properties": {
                    "productId": {
                      "type": "string",
                      "description": "The product identifier."
                    },
                    "unitOfMeasure": {
                      "type": "string",
                      "description": "Indicates the unit of measure for the product."
                    },
                    "requestedQuantity": {
                      "type": "number",
                      "format": "double",
                      "description": "Quantity of the product that is requested."
                    },
                    "shortageQuantity": {
                      "type": "number",
                      "format": "double",
                      "description": "Quantity of the product that is shortage."
                    },
                    "requestProductReferenceId": {
                      "type": "string",
                      "description": " Identifier for a requested product element in the list. If passed it has to be unique for an element. This will be system generated if not passed."
                    },
                    "reservationId": {
                      "type": "string",
                      "description": "Identifier of the associated inventory reservation for the requested product."
                    },
                    "inventoryStatus": {
                      "type": "string",
                      "description": "Indicates the status of inventory for the product."
                    },
                    "productClass": {
                      "type": "string",
                      "description": "Indicates the class of product."
                    },
                    "segmentType": {
                      "type": "string",
                      "description": "Indicates the segment type of product."
                    },
                    "segment": {
                      "type": "string",
                      "description": "Indicates the segment of product."
                    },
                    "references": {
                      "type": "object",
                      "description": "References at the product level. Key value pairs (only text) can be passed to store custom fields.",
                      "patternProperties": {
                        "^.*$": {
                          "type": "string"
                        }
                      },
                      "additionalProperties": {
                        "type": "string"
                      }
                    }
                  }
                }
              },
              "pickTasks": {
                "type": "array",
                "description": "List of Pick Tasks",
                "items": {
                  "type": "object",
                  "description": "Pick Task details",
                  "properties": {
                    "taskId": {
                      "type": "string",
                      "format": "uuid",
                      "description": "The pick task identifier."
                    },
                    "status": {
                      "type": "string",
                      "description": "Status of pick task."
                    },
                    "productId": {
                      "type": "string",
                      "description": "The product identifier."
                    },
                    "unitOfMeasure": {
                      "type": "string",
                      "description": "Indicates the unit of measure for the product."
                    },
                    "requestedQuantity": {
                      "type": "number",
                      "format": "double",
                      "description": "Quantity of the product that is requested."
                    },
                    "shortageQuantity": {
                      "type": "number",
                      "format": "double",
                      "description": "Quantity of the product that is shortage."
                    },
                    "completedQuantity": {
                      "type": "number",
                      "format": "double",
                      "description": "Quantity of the product that deposit is completed."
                    },
                    "sourceLocationId": {
                      "type": "string",
                      "description": "The source location identifier."
                    },
                    "targetLocationId": {
                      "type": "string",
                      "description": "The target location identifier."
                    },
                    "requestProductReferenceId": {
                      "type": "string",
                      "description": " Identifier for a requested product element in the list. If passed it has to be unique for an element. This will be system generated if not passed."
                    },
                    "inventoryStatus": {
                      "type": "string",
                      "description": "Indicates the status of inventory for the product."
                    },
                    "productClass": {
                      "type": "string",
                      "description": "Indicates the class of product."
                    },
                    "segmentType": {
                      "type": "string",
                      "description": "Indicates the segment type of product."
                    },
                    "segment": {
                      "type": "string",
                      "description": "Indicates the segment of product."
                    },
                    "sourceLocationSequence": {
                      "type": "integer",
                      "description": "Indicates the sequence of source location."
                    },
                    "requestedSerials": {
                      "type": "array",
                      "description": "List of requested serials that needs to be picked from source location. This is for serialized item.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "completedSerials": {
                      "type": "array",
                      "description": "List of serials that are deposited to target location. This is for serialized item.",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "attributes": {
            "type": "object",
            "description": "Event details",
            "properties": {
              "eventCode": {
                "type": "string",
                "description": "Indicates the event code of the message."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "Indicates the time when the message was triggered."
              },
              "messageId": {
                "type": "string",
                "format": "uuid",
                "description": "Indicates the message identifier."
              }
            }
          }
        }
      }
    }
  }
}

Pick Request Completed event

When you complete pick requests in Store Inventory Management, Sterling Store Engagement triggers the Pick Request Completed event. The code for this event is pickRequestCompleted.

The following sample JSON illustrates the published event. Sterling Store Engagement encodes and adds the event data to messages[].data JSON path.

{
  "messages": [
    {
      "data": {
        "pickRequestId": "3cacb233-de1b-47f9-97a6-4486488f3205",
        "storeId": "Matrix_Store_1",
        "status": "COMPLETED",
        "orderNo": "10001",
        "cartId": "4cacb233-de1b",
        "shipmentNo": "10036633733",
        "reservationReference": "de1b-47f9-97a6",
        "requestedBy": "John",
        "deliveryMethod": "PICK",
        "priority": 1,
        "expectedCompletionTime": "2018-12-20T17:34:08+00:00",
        "createdTimestamp": "2018-12-19T17:34:08+00:00",
        "stagingLocationId": "L2",
        "assignedToUserId": "joe",
        "performedByUserId": "John",
        "cancellationRequested": false,
        "references": {
          "CustomRef1": "CustomValue1",
          "CustomRef2": "CustomValue2"
        },
        "requestedProducts": [
          {
            "productId": "100001",
            "unitOfMeasure": "EACH",
            "requestedQuantity": 2,
            "shortageQuantity": 0,
            "requestProductReferenceId": "101",
            "reservationId": "6crft233-de1b-47f9-97a6-4486488f3492",
            "inventoryStatus": "GOOD",
            "productClass": "NEW",
            "segmentType": "CHANNEL",
            "segment": "PFS",
            "references": {
              "CustomLineRef1": "CustomLineValue1",
              "CustomLineRef2": "CustomLineValue2"
            }
          }
        ],
        "pickTasks": [
          {
            "taskId": "500345rt-de1b-47f9-97a6-4486488f3105",
            "status": "COMPLETED",
            "productId": "SMART-TABLET",
            "unitOfMeasure": "EACH",
            "requestedQuantity": 2,
            "shortageQuantity": 0,
            "pickedQuantity": 2,
            "completedQuantity": 2,
            "sourceLocationId": "L1",
            "targetLocationId": "L2",
            "requestProductReferenceId": "101",
            "inventoryStatus": "GOOD",
            "productClass": "NEW",
            "segmentType": "CHANNEL",
            "segment": "PFS",
            "sourceLocationSequence": 0,
            "requestedSerials": [
              "Serial1",
              "Serial2"
            ],
            "pickedSerials": [
              "Serial1",
              "Serial2"
            ],
            "completedSerials": [
              "Serial1",
              "Serial2"
            ]
          }
        ]
      },
      "attributes": {
        "eventCode": "pickRequestCompleted",
        "timestamp": "2021-11-18T10:34:49.997304Z",
        "messageId": "890543rt-de1b-47f9-97a6-4486488e9081"
      }
    }
  ]
}

The following sample illustrates the JSON schema specification that defines the structure of JSON data published to the pickRequestCompleted event.

{
  "title": "Pick Request Completed event message",
  "type": "object",
  "description": "Indicates the message payload published for Pick Requested Completed event.",
  "properties": {
    "messages": {
      "type": "array",
      "description": "",
      "items": {
        "type": "object",
        "description": "Indicates the event data published in the message.",
        "properties": {
          "data": {
            "type": "object",
            "description": "Pick request details.",
            "properties": {
              "pickRequestId": {
                "type": "string",
                "format": "uuid",
                "description": "Indicates the pick request identifier."
              },
              "storeId": {
                "type": "string",
                "description": "The store identifier."
              },
              "status": {
                "type": "string",
                "description": "Status of the pick request. Possible Value()s) are NOT_STARTED,PICKED,IN_PROGRESS,COMPLETED,CANCELLED"
              },
              "orderNo": {
                "type": "string",
                "description": "Identifier of the order for which the pick request is created."
              },
              "cartId": {
                "type": "string",
                "description": "Identifier of the shopping cart for which the pick request is created."
              },
              "shipmentNo": {
                "type": "string",
                "description": "Identifier of the shipment for which the pick request is created."
              },
              "reservationReference": {
                "type": "string",
                "description": " Reference to the reservations obtained for the inventory requested as part of this pick request."
              },
              "requestedBy": {
                "type": "string",
                "description": "Information about the requestor of this pick request."
              },
              "deliveryMethod": {
                "type": "string",
                "description": "Indicates product(s) delivery mode. Allowed values - CARRY, PICK-UP, SHIP"
              },
              "priority": {
                "type": "integer",
                "description": "Priority of pick request"
              },
              "expectedCompletionTime": {
                "type": "string",
                "format": "date-time",
                "description": "Pick request is expected to be completed before this time. Date format - yyyy-MM-ddTHH:mm:ss.SSSZ"
              },
              "createdTimestamp": {
                "type": "string",
                "format": "date-time",
                "description": "Pick request's created timestamp. Date format - yyyy-MM-ddTHH:mm:ss.SSSZ"
              },
              "stagingLocationId": {
                "type": "string",
                "description": "Suggested deposit location for the picked products as part of this pick request."
              },
              "assignedToUserId": {
                "type": "string",
                "description": "User identifier to whom the move request is assigned to."
              },
              "performedByUserId": {
                "type": "string",
                "description": "User identifier who has performed the complete pick request operation."
              },
              "cancellationRequested": {
                "type": "boolean",
                "description": "Flag to indicate if cancellation request."
              },
              "references": {
                "type": "object",
                "description": "References at the request level. Key value pairs (only text) can be passed to store custom fields.",
                "patternProperties": {
                  "^.*$": {
                    "type": "string"
                  }
                },
                "additionalProperties": {
                  "type": "string"
                }
              },
              "requestedProducts": {
                "type": "array",
                "description": "List of Requested products.",
                "items": {
                  "type": "object",
                  "description": "Requeted product details.",
                  "properties": {
                    "productId": {
                      "type": "string",
                      "description": "The product identifier."
                    },
                    "unitOfMeasure": {
                      "type": "string",
                      "description": "Indicates the unit of measure for the product."
                    },
                    "requestedQuantity": {
                      "type": "number",
                      "format": "double",
                      "description": "Quantity of the product that is requested."
                    },
                    "shortageQuantity": {
                      "type": "number",
                      "format": "double",
                      "description": "Quantity of the product that is shortage."
                    },
                    "requestProductReferenceId": {
                      "type": "string",
                      "description": " Identifier for a requested product element in the list. If passed it has to be unique for an element. This will be system generated if not passed."
                    },
                    "reservationId": {
                      "type": "string",
                      "description": "Identifier of the associated inventory reservation for the requested product."
                    },
                    "inventoryStatus": {
                      "type": "string",
                      "description": "Indicates the status of inventory for the product."
                    },
                    "productClass": {
                      "type": "string",
                      "description": "Indicates the class of product."
                    },
                    "segmentType": {
                      "type": "string",
                      "description": "Indicates the segment type of product."
                    },
                    "segment": {
                      "type": "string",
                      "description": "Indicates the segment of product."
                    },
                    "references": {
                      "type": "object",
                      "description": "References at the product level. Key value pairs (only text) can be passed to store custom fields.",
                      "patternProperties": {
                        "^.*$": {
                          "type": "string"
                        }
                      },
                      "additionalProperties": {
                        "type": "string"
                      }
                    }
                  }
                }
              },
              "pickTasks": {
                "type": "array",
                "description": "List of Pick task",
                "items": {
                  "type": "object",
                  "description": "Pick task details.",
                  "properties": {
                    "taskId": {
                      "type": "string",
                      "format": "uuid",
                      "description": "The pick task identifier."
                    },
                    "status": {
                      "type": "string",
                      "description": "Status of pick task."
                    },
                    "productId": {
                      "type": "string",
                      "description": "The product identifier."
                    },
                    "unitOfMeasure": {
                      "type": "string",
                      "description": "Indicates the unit of measure for the product."
                    },
                    "requestedQuantity": {
                      "type": "number",
                      "format": "double",
                      "description": "Quantity of the product that is requested."
                    },
                    "shortageQuantity": {
                      "type": "number",
                      "format": "double",
                      "description": "Quantity of the product that is shortage."
                    },
                    "pickedQuantity": {
                      "type": "number",
                      "format": "double",
                      "description": "Quantity of the product that is picked."
                    },
                    "completedQuantity": {
                      "type": "number",
                      "format": "double",
                      "description": "Quantity of the product that deposit is completed."
                    },
                    "sourceLocationId": {
                      "type": "string",
                      "description": "The source location identifier."
                    },
                    "targetLocationId": {
                      "type": "string",
                      "description": "The target location identifier."
                    },
                    "requestProductReferenceId": {
                      "type": "string",
                      "description": " Identifier for a requested product element in the list. If passed it has to be unique for an element. This will be system generated if not passed."
                    },
                    "inventoryStatus": {
                      "type": "string",
                      "description": "Indicates the status of inventory for the product."
                    },
                    "productClass": {
                      "type": "string",
                      "description": "Indicates the class of product."
                    },
                    "segmentType": {
                      "type": "string",
                      "description": "Indicates the segment type of product."
                    },
                    "segment": {
                      "type": "string",
                      "description": "Indicates the segment of product."
                    },
                    "sourceLocationSequence": {
                      "type": "integer",
                      "description": "Indicates the sequence of source location."
                    },
                    "requestedSerials": {
                      "type": "array",
                      "description": "List of requested serials that needs to be picked from source location. This is for serialized item.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "pickedSerials": {
                      "type": "array",
                      "description": "List of serials that are picked from source location. This is for serialized item.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "completedSerials": {
                      "type": "array",
                      "description": "List of serials that are deposited to target location. This is for serialized item.",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "attributes": {
            "type": "object",
            "description": "Event details",
            "properties": {
              "eventCode": {
                "type": "string",
                "description": "Indicates the event code of the message."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "Indicates the time when the message was triggered."
              },
              "messageId": {
                "type": "string",
                "format": "uuid",
                "description": "Indicates the message identifier."
              }
            }
          }
        }
      }
    }
  }
}

Pick Request Canceled event

When pick requests are canceled in Store Inventory Management, Sterling Store Engagement triggers the Pick Request Cancelled event. The code for this event is pickRequestCancelled.

The following sample JSON illustrates the published event. Sterling Store Engagement encodes and adds the event data to messages[].data JSON path.

{
  "messages": [
    {
      "data": {
        "pickRequestId": "3cacb233-de1b-47f9-97a6-4486488f3205",
        "storeId": "Matrix_Store_1",
        "status": "CANCELLED",
        "orderNo": "10001",
        "cartId": "4cacb233-de1b",
        "shipmentNo": "10036633733",
        "reservationReference": "de1b-47f9-97a6",
        "requestedBy": "John",
        "cancelledBy": "John",
        "performedByUserId": "John",
        "deliveryMethod": "PICK",
        "priority": 1,
        "expectedCompletionTime": "2018-12-20T17:34:08+00:00",
        "createdTimestamp": "2018-12-19T17:34:08+00:00",
        "stagingLocationId": "L2",
        "assignedToUserId": "joe",
        "cancellationRequested": true,
        "references": {
          "CustomRef1": "CustomValue1",
          "CustomRef2": "CustomValue2"
        },
        "requestedProducts": [
          {
            "productId": "100001",
            "unitOfMeasure": "EACH",
            "requestedQuantity": 2,
            "shortageQuantity": 0,
            "cancelledQty": 2,
            "cancelledSerials": null,
            "requestProductReferenceId": "101",
            "reservationId": "6crft233-de1b-47f9-97a6-4486488f3492",
            "inventoryStatus": "GOOD",
            "productClass": "NEW",
            "segmentType": "CHANNEL",
            "segment": "PFS",
            "references": {
              "CustomLineRef1": "CustomLineValue1",
              "CustomLineRef2": "CustomLineValue2"
            }
          }
        ],
        "pickTasks": [
          {
            "taskId": "500345rt-de1b-47f9-97a6-4486488f3105",
            "status": "CANCELLED",
            "productId": "SMART-TABLET",
            "unitOfMeasure": "EACH",
            "requestedQuantity": 0,
            "shortageQuantity": 0,
            "pickedQuantity": 0,
            "completedQuantity": 0,
            "sourceLocationId": "L1",
            "targetLocationId": "L2",
            "requestProductReferenceId": "101",
            "inventoryStatus": "GOOD",
            "productClass": "NEW",
            "segmentType": "CHANNEL",
            "segment": "PFS",
            "sourceLocationSequence": 0,
            "requestedSerials": [],
            "pickedSerials": [],
            "completedSerials": []
          }
        ]
      },
      "attributes": {
        "eventCode": "pickRequestCancelled",
        "timestamp": "2021-11-18T10:34:49.997304Z",
        "messageId": "890543rt-de1b-47f9-97a6-4486488e9081"
      }
    }
  ]
}

The following sample illustrates the JSON schema specification that defines the structure of JSON data published to the pickRequestCancelled event.

{
  "title": "Pick Request Cancelled event message",
  "type": "object",
  "description": "Indicates the message payload published for Pick Requested Cancelled event.",
  "properties": {
    "messages": {
      "type": "array",
      "description": "",
      "items": {
        "type": "object",
        "description": "Indicates the event data published in the message.",
        "properties": {
          "data": {
            "type": "object",
            "description": "Pick request details.",
            "properties": {
              "pickRequestId": {
                "type": "string",
                "format": "uuid",
                "description": "Indicates the pick request identifier."
              },
              "storeId": {
                "type": "string",
                "description": "The store identifier."
              },
              "status": {
                "type": "string",
                "description": "Status of the pick request. Possible Value()s) are NOT_STARTED,PICKED,IN_PROGRESS,COMPLETED,CANCELLED"
              },
              "orderNo": {
                "type": "string",
                "description": "Identifier of the order for which the pick request is created."
              },
              "cartId": {
                "type": "string",
                "description": "Identifier of the shopping cart for which the pick request is created."
              },
              "shipmentNo": {
                "type": "string",
                "description": "Identifier of the shipment for which the pick request is created."
              },
              "reservationReference": {
                "type": "string",
                "description": " Reference to the reservations obtained for the inventory requested as part of this pick request."
              },
              "requestedBy": {
                "type": "string",
                "description": "Information about the requestor of this pick request."
              },
              "cancelledBy": {
                "type": "string",
                "description": "Information about the cancellation requestor of this pick request."
              },
              "performedByUserId": {
                "type": "string",
                "description": "Information about the cancellation performer of this pick request."
              },
              "deliveryMethod": {
                "type": "string",
                "description": "Indicates product(s) delivery mode. Allowed values - CARRY, PICK-UP, SHIP"
              },
              "priority": {
                "type": "integer",
                "description": "Priority of pick request"
              },
              "expectedCompletionTime": {
                "type": "string",
                "format": "date-time",
                "description": "Pick request is expected to be completed before this time. Date format - yyyy-MM-ddTHH:mm:ss.SSSZ"
              },
              "createdTimestamp": {
                "type": "string",
                "format": "date-time",
                "description": "Pick request's created timestamp. Date format - yyyy-MM-ddTHH:mm:ss.SSSZ"
              },
              "stagingLocationId": {
                "type": "string",
                "description": "Suggested deposit location for the picked products as part of this pick request."
              },
              "assignedToUserId": {
                "type": "string",
                "description": "User identifier to whom the move request is assigned to."
              },
              "cancellationRequested": {
                "type": "boolean",
                "description": "Flag to indicate if cancellation request."
              },
              "references": {
                "type": "object",
                "description": "References at the request level. Key value pairs (only text) can be passed to store custom fields.",
                "patternProperties": {
                  "^.*$": {
                    "type": "string"
                  }
                },
                "additionalProperties": {
                  "type": "string"
                }
              },
              "requestedProducts": {
                "type": "array",
                "description": "List of Requested products.",
                "items": {
                  "type": "object",
                  "description": "Requeted product details.",
                  "properties": {
                    "productId": {
                      "type": "string",
                      "description": "The product identifier."
                    },
                    "unitOfMeasure": {
                      "type": "string",
                      "description": "Indicates the unit of measure for the product."
                    },
                    "requestedQuantity": {
                      "type": "number",
                      "format": "double",
                      "description": "Quantity of the product that is requested."
                    },
                    "shortageQuantity": {
                      "type": "number",
                      "format": "double",
                      "description": "Quantity of the product that is shortage."
                    },
                    "cancelledQty": {
                      "type": "number",
                      "format": "double",
                      "description": "Quantity of the product that is cancelled."
                    },
                    "cancelledSerials": {
                      "type": "array",
                      "description": "List of cancelled serials that are cancelled. This is for serialized item.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "requestProductReferenceId": {
                      "type": "string",
                      "description": " Identifier for a requested product element in the list. If passed it has to be unique for an element. This will be system generated if not passed."
                    },
                    "reservationId": {
                      "type": "string",
                      "description": "Identifier of the associated inventory reservation for the requested product."
                    },
                    "inventoryStatus": {
                      "type": "string",
                      "description": "Indicates the status of inventory for the product."
                    },
                    "productClass": {
                      "type": "string",
                      "description": "Indicates the class of product."
                    },
                    "segmentType": {
                      "type": "string",
                      "description": "Indicates the segment type of product."
                    },
                    "segment": {
                      "type": "string",
                      "description": "Indicates the segment of product."
                    },
                    "references": {
                      "type": "object",
                      "description": "References at the product level. Key value pairs (only text) can be passed to store custom fields.",
                      "patternProperties": {
                        "^.*$": {
                          "type": "string"
                        }
                      },
                      "additionalProperties": {
                        "type": "string"
                      }
                    }
                  }
                }
              },
              "pickTasks": {
                "type": "array",
                "description": "List of Pick task",
                "items": {
                  "type": "object",
                  "description": "Pick task details.",
                  "properties": {
                    "taskId": {
                      "type": "string",
                      "format": "uuid",
                      "description": "The pick task identifier."
                    },
                    "status": {
                      "type": "string",
                      "description": "Status of pick task."
                    },
                    "productId": {
                      "type": "string",
                      "description": "The product identifier."
                    },
                    "unitOfMeasure": {
                      "type": "string",
                      "description": "Indicates the unit of measure for the product."
                    },
                    "requestedQuantity": {
                      "type": "number",
                      "format": "double",
                      "description": "Quantity of the product that is requested."
                    },
                    "shortageQuantity": {
                      "type": "number",
                      "format": "double",
                      "description": "Quantity of the product that is shortage."
                    },
                    "pickedQuantity": {
                      "type": "number",
                      "format": "double",
                      "description": "Quantity of the product that is picked."
                    },
                    "completedQuantity": {
                      "type": "number",
                      "format": "double",
                      "description": "Quantity of the product that deposit is completed."
                    },
                    "sourceLocationId": {
                      "type": "string",
                      "description": "The source location identifier."
                    },
                    "targetLocationId": {
                      "type": "string",
                      "description": "The target location identifier."
                    },
                    "requestProductReferenceId": {
                      "type": "string",
                      "description": " Identifier for a requested product element in the list. If passed it has to be unique for an element. This will be system generated if not passed."
                    },
                    "inventoryStatus": {
                      "type": "string",
                      "description": "Indicates the status of inventory for the product."
                    },
                    "productClass": {
                      "type": "string",
                      "description": "Indicates the class of product."
                    },
                    "segmentType": {
                      "type": "string",
                      "description": "Indicates the segment type of product."
                    },
                    "segment": {
                      "type": "string",
                      "description": "Indicates the segment of product."
                    },
                    "sourceLocationSequence": {
                      "type": "integer",
                      "description": "Indicates the sequence of source location."
                    },
                    "requestedSerials": {
                      "type": "array",
                      "description": "List of requested serials that needs to be picked from source location. This is for serialized item.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "pickedSerials": {
                      "type": "array",
                      "description": "List of serials that are picked from source location. This is for serialized item.",
                      "items": {
                        "type": "string"
                      }
                    },
                    "completedSerials": {
                      "type": "array",
                      "description": "List of serials that are deposited to target location. This is for serialized item.",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "attributes": {
            "type": "object",
            "description": "Event details",
            "properties": {
              "eventCode": {
                "type": "string",
                "description": "Indicates the event code of the message."
              },
              "timestamp": {
                "type": "string",
                "format": "date-time",
                "description": "Indicates the time when the message was triggered."
              },
              "messageId": {
                "type": "string",
                "format": "uuid",
                "description": "Indicates the message identifier."
              }
            }
          }
        }
      }
    }
  }
}