PureBasic
PureBasic
Walmart v3 Get a Feed Status
See more Walmart v3 Examples
This API returns the feed status for a specified Feed ID.Chilkat PureBasic Downloads
IncludeFile "CkHttp.pb"
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkXml.pb"
Procedure ChilkatExample()
success.i = 0
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
http.i = CkHttp::ckCreate()
If http.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; 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'
CkHttp::ckSetRequestHeader(http,"WM_QOS.CORRELATION_ID","b3261d2d-028a-4ef7-8602-633c23200af6")
CkHttp::ckSetRequestHeader(http,"Content-Type","application/xml")
CkHttp::ckSetRequestHeader(http,"WM_SEC.ACCESS_TOKEN","eyJraWQiOiIzZjVhYTFmNS1hYWE5LTQzM.....")
CkHttp::ckSetRequestHeader(http,"Accept","application/xml")
CkHttp::ckSetRequestHeader(http,"WM_SVC.NAME","Walmart Marketplace")
sbResponseBody.i = CkStringBuilder::ckCreate()
If sbResponseBody.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkHttp::ckQuickGetSb(http,"https://marketplace.walmartapis.com/v3/feeds/{feedId}",sbResponseBody)
If success = 0
Debug CkHttp::ckLastErrorText(http)
CkHttp::ckDispose(http)
CkStringBuilder::ckDispose(sbResponseBody)
ProcedureReturn
EndIf
xmlResponse.i = CkXml::ckCreate()
If xmlResponse.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkXml::ckLoadSb(xmlResponse,sbResponseBody,1)
; 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.s
feedId.s
feedStatus.s
itemsReceived.i
itemsSucceeded.i
itemsFailed.i
itemsProcessing.i
offset.i
limit.i
i.i
count_i.i
martId.i
sku.s
index.i
ingestionStatus.s
PartnerFeedResponse_xmlns_ns2 = CkXml::ckGetAttrValue(xmlResponse,"xmlns:ns2")
feedId = CkXml::ckGetChildContent(xmlResponse,"feedId")
feedStatus = CkXml::ckGetChildContent(xmlResponse,"feedStatus")
itemsReceived = CkXml::ckGetChildIntValue(xmlResponse,"itemsReceived")
itemsSucceeded = CkXml::ckGetChildIntValue(xmlResponse,"itemsSucceeded")
itemsFailed = CkXml::ckGetChildIntValue(xmlResponse,"itemsFailed")
itemsProcessing = CkXml::ckGetChildIntValue(xmlResponse,"itemsProcessing")
offset = CkXml::ckGetChildIntValue(xmlResponse,"offset")
limit = CkXml::ckGetChildIntValue(xmlResponse,"limit")
i = 0
count_i = CkXml::ckNumChildrenHavingTag(xmlResponse,"itemDetails|itemIngestionStatus")
While i < count_i
CkXml::setCkI(xmlResponse, i)
martId = CkXml::ckGetChildIntValue(xmlResponse,"itemDetails|itemIngestionStatus[i]|martId")
sku = CkXml::ckGetChildContent(xmlResponse,"itemDetails|itemIngestionStatus[i]|sku")
index = CkXml::ckGetChildIntValue(xmlResponse,"itemDetails|itemIngestionStatus[i]|index")
ingestionStatus = CkXml::ckGetChildContent(xmlResponse,"itemDetails|itemIngestionStatus[i]|ingestionStatus")
i = i + 1
Wend
CkHttp::ckDispose(http)
CkStringBuilder::ckDispose(sbResponseBody)
CkXml::ckDispose(xmlResponse)
ProcedureReturn
EndProcedure