Get Fulfillment Order
Version | Date | Created / Updated | Notes |
---|---|---|---|
v1.0 | 05.03.2025 | Bogomil Pavlov | First publish |
v1.1 | 20.03.2025 | Bogomil Pavlov | Unmap Order Payment Details > Transaction Id |
v1.2 | 20.03.2025 | Bogomil Pavlov | Mapping Changes |
v1.3 | 14.05.2025 | Bogomil Pavlov | Mapping Changes 2 |
Returns the fulfillment order indicated by the specified order identifier.
We will use this flow to make sure we are storing all shipping and return details from MCF
API Call : GET /fba/outbound/2020-07-01/fulfillmentOrders/{sellerFulfillmentOrderId}
Path Parameter :
sellerFulfillmentOrderId
- We want to get this from the response of Get Fulfillment Orders and call each order individually
Sample Request:
GET https://sellingpartnerapi-na.amazon.com/fba/outbound/2020-07-01/fulfillmentOrders/{sellerFulfillmentOrderId}
Sample Response:
{
"payload": {
"fulfillmentOrder": {
"sellerFulfillmentOrderId": "1808",
"marketplaceId": "ATVPDKIKX0DER",
"displayableOrderId": "TestOrder-FBAOutbound",
"displayableOrderDate": "2020-01-09T19:46:45Z",
"displayableOrderComment": "TestOrder",
"shippingSpeedCategory": "Standard",
"destinationAddress": {
"name": "Amazon",
"addressLine1": "1234 Amazon Way",
"addressLine2": "Suite 123",
"addressLine3": "Lane1",
"city": "Troy",
"stateOrRegion": "MI",
"countryCode": "US",
"postalCode": "48084"
},
"fulfillmentAction": "Ship",
"fulfillmentPolicy": "FillOrKill",
"receivedDate": "2020-02-07T01:23:30Z",
"fulfillmentOrderStatus": "PROCESSING",
"statusUpdatedDate": "2020-02-07T02:33:31Z",
"notificationEmails": [
"test2@amazon.com",
"test1@amazon.com"
],
"returnAuthorizations": [],
"paymentInformation": [
{
"paymentMode": "CreditCard",
"paymentTransactionId": "TRANSID-20231012-1110",
"paymentDate": "2020-01-09T19:46:45.809Z"
}
]
},
"fulfillmentOrderItems": [
{
"sellerSku": "PSMM-TEST-SKU-Jan-21_19_59_44-0738",
"sellerFulfillmentOrderItemId": "2227383",
"quantity": 0,
"fulfillmentNetworkSku": "B07CGHKWZP",
"orderItemDisposition": "Sellable",
"cancelledQuantity": 1,
"unfulfillableQuantity": 0,
"estimatedShipDate": "2020-02-08T01:23:31Z",
"estimatedArrivalDate": "2020-02-15T01:23:31Z",
"perUnitDeclaredValue": {
"currencyCode": "USD",
"value": "18.99"
}
},
{
"sellerSku": "CR-47K6-H6QN",
"sellerFulfillmentOrderItemId": "2227384",
"quantity": 0,
"fulfillmentNetworkSku": "X0014BIZ8T",
"orderItemDisposition": "Sellable",
"cancelledQuantity": 1,
"unfulfillableQuantity": 0,
"estimatedShipDate": "2020-02-08T01:23:31Z",
"estimatedArrivalDate": "2020-02-15T01:23:31Z",
"perUnitDeclaredValue": {
"currencyCode": "USD",
"value": "2.00"
}
}
],
"fulfillmentShipments": [
{
"amazonShipmentId": "DchKfcZ9N",
"fulfillmentCenterId": "RNO1",
"fulfillmentShipmentStatus": "PENDING",
"shippingDate": "2020-02-07T02:33:23Z",
"estimatedArrivalDate": "2020-02-07T02:33:23Z",
"fulfillmentShipmentPackage": [
{
"packageNumber": "101010",
"carrierCode": "MITU TEST",
"trackingNumber": "55555555",
"estimatedArrivalDate": "",
"lockerDetails": "",
"deliveryInformation": ""
}
],
"fulfillmentShipmentItem": [
{
"sellerSku": "PSMM-TEST-SKU-Jan-21_19_59_44-0738",
"sellerFulfillmentOrderItemId": "OrderItemID2",
"quantity": 1,
"packageNumber": "101010",
"serialNumber": "a1b2c"
},
{
"sellerSku": "CR-47K6-H6QN",
"sellerFulfillmentOrderItemId": "OrderItemID1",
"quantity": 3,
"packageNumber": "101010",
"serialNumber": ""
}
]
}
],
"returnItems": [
{
"sellerReturnItemId": "tranzakshanid-123",
"sellerFulfillmentOrderItemId": "2227384",
"amazonShipmentId": "",
"sellerReturnReasonCode": "",
"returnComment": "",
"amazonReturnReasonCode": "test",
"status": "",
"statusChangedDate": "",
"returnAuthorizationId": "",
"returnReceivedCondition": "",
"fulfillmentCenterId": ""
}
]
}
}
Response Mapping:
Amazon MCF Field | Hemi Field | Comment | ||||
---|---|---|---|---|---|---|
payload |
||||||
fulfillmentOrder |
||||||
sellerFulfillmentOrderId |
<v1.3>Used to map the order in Hemi | |||||
sellerFulfillmentOrderId = Order > Marketplace Order Id</1.3> |
||||||
marketplaceId |
||||||
displayableOrderId |
N/A | |||||
displayableOrderDate |
N/A | |||||
displayableOrderComment |
N/A | |||||
shippingSpeedCategory |
N/A | |||||
destinationAddress |
||||||
name |
N/A | |||||
addressLine1 |
N/A | |||||
addressLine2 |
||||||
addressLine3 |
||||||
city |
N/A | |||||
stateOrRegion |
N/A | |||||
countryCode |
N/A | |||||
postalCode |
N/A | |||||
fulfillmentAction |
N/A | |||||
fulfillmentPolicy |
||||||
receivedDate |
N/A | |||||
fulfillmentOrderStatus |
Order Connector > Status Mapping | Status Mapping Available Below | ||||
statusUpdatedDate |
N/A | |||||
notificationEmails |
N/A | |||||
fulfillmentOrderItems |
N/A | |||||
cancelledQuantity |
If we have Amazon MCF Connector > Get Cancellations = True we want to obtain the cancellations. |
If there is a return we will receive all the details in returnItems node however if the order is cancelled we can rely on the cancelledQuantity
field.
Based on this field we want to track and store the refunds in Hemi. We want to store every Order Payment with Order Payment > Status = Pending and Order Payment > Type = Refund. All rows and row line are stored as per abstraction Refund Row Lines
Please note apart from the product line status we will have to track if we have any refunds on “Pending” or “Sent” status because if the refund is already created we have to wait to be processed first and we do not want to store any additional refunds. |
| | | quantity
| | | | Used to track the quantities however if we have cancelledQuantity
we will still receive the total quantities in quantity
so based on these field we will track the the item and line statuses |
| | | fulfillmentNetworkSku
| | | N/A | |
| | | orderItemDisposition
| | | N/A | |
| | | estimatedShipDate
| | | N/A | |
| | | estimatedArrivalDate
| | | N/A | |
| | | perUnitDeclaredValue
| | | | |
| | | | currencyCode
| | N/A | |
| | | | value
| | N/A | |
| | | sellerFulfillmentOrderItemId
| | | N/A | This is our Product In Order > Id |
| | | sellerSku
| | | | Used to track the item.
sellerSku
= Product in Order > SKU |
| | | unfulfillableQuantity
| | | N/A | |
| | fulfillmentShipments
| | | | | If we have Amazon MCF Connector > Get Shipments
= True we want to obtain the shipment.
|
| | | amazonShipmentId
| | | N/A | |
| | | fulfillmentCenterId
| | | Order Shipment > Ship From | The same for all packages |
| | | fulfillmentShipmentStatus
| | | | We want to store only fulfillmentShipments with status SHIPPED |
| | | shippingDate
| | | Order Shipment > Shipment Time | The same for all packages |
| | | estimatedArrivalDate
| | | N/A | |
| | | fulfillmentShipmentPackage
| | | | For each fulfillmentShipmentPackage
node we want to store separate Order Shipment.
Every shipment we store in Hemi we want to have Order Shipment > Status = Pending.
All rows and rows lines should be stored as per abstraction Order Shipment Functional Details |
| | | | packageNumber
| | <v1.2>Order Shipment > Package Id | New Field
Used to track the items in the package.
We will have to map the fulfillmentShipmentPackage
> packageNumber
against fulfillmentShipmentItem
> packageNumber
in order to know which items are part of the package</v1.2> |
| | | | carrierCode
| | Order Shipment > Courier | |
| | | | trackingNumber
| | Order Shipment > Tracking Number | |
| | | | amazonShipmentId
| | N/A | |
| | | | fulfillmentCenterId
| | N/A | |
| | | | fulfillmentShipmentStatus
| | N/A | |
| | | fulfillmentShipmentItem
| | | | |
| | | | sellerSku
| | | Used to track the product in order in order to obtain the Order Shipment Rows > Order Item Id |
| | | | sellerFulfillmentOrderItemId
| | N/A | |
| | | | packageNumber
| | | We will have to map the fulfillmentShipmentPackage
> packageNumber
against fulfillmentShipmentItem
> packageNumber
in order to know which items are part of the package |
| | | | quantity
| | Order Shipment Row > Quantity | |
| | | | serialNumber
| | N/A | |
| | returnItems
| | | | | If we have Amazon MCF Connector > Get Returns
= True we want to obtain the returns.
Every returnItems
node is a separate Order Payment in Hemi.
We want to store every Order Payment with Order Payment > Status = Pending and Order Payment > Type = Refund.
All rows and row line are stored as per abstraction Refund Row Lines |
| | | sellerReturnItemId
| | | <v1.1>
N/A
</v1.1> | |
| | | sellerFulfillmentOrderItemId
| | | | Used to map the item which is part of the return
sellerFulfillmentOrderItemId
= Product In Order > Id |
| | | amazonShipmentId
| | | N/A | |
| | | sellerReturnReasonCode
| | | N/A | |
| | | returnComment
| | | N/A | |
| | | amazonReturnReasonCode
| | | Order Payment Details > Refund Note | |
| | | status
| | | N/A | |
| | | statusChangedDate
| | | N/A | |
| | | returnAuthorizationId
| | | N/A | |
| | | returnReceivedCondition
| | | N/A | |
| | | fulfillmentCenterId
| | | N/A | |
| | returnAuthorizations
| | | | N/A | |
| | paymentInformation
| | | | | |
| | | paymentMode
| | | N/A | |
| | | paymentTransactionId
| | | N/A | |
| | | paymentDate
| | | N/A | |
Order Connector > Status Mapping:
Amazon Status | Comment | Order Connector > Connector Status |
---|---|---|
New | The fulfillment order was received but not yet validated. | Pending |
Received | The fulfillment order was received and validated. Validation includes determining that the destination address is valid and that Amazon's records indicate that the seller has enough sellable (undamaged) inventory to fulfill the order. The seller can cancel a fulfillment order that has a status of Received. | Ready For Shipping |
Planning | The fulfillment order has been sent to Amazon's fulfillment network to begin shipment planning, but no unit in any shipment has been picked from inventory yet. The seller can cancel a fulfillment order that has a status of Planning. | Ready For Shipping |
Processing | The process of picking units from inventory has begun on at least one shipment in the fulfillment order. The seller cannot cancel a fulfillment order that has a status of Processing. | Shipped |
Cancelled | The fulfillment order has been cancelled by the seller. | Cancelled |
Complete | All item quantities in the fulfillment order have been fulfilled. | Shipped |
CompletePartialled | Some item quantities in the fulfillment order were fulfilled; the rest were either cancelled or unfulfillable. | Partially Shipped |
Unfulfillable | No item quantities in the fulfillment order could be fulfilled because the Amazon fulfillment center workers found no inventory for those items or found no inventory that was in sellable (undamaged) condition. | Incomplete |
Invalid | The fulfillment order was received but could not be validated. The reasons for this include an invalid destination address or Amazon's records indicating that the seller does not have enough sellable inventory to fulfill the order. When this happens, the fulfillment order is invalid and no items in the order will ship. | Incomplete |