Amazon Vendor Procurement Get Order Status IN PROGRESS (Phase2)
Summary of Changes: (The purpose of this table is to keep traceability and Product team to highlight the things that were changed into the scope, based on comments or discussions)
Version | Date | Created / Updated | Notes |
---|---|---|---|
v1.0 | 09.02.2024 | Bogomil Pavlov | First publish |
All validations, triggers and standardizations are as per
Order management general requirements
Get Order Status
Returns purchase order statuses based on the filters that you specify. Date range to search must be NO more than 7 days. You can return a list of purchase order statuses using the available filters, or a single purchase order status by providing the purchase order number. Using this request we can check and update what is accepted or rejected and what is received.
API /vendor/orders/v1/purchaseOrdersStatus
Available parameters:
Name | Description |
---|---|
limit |
The limit to the number of records returned. Default value is 100 records.Minimum : 1Maximum : 100 |
sortOrder |
Sort in ascending or descending order by purchase order creation date. |
nextToken |
Used for pagination when there are more purchase orders than the specified result size limit. |
createdAfter |
Purchase orders that became available after this timestamp will be included in the result. Must be in ISO-8601 date/time format. |
createdBefore |
Purchase orders that became available before this timestamp will be included in the result. Must be in ISO-8601 date/time format. |
updatedAfter |
Purchase orders for which the last purchase order update happened after this timestamp will be included in the result. Must be in ISO-8601 date/time format. |
updatedBefore |
Purchase orders for which the last purchase order update happened before this timestamp will be included in the result. Must be in ISO-8601 date/time format. |
purchaseOrderNumber |
Provides purchase order status for the specified purchase order number. |
purchaseOrderStatus |
Filters purchase orders based on the specified purchase order status. If not included in filter, this will return purchase orders for all statuses. |
itemConfirmationStatus |
Filters purchase orders based on their item confirmation status. If the item confirmation status is not included in the filter, purchase orders for all confirmation statuses are included. |
itemReceiveStatus |
Filters purchase orders based on the purchase order's item receive status. If the item receive status is not included in the filter, purchase orders for all receive statuses are included. |
orderingVendorCode |
Filters purchase orders based on the specified ordering vendor code. This value should be same as 'sellingParty.partyId' in the purchase order. If not included in filter, all purchase orders for all the vendor codes that exist in the vendor group used to authorize API client application are returned. |
shipToPartyId |
Filters purchase orders for a specific buyer's Fulfillment Center/warehouse by providing ship to location id here. This value should be same as 'shipToParty.partyId' in the purchase order. If not included in filter, this will return purchase orders for all the buyer's warehouses used for vendor group purchase orders. |
The parameters which we want to use are”
nextToken
- used for pagination
updateAfter
- Overlap 7 days only?
updateBefore
- this will be always the current time in ISO-8601 format
limit
- Always 100
Sample Request:
GET [https://sellingpartnerapi-na.amazon.com](https://sellingpartnerapi-na.amazon.com/vendor/directFulfillment/transactions/v1/transactions/20190904190535-eef8cad8-418e-4ed3-ac72-789e2ee6214a)/vendor/orders/v1/purchaseOrdersStatus
Sample Response: Status 200
{
"payload": {
"ordersStatus": [
{
"purchaseOrderNumber": "L8266355",
"purchaseOrderStatus": "OPEN",
"purchaseOrderDate": "2019-07-16T19:17:34.304Z",
"lastUpdatedDate": "2019-07-17T19:17:34.304Z",
"sellingParty": {
"partyId": "999US"
},
"shipToParty": {
"partyId": "NAG1"
},
"itemStatus": [
{
"itemSequenceNumber": "1",
"buyerProductIdentifier": "ABC123434",
"vendorProductIdentifier": "028877454078",
"netCost": {
"amount": "10.2",
"currencyCode": "USD"
},
"listPrice": {
"amount": "10.2",
"currencyCode": "USD"
},
"orderedQuantity": {
"orderedQuantity": {
"amount": 10,
"unitOfMeasure": "Cases",
"unitSize": 5
},
"orderedQuantityDetails": [
{
"updatedDate": "2019-07-16T19:17:34.304Z",
"orderedQuantity": {
"amount": 10,
"unitOfMeasure": "Cases",
"unitSize": 5
}
}
]
},
"acknowledgementStatus": {
"confirmationStatus": "PARTIALLY_ACCEPTED",
"acceptedQuantity": {
"amount": 3,
"unitOfMeasure": "Cases",
"unitSize": 5
},
"rejectedQuantity": {
"amount": 7,
"unitOfMeasure": "Cases",
"unitSize": 5
},
"acknowledgementStatusDetails": [
{
"acknowledgementDate": "2019-07-17T19:17:34.304Z",
"acceptedQuantity": {
"amount": 10,
"unitOfMeasure": "Cases",
"unitSize": 5
},
"rejectedQuantity": {
"amount": 0,
"unitOfMeasure": "Cases",
"unitSize": 5
}
},
{
"acknowledgementDate": "2019-07-17T20:10:34.304Z",
"acceptedQuantity": {
"amount": 3,
"unitOfMeasure": "Cases",
"unitSize": 5
},
"rejectedQuantity": {
"amount": 7,
"unitOfMeasure": "Cases",
"unitSize": 5
}
}
]
}
}
]
}
]
}
}
Mapping:
Amazon | Field | Hemi Field | Comment | |||||
---|---|---|---|---|---|---|---|---|
ordersStatus | ||||||||
purchaseOrderNumber | Order > Marketplace Order Id | Used this id to map the order in Hemi. | ||||||
purchaseOrderState | Order > Marketplace Status | Mapping provided below for our internal status | ||||||
purchaseOrderDate | N/A | |||||||
lastUpdatedDate | Order > Order Modified Time | ISO-8601 date/time format. | ||||||
sellingParty | ||||||||
partyId | N/A | |||||||
address | N/A | |||||||
name | N/A | |||||||
addressLine1 | N/A | |||||||
addressLine2 | N/A | |||||||
addressLine3 | N/A | |||||||
city | N/A | |||||||
county | N/A | |||||||
district | N/A | |||||||
stateOrRegion | N/A | |||||||
postalCode | N/A | |||||||
countryCode | N/A | |||||||
phone | N/A | |||||||
taxInfo | ||||||||
taxRegistrationType | N/A | |||||||
taxRegistrationNumber | N/A | |||||||
shipToParty | ||||||||
partyId | N/A | |||||||
address | ||||||||
name | N/A | |||||||
addressLine1 | N/A | |||||||
addressLine2 | N/A | |||||||
addressLine3 | N/A | |||||||
city | N/A | |||||||
county | N/A | |||||||
district | N/A | |||||||
stateOrRegion | N/A | |||||||
postalCode | N/A | |||||||
countryCode | N/A | |||||||
phone | N/A | |||||||
itemStatus | ||||||||
itemSequenceNumber | N/A | Numbering of the item on the purchase order. The first item will be 1, the second 2, and so on. | ||||||
buyerProductIdentifier | ||||||||
vendorProductIdentifier | Order Item > SKU | Used to map the correct order item | ||||||
netCost | ||||||||
currencyCode | N/A | |||||||
amount | N/A | |||||||
listPrice | ||||||||
currencyCode | N/A | |||||||
amount | N/A | |||||||
orderedQuantity | ||||||||
orderedQuantity | ||||||||
amount | N/A | |||||||
unitOfMeasure | N/A | |||||||
unitSize | N/A | |||||||
orderedQuantityDetails | ||||||||
updatedDate | N/A | |||||||
orderedQuantity | ||||||||
amount | N/A | |||||||
unitOfMeasure | N/A | |||||||
unitSize | N/A | |||||||
acknowledgementStatus | ||||||||
confirmationStatus | ` | N/A | ||||||
acceptedQuantity | ||||||||
amount | Order Acknowledgement Rows > Accepted Quantity | |||||||
unitOfMeasure | N/A | |||||||
unitSize | N/A | |||||||
rejectedQuantity | ||||||||
amount | Order Acknowledgement Rows > Rejected Quantity | |||||||
unitOfMeasure | N/A | |||||||
unitSize | N/A | |||||||
acknowledgementStatusDetails | ||||||||
acknowledgementDate | N/A | |||||||
acceptedQuantity | N/A | |||||||
amount | N/A | |||||||
unitOfMeasure | N/A | |||||||
unitSize | N/A | |||||||
rejectedQuantity | ||||||||
amount | N/A | |||||||
unitOfMeasure | N/A | |||||||
unitSize | N/A |
Based on the response we want to keep track on the order status and order item acknowledgment. To follow through the whole mapping we will map the order using the Order > Marketplace Order Id then we will have to add the Order Acknowledgement with Status = “Completed” and date = “Current Date” then based on the Product In Order > SKU we will be able to get the Product In Order > ID which we want to store in Order Acknowledgement Row > Order Item Id with the relevant Order Acknowledgement Rows > Accepted Quantity and Order Acknowledgement Rows > Rejected Quantity on which we have to add the Order Acknowledgement Row Lines which we will internally track based on the Accepted Quantity and Rejected Quantity. For each Accepted Quantity we want to add a line with status “Accepted” and for each Rejected Quantity to add a line with status “Rejected”. Also if we have Order > Acknowledgment Status = Rejected or Accepted and we receive an new product in order and the Accepted/Rejected Quantity is not equal to the Order Total Quantity we want to update Order > Acknowledgment Status = Partially Accepted.
Please note we want to be able once the Acknowledgment is added in Hemi if we receive different accepted/rejected products afterward to update them accordingly. Since Amazon are able to reject/accept the order anytime until it got shipped.
Status Mapping:
Amazon Status | Hemi Status | Comment |
---|---|---|
New | Awaiting Acknowledge | The purchase order is newly created and needs to be acknowledged by vendor. |
Acknowledged | Ready For Shipping | The purchase order has been acknowledged by vendor. |
Closed | Shipped/Cancelled | The purchase order is closed and no further action is required from the vendor. PO can be in closed state for many reasons such as order is rejected by vendor, order is cancelled by Amazon or order is fully received by Amazon. |
If all products are rejected we want to set the Status and Cancelled else we want to use Shipped. |
Limits
Rate (requests per second) | Burst |
---|---|
10 | 10 |