这是我想要做的:
我认为我必须首先请求报告,然后等待报告生成。
生成报告后,我应该能够提取报告ID并从中获取信息。我对吗?是否有可用的样品显示此过程?我应该注意哪些陷阱?
我是一名具有有限API /面向对象编程知识的中级PHP程序员。我已经能够成功地对一个站点进行编程以逐个订单,但是这会限制系统并将我锁定一段时间。我需要为报告发送一个请求,而不是单个订单的多个请求。
答案 0 :(得分:1)
我使用C#时并不了解PHP,但希望这些步骤有所帮助:
/* To generate a report follow the following steps:
*
* 1. Create a RequestReportRequest object and populate the required information (merchantID, start date, end date etc.)
* 2. Request the report by creating a RequestReportResponse object and executing the service RequestReport method using the object name you instantiated in step 1 and set
* string requestID = reportResponse.RequestReportResult.ReportRequestInfo.GeneratedReportId to hold the generated report ID.
* 3. Create a GetReportRequestListRequest object and populating the required information.
* 4. Request the status of the reports by creating a GetReportRequestListResponse object and executing the GetReportRequestList method using the object name you
* instantiated in step 3.
* 5. Execute scheduled checks for the status every 60 seconds using a while loop and a System.Threading.Thread.Sleep(60000) call. This is often within the main program.
* 6. Create a foreach loop by creating a ReportRequestInfo object and looping over the GetReportRequestListResult.ReportRequestInfo objects within the
* GetReportRequestListResponse object you instantiated in step 4.
* 7. Depending upon the status of the report complete any additional processing required. This is often within the main program
* 8. Once the report returns _DONE_ the report is ready for download. this is often within the main program
* 9. Request the report by creating a GetReportRequest object and set the report ID to match the GeneratedReportId object of the ReportRequestInfo object that was
* instantiated in step 6.
* 10. Set the Report object of the GetReportRequest object instantiated in step 9 to System.IO.File.Open("filename", System.IO.FileMode.OpenOrCreate, System.IO.FileAccess.ReadWrite) in
* order to download the report to disk in a streaming fashion. **NOTE** An error of "Uninitilized object reference" will be returned if this is not done!
* 11. Request the report by creating a GetReportResponse object and executing the service.GetReport method with the GetReportRequest object instantiated in step 9.
* 12. The report has been downloaded and processing can be passed off to other methods.
*
*/
我花了一些时间来试验这个问题,一旦你理解了每个类的内容,并且更具体地说 需要实例化它,API就可以了。
我认为您正在寻找的报告类型是:_GET_AMAZON_FULFILLED_SHIPMENTS_DATA_,因为它包含大部分信息。
我希望这些步骤有所帮助 - 如果我提前知道它,它会节省我一周的调试:)
答案 1 :(得分:0)
Temboo SDK RetrieveReport功能允许您在单个调用中执行下载单个报告(请求,轮询状态,检索已完成的报告数据)所涉及的所有步骤。 SDK可用于多种语言,包括Java,PHP,Python,Ruby,Node.js等,并且是开放式下载。看看:
https://www.temboo.com/library/Library/Amazon/Marketplace/Reports/RetrieveReport/
(完全披露:我为Temboo工作)