亚马逊MWS上调用ListOrders时缺少多个订单

时间:2013-12-13 09:56:27

标签: api amazon-web-services amazon amazon-mws

我使用cron作业从亚马逊帐户返回订单,并且在2~3周后工作正常。事实上,订单比平时多(由于圣诞节前期),看起来cron任务无法获得所有订单。

所以我决定以不同的方式安排它以避免错过一些订单。现在,cron作业每小时运行一次(而不是每两小时运行一次),我将new DateTime('-5 hours', new DateTimeZone('UTC'));应用于CreatedAfter请求的参数(之前,它被指定为-10小时)。

我不得不手动运行cron作业以返回在亚马逊界面上显示为“未发货”的缺失订单,并且客户信息已完全完成。

$start_date = new DateTime('2012-04-12 10:30:00', new DateTimeZone('UTC'));
$request->setCreatedAfter($start_date);

$end_date = new DateTime('2012-04-12 11:30:00', new DateTimeZone('UTC'));
$request->setCreatedBefore($end_date);

你能告诉我为什么还缺少一些订单吗?请询问您是否有更多信息或代码。

1 个答案:

答案 0 :(得分:5)

有几点想法:

  1. 默认情况下,ListOrders最多返回100个订单。如果订单超过100个,您可以使用ListOrdersByNextToken检索另一组订单。你有必要的时候调用ListOrdersByNextToken吗?
  2. API文档说“对于批量订单数据报告,您应该使用Reports API部分创建订单报告。” http://docs.developer.amazonservices.com/en_US/orders/index.html 您是否考虑过调度订单报告(使用Reports API)而不是轮询ListOrders?然后,您可以发回订单确认Feed以确认收到您收到的订单。