【发布时间】:2016-03-23 01:24:18
【问题描述】:
我想要一份所有 SKU 的列表,这些 SKU 在从开始日期到结束日期之间有任何销售以及已售出的数量。我很困惑该怎么做——我应该为此使用亚马逊 MWS 订单 API 还是为此使用报告 API?有没有人有一个 c# 代码,它显示了如何在我的最后请求和下载报告以进行进一步处理,即将数据保存在数据库中。 任何帮助将非常感激。
附言我的数据量很大
更新:同时我已经编写了这段代码来获取报告类型并保存数据。现在错误是“访问路径被拒绝”
private const string targetRptType = "_GET_CONVERGED_FLAT_FILE_ORDER_REPORT_DATA_";
try
{
RequestReportRequest reportRequestRequest = new RequestReportRequest();
reportRequestRequest.Merchant = merchantId;
reportRequestRequest.ReportType = targetRptType;
reportRequestRequest.StartDate = DateTime.Now.AddDays(-3);
reportRequestRequest.EndDate = DateTime.Now;
MarketplaceWebServiceConfig config = new MarketplaceWebServiceConfig();
config.ServiceURL = "https://mws.amazonservices.com";
MarketplaceWebService.MarketplaceWebService service = new MarketplaceWebServiceClient(accessKeyId, secretAccessKey, applicationName, applicationVersion, config);
RequestReportResponse requestResponse = service.RequestReport(reportRequestRequest);
Thread.Sleep(15000);
Response.Write(requestResponse.RequestReportResult.ReportRequestInfo.ReportProcessingStatus);
GetReportRequestListRequest reportRequestListRequest = new GetReportRequestListRequest();
reportRequestListRequest.Merchant = merchantId;
List<ReportRequestInfo> myListzz = new List<ReportRequestInfo>();
GetReportRequestListResponse reportRequestListResponse = new GetReportRequestListResponse();
reportRequestListResponse = service.GetReportRequestList(reportRequestListRequest);
GetReportRequestListResult reportRequestListResult = new GetReportRequestListResult();
reportRequestListResult = reportRequestListResponse.GetReportRequestListResult;
myListzz = reportRequestListResult.ReportRequestInfo;
while (myListzz[0].ReportProcessingStatus.ToString() != "_DONE_")
{
Thread.Sleep(20000);
reportRequestListResponse = service.GetReportRequestList(reportRequestListRequest);
reportRequestListResult = reportRequestListResponse.GetReportRequestListResult;
myListzz = reportRequestListResult.ReportRequestInfo;
}
GetReportListRequest listRequest = new GetReportListRequest();
listRequest.Merchant = merchantId;
listRequest.ReportRequestIdList = new IdList();
listRequest.ReportRequestIdList.Id.Add(requestResponse.RequestReportResult.ReportRequestInfo.ReportRequestId);
GetReportListResponse listResponse = service.GetReportList(listRequest);
//MessageBox.Show(listResponse.GetReportListResult.ReportInfo.ToString());
GetReportListResult getReportListResult = listResponse.GetReportListResult;
GetReportRequest reportRequest = new GetReportRequest();
reportRequest.Merchant = merchantId;
reportRequest.WithReportId(getReportListResult.ReportInfo[0].ReportId);
GetReportResponse reportResponse = new GetReportResponse();
try
{
reportRequest.Report = File.Open("C:\\AmazonReport.csv", FileMode.OpenOrCreate, FileAccess.ReadWrite); // Getting error access to path denied
reportResponse = service.GetReport(reportRequest);
}
catch (MarketplaceWebServiceException exe)
{
Response.Write(exe);
}
StreamReader sr = new StreamReader(reportRequest.Report);
Response.Write(sr.ReadToEnd());
sr.Close();
}
catch (MarketplaceWebServiceException ex)
{
Response.Write(ex.Message);
}
谁能检查我的代码并建议这是否是从报告中获取数据的正确方法?我仍然无法保存报告。
更新 2
我已经更改了路径,现在错误消失了,文件已创建,但它只是一个 1 kb 的文件,有 2 条记录。看起来它没有获取完整数据。不确定代码是否正确。在暂存器上检查这个https://mws.amazonservices.com/scratchpad/index.html
【问题讨论】:
-
是的,文件在那里,我同意。最初我使用的是 Orders API,但这总是花费大量时间并给出限制错误并且没有多次获取数据。有人建议使用 Report API 来避免所有麻烦。我正在努力——他们确实有材料,但我一直在寻找如何用 C# 编写东西的代码示例。我没有找到容易理解和遵循的东西,所以只是想知道是否有人已经工作并有一些意见/建议。无论如何感谢您的链接。
-
我一直无法从 Report API 获取销售数据。我想从 GET_FLAT_FILE_ORDERS_DATA 获取数据并寻找一个简单的 c# 代码示例来解释如何获取数据.
-
问题还说“有没有人有一个 c# 代码来显示如何请求和下载报告”
-
我认为这个问题解释了需要什么 - “我想要一份所有 SKU 的列表,这些 SKU 在从开始日期到结束日期之间有任何销售以及销售数量。”
-
好的,这样更好 - 我已经投票决定重新提出这个问题!哪一行显示“访问路径被拒绝”错误?
标签: c# amazon-mws