Sample code for 30+ languages & platforms
Xojo Plugin

Walmart v3 Ship Order Lines

See more Walmart v3 Examples

Updates the status of order lines to Shipped and trigger the charge to the customer. The response to a successful call contains the order with the shipped line items.

Chilkat Xojo Plugin Downloads

Xojo Plugin
Dim success As Boolean
success = False

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

Dim http As New Chilkat.Http

http.SetRequestHeader "WM_QOS.CORRELATION_ID","b3261d2d-028a-4ef7-8602-633c23200af6"
http.SetRequestHeader "WM_SEC.ACCESS_TOKEN","eyJraWQiOiIzZjVhYTFmNS1hYWE5LTQzM....."
http.SetRequestHeader "Accept","application/json"
http.SetRequestHeader "WM_SVC.NAME","Walmart Marketplace"

// Send the following in the request body:

// {
//   "orderShipment": {
//     "orderLines": {
//       "orderLine": [
//         {
//           "lineNumber": "1",
//           "intentToCancelOverride": false,
//           "sellerOrderId": "92344",
//           "orderLineStatuses": {
//             "orderLineStatus": [
//               {
//                 "status": "Shipped",
//                 "statusQuantity": {
//                   "unitOfMeasurement": "EACH",
//                   "amount": "1"
//                 },
//                 "trackingInfo": {
//                   "shipDateTime": 1580821866000,
//                   "carrierName": {
//                     "carrier": "UPS"
//                   },
//                   "methodCode": "Standard",
//                   "trackingNumber": "22344",
//                   "trackingURL": "http://walmart/tracking/ups?&type=MP&seller_id=12345&promise_date=03/02/2020&dzip=92840&tracking_numbers=92345"
//                 },
//                 "returnCenterAddress": {
//                   "name": "walmart",
//                   "address1": "walmart store 2",
//                   "city": "Huntsville",
//                   "state": "AL",
//                   "postalCode": "35805",
//                   "country": "USA",
//                   "dayPhone": "12344",
//                   "emailId": "walmart@walmart.com"
//                 }
//               }
//             ]
//           }
//         },
//         {
//           "lineNumber": "2",
//           "sellerOrderId": "92344",
//           "orderLineStatuses": {
//             "orderLineStatus": [
//               {
//                 "status": "Shipped",
//                 "statusQuantity": {
//                   "unitOfMeasurement": "EACH",
//                   "amount": "1"
//                 },
//                 "trackingInfo": {
//                   "shipDateTime": 1580821866000,
//                   "carrierName": {
//                     "carrier": "FedEx"
//                   },
//                   "methodCode": "Express",
//                   "trackingNumber": "22344",
//                   "trackingURL": "http://walmart/tracking/fedEx?&type=MP&seller_id=12345&promise_date=03/02/2020&dzip=92840&tracking_numbers=92344"
//                 },
//                 "returnCenterAddress": {
//                   "name": "walmart",
//                   "address1": "walmart store 2",
//                   "city": "Huntsville",
//                   "state": "AL",
//                   "postalCode": "35805",
//                   "country": "USA",
//                   "dayPhone": "12344",
//                   "emailId": "walmart@walmart.com"
//                 }
//               }
//             ]
//           }
//         }
//       ]
//     }
//   }
// }

Dim json As New Chilkat.JsonObject
Dim orderLineIndex As Int32
orderLineIndex = 0
Dim statusIndex As Int32
statusIndex = 0
json.I = orderLineIndex
json.J = statusIndex
success = json.UpdateString("orderShipment.orderLines.orderLine[i].lineNumber","1")
success = json.UpdateBool("orderShipment.orderLines.orderLine[i].intentToCancelOverride",False)
success = json.UpdateString("orderShipment.orderLines.orderLine[i].sellerOrderId","92344")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].status","Shipped")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].statusQuantity.unitOfMeasurement","EACH")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].statusQuantity.amount","1")
success = json.UpdateInt("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.shipDateTime",123)
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.carrierName.carrier","UPS")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.methodCode","Standard")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.trackingNumber","22344")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.trackingURL","http://walmart/tracking/ups?&type=MP&seller_id=12345&promise_date=03/02/2020&dzip=92840&tracking_numbers=92345")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.name","walmart")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.address1","walmart store 2")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.city","Huntsville")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.state","AL")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.postalCode","35805")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.country","USA")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.dayPhone","12344")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.emailId","walmart@walmart.com")

orderLineIndex = orderLineIndex + 1
statusIndex = 0
json.I = orderLineIndex
json.J = statusIndex
success = json.UpdateString("orderShipment.orderLines.orderLine[i].lineNumber","2")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].sellerOrderId","92344")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].status","Shipped")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].statusQuantity.unitOfMeasurement","EACH")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].statusQuantity.amount","1")
success = json.UpdateInt("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.shipDateTime",123)
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.carrierName.carrier","FedEx")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.methodCode","Express")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.trackingNumber","22344")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.trackingURL","http://walmart/tracking/fedEx?&type=MP&seller_id=12345&promise_date=03/02/2020&dzip=92840&tracking_numbers=92344")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.name","walmart")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.address1","walmart store 2")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.city","Huntsville")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.state","AL")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.postalCode","35805")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.country","USA")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.dayPhone","12344")
success = json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.emailId","walmart@walmart.com")

Dim resp As New Chilkat.HttpResponse
success = http.HttpJson("POST","https://api-gateway.walmart.com/v3/orders/{purchaseOrderId}/shipping",json,"application/json",resp)
If (success = False) Then
    System.DebugLog(http.LastErrorText)
    Return
End If

System.DebugLog("Response status code: " + Str(resp.StatusCode))

success = resp.GetBodyJson(json)

// A sample JSON response:

// {
//   "order": {
//     "purchaseOrderId": "1234567891234",
//     "customerOrderId": "9876543212345",
//     "sellerOrderId": "13233454564657",
//     "customerEmailId": "customer@walmartlabs.com",
//     "orderDate": 1478284060000,
//     "shippingInfo": {
//       "phone": "6501234567",
//       "estimatedDeliveryDate": 1479798000000,
//       "estimatedShipDate": 1478674800000,
//       "methodCode": "Value",
//       "postalAddress": {
//         "name": "Jane Doe",
//         "address1": "123 Main street",
//         "city": "Sunnyvale",
//         "state": "CA",
//         "postalCode": "94086",
//         "country": "USA",
//         "addressType": "OFFICE"
//       }
//     },
//     "orderLines": {
//       "orderLine": [
//         {
//           "lineNumber": "1",
//           "item": {
//             "productName": "Kenmore CF-1 or 20-86883 Canister Secondary Filter Generic 2 Pack",
//             "sku": "wei-ASSET-675gku675"
//           },
//           "charges": {
//             "charge": [
//               {
//                 "chargeType": "PRODUCT",
//                 "chargeName": "ItemPrice",
//                 "chargeAmount": {
//                   "currency": "USD",
//                   "amount": 555
//                 },
//                 "tax": {
//                   "taxName": "Tax1",
//                   "taxAmount": {
//                     "currency": "USD",
//                     "amount": 48.56
//                   }
//                 }
//               }
//             ]
//           },
//           "orderLineQuantity": {
//             "unitOfMeasurement": "EACH",
//             "amount": "1"
//           },
//           "statusDate": 1478297929000,
//           "orderLineStatuses": {
//             "orderLineStatus": [
//               {
//                 "status": "Shipped",
//                 "statusQuantity": {
//                   "unitOfMeasurement": "EACH",
//                   "amount": "1"
//                 },
//                 "trackingInfo": {
//                   "shipDateTime": 1438163400000,
//                   "carrierName": {
//                     "carrier": "FedEx"
//                   },
//                   "methodCode": "Value",
//                   "trackingNumber": "911001572321619861",
//                   "trackingURL": "http://www.fedex.com/Tracking?action=track=english=us=x=911001572321619861"
//                 },
//                 "returnCenterAddress": {
//                   "name": "ABC",
//                   "address1": "123 Bridge street",
//                   "city": "Huntsville",
//                   "state": "AL",
//                   "postalCode": "35805",
//                   "country": "USA",
//                   "dayPhone": "6501234567",
//                   "emailId": "RCemailaddress@company.com"
//                 }
//               }
//             ]
//           }
//         }
//       ]
//     }
//   }
// }

json.EmitCompact = False
System.DebugLog("Response JSON:")
System.DebugLog(json.Emit())

// Insert code here to load the above JSON into the json object.

Dim lineNumber As String
Dim ProductName As String
Dim Sku As String
Dim UnitOfMeasurement As String
Dim Amount As String
Dim statusDate As Int32
Dim count_j As Int32
Dim chargeType As String
Dim chargeName As String
Dim v_Currency As String
Dim chargeAmountAmount As Int32
Dim TaxName As String
Dim TaxAmountCurrency As String
Dim TaxAmountAmount As String
Dim status As String
Dim statusQuantityUnitOfMeasurement As String
Dim statusQuantityAmount As String
Dim ShipDateTime As Int32
Dim Carrier As String
Dim trackingInfoMethodCode As String
Dim TrackingNumber As String
Dim TrackingURL As String
Dim returnCenterAddressName As String
Dim returnCenterAddressAddress1 As String
Dim returnCenterAddressCity As String
Dim returnCenterAddressState As String
Dim returnCenterAddressPostalCode As String
Dim returnCenterAddressCountry As String
Dim DayPhone As String
Dim EmailId As String

Dim PurchaseOrderId As String
PurchaseOrderId = json.StringOf("order.purchaseOrderId")
Dim CustomerOrderId As String
CustomerOrderId = json.StringOf("order.customerOrderId")
Dim SellerOrderId As String
SellerOrderId = json.StringOf("order.sellerOrderId")
Dim CustomerEmailId As String
CustomerEmailId = json.StringOf("order.customerEmailId")
Dim OrderDate As Int32
OrderDate = json.IntOf("order.orderDate")
Dim Phone As String
Phone = json.StringOf("order.shippingInfo.phone")
Dim EstimatedDeliveryDate As Int32
EstimatedDeliveryDate = json.IntOf("order.shippingInfo.estimatedDeliveryDate")
Dim EstimatedShipDate As Int32
EstimatedShipDate = json.IntOf("order.shippingInfo.estimatedShipDate")
Dim MethodCode As String
MethodCode = json.StringOf("order.shippingInfo.methodCode")
Dim Name As String
Name = json.StringOf("order.shippingInfo.postalAddress.name")
Dim Address1 As String
Address1 = json.StringOf("order.shippingInfo.postalAddress.address1")
Dim City As String
City = json.StringOf("order.shippingInfo.postalAddress.city")
Dim State As String
State = json.StringOf("order.shippingInfo.postalAddress.state")
Dim PostalCode As String
PostalCode = json.StringOf("order.shippingInfo.postalAddress.postalCode")
Dim Country As String
Country = json.StringOf("order.shippingInfo.postalAddress.country")
Dim AddressType As String
AddressType = json.StringOf("order.shippingInfo.postalAddress.addressType")
Dim i As Int32
i = 0
Dim j As Int32
j = 0
Dim count_i As Int32
count_i = json.SizeOfArray("order.orderLines.orderLine")
While i < count_i
    json.I = i
    lineNumber = json.StringOf("order.orderLines.orderLine[i].lineNumber")
    ProductName = json.StringOf("order.orderLines.orderLine[i].item.productName")
    Sku = json.StringOf("order.orderLines.orderLine[i].item.sku")
    UnitOfMeasurement = json.StringOf("order.orderLines.orderLine[i].orderLineQuantity.unitOfMeasurement")
    Amount = json.StringOf("order.orderLines.orderLine[i].orderLineQuantity.amount")
    statusDate = json.IntOf("order.orderLines.orderLine[i].statusDate")
    j = 0
    count_j = json.SizeOfArray("order.orderLines.orderLine[i].charges.charge")
    While j < count_j
        json.J = j
        chargeType = json.StringOf("order.orderLines.orderLine[i].charges.charge[j].chargeType")
        chargeName = json.StringOf("order.orderLines.orderLine[i].charges.charge[j].chargeName")
        v_Currency = json.StringOf("order.orderLines.orderLine[i].charges.charge[j].chargeAmount.currency")
        chargeAmountAmount = json.IntOf("order.orderLines.orderLine[i].charges.charge[j].chargeAmount.amount")
        TaxName = json.StringOf("order.orderLines.orderLine[i].charges.charge[j].tax.taxName")
        TaxAmountCurrency = json.StringOf("order.orderLines.orderLine[i].charges.charge[j].tax.taxAmount.currency")
        TaxAmountAmount = json.StringOf("order.orderLines.orderLine[i].charges.charge[j].tax.taxAmount.amount")
        j = j + 1
    Wend
    j = 0
    count_j = json.SizeOfArray("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus")
    While j < count_j
        json.J = j
        status = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].status")
        statusQuantityUnitOfMeasurement = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].statusQuantity.unitOfMeasurement")
        statusQuantityAmount = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].statusQuantity.amount")
        ShipDateTime = json.IntOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.shipDateTime")
        Carrier = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.carrierName.carrier")
        trackingInfoMethodCode = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.methodCode")
        TrackingNumber = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.trackingNumber")
        TrackingURL = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.trackingURL")
        returnCenterAddressName = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.name")
        returnCenterAddressAddress1 = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.address1")
        returnCenterAddressCity = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.city")
        returnCenterAddressState = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.state")
        returnCenterAddressPostalCode = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.postalCode")
        returnCenterAddressCountry = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.country")
        DayPhone = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.dayPhone")
        EmailId = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.emailId")
        j = j + 1
    Wend
    i = i + 1
Wend