Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

Walmart v3 Get a Feed Status

See more Walmart v3 Examples

This API returns the feed status for a specified Feed ID.

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
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;
  PartnerFeedResponse_xmlns_ns2: string;
  feedId: string;
  feedStatus: string;
  itemsReceived: Integer;
  itemsSucceeded: Integer;
  itemsFailed: Integer;
  itemsProcessing: Integer;
  offset: Integer;
  limit: Integer;
  i: Integer;
  count_i: Integer;
  martId: Integer;
  sku: string;
  index: Integer;
  ingestionStatus: 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} \
  //    -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}',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"?>
  //  <PartnerFeedResponse xmlns:ns2="http://walmart.com/">
  //      <feedId>1c349f8f-aec0-411f-8454-ead47d12946f</feedId>
  //      <feedStatus>PROCESSED</feedStatus>
  //      <ingestionErrors/>
  //      <itemsReceived>11</itemsReceived>
  //      <itemsSucceeded>11</itemsSucceeded>
  //      <itemsFailed>0</itemsFailed>
  //      <itemsProcessing>0</itemsProcessing>
  //      <offset>0</offset>
  //      <limit>0</limit>
  //      <itemDetails>
  //          <itemIngestionStatus>
  //              <martId>0</martId>
  //              <sku>sku1</sku>
  //              <index>8</index>
  //              <ingestionStatus>SUCCESS</ingestionStatus>
  //              <ingestionErrors/>
  //          </itemIngestionStatus>
  //          <itemIngestionStatus>
  //              <martId>0</martId>
  //              <sku>sku2</sku>
  //              <index>6</index>
  //              <ingestionStatus>SUCCESS</ingestionStatus>
  //              <ingestionErrors/>
  //          </itemIngestionStatus>
  //          <itemIngestionStatus>
  //              <martId>0</martId>
  //              <sku>sku3</sku>
  //              <index>9</index>
  //              <ingestionStatus>SUCCESS</ingestionStatus>
  //              <ingestionErrors/>
  //          </itemIngestionStatus>
  //      </itemDetails>
  //  </PartnerFeedResponse>

  //  Sample code for parsing the XML response...
  //  Use the following online tool to generate parsing code from sample XML:
  //  Generate Parsing Code from XML

  PartnerFeedResponse_xmlns_ns2 := xmlResponse.GetAttrValue('xmlns:ns2');
  feedId := xmlResponse.GetChildContent('feedId');
  feedStatus := xmlResponse.GetChildContent('feedStatus');
  itemsReceived := xmlResponse.GetChildIntValue('itemsReceived');
  itemsSucceeded := xmlResponse.GetChildIntValue('itemsSucceeded');
  itemsFailed := xmlResponse.GetChildIntValue('itemsFailed');
  itemsProcessing := xmlResponse.GetChildIntValue('itemsProcessing');
  offset := xmlResponse.GetChildIntValue('offset');
  limit := xmlResponse.GetChildIntValue('limit');
  i := 0;
  count_i := xmlResponse.NumChildrenHavingTag('itemDetails|itemIngestionStatus');
  while i < count_i do
    begin
      xmlResponse.I := i;
      martId := xmlResponse.GetChildIntValue('itemDetails|itemIngestionStatus[i]|martId');
      sku := xmlResponse.GetChildContent('itemDetails|itemIngestionStatus[i]|sku');
      index := xmlResponse.GetChildIntValue('itemDetails|itemIngestionStatus[i]|index');
      ingestionStatus := xmlResponse.GetChildContent('itemDetails|itemIngestionStatus[i]|ingestionStatus');
      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.