Sample code for 30+ languages & platforms
B4X Requires Chilkat v11.0.0+

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 B4X Downloads

B4X
Dim success As Boolean = False

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

Dim http As ChilkatHttp
http.Initialize("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 ChilkatJsonObject
json.Initialize
Dim orderLineIndex As Int = 0
Dim statusIndex As Int = 0
json.I = orderLineIndex
json.J = statusIndex
json.UpdateString("orderShipment.orderLines.orderLine[i].lineNumber", "1")
json.UpdateBool("orderShipment.orderLines.orderLine[i].intentToCancelOverride", False)
json.UpdateString("orderShipment.orderLines.orderLine[i].sellerOrderId", "92344")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].status", "Shipped")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].statusQuantity.unitOfMeasurement", "EACH")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].statusQuantity.amount", "1")
json.UpdateInt("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.shipDateTime", 123)
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.carrierName.carrier", "UPS")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.methodCode", "Standard")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.trackingNumber", "22344")
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")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.name", "walmart")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.address1", "walmart store 2")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.city", "Huntsville")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.state", "AL")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.postalCode", "35805")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.country", "USA")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.dayPhone", "12344")
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
json.UpdateString("orderShipment.orderLines.orderLine[i].lineNumber", "2")
json.UpdateString("orderShipment.orderLines.orderLine[i].sellerOrderId", "92344")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].status", "Shipped")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].statusQuantity.unitOfMeasurement", "EACH")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].statusQuantity.amount", "1")
json.UpdateInt("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.shipDateTime", 123)
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.carrierName.carrier", "FedEx")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.methodCode", "Express")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.trackingNumber", "22344")
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")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.name", "walmart")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.address1", "walmart store 2")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.city", "Huntsville")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.state", "AL")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.postalCode", "35805")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.country", "USA")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.dayPhone", "12344")
json.UpdateString("orderShipment.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].returnCenterAddress.emailId", "walmart@walmart.com")

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


Log("Response status code: " & resp.StatusCode)

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
Log("Response JSON:")
Log(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 Int
Dim count_j As Int
Dim chargeType As String
Dim chargeName As String
Dim v_Currency As String
Dim chargeAmountAmount As Int
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 Int
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 = json.StringOf("order.purchaseOrderId")
Dim CustomerOrderId As String = json.StringOf("order.customerOrderId")
Dim SellerOrderId As String = json.StringOf("order.sellerOrderId")
Dim CustomerEmailId As String = json.StringOf("order.customerEmailId")
Dim OrderDate As Int = json.IntOf("order.orderDate")
Dim Phone As String = json.StringOf("order.shippingInfo.phone")
Dim EstimatedDeliveryDate As Int = json.IntOf("order.shippingInfo.estimatedDeliveryDate")
Dim EstimatedShipDate As Int = json.IntOf("order.shippingInfo.estimatedShipDate")
Dim MethodCode As String = json.StringOf("order.shippingInfo.methodCode")
Dim Name As String = json.StringOf("order.shippingInfo.postalAddress.name")
Dim Address1 As String = json.StringOf("order.shippingInfo.postalAddress.address1")
Dim City As String = json.StringOf("order.shippingInfo.postalAddress.city")
Dim State As String = json.StringOf("order.shippingInfo.postalAddress.state")
Dim PostalCode As String = json.StringOf("order.shippingInfo.postalAddress.postalCode")
Dim Country As String = json.StringOf("order.shippingInfo.postalAddress.country")
Dim AddressType As String = json.StringOf("order.shippingInfo.postalAddress.addressType")
Dim i As Int = 0
Dim j As Int = 0
Dim count_i As Int = json.SizeOfArray("order.orderLines.orderLine")
Do 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")
    Do 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
    Loop
    j = 0
    count_j = json.SizeOfArray("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus")
    Do 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
    Loop
    i = i + 1
Loop