亚马逊 MWS 配送数据 - 处理后的错误响应 "one or more items are invalid"
Amazon MWS Fulfillment Feed - Error Response after processing "one or more items are invalid"
我提交了一个履行提要并且总是得到同样的错误(在请求 GetFeedSubmissionResult 之后),我的确认提要有效并且我可以在 Sellercentral 中看到更新的 MerchantOrderId。
提要 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>***</MerchantIdentifier>
</Header>
<MessageType>OrderFulfillment</MessageType>
<Message>
<MessageID>1</MessageID>
<OrderFulfillment>
<AmazonOrderID>302-7735***-***</AmazonOrderID>
<MerchantFulfillmentID>121625</MerchantFulfillmentID>
<FulfillmentDate>2015-12-23T09:03:18+0100</FulfillmentDate>
<FulfillmentData>
<CarrierCode>DHL</CarrierCode>
<ShipperTrackingNumber>1667***</ShipperTrackingNumber>
</FulfillmentData>
<Item>
<AmazonOrderItemCode>52269***</AmazonOrderItemCode>
<MerchantFulfillmentItemID>371064</MerchantFulfillmentItemID>
<Quantity>1</Quantity>
</Item>
</OrderFulfillment>
</Message>
</AmazonEnvelope>
响应是:
<?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.02</DocumentVersion>
<MerchantIdentifier>***</MerchantIdentifier>
</Header>
<MessageType>ProcessingReport</MessageType>
<Message>
<MessageID>1</MessageID>
<ProcessingReport>
<DocumentTransactionID>5004***</DocumentTransactionID>
<StatusCode>Complete</StatusCode>
<ProcessingSummary>
<MessagesProcessed>1</MessagesProcessed>
<MessagesSuccessful>0</MessagesSuccessful>
<MessagesWithError>1</MessagesWithError>
<MessagesWithWarning>0</MessagesWithWarning>
</ProcessingSummary>
<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>
</ProcessingReport>
</Message>
</AmazonEnvelope>
我试过有和没有 <Item></Item>
部分,我试过没有 <MerchantFulfillmentID>
,我试过 <MerchantOrderId>
而不是 <AmazonOrderId>
...
我也试过 <ShippingMethod>Standard</ShippingMethod>
但我不知道 "Standard" 是否是一个有效值。
那么谁能指出我正确的方向 - 我在这里缺少什么?
在履行提要之前是否有任何我可能错过的必要行动? <MerchantFulfillmentID>
只是我可以在这里选择的值还是必须在之前的某些提要中设置?
谢谢!
好的,我明白了 - 日期格式似乎是问题所在。
在文档中我只找到 "ISO8601" 但在 PHP 中 DateTime::ISO8601
会给出类似 2015-12-23T09:03:18+0100
的字符串,而亚马逊似乎只接受 +01:00
+0100
个。在 PHP 中,这是 DateTime::ATOM
而不是 ISO8601
。
所以在 PHP 代码中,您应该在提要中使用 $date->format(DateTime::ATOM)
。
我提交了一个履行提要并且总是得到同样的错误(在请求 GetFeedSubmissionResult 之后),我的确认提要有效并且我可以在 Sellercentral 中看到更新的 MerchantOrderId。
提要 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>***</MerchantIdentifier>
</Header>
<MessageType>OrderFulfillment</MessageType>
<Message>
<MessageID>1</MessageID>
<OrderFulfillment>
<AmazonOrderID>302-7735***-***</AmazonOrderID>
<MerchantFulfillmentID>121625</MerchantFulfillmentID>
<FulfillmentDate>2015-12-23T09:03:18+0100</FulfillmentDate>
<FulfillmentData>
<CarrierCode>DHL</CarrierCode>
<ShipperTrackingNumber>1667***</ShipperTrackingNumber>
</FulfillmentData>
<Item>
<AmazonOrderItemCode>52269***</AmazonOrderItemCode>
<MerchantFulfillmentItemID>371064</MerchantFulfillmentItemID>
<Quantity>1</Quantity>
</Item>
</OrderFulfillment>
</Message>
</AmazonEnvelope>
响应是:
<?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.02</DocumentVersion>
<MerchantIdentifier>***</MerchantIdentifier>
</Header>
<MessageType>ProcessingReport</MessageType>
<Message>
<MessageID>1</MessageID>
<ProcessingReport>
<DocumentTransactionID>5004***</DocumentTransactionID>
<StatusCode>Complete</StatusCode>
<ProcessingSummary>
<MessagesProcessed>1</MessagesProcessed>
<MessagesSuccessful>0</MessagesSuccessful>
<MessagesWithError>1</MessagesWithError>
<MessagesWithWarning>0</MessagesWithWarning>
</ProcessingSummary>
<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>
</ProcessingReport>
</Message>
</AmazonEnvelope>
我试过有和没有 <Item></Item>
部分,我试过没有 <MerchantFulfillmentID>
,我试过 <MerchantOrderId>
而不是 <AmazonOrderId>
...
我也试过 <ShippingMethod>Standard</ShippingMethod>
但我不知道 "Standard" 是否是一个有效值。
那么谁能指出我正确的方向 - 我在这里缺少什么?
在履行提要之前是否有任何我可能错过的必要行动? <MerchantFulfillmentID>
只是我可以在这里选择的值还是必须在之前的某些提要中设置?
谢谢!
好的,我明白了 - 日期格式似乎是问题所在。
在文档中我只找到 "ISO8601" 但在 PHP 中 DateTime::ISO8601
会给出类似 2015-12-23T09:03:18+0100
的字符串,而亚马逊似乎只接受 +01:00
+0100
个。在 PHP 中,这是 DateTime::ATOM
而不是 ISO8601
。
所以在 PHP 代码中,您应该在提要中使用 $date->format(DateTime::ATOM)
。