![]() |
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
(Perl) 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.
use chilkat(); # 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 $url = "https://marketplace.walmartapis.com/v2/feeds?feedType=inventory"; $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. $authUtil = chilkat::CkAuthUtil->new(); $wmConsumerId = "WALMART_CONSUMER_ID"; $wmPrivateKey = "WALMART_PRIVATE_KEY"; $jsonStr = $authUtil->walmartSignature($url,$wmConsumerId,$wmPrivateKey,$requestMethod); if ($authUtil->get_LastMethodSuccess() != 1) { print $authUtil->lastErrorText() . "\r\n"; exit; } # Build the HTTP POST request. $req = chilkat::CkHttpRequest->new(); $req->put_HttpVerb("POST"); $req->put_ContentType("multipart/form-data"); $req->put_Path("/v2/feeds?feedType=inventory"); $req->AddHeader("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 $json = chilkat::CkJsonObject->new(); $json->Load($jsonStr); $req->AddHeader("WM_SVC.NAME","Walmart Marketplace"); $req->AddHeader("WM_QOS.CORRELATION_ID",$json->stringOf("correlation_id")); $req->AddHeader("WM_SEC.TIMESTAMP",$json->stringOf("timestamp")); $req->AddHeader("WM_SEC.AUTH_SIGNATURE",$json->stringOf("signature")); $req->AddHeader("WM_CONSUMER.ID",$wmConsumerId); # Note: Make sure to replace "WALMART_CHANNEL_TYPE" with the actual value for your seller account... $req->AddHeader("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> $success = $req->AddFileForUpload2("inventory","qa_data/walmart/inventory.xml","application/xml"); if ($success != 1) { print $req->lastErrorText() . "\r\n"; exit; } $http = chilkat::CkHttp->new(); # resp is a HttpResponse $resp = $http->SynchronousRequest("marketplace.walmartapis.com",443,1,$req); if ($http->get_LastMethodSuccess() != 1) { print $http->lastErrorText() . "\r\n"; exit; } $xml = chilkat::CkXml->new(); $xml->LoadXml($resp->bodyStr()); # A successful response should have a 200 response status if ($resp->get_StatusCode() != 200) { print $xml->getXml() . "\r\n"; print "Response Status Code: " . $resp->get_StatusCode() . "\r\n"; print "Failed." . "\r\n"; exit; } # Show the XML response.. print $xml->getXml() . "\r\n"; print "--" . "\r\n"; print "Success!" . "\r\n"; |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.