Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Walmart v3 Get All Feed Statuses
See more Walmart v3 Examples
Returns the feed statuses for all the specified Feed IDs.Chilkat Pascal (Lazarus/Delphi) Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.Http,
Chilkat.StringBuilder,
Chilkat.Xml;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
http: THttp;
sbResponseBody: TStringBuilder;
xmlResponse: TXml;
ns2_list_xmlns_ns2: string;
ns2_totalResults: Integer;
ns2_offset: Integer;
ns2_limit: Integer;
i: Integer;
count_i: Integer;
ns2_feedId: string;
ns2_feedSource: string;
ns2_feedType: string;
ns2_partnerId: Integer;
ns2_itemsReceived: Integer;
ns2_itemsSucceeded: Integer;
ns2_itemsFailed: Integer;
ns2_itemsProcessing: Integer;
ns2_feedStatus: string;
ns2_feedDate: string;
ns2_batchId: string;
ns2_modifiedDtm: string;
ns2_fileName: string;
ns2_itemDataErrorCount: Integer;
ns2_itemSystemErrorCount: Integer;
ns2_itemTimeoutErrorCount: Integer;
ns2_channelType: string;
begin
success := False;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http := THttp.Create;
// Implements the following CURL command:
// curl -X GET \
// https://marketplace.walmartapis.com/v3/feeds?feedId={feedId}&limit={limit}&offset={offset} \
// -H 'WM_SVC.NAME: Walmart Marketplace'
// -H 'WM_SEC.ACCESS_TOKEN: eyJraWQiOiIzZjVhYTFmNS1hYWE5LTQzM.....'
// -H 'WM_QOS.CORRELATION_ID: b3261d2d-028a-4ef7-8602-633c23200af6'
// -H 'Content-Type: application/xml'
// -H 'Accept: application/xml'
http.SetRequestHeader('WM_QOS.CORRELATION_ID','b3261d2d-028a-4ef7-8602-633c23200af6');
http.SetRequestHeader('Content-Type','application/xml');
http.SetRequestHeader('WM_SEC.ACCESS_TOKEN','eyJraWQiOiIzZjVhYTFmNS1hYWE5LTQzM.....');
http.SetRequestHeader('Accept','application/xml');
http.SetRequestHeader('WM_SVC.NAME','Walmart Marketplace');
sbResponseBody := TStringBuilder.Create;
success := http.QuickGetSb('https://marketplace.walmartapis.com/v3/feeds?feedId={feedId}&limit={limit}&offset={offset}',sbResponseBody);
if (success = False) then
begin
WriteLn(http.LastErrorText);
Exit;
end;
xmlResponse := TXml.Create;
xmlResponse.LoadSb(sbResponseBody,True);
// Sample XML response:
// (Sample code for parsing the XML response is shown below)
// <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
// <ns2:list xmlns:ns2="http://walmart.com/">
// <ns2:totalResults>2</ns2:totalResults>
// <ns2:offset>0</ns2:offset>
// <ns2:limit>50</ns2:limit>
// <ns2:results>
// <ns2:feed>
// <ns2:feedId>12234EGGT564YTEGFA@AQMBAQA</ns2:feedId>
// <ns2:feedSource>MARKETPLACE_PARTNER</ns2:feedSource>
// <ns2:feedType>item</ns2:feedType>
// <ns2:partnerId>1413254255</ns2:partnerId>
// <ns2:itemsReceived>1</ns2:itemsReceived>
// <ns2:itemsSucceeded>1</ns2:itemsSucceeded>
// <ns2:itemsFailed>0</ns2:itemsFailed>
// <ns2:itemsProcessing>0</ns2:itemsProcessing>
// <ns2:feedStatus>PROCESSED</ns2:feedStatus>
// <ns2:feedDate>2018-07-20T21:56:12.605Z</ns2:feedDate>
// <ns2:batchId>HP_REQUEST_BATCH</ns2:batchId>
// <ns2:modifiedDtm>2018-07-20T21:56:17.948Z</ns2:modifiedDtm>
// <ns2:fileName>ItemFeed99_ParadiseCounty_paperback.xml</ns2:fileName>
// <ns2:itemDataErrorCount>0</ns2:itemDataErrorCount>
// <ns2:itemSystemErrorCount>0</ns2:itemSystemErrorCount>
// <ns2:itemTimeoutErrorCount>0</ns2:itemTimeoutErrorCount>
// <ns2:channelType>WM_TEST</ns2:channelType>
// </ns2:feed>
// <ns2:feed>
// <ns2:feedId>12234EGGT564YTEGFA@AQMBAQA</ns2:feedId>
// <ns2:feedSource>MARKETPLACE_PARTNER</ns2:feedSource>
// <ns2:feedType>item</ns2:feedType>
// <ns2:partnerId>1413254255</ns2:partnerId>
// <ns2:itemsReceived>1</ns2:itemsReceived>
// <ns2:itemsSucceeded>1</ns2:itemsSucceeded>
// <ns2:itemsFailed>0</ns2:itemsFailed>
// <ns2:itemsProcessing>0</ns2:itemsProcessing>
// <ns2:feedStatus>PROCESSED</ns2:feedStatus>
// <ns2:feedDate>2018-07-20T21:56:12.605Z</ns2:feedDate>
// <ns2:batchId>HP_REQUEST_BATCH</ns2:batchId>
// <ns2:modifiedDtm>2018-07-20T21:56:17.948Z</ns2:modifiedDtm>
// <ns2:fileName>ItemFeed99_ParadiseCounty_paperback.xml</ns2:fileName>
// <ns2:itemDataErrorCount>0</ns2:itemDataErrorCount>
// <ns2:itemSystemErrorCount>0</ns2:itemSystemErrorCount>
// <ns2:itemTimeoutErrorCount>0</ns2:itemTimeoutErrorCount>
// <ns2:channelType>WM_TEST</ns2:channelType>
// </ns2:feed>
// </ns2:results>
// </ns2:list>
// Sample code for parsing the XML response...
// Use the following online tool to generate parsing code from sample XML:
// Generate Parsing Code from XML
ns2_list_xmlns_ns2 := xmlResponse.GetAttrValue('xmlns:ns2');
ns2_totalResults := xmlResponse.GetChildIntValue('ns2:totalResults');
ns2_offset := xmlResponse.GetChildIntValue('ns2:offset');
ns2_limit := xmlResponse.GetChildIntValue('ns2:limit');
i := 0;
count_i := xmlResponse.NumChildrenHavingTag('ns2:results|ns2:feed');
while i < count_i do
begin
xmlResponse.I := i;
ns2_feedId := xmlResponse.GetChildContent('ns2:results|ns2:feed[i]|ns2:feedId');
ns2_feedSource := xmlResponse.GetChildContent('ns2:results|ns2:feed[i]|ns2:feedSource');
ns2_feedType := xmlResponse.GetChildContent('ns2:results|ns2:feed[i]|ns2:feedType');
ns2_partnerId := xmlResponse.GetChildIntValue('ns2:results|ns2:feed[i]|ns2:partnerId');
ns2_itemsReceived := xmlResponse.GetChildIntValue('ns2:results|ns2:feed[i]|ns2:itemsReceived');
ns2_itemsSucceeded := xmlResponse.GetChildIntValue('ns2:results|ns2:feed[i]|ns2:itemsSucceeded');
ns2_itemsFailed := xmlResponse.GetChildIntValue('ns2:results|ns2:feed[i]|ns2:itemsFailed');
ns2_itemsProcessing := xmlResponse.GetChildIntValue('ns2:results|ns2:feed[i]|ns2:itemsProcessing');
ns2_feedStatus := xmlResponse.GetChildContent('ns2:results|ns2:feed[i]|ns2:feedStatus');
ns2_feedDate := xmlResponse.GetChildContent('ns2:results|ns2:feed[i]|ns2:feedDate');
ns2_batchId := xmlResponse.GetChildContent('ns2:results|ns2:feed[i]|ns2:batchId');
ns2_modifiedDtm := xmlResponse.GetChildContent('ns2:results|ns2:feed[i]|ns2:modifiedDtm');
ns2_fileName := xmlResponse.GetChildContent('ns2:results|ns2:feed[i]|ns2:fileName');
ns2_itemDataErrorCount := xmlResponse.GetChildIntValue('ns2:results|ns2:feed[i]|ns2:itemDataErrorCount');
ns2_itemSystemErrorCount := xmlResponse.GetChildIntValue('ns2:results|ns2:feed[i]|ns2:itemSystemErrorCount');
ns2_itemTimeoutErrorCount := xmlResponse.GetChildIntValue('ns2:results|ns2:feed[i]|ns2:itemTimeoutErrorCount');
ns2_channelType := xmlResponse.GetChildContent('ns2:results|ns2:feed[i]|ns2:channelType');
i := i + 1;
end;
http.Free;
sbResponseBody.Free;
xmlResponse.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.