![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Tcl) Walmart - Update bulk inventoryNote: This example uses classes, properties, or methods discontinued in Chilkat v11.0.0 or greater. See Update bulk inventory for more information about this call.
load ./chilkat.dll # 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/v2/feeds?feedType=inventory set url "https://marketplace.walmartapis.com/v2/feeds?feedType=inventory" set 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 [new_CkAuthUtil] set wmConsumerId "WALMART_CONSUMER_ID" set wmPrivateKey "WALMART_PRIVATE_KEY" set jsonStr [CkAuthUtil_walmartSignature $authUtil $url $wmConsumerId $wmPrivateKey $requestMethod] if {[CkAuthUtil_get_LastMethodSuccess $authUtil] != 1} then { puts [CkAuthUtil_lastErrorText $authUtil] delete_CkAuthUtil $authUtil exit } # Build the HTTP POST request. set req [new_CkHttpRequest] CkHttpRequest_put_HttpVerb $req "POST" CkHttpRequest_put_ContentType $req "multipart/form-data" CkHttpRequest_put_Path $req "/v2/feeds?feedType=inventory" CkHttpRequest_AddHeader $req "Accept" "application/xml" # 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 [new_CkJsonObject] CkJsonObject_Load $json $jsonStr CkHttpRequest_AddHeader $req "WM_SVC.NAME" "Walmart Marketplace" CkHttpRequest_AddHeader $req "WM_QOS.CORRELATION_ID" [CkJsonObject_stringOf $json "correlation_id"] CkHttpRequest_AddHeader $req "WM_SEC.TIMESTAMP" [CkJsonObject_stringOf $json "timestamp"] CkHttpRequest_AddHeader $req "WM_SEC.AUTH_SIGNATURE" [CkJsonObject_stringOf $json "signature"] CkHttpRequest_AddHeader $req "WM_CONSUMER.ID" $wmConsumerId # Note: Make sure to replace "WALMART_CHANNEL_TYPE" with the actual value for your seller account... CkHttpRequest_AddHeader $req "WM_CONSUMER.CHANNEL.TYPE" "WALMART_CHANNEL_TYPE" # The body of the POST will contain XML. In this example, we'll load the XML # from a file. The XML contains inventory data that looks something like this: # <InventoryFeed xmlns="http://walmart.com/"> # <InventoryHeader> # <version>1.4</version> # </InventoryHeader> # <inventory> # <sku>1068155</sku> # <quantity> # <unit>EACH</unit> # <amount>10</amount> # </quantity> # <fulfillmentLagTime>1</fulfillmentLagTime> # </inventory> # <inventory> # <sku>10210321</sku> # <quantity> # <unit>EACH</unit> # <amount>20</amount> # </quantity> # <fulfillmentLagTime>3</fulfillmentLagTime> # </inventory> # </InventoryFeed> set success [CkHttpRequest_AddFileForUpload2 $req "inventory" "qa_data/walmart/inventory.xml" "application/xml"] if {$success != 1} then { puts [CkHttpRequest_lastErrorText $req] delete_CkAuthUtil $authUtil delete_CkHttpRequest $req delete_CkJsonObject $json exit } set http [new_CkHttp] # resp is a CkHttpResponse set resp [CkHttp_SynchronousRequest $http "marketplace.walmartapis.com" 443 1 $req] if {[CkHttp_get_LastMethodSuccess $http] != 1} then { puts [CkHttp_lastErrorText $http] delete_CkAuthUtil $authUtil delete_CkHttpRequest $req delete_CkJsonObject $json delete_CkHttp $http exit } set xml [new_CkXml] CkXml_LoadXml $xml [CkHttpResponse_bodyStr $resp] # A successful response should have a 200 response status if {[CkHttpResponse_get_StatusCode $resp] != 200} then { puts [CkXml_getXml $xml] puts "Response Status Code: [CkHttpResponse_get_StatusCode $resp]" puts "Failed." delete_CkHttpResponse $resp delete_CkAuthUtil $authUtil delete_CkHttpRequest $req delete_CkJsonObject $json delete_CkHttp $http delete_CkXml $xml exit } delete_CkHttpResponse $resp # Show the XML response.. puts [CkXml_getXml $xml] puts "--" puts "Success!" delete_CkAuthUtil $authUtil delete_CkHttpRequest $req delete_CkJsonObject $json delete_CkHttp $http delete_CkXml $xml |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.