我已经实施了一个系统来下载亚马逊卖家的订单。系统的工作方式如下:
其中一些订单待定,如果是,我们将它们存储在我们的数据库中,并在下次检查它们是否可以下载。我们的下一个工作将在接下来的两个小时间隔内运行,要求所有订单从2:00到3:58。
此操作运行正常,但我们的客户开始报告他们的订单丢失。显然,时不时的订单会滑过众所周知的裂缝,我们不确定为什么。为了解决这个问题,我们设置了30分钟的重叠时间,这样每次下载订单时我们都会看到过去30分钟。除了下载冗余订单的代价之外,我们还要检查数据库以查看订单是否已经处理过,因此它会减慢速度。
在伤口擦盐,仍然没有解决问题!它不会经常发生,但平均每天有0-4个订单丢失。
答案 0 :(得分:3)
通过ListOrders获取订单似乎有很多陷阱。
以下是来自MWS support staff,
的回复请注意,订单仅填充在ListOrders数据中 当它已经清除了一些内部检查(主要是为了欺诈 命令)。这意味着订单之间会有延迟 已创建,当它出现在API查询中时(或在SellerCentral中, 对于这个问题)。这种延迟通常是几分钟,偶尔 半小时,而且很少是多个小时。
有些订单可以从待处理状态转移到未处理状态 不久。订单ID ---仅处于挂起状态7秒 您提出的所有要求都是在此订单开始之前 实际上可用于填充ListOrders的API。甚至是 订单---处于挂起状态17秒,你做了 之前的要求。收到电子邮件通知后,他们就会收到 不再处于待定状态。
由于您按创建日期选择订单,因此您可能很容易错过已创建的订单,但尚未通过待处理状态。
根据我的经验,获得所有订单的可靠方法是致电GetReportList
,询问尚未得到承认的所有_GET_ORDERS_DATA_
报告 - 然后确认您已经确认的报告。已存储在您的系统中。 "已确认"亚马逊系统中的标志使两个系统保持同步。这个解决方案的优点在于您不必担心时间戳。