Hemi Connectors / Amazon MCF Technical Scope / Get Inventory Summaries / Get Fulfillment Order

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 Docs : https://developer-docs.amazon.com/sp-api/docs/fulfillment-outbound-api-v2020-07-01-reference#getfulfillmentorder

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 cancelledQuantityfield.

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 fulfillmentShipmentPackagenode 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
Is this article helpful?
0 0 0