简体   繁体   English

Amazon MWS履行提要-处理“一个或多个项目无效”后的错误响应

[英]Amazon MWS Fulfillment Feed - Error Response after processing “one or more items are invalid”

i submit a fulfillment feed and always get the same error (after requesting GetFeedSubmissionResult), my acknowledgement feed works and i can see the updated MerchantOrderId in Sellercentral. 我提交了一个履行提要,并且总是遇到相同的错误(请求GetFeedSubmissionResult之后),我的确认提要起作用了,并且我可以在Sellercentral中看到更新的MerchantOrderId。

The feed xml is: 提要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>

The Response is: 响应是:

<?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>

I tried with and without the <Item></Item> Part, i tried without <MerchantFulfillmentID> , i tried <MerchantOrderId> instead of <AmazonOrderId> ... I also tried <ShippingMethod>Standard</ShippingMethod> but i dont know if "Standard" is a valid value. 我尝试使用和不使用<Item></Item>部分,我尝试不使用<MerchantFulfillmentID> ,尝试使用<MerchantOrderId>而不是<AmazonOrderId> ...我也尝试过<ShippingMethod>Standard</ShippingMethod>但我不知道如果“标准”是有效值。

So can anyone point me in the right direction - what am i missing here? 所以谁能指出我的正确方向-我在这里想念的是什么? Is there any neccessary action before the fulfillment feed that i might have missed? 在实现提要之前是否需要采取任何必要的措施? Is the <MerchantFulfillmentID> just a value i can choose here or does it have to be set in some feed before? <MerchantFulfillmentID>只是我可以在此处选择的一个值,还是必须在之前的某些Feed中设置?

Thanks! 谢谢!

Ok i figured it out - the Date Format seems to be the problem. 好的,我知道了-日期格式似乎是问题所在。

In the documentation i only find "ISO8601" but in PHP DateTime::ISO8601 will give a string like 2015-12-23T09:03:18+0100 while amazon seems only to accept +01:00 instead of +0100 . 在文档中,我仅找到“ ISO8601”,但在PHP中, DateTime::ISO8601将给出类似于2015-12-23T09:03:18+0100的字符串,而亚马逊似乎只接受+01:00而不是+0100 In PHP this is DateTime::ATOM and not ISO8601 . 在PHP中,这是DateTime::ATOM而不是ISO8601

So in PHP Code you should use $date->format(DateTime::ATOM) in the feeds. 因此,在PHP代码中,您应该在Feed中使用$date->format(DateTime::ATOM)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM