Amazon Vendor Procurement Order Acknowledgement
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 |
v1.1 | 10.06.2024 | Bogomil Pavlov | Change limit |
v1.2 | 07.04.2025 | Bogomil Pavlov | Add itemSequenceNumber |
v1.3 | 02.05.2025 | Bogomil Pavlov | Mapping Changes |
The Vendor have the option to either accept or reject order items before shipping the order. Thus in order to give the Hemi user the flexibility and have full control over the Order Acknowledgement we want to automate the flow and may have different setup based on the user needs and requirements. We will have automatic and manual acceptance. After each order acknowledgement we will store a feed in Hemi which afterwards will need to be read in order to keep track of the acknowledgement status.
All validations, triggers and standardizations which are are as per
Order management general requirements
Orders Acknowledgement
With the introduction of the new Order Acknowledgement model we want to incorporate it within the Amazon Vendor integration. Thus in Account Amazon we want to introduce a new field which will indicate if we want to automatically accept the whole order or manually accept it.
The main trigger for the order acknowledgement will be Order Acknowledgement > Status
= Pending and Order > Status
= “Awaiting Acknowledge” however based on the flow we will have:
#1 Automatic Acceptance
We acknowledge all order items as Accepted
and with the actual order download we will add the Order Acknowledgement details.
#2 Manual Acceptance When we have manual acceptance the trigger will be the actual user when from the Acknowledgment modal create the Order Acknowledgement .
Please keep in mind if we have bundle skus we want to acknowledge only the bundle SKU not the components.
This is asynchronous flow so for every acknowledgement we will have to store a feed in Marketplace Feeds table with the relevant objects from where we will be checking the response afterwards.
API Call: POST /vendor/orders/v1/acknowledgements
<v1.1>We want to push only 1 order in a single request.</v1.1>
Sample Request:
POST [https://sellingpartnerapi-na.amazon.com/vendor/orders/v1/acknowledgements](https://sellingpartnerapi-na.amazon.com/vendor/directFulfillment/orders/v1/acknowledgements)
Boby:
{
"acknowledgements": [
{
"purchaseOrderNumber": "L8266355",
"sellingParty": {
"partyId": "999US"
},
"acknowledgementDate": "2019-07-17T19:17:34.304Z",
"items": [
{
"itemSequenceNumber": "1",
"amazonProductIdentifier": "ABC123434",
"vendorProductIdentifier": "028877454078",
"orderedQuantity": {
"amount": 10,
"unitOfMeasure": "Cases",
"unitSize": "5"
},
"netCost": {
"currencyCode": "USD",
"amount": 10.2
},
"itemAcknowledgements": [
{
"acknowledgementCode": "Accepted",
"acknowledgedQuantity": {
"amount": 10,
"unitOfMeasure": "Cases",
"unitSize": "5"
},
"scheduledShipDate": "2019-07-17T19:17:34.304Z"
}
]
}
]
}
]
}
Request Mapping: Please note everything with Hemi Field = N/A we exclude from the payload.
Amazon Field | Required | Hemi Field | Comment | ||||
---|---|---|---|---|---|---|---|
acknowledgements | |||||||
purchaseOrderNumber | Yes | Order > Marketplace Order Id | |||||
sellingParty | |||||||
partyId | Yes | Order Amazon > Purchase Order Selling Party | New field under new tab “Amazon Vendor” | ||||
acknowledgementDate | Yes | Current Date | ISO-8601 | ||||
items | |||||||
itemSequenceNumber | <v1.2>Yes | We need to count the number of items starting from 1 and incrementing the number with each item. | |||||
Please note each Product In Order > Id are different numbers.</v1.2> | |||||||
amazonProductIdentifier | No | Product In Order > Channel Item ID | Based on the id in Order Acknowledgement Rows > Order Item Id we need to map the correct product. | ||||
vendorProductIdentifier | Yes | <v1.3>Product In Order > Item Transaction ID</v1.3> | Based on the id in Order Acknowledgement Rows > Order Item Id we need to map the correct product. | ||||
orderedQuantity | |||||||
amount | Yes | Product In Order > Quantity | |||||
unitOfMeasure | No | N/A | |||||
unitSize | No | N/A | |||||
netCost | |||||||
currencyCode | No | Order > Order Currency | |||||
amount | No | Product In Order > Item Price | |||||
itemAcknowledgements | |||||||
acknowledgementCode | Yes | Based on the setup in Account Amazon we will have different approaches | Accepted Vendor accepts to fulfill the order item(s). Rejected Vendor rejects to fulfill the order item(s). |
``Please note we will have separate nodes for each code | | | | | acknowledgedQuantity | | | | | | | | | | amount | Yes | Order Acknowledgement Row Line > Action | Based on the Order Acknowledgement Row Line > Action we will know hoy many quantity we have either for accept or reject by counting the lines. | | | | | | unitOfMeasure | No | N/A | | | | | | | unitSize | No | N/A | | | | | | scheduledShipDate | | | N/A | |
Sample Response: Status 200
{
"payload": {
"transactionId": "fd621aac-8dab-4885-b38e-21143679942e-20250409091213"
}
}
Response Mapping:
Amazon Field | Hemi Field | Comment |
---|---|---|
transactionId | Marketplace Feed > External ID | |
Marketplace Feed > Type | Hardcoded as “Order Acknowledgment” | |
Marketplace Feed >Status | “Processing” | |
Marketplace Feed >Submitted Date | Current Date | |
Marketplace Feed >Sent Objects Count | Number of orders sent |
Once we read the response using the Get Transaction Status If we receive success we want to set: Order > Status > Ready For Shipping Then we update the Order Acknowledgment fields as per Order Acknowledgement Functional Details
If we receive error we want to set: Order Acknowledgement > Status = Error Store the relevant error message in Order Error table
Limits:
Rate (requests per second) | Burst |
---|---|
10 | 10 |