Chilkat Examples

ChilkatHOMEAndroid™Classic ASPCC++C#Mono C#.NET Core C#C# UWP/WinRTDataFlexDelphi ActiveXDelphi DLLVisual FoxProJavaLianjaMFCObjective-CPerlPHP ActiveXPHP ExtensionPowerBuilderPowerShellPureBasicCkPythonChilkat2-PythonRubySQL ServerSwift 2Swift 3/4TclUnicode CUnicode C++Visual Basic 6.0VB.NETVB.NET UWP/WinRTVBScriptXojo PluginNode.jsExcelGo

VBScript Web API Examples

Primary Categories

CardConnect
Facebook
GeoOp
Jira
PayPal
Peoplevox
QuickBooks

Shopify
Stripe
SugarCRM
Twitter
VoiceBase
Walmart
Xero
eBay
effectconnect

 

 

 

(VBScript) Walmart - Acknowledge Order

See Acknowledge Orders for more information about this call.

Note: This example requires Chilkat v9.5.0.68 or greater.

Acknowledges an entire order, including all of its order lines. Walmart requires a seller to acknowledge orders within four hours of receipt of the order, except in extenuating circumstances.

The response to a successful call contains the acknowledged order.

In general, only orders that are in a “Created” state should be acknowledged. As a good practice, acknowledge your orders to avoid underselling. Orders that are in an “Acknowledged” state can be re-acknowledged, possibly in response to an error response from an earlier call to acknowledge order. Orders with line items that are shipped or canceled should not be re-acknowledged.

Chilkat ActiveX Downloads

ActiveX for 32-bit and 64-bit Windows

Dim fso, outFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set outFile = fso.CreateTextFile("output.txt", True)

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

' Sends the following POST request:
' POST https://marketplace.walmartapis.com/v3/orders/{purchaseOrderId}/acknowledge

set sbUrl = CreateObject("Chilkat_9_5_0.StringBuilder")
success = sbUrl.Append("https://marketplace.walmartapis.com/v3/orders/{purchaseOrderId}/acknowledge")
numReplaced = sbUrl.Replace("{purchaseOrderId}","1111691995111")

requestMethod = "POST"

' First we need to generate a signature for our request.
' The signature needs to be re-generated for each new Walmart HTTP request.
set authUtil = CreateObject("Chilkat_9_5_0.AuthUtil")

wmConsumerId = "WALMART_CONSUMER_ID"
wmPrivateKey = "WALMART_PRIVATE_KEY"
jsonStr = authUtil.WalmartSignature(sbUrl.GetAsString(),wmConsumerId,wmPrivateKey,requestMethod)
If (authUtil.LastMethodSuccess <> 1) Then
    outFile.WriteLine(authUtil.LastErrorText)
    WScript.Quit
End If

' The JSON returned by WalmartSignature contains the values to be used in the following
' header fields: WM_SEC.AUTH_SIGNATURE, WM_SEC.TIMESTAMP, and WM_QOS.CORRELATION_ID
set json = CreateObject("Chilkat_9_5_0.JsonObject")
success = json.Load(jsonStr)

set http = CreateObject("Chilkat_9_5_0.Http")
http.SetRequestHeader "WM_SVC.NAME","Walmart Marketplace"
http.SetRequestHeader "WM_QOS.CORRELATION_ID",json.StringOf("correlation_id")
http.SetRequestHeader "WM_SEC.TIMESTAMP",json.StringOf("timestamp")
http.SetRequestHeader "WM_SEC.AUTH_SIGNATURE",json.StringOf("signature")
http.SetRequestHeader "WM_CONSUMER.ID",wmConsumerId
' Note: Make sure to replace "WALMART_CHANNEL_TYPE" with the actual value for your seller account...
http.SetRequestHeader "WM_CONSUMER.CHANNEL.TYPE","WALMART_CHANNEL_TYPE"
http.Accept = "application/xml"

' Note: Do not explicitly set the "Host" header.  Chilkat will set it automatically.

' Walmart provides the option to send/receive JSON or XML.  This example will use JSON.
' Note: Please see the online JSON/XML code generation tools at https://tools.chilkat.io/
' The online tools generate code to create/parse XML or JSON.  (You copy sample JSON/XML into the online format,
' and generate code in your selected programming language.  It's a big time saver.)

http.SetRequestHeader "Accept","application/json"
' The body of this particular POST request contains just "{}". (The order ID is already in the URL path.)
' resp is a Chilkat_9_5_0.HttpResponse
Set resp = http.PostJson2(sbUrl.GetAsString(),"application/json","{}")
If (http.LastMethodSuccess <> 1) Then
    outFile.WriteLine(http.LastErrorText)
    WScript.Quit
End If

' Get the JSON response body, which could contain an error, or if successful contains
' the acknowledged order.
set sbBody = CreateObject("Chilkat_9_5_0.StringBuilder")
success = resp.GetBodySb(sbBody)

' A successful response should have a 200 response status
If (resp.StatusCode <> 200) Then
    outFile.WriteLine(sbBody.GetAsString())
    outFile.WriteLine("Response Status Code: " & resp.StatusCode)
    outFile.WriteLine("Failed.")

    WScript.Quit
End If

' Parse the JSON response.
' A sample response is shown below this code.  (The online tools at https://tools.chilkat.io were used to generate the 
' fragment of code below using the sample response data at 
' https://developer.walmart.com/#/apicenter/marketPlace/latest?country=us#acknowledgingOrders

success = json.LoadSb(sbBody)

orderPurchaseOrderId = json.StringOf("order.purchaseOrderId")
orderCustomerOrderId = json.StringOf("order.customerOrderId")
orderCustomerEmailId = json.StringOf("order.customerEmailId")
orderOrderDate = json.IntOf("order.orderDate")
orderShippingInfoPhone = json.StringOf("order.shippingInfo.phone")
orderShippingInfoEstimatedDeliveryDate = json.IntOf("order.shippingInfo.estimatedDeliveryDate")
orderShippingInfoEstimatedShipDate = json.IntOf("order.shippingInfo.estimatedShipDate")
orderShippingInfoMethodCode = json.StringOf("order.shippingInfo.methodCode")
orderShippingInfoPostalAddressName = json.StringOf("order.shippingInfo.postalAddress.name")
orderShippingInfoPostalAddressAddress1 = json.StringOf("order.shippingInfo.postalAddress.address1")
orderShippingInfoPostalAddressAddress2 = json.StringOf("order.shippingInfo.postalAddress.address2")
orderShippingInfoPostalAddressCity = json.StringOf("order.shippingInfo.postalAddress.city")
orderShippingInfoPostalAddressState = json.StringOf("order.shippingInfo.postalAddress.state")
orderShippingInfoPostalAddressPostalCode = json.StringOf("order.shippingInfo.postalAddress.postalCode")
orderShippingInfoPostalAddressCountry = json.StringOf("order.shippingInfo.postalAddress.country")
orderShippingInfoPostalAddressAddressType = json.StringOf("order.shippingInfo.postalAddress.addressType")
i = 0
count_i = json.SizeOfArray("order.orderLines.orderLine")
Do While i < count_i
    json.I = i
    lineNumber = json.StringOf("order.orderLines.orderLine[i].lineNumber")
    itemProductName = json.StringOf("order.orderLines.orderLine[i].item.productName")
    itemSku = json.StringOf("order.orderLines.orderLine[i].item.sku")
    orderLineQuantityUnitOfMeasurement = json.StringOf("order.orderLines.orderLine[i].orderLineQuantity.unitOfMeasurement")
    orderLineQuantityAmount = json.StringOf("order.orderLines.orderLine[i].orderLineQuantity.amount")
    statusDate = json.IntOf("order.orderLines.orderLine[i].statusDate")
    refundRefundId = json.IsNullOf("order.orderLines.orderLine[i].refund.refundId")
    refundRefundComments = json.IsNullOf("order.orderLines.orderLine[i].refund.refundComments")
    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")
        chargeAmountCurrency = json.StringOf("order.orderLines.orderLine[i].charges.charge[j].chargeAmount.currency")
        chargeAmountAmount = json.IntOf("order.orderLines.orderLine[i].charges.charge[j].chargeAmount.amount")
        taxTaxName = json.StringOf("order.orderLines.orderLine[i].charges.charge[j].tax.taxName")
        taxTaxAmountCurrency = json.StringOf("order.orderLines.orderLine[i].charges.charge[j].tax.taxAmount.currency")
        taxTaxAmountAmount = json.IntOf("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")
        cancellationReason = json.IsNullOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].cancellationReason")
        trackingInfoShipDateTime = json.IntOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.shipDateTime")
        trackingInfoCarrierNameOtherCarrier = json.IsNullOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.carrierName.otherCarrier")
        trackingInfoCarrierNameCarrier = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.carrierName.carrier")
        trackingInfoMethodCode = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.methodCode")
        trackingInfoTrackingNumber = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.trackingNumber")
        trackingInfoTrackingURL = json.StringOf("order.orderLines.orderLine[i].orderLineStatuses.orderLineStatus[j].trackingInfo.trackingURL")
        j = j + 1
    Loop
    j = 0
    count_j = json.SizeOfArray("order.orderLines.orderLine[i].refund.refundCharges.refundCharge")
    Do While j < count_j
        json.J = j
        refundReason = json.StringOf("order.orderLines.orderLine[i].refund.refundCharges.refundCharge[j].refundReason")
        chargeChargeType = json.StringOf("order.orderLines.orderLine[i].refund.refundCharges.refundCharge[j].charge.chargeType")
        chargeChargeName = json.StringOf("order.orderLines.orderLine[i].refund.refundCharges.refundCharge[j].charge.chargeName")
        chargeChargeAmountCurrency = json.StringOf("order.orderLines.orderLine[i].refund.refundCharges.refundCharge[j].charge.chargeAmount.currency")
        chargeChargeAmountAmount = json.IntOf("order.orderLines.orderLine[i].refund.refundCharges.refundCharge[j].charge.chargeAmount.amount")
        chargeTax = json.IsNullOf("order.orderLines.orderLine[i].refund.refundCharges.refundCharge[j].charge.tax")
        j = j + 1
    Loop
    i = i + 1
Loop

outFile.WriteLine("Success!")

' Sample Walmart Order Acknowledge Response:

' {
'   "order": {
'     "purchaseOrderId": "1577684050862",
'     "customerOrderId": "2861700797280",
'     "customerEmailId": "jsanthanam@walmartlabs.com",
'     "orderDate": 1484458949000,
'     "shippingInfo": {
'       "phone": "4151234567",
'       "estimatedDeliveryDate": 1485586800000,
'       "estimatedShipDate": 1484636400000,
'       "methodCode": "Value",
'       "postalAddress": {
'         "name": "Asha  Chakre",
'         "address1": "860 W California ave",
'         "address2": null,
'         "city": "Sunnyvale",
'         "state": "CA",
'         "postalCode": "94086",
'         "country": "USA",
'         "addressType": "RESIDENTIAL"
'       }
'     },
'     "orderLines": {
'       "orderLine": [
'         {
'           "lineNumber": "1",
'           "item": {
'             "productName": "Kellogg's Rice Krispies Cereal, 24 oz",
'             "sku": "MGR_07_21_00100123"
'           },
'           "charges": {
'             "charge": [
'               {
'                 "chargeType": "PRODUCT",
'                 "chargeName": "ItemPrice",
'                 "chargeAmount": {
'                   "currency": "USD",
'                   "amount": 19.99
'                 },
'                 "tax": {
'                   "taxName": "Tax1",
'                   "taxAmount": {
'                     "currency": "USD",
'                     "amount": 1.7
'                   }
'                 }
'               }
'             ]
'           },
'           "orderLineQuantity": {
'             "unitOfMeasurement": "EACH",
'             "amount": "1"
'           },
'           "statusDate": 1487888747000,
'           "orderLineStatuses": {
'             "orderLineStatus": [
'               {
'                 "status": "Shipped",
'                 "statusQuantity": {
'                   "unitOfMeasurement": "EACH",
'                   "amount": "1"
'                 },
'                 "cancellationReason": null,
'                 "trackingInfo": {
'                   "shipDateTime": 1485549015000,
'                   "carrierName": {
'                     "otherCarrier": null,
'                     "carrier": "FedEx"
'                   },
'                   "methodCode": "Value",
'                   "trackingNumber": "3445435443441221",
'                   "trackingURL": "http://walmart.narvar.com/walmart/tracking/Fedex?&type=MP&seller_id=801&promise_date=01/28/2017&dzip=94086&tracking_numbers=3445435443441221"
'                 }
'               }
'             ]
'           },
'           "refund": {
'             "refundId": null,
'             "refundComments": null,
'             "refundCharges": {
'               "refundCharge": [
'                 {
'                   "refundReason": "ItemNotReceivedByCustomer",
'                   "charge": {
'                     "chargeType": "PRODUCT",
'                     "chargeName": "Lost in Transit",
'                     "chargeAmount": {
'                       "currency": "USD",
'                       "amount": -0.01
'                     },
'                     "tax": null
'                   }
'                 }
'               ]
'             }
'           }
'         }
'       ]
'     }
'   }
' }

outFile.Close

 

© 2000-2019 Chilkat Software, Inc. All Rights Reserved.