亚马逊MWS Fulfillment Feed - 处理后的错误响应"一个或多个项目无效"

时间:2015-12-23 13:38:54

标签: php xml amazon-web-services amazon

我提交履行供稿并始终得到相同的错误(请求GetFeedSubmissionResult后),我的确认Feed有效,我可以在Sellercentral中看到更新的MerchantOrderId。

Feed 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>,但我不知道是否&#34;标准&#34;是一个有效的值。

所以有人能指出我正确的方向 - 我在这里缺少什么? 在我可能错过的履行供稿之前是否有任何必要的行动? <MerchantFulfillmentID>只是我可以选择的值,还是必须先在某个Feed中设置?

谢谢!

1 个答案:

答案 0 :(得分:0)

好的,我想通了 - 日期格式似乎是个问题。

在文档中我只找到&#34; ISO8601&#34;但在PHP中,DateTime::ISO8601会提供类似2015-12-23T09:03:18+0100的字符串,而亚马逊似乎只接受+01:00而不是+0100。在PHP中,这是DateTime::ATOM而不是ISO8601

因此,在PHP代码中,您应该在Feed中使用$date->format(DateTime::ATOM)