Sample code for 30+ languages & platforms
Visual FoxPro

MWS RequestReport (Amazon Marketplace Web Service)

See more Amazon MWS Examples

Creates a report request and submits the request to Amazon MWS.

See Amazon MWS RequestReport for more information.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loRest
LOCAL lnBTls
LOCAL lnPort
LOCAL lnBAutoReconnect
LOCAL lcResponseXml
LOCAL loXml
LOCAL lcRequestReportResponse_xmlns
LOCAL lcReportRequestId
LOCAL lcReportType
LOCAL lcStartDate
LOCAL lcEndDate
LOCAL lcScheduled
LOCAL lcSubmittedDate
LOCAL lcReportProcessingStatus
LOCAL lcRequestId

lnSuccess = 0

* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loRest = CreateObject('Chilkat.Rest')

* Connect to the Amazon MWS REST server.
* 
* Make sure to connect to the correct Amazon MWS Endpoint, otherwise
* you'll get an HTTP 401 response code.
* 
* The possible servers are:
* 
* North America (NA) 	https://mws.amazonservices.com
* Europe (EU) 	https://mws-eu.amazonservices.com
* India (IN) 	https://mws.amazonservices.in
* China (CN) 	https://mws.amazonservices.com.cn
* Japan (JP) 	https://mws.amazonservices.jp 
* 
lnBTls = 1
lnPort = 443
lnBAutoReconnect = 1
lnSuccess = loRest.Connect("mws.amazonservices.com",lnPort,lnBTls,lnBAutoReconnect)
IF (lnSuccess <> 1) THEN
    ? "ConnectFailReason: " + STR(loRest.ConnectFailReason)
    ? loRest.LastErrorText
    RELEASE loRest
    CANCEL
ENDIF

loRest.Host = "mws.amazonservices.com"

loRest.AddQueryParam("AWSAccessKeyId","0PB842EXAMPLE7N4ZTR2")
loRest.AddQueryParam("Action","RequestReport")
loRest.AddQueryParam("EndDate","2008-06-26T18:12:21")
loRest.AddQueryParam("MWSAuthToken","amzn.mws.4ea38b7b-f563-7709-4bae-87aeaEXAMPLE")
loRest.AddQueryParam("Marketplace","ATVPDKIKX0DER")
loRest.AddQueryParam("ReportType","_GET_MERCHANT_LISTINGS_DATA_")
loRest.AddQueryParam("SellerId","A1XEXAMPLE5E6")
loRest.AddQueryParam("SignatureMethod","HmacSHA256")
loRest.AddQueryParam("SignatureVersion","2")
loRest.AddQueryParam("StartDate","2009-01-03T18:12:21")
loRest.AddQueryParam("Version","2009-01-01")

* Add the MWS Signature param.  (Also adds the Timestamp parameter using the curent system date/time.)
* The AddMwsSignature method adds the Timestamp and Signature query params.
loRest.AddMwsSignature("POST","/Reports/2009-01-01","mws.amazonservices.com","MWS_SECRET_KEY")

lcResponseXml = loRest.FullRequestFormUrlEncoded("POST","/Reports/2009-01-01")
IF (loRest.LastMethodSuccess <> 1) THEN
    ? loRest.LastErrorText
    RELEASE loRest
    CANCEL
ENDIF

IF (loRest.ResponseStatusCode <> 200) THEN
    * Examine the request/response to see what happened.
    ? "response status code = " + STR(loRest.ResponseStatusCode)
    ? "response status text = " + loRest.ResponseStatusText
    ? "response header: " + loRest.ResponseHeader
    ? "response body: " + lcResponseXml
    ? "---"
    ? "LastRequestStartLine: " + loRest.LastRequestStartLine
    ? "LastRequestHeader: " + loRest.LastRequestHeader
ENDIF

* Examine the XML returned in the response body.
? lcResponseXml
? "----"
? "Success."

* Sample Response

* Use this online tool to generate parsing code from sample XML: 
* Generate Parsing Code from XML

* <?xml version="1.0"?>
* <RequestReportResponse
*     xmlns="http://mws.amazonaws.com/doc/2009-01-01/">
*     <RequestReportResult>
*         <ReportRequestInfo>
*             <ReportRequestId>2291326454</ReportRequestId>
*             <ReportType>_GET_MERCHANT_LISTINGS_DATA_</ReportType>
*             <StartDate>2009-01-21T02:10:39+00:00</StartDate>
*             <EndDate>2009-02-13T02:10:39+00:00</EndDate>
*             <Scheduled>false</Scheduled>
*             <SubmittedDate>2009-02-20T02:10:39+00:00</SubmittedDate>
*             <ReportProcessingStatus>_SUBMITTED_</ReportProcessingStatus>
*         </ReportRequestInfo>
*     </RequestReportResult>
*     <ResponseMetadata>
*         <RequestId>88faca76-b600-46d2-b53c-0c8c4533e43a</RequestId>
*     </ResponseMetadata>
* </RequestReportResponse>

loXml = CreateObject('Chilkat.Xml')
loXml.LoadXml(lcResponseXml)

lcRequestReportResponse_xmlns = loXml.GetAttrValue("xmlns")
lcReportRequestId = loXml.GetChildContent("RequestReportResult|ReportRequestInfo|ReportRequestId")
lcReportType = loXml.GetChildContent("RequestReportResult|ReportRequestInfo|ReportType")
lcStartDate = loXml.GetChildContent("RequestReportResult|ReportRequestInfo|StartDate")
lcEndDate = loXml.GetChildContent("RequestReportResult|ReportRequestInfo|EndDate")
lcScheduled = loXml.GetChildContent("RequestReportResult|ReportRequestInfo|Scheduled")
lcSubmittedDate = loXml.GetChildContent("RequestReportResult|ReportRequestInfo|SubmittedDate")
lcReportProcessingStatus = loXml.GetChildContent("RequestReportResult|ReportRequestInfo|ReportProcessingStatus")
lcRequestId = loXml.GetChildContent("ResponseMetadata|RequestId")

RELEASE loRest
RELEASE loXml