Marketplaces / Walmart / Walmart Order Management / Walmart Get Returns

Walmart Get Returns

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 15/05/2024 Hristiyan First publish

The purpose of this page is to describe how we handle customer initiated returns from Walmart into Hemi.

API Docs : https://developer.walmart.com/api/us/mp/returns#operation/getReturns API Call : GET https://marketplace.walmartapis.com/v3/returns

Everytime the cron runs we want to store a record in the last_date_run table and then use the parameter returnCreationStartDate to get only new returns as we might end up getting big payloads if we don’t include this parameter. The returnCreationStartDate format is based on UTC, ISO 8601. Date example: '2013-08-16' Timestamp example: '2013-08-16T10:30:15Z’. We want to use the timestamp

We want to store every return request as a record in the Order Claim table. All returns are “approved” when they are within the specified return window so they will be just pending the sending of the refund. All returns outside the specified window can only be requested via customer service in which case we will not have a return request.

All validations,triggers etc are as per the Claims abstraction found here

Claims general management

There is a specific call for issuing the refund for the return which is explained in Walmart Order Refund page (check tag v1.1).

Sample response :

{
  "meta": {
    "totalCount": 40,
    "limit": 10,
    "nextCursor": "?sellerId=151&limit=10&offset=10"
  },
  "returnOrders": [
    {
      "returnOrderId": "103738048909818825",
      "customerEmailId": "emailID123456@relay.walmart.com",
      "customerName": {
        "firstName": "Jane",
        "lastName": "Doe"
      },
      "customerOrderId": "1234567891234",
      "refundMode": "POST_DELIVERY",
      "returnOrderDate": "2019-02-21T01:01:08.000Z",
      "returnType": "REPLACEMENT",
      "replacementCustomerOrderId": "1234567891234",
      "returnByDate": "2019-03-23T01:01:06.000Z",
      "totalRefundAmount": {
        "currencyAmount": 127.45,
        "currencyUnit": "USD"
      },
      "returnLineGroups": [
        {
          "groupNo": 1,
          "returnLines": [
            {
              "returnOrderLineNumber": 1
            }
          ],
          "labels": [
            {
              "labelImageURL": "https://i5.walmartimages.com/asr/0a0c7462-7a85-4d3d-b7cf-91738b6883d4_1.c2c4f7b05e1cfe67910134779aa7c571.png",
              "carrierInfoList": [
                {
                  "carrierId": "11",
                  "carrierName": "FEDEX",
                  "serviceType": "FedEx Ground",
                  "trackingNo": "785611449666"
                }
              ]
            }
          ],
          "returnExpectedFlag": true
        }
      ],
      "returnOrderLines": [
        {
          "returnOrderLineNumber": 1,
          "salesOrderLineNumber": 1,
          "returnReason": "ARRIVED_LATE",
          "purchaseOrderId": "4790210558890",
          "sellerOrderId": "123",
          "purchaseOrderLineNumber": 1,
          "isReturnForException": true,
          "exceptionItemType": "HAZMAT/OTHER/FREIGHT",
          "rechargeReason": "Recharge Reason",
          "returnCancellationReason": "Cancellation Reason",
          "item": {
            "sku": "ANTL_GDL-0700",
            "condition": "Pre-Owned: Like New",
            "productName": "Antlion Audio ModMic Wireless Attachable Boom Microphone",
            "itemWeight": {
              "unitOfMeasure": "POUND",
              "measurementValue": 5
            }
          },
          "charges": [
            {
              "chargeCategory": "PRODUCT",
              "chargeName": "ItemPrice",
              "chargePerUnit": {
                "currencyAmount": 119.95,
                "currencyUnit": "USD"
              },
              "isDiscount": false,
              "isBillable": true,
              "tax": [
                {
                  "taxName": "Tax1",
                  "excessTax": {
                    "currencyAmount": 0,
                    "currencyUnit": "USD"
                  },
                  "taxPerUnit": {
                    "currencyAmount": 7.5,
                    "currencyUnit": "USD"
                  }
                }
              ],
              "excessCharge": {
                "currencyAmount": 0,
                "currencyUnit": "USD"
              },
              "references": [
                {
                  "name": "isAdjustment",
                  "value": "false"
                }
              ]
            }
          ],
          "unitPrice": {
            "currencyAmount": 119.95,
            "currencyUnit": "USD"
          },
          "chargeTotals": [
            {
              "name": "lineUnitPrice",
              "value": {
                "currencyAmount": 119.95,
                "currencyUnit": "USD"
              }
            },
            {
              "name": "lineProductTaxes",
              "value": {
                "currencyAmount": 7.5,
                "currencyUnit": "USD"
              }
            },
            {
              "name": "lineTotalTaxes",
              "value": {
                "currencyAmount": 7.5,
                "currencyUnit": "USD"
              }
            },
            {
              "name": "lineSubTotal",
              "value": {
                "currencyAmount": 119.95,
                "currencyUnit": "USD"
              }
            },
            {
              "name": "lineTotal",
              "value": {
                "currencyAmount": 127.45,
                "currencyUnit": "USD"
              }
            }
          ],
          "currentDeliveryStatus": "NOT_SHIPPED",
          "currentRefundStatus": "REFUND_INITIATED",
          "currentTrackingStatuses": [
            {
              "status": "COMPLETED",
              "statusTime": "2023-06-22T02:20:51.000Z",
              "currentRefundStatus": "REFUND_INITIATED",
              "quantity": {
                "unitOfMeasure": "EACH",
                "measurementValue": 2
              }
            },
            {
              "status": "COMPLETED",
              "statusTime": "2023-06-22T02:20:51.000Z",
              "currentRefundStatus": "REFUND_COMPLETED",
              "quantity": {
                "unitOfMeasure": "EACH",
                "measurementValue": 1
              }
            }
          ],
          "refundChannels": [
            {
              "refundChannelName": "SELLER_MANUAL_REFUND",
              "quantity": {
                "measurementValue": 2
              }
            },
            {
              "refundChannelName": "InstantRefund",
              "quantity": {
                "measurementValue": 1
              }
            }
          ],
          "cancellableQty": 0,
          "quantity": {
            "unitOfMeasure": "EACH",
            "measurementValue": 3
          },
          "returnExpectedFlag": true,
          "isFastReplacement": false,
          "isKeepIt": false,
          "lastItem": false,
          "refundedQty": 1,
          "rechargeableQty": 0,
          "refundChannel": "SELLER_AUTO_REFUND",
          "returnTrackingDetail": [
            {
              "sequenceNo": 1,
              "eventTag": "RETURN_IN_TRANSIT",
              "eventDescription": "A MARKET_PLACE Return in Transit",
              "eventTime": "2019-02-23T00:46:11.000Z",
              "references": [
                {
                  "name": "ReturnDate",
                  "value": "2019-02-21T01:01:08.000Z"
                },
                {
                  "name": "SLA for Receiving Items",
                  "value": "7 Days"
                }
              ]
            },
            {
              "sequenceNo": 0,
              "eventTag": "RETURN_INITIATED",
              "eventDescription": "Return initiated for MARKET_PLACE",
              "eventTime": "2019-02-21T01:01:08.000Z",
              "references": [
                {
                  "name": "ReturnDate",
                  "value": "2019-02-21T01:01:08.000Z"
                },
                {
                  "name": "FedexTrackingLink",
                  "value": "https://www.fedex.com/apps/fedextrack/?tracknumbers=785611449666"
                }
              ]
            }
          ],
          "status": "COMPLETED",
          "statusTime": "2019-03-02T05:45:45.000Z"
        }
      ],
      "returnChannel": {
        "channelName": "IN_STORE"
      }
    }
  ]
}

Response mapping :

Walmart Field Hemi Mapping Notes
meta
totalCount N/A
limit N/A
nextCursor N/A
returnOrders N/A
returnOrderId Order Claim > Marketplace ID
customerEmailId N/A
customerName N/A
firstName Order Claim Shipping Info > Name We want to store the firstName and lastName in the same field in Hemi separated by interval. If we have more than two names we store them all and separate by interval.
lastName Order Claim Shipping Info > Name We want to store the firstName and lastName in the same field in Hemi by interval.If we have more than two names we store them all and separate by interval.
customerOrderId N/A
refundMode N/A
returnOrderDate Order Claim > Marketplace Date It will be in format 2019-02-21T01:01:08.000Z we need to store it in Hemi friendly format - Unix
returnType Order Claim> Marketplace Type
replacementCustomerOrderId N/A
returnByDate N/A
totalRefundAmount N/A
currencyAmount N/A
currencyUnit N/A
returnLineGroups N/A
groupNo N/A
returnLines N/A
returnOrderLineNumber N/A
labels N/A
labelImageURL N/A
carrierInfoList N/A
carrierId N/A
carrierName Order Claim Shipping Info > Courier
serviceType
trackingNo Order Claim Shipping Info > Tracking Number
returnExpectedFlag N/A
returnOrderLines N/A
returnOrderLineNumber N/A
salesOrderLineNumber N/A
returnReason Order Claim > Marketplace Reason
purchaseOrderId N/A This is the marketplace order ID. We need to map it with Orders > Marketplace Order ID so we can identify which order is being returned.
sellerOrderId N/A
purchaseOrderLineNumber We need to map this the order line number which we have stored in Products On Order > Item Order Line ID for the relevant order (as mapped from above) so we can identify which line is being returned. Once identified, we need to create a record in Order Claim Row for the returned product.
isReturnForException N/A
exceptionItemType N/A
rechargeReason N/A
returnCancellationReason N/A
item N/A
sku N/A
condition N/A
productName N/A
itemWeight N/A
unitOfMeasure N/A
measurementValue N/A
charges N/A
chargeCategory N/A
chargeName N/A
chargePerUnit N/A
currencyAmount N/A
currencyUnit N/A
isDiscount N/A
isBillable N/A
tax N/A
taxName N/A
excessTax N/A
currencyAmount N/A
currencyUnit N/A
taxPerUnit N/A
currencyAmount N/A
currencyUnit N/A
excessCharge N/A
currencyAmount N/A
currencyUnit N/A
references N/A
name N/A
value N/A
unitPrice N/A
currencyAmount N/A
currencyUnit N/A
chargeTotals N/A
name N/A
value N/A
currencyAmount N/A
currencyUnit N/A
currentDeliveryStatus N/A
currentRefundStatus N/A
currentTrackingStatuses N/A
status N/A
statusTime N/A
currentRefundStatus N/A
quantity N/A
unitOfMeasure N/A
measurementValue N/A
refundChannels N/A
refundChannelName N/A
quantity N/A
measurementValue N/A
cancellableQty N/A
quantity N/A
unitOfMeasure N/A
measurementValue N/A
returnExpectedFlag N/A
isFastReplacement N/A
isKeepIt N/A
lastItem N/A
refundedQty N/A
rechargeableQty N/A
refundChannel N/A
returnTrackingDetail N/A
sequenceNo N/A
eventTag N/A
eventDescription N/A
eventTime N/A
references N/A
name N/A
value N/A
status N/A
statusTime N/A
returnChannel N/A
channelName N/A
Is this article helpful?
0 0 0