Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(SQL Server) Walmart - Get All Feed StatusesNote: This is an older example for the Walmart v2 API. You should instead use the Walmart v3 API. Demonstrates how to send a Walmart REST API request to get all feed statuses.
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int DECLARE @iTmp0 int -- Important: Do not use nvarchar(max). See the warning about using nvarchar(max). DECLARE @sTmp0 nvarchar(4000) -- -------------------------------------------------------------------- -- This example is for the older and deprecated Walmart v2 API. -- -- Use the v3 API instead: Walmart v3 Get All Feed Statuses -- -------------------------------------------------------------------- -- This example requires the Chilkat API to have been previously unlocked. -- See Global Unlock Sample for sample code. -- Demonstrates how to send a request such as the following to get all feed statuses: -- Also demonstrates how to parse the results. -- GET /v2/feeds HTTP/1.1 -- WM_SVC.NAME: Walmart Marketplace -- WM_QOS.CORRELATION_ID: 123456abcdef -- WM_SEC.TIMESTAMP: 1438147839 -- WM_SEC.AUTH_SIGNATURE: 9khb0lPeRt0WSGbXNGGj4kSQ9L6PMBX/q+ovdy9bDQfvdhYs8NoEsjRX4fD7UNIHTddgkmSVqAqeIIHlaLcRIl0Y4DcJqQYHL27LiWlsm91nYodGssWTKsOq6dJfUHEy95M4zXFGWDDhbHYCor28SCV/g/JdEQybGkcX9Zj5aDyg= -- WM_CONSUMER.ID: a20ac266-9add-4fc7-9392-fec303f5155c -- Accept: application/xml -- Host: https://marketplace.walmartapis.com DECLARE @requestUrl nvarchar(4000) SELECT @requestUrl = 'https://marketplace.walmartapis.com/v2/feeds' DECLARE @requestMethod nvarchar(4000) SELECT @requestMethod = 'GET' -- First we need to generate a signature for our request. -- The signature needs to be re-generated for each new Walmart HTTP request. DECLARE @authUtil int -- Use "Chilkat_9_5_0.AuthUtil" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.AuthUtil', @authUtil OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @wmConsumerId nvarchar(4000) SELECT @wmConsumerId = 'WALMART_CONSUMER_ID' DECLARE @wmPrivateKey nvarchar(4000) SELECT @wmPrivateKey = 'WALMART_PRIVATE_KEY' DECLARE @jsonStr nvarchar(4000) EXEC sp_OAMethod @authUtil, 'WalmartSignature', @jsonStr OUT, @requestUrl, @wmConsumerId, @wmPrivateKey, @requestMethod EXEC sp_OAGetProperty @authUtil, 'LastMethodSuccess', @iTmp0 OUT IF @iTmp0 <> 1 BEGIN EXEC sp_OAGetProperty @authUtil, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @authUtil RETURN END -- 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 DECLARE @json int -- Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT DECLARE @success int EXEC sp_OAMethod @json, 'Load', @success OUT, @jsonStr DECLARE @http int -- Use "Chilkat_9_5_0.Http" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT EXEC sp_OAMethod @http, 'SetRequestHeader', NULL, 'WM_SVC.NAME', 'Walmart Marketplace' EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'correlation_id' EXEC sp_OAMethod @http, 'SetRequestHeader', NULL, 'WM_QOS.CORRELATION_ID', @sTmp0 EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'timestamp' EXEC sp_OAMethod @http, 'SetRequestHeader', NULL, 'WM_SEC.TIMESTAMP', @sTmp0 EXEC sp_OAMethod @json, 'StringOf', @sTmp0 OUT, 'signature' EXEC sp_OAMethod @http, 'SetRequestHeader', NULL, 'WM_SEC.AUTH_SIGNATURE', @sTmp0 EXEC sp_OAMethod @http, 'SetRequestHeader', NULL, 'WM_CONSUMER.ID', @wmConsumerId EXEC sp_OASetProperty @http, 'Accept', 'application/xml' -- Note: Do not explicitly set the "Host" header. Chilkat will set it automatically. DECLARE @xmlStr nvarchar(4000) EXEC sp_OAMethod @http, 'QuickGetStr', @xmlStr OUT, @requestUrl EXEC sp_OAGetProperty @http, 'LastMethodSuccess', @iTmp0 OUT IF @iTmp0 <> 1 BEGIN EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @authUtil EXEC @hr = sp_OADestroy @json EXEC @hr = sp_OADestroy @http RETURN END DECLARE @xml int -- Use "Chilkat_9_5_0.Xml" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Xml', @xml OUT EXEC sp_OAMethod @xml, 'LoadXml', @success OUT, @xmlStr -- A successful response should have a 200 response status EXEC sp_OAGetProperty @http, 'LastStatus', @iTmp0 OUT IF @iTmp0 <> 200 BEGIN EXEC sp_OAMethod @xml, 'GetXml', @sTmp0 OUT PRINT @sTmp0 EXEC sp_OAGetProperty @http, 'LastStatus', @iTmp0 OUT PRINT 'Response Status Code: ' + @iTmp0 PRINT 'Failed.' EXEC @hr = sp_OADestroy @authUtil EXEC @hr = sp_OADestroy @json EXEC @hr = sp_OADestroy @http EXEC @hr = sp_OADestroy @xml RETURN END -- A sample XML response is shown below.. -- To iterate over the Walmart feeds: DECLARE @numFeeds int EXEC sp_OAMethod @xml, 'NumChildrenAt', @numFeeds OUT, 'ns2:results' DECLARE @i int SELECT @i = 0 WHILE @i < @numFeeds BEGIN EXEC sp_OASetProperty @xml, 'I', @i EXEC sp_OAMethod @xml, 'GetChildContent', @sTmp0 OUT, 'ns2:results|ns2:feed[i]|ns2:feedId' PRINT 'Feed ID: ' + @sTmp0 EXEC sp_OAMethod @xml, 'GetChildContent', @sTmp0 OUT, 'ns2:results|ns2:feed[i]|ns2:feedType' PRINT 'Feed Type: ' + @sTmp0 EXEC sp_OAMethod @xml, 'GetChildIntValue', @iTmp0 OUT, 'ns2:results|ns2:feed[i]|ns2:itemsReceived' PRINT 'Num Items Recieved: ' + @iTmp0 EXEC sp_OAMethod @xml, 'GetChildContent', @sTmp0 OUT, 'ns2:results|ns2:feed[i]|ns2:feedStatus' PRINT 'Feed Status: ' + @sTmp0 PRINT '--' SELECT @i = @i + 1 END PRINT 'Success.' -- --------------------------------------- -- Sample XML response -- --------------------------------------- -- <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> -- <ns2:list xmlns:ns2="http://walmart.com/"> -- <ns2:totalResults>1293</ns2:totalResults> -- <ns2:offset>0</ns2:offset> -- <ns2:limit>50</ns2:limit> -- <ns2:results> -- <ns2:feed> -- <ns2:feedId>AAAA7F0345E9403C91223F7139FFC341@AQsBAQA</ns2:feedId> -- <ns2:feedType>inventory</ns2:feedType> -- <ns2:partnerId>10000999999</ns2:partnerId> -- <ns2:itemsReceived>130088</ns2:itemsReceived> -- <ns2:itemsSucceeded>113154</ns2:itemsSucceeded> -- <ns2:itemsFailed>16934</ns2:itemsFailed> -- <ns2:itemsProcessing>0</ns2:itemsProcessing> -- <ns2:feedStatus>PROCESSED</ns2:feedStatus> -- <ns2:feedDate>2017-04-27T17:05:42.078Z</ns2:feedDate> -- <ns2:modifiedDtm>2017-04-27T18:06:10.795Z</ns2:modifiedDtm> -- </ns2:feed> -- <ns2:feed> -- <ns2:feedId>AAAAF1F402CD407FA363AD2929593FFF@AQsBAQA</ns2:feedId> -- <ns2:feedType>inventory</ns2:feedType> -- <ns2:partnerId>10000999999</ns2:partnerId> -- <ns2:itemsReceived>39594</ns2:itemsReceived> -- <ns2:itemsSucceeded>34533</ns2:itemsSucceeded> -- <ns2:itemsFailed>5061</ns2:itemsFailed> -- <ns2:itemsProcessing>0</ns2:itemsProcessing> -- <ns2:feedStatus>PROCESSED</ns2:feedStatus> -- <ns2:feedDate>2017-04-27T05:18:59.739Z</ns2:feedDate> -- <ns2:modifiedDtm>2017-04-27T05:20:30.192Z</ns2:modifiedDtm> -- </ns2:feed> -- ... -- </ns2:results> -- </ns2:list> EXEC @hr = sp_OADestroy @authUtil EXEC @hr = sp_OADestroy @json EXEC @hr = sp_OADestroy @http EXEC @hr = sp_OADestroy @xml END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.