亚马逊 MWS Feed API 更新订单状态的问题
Posted
技术标签:
【中文标题】亚马逊 MWS Feed API 更新订单状态的问题【英文标题】:Amazon MWS Feed API Issue in updating Order status 【发布时间】:2013-05-27 10:13:17 【问题描述】:我正在使用 amazon mws feed api 来更新我网站上的订单状态。 当我调用 SubmitFeed Api 时,它已成功提交。 但是,当我调用 GetFeedSubmissionResult 时,它返回给我一个错误说明:
<Result>
<MessageID>1</MessageID>
<ResultCode>Error</ResultCode>
<ResultMessageCode>25</ResultMessageCode>
<ResultDescription>We are unable to process the XML feed because one or more items are invalid. Please re-submit the feed.</ResultDescription>
</Result>
这是我的 xml:
<?xml version="1.0" encoding="UTF-8"?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
<Header>
<DocumentVersion>1.01</DocumentVersion>
<MerchantIdentifier>Maxvite Store</MerchantIdentifier>
</Header>
<MessageType>OrderFulfillment</MessageType>
<Message>
<MessageID>1</MessageID>
<OrderFulfillment>
<AmazonOrderID>123-5454545-5454545</AmazonOrderID>
<MerchantOrderID>123456</MerchantOrderID>
<MerchantFulfillmentID>123456</MerchantFulfillmentID>
<FulfillmentDate>12-02-2013T04:23:00Z</FulfillmentDate>
<FulfillmentData>
<CarrierCode>UPS</CarrierCode>
<ShippingMethod>UPS Ground</ShippingMethod>
<ShipperTrackingNumber>123456</ShipperTrackingNumber>
</FulfillmentData>
</OrderFulfillment>
</Message>
</AmazonEnvelope>
提前致谢
【问题讨论】:
【参考方案1】:您的提要未针对 XSD 架构进行验证。您不能在同一 Feed 中同时指定 AmazonOrderID 和 MerchantOrderID(在 OrderFulfillment.xsd 中指定为 choice)
此外,您的 FulfillmentDate 应为 2013-02-12T04:23:00+00:00
。
以下提要已相应更改并验证:
<?xml version="1.0" encoding="UTF-8"?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
<Header>
<DocumentVersion>1.01</DocumentVersion>
<MerchantIdentifier>Maxvite Store</MerchantIdentifier>
</Header>
<MessageType>OrderFulfillment</MessageType>
<Message>
<MessageID>1</MessageID>
<OrderFulfillment>
<AmazonOrderID>123-5454545-5454545</AmazonOrderID>
<MerchantFulfillmentID>123456</MerchantFulfillmentID>
<FulfillmentDate>2013-02-12T04:23:00+00:00</FulfillmentDate>
<FulfillmentData>
<CarrierCode>UPS</CarrierCode>
<ShippingMethod>UPS Ground</ShippingMethod>
<ShipperTrackingNumber>123456</ShipperTrackingNumber>
</FulfillmentData>
</OrderFulfillment>
</Message>
</AmazonEnvelope>
希望这会有所帮助。
【讨论】:
@Hazzit-- 谢谢,你很棒,,,它有效,,,实际上,我在看亚马逊文档中的一个例子,完整的日期格式是 2013-02-03T03: 03:00 -- 这就是我使用错误格式并出现错误的原因 -- 现在问题已解决,,,再次感谢 :) 在更新发货前是否应确认提要?【参考方案2】:您缺少<item>
部分:
<Item>
<MerchantOrderItemID>1234567</MerchantOrderItemID>
<MerchantFulfillmentItemID>1234567</MerchantFulfillmentItemID>
<Quantity>2</Quantity>
</Item>
虽然 XSD 显示 minOccurs="0"
,但它可能在某些情况下是必需的。 (我在一些提要中发现了一些奇怪的行为)
话虽如此,MWS forum 报告了一个影响多人的相同问题,所以它可能是 MWS 的事情......
【讨论】:
我已经用移除标签: 123456
它应该是“AmazonOrderID”或“MerchantOrderID”。
你可以不用罐子。
【讨论】:
【参考方案4】:我已将“CarrierCode”从“Fed Ex”更改为“FedEx” - 删除了空格,现在可以正常工作了。
【讨论】:
以上是关于亚马逊 MWS Feed API 更新订单状态的问题的主要内容,如果未能解决你的问题,请参考以下文章
亚马逊 MWS:OrderAdjustment Feed 问题、部分取消
如何通过“亚马逊MWS订单API”获取“非亚马逊”销售渠道订单