亚马逊订单确认Feed

时间:2013-08-15 14:00:25

标签: amazon-mws

我正在使用订单确认Feed来取消亚马逊的订单。以下是我用来取消亚马逊订单的xml Feed格式。

我已成功将此Feed提交给MWS,但每次检查Feed提交结果时,它总是会出现此错误

  

'您提交的XML在Amazon Envelope XML级别上格式不正确   在(或附近)第1栏第485'栏。

我根据此Selling on Amazon: Guide to XML创建了xml格式。

<?xml version="1.0"?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">

<Header>
    <DocumentVersion>1.01</DocumentVersion>
    <MerchantIdentifier>M_xxxxxx_108291953</MerchantIdentifier>
</Header>

<MessageType>OrderAcknowledgment</MessageType>
<Message>
    <MessageID>1</MessageID>
    <OrderAcknowledgement>
        <AmazonOrderID>123-1234567-1234567</AmazonOrderID>
        <StatusCode>Failure</StatusCode>
        <CancelReason>BuyerCanceled</CancelReason>
    </OrderAcknowledgment>
</Message>
</AmazonEnvelope>

任何人都可以帮我解决我在xml格式中缺少的内容吗?

1 个答案:

答案 0 :(得分:6)

您的XML代码存在两个问题:

  1. 亚马逊使用“OrderAcknowledgement”,而不是“OrderAcknowledgement”。虽然该选择可能是debatable,但XSD不会为不同的拼写留下任何空间。 (这适用于MessageType以及开始和结束XML标记,您的拼写仅适用于开始标记)
  2. CancelReason仅在<Item>个子结构中有效。
  3. 以下XML验证:

    <?xml version="1.0"?> 
    <AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
        <Header>
        <DocumentVersion>1.01</DocumentVersion>
        <MerchantIdentifier>M_xxxxxx_108291953</MerchantIdentifier>
    </Header>
    <MessageType>OrderAcknowledgement</MessageType>
    <Message>
        <MessageID>1</MessageID>
        <OrderAcknowledgement>
            <AmazonOrderID>123-1234567-1234567</AmazonOrderID>
            <StatusCode>Failure</StatusCode>
            <Item>
                <AmazonOrderItemCode>12345678901234</AmazonOrderItemCode>
                <CancelReason>BuyerCanceled</CancelReason>
            </Item>
            <Item>          
                <AmazonOrderItemCode>12345678901235</AmazonOrderItemCode>
                <CancelReason>BuyerCanceled</CancelReason>
            </Item>
            <Item>
                <AmazonOrderItemCode>12345678901237</AmazonOrderItemCode>
                <CancelReason>BuyerCanceled</CancelReason>
            </Item>
        </OrderAcknowledgement>
    </Message>
    </AmazonEnvelope>