Amazon Marketplace API ProductImage解析xml时导致意外的元素错误

时间:2014-03-22 21:47:58

标签: java xml xsd amazon-mws

我在java中使用amazon mws feed api,我在向亚马逊发送ProductImage Feed时遇到了一些问题。

这是我发送的xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ProductImage>
    <SKU>ABCDORD0001</SKU>
    <ImageType>Main</ImageType>
    <ImageLocation>http://vocearancio.ingdirect.it/wp-content/uploads/2013/01/bici-1.jpeg</ImageLocation>
</ProductImage>

这是Web服务响应(只是有趣的部分):

            <Result>
                <MessageID>1</MessageID>
                <ResultCode>Error</ResultCode>
                <ResultMessageCode>5000</ResultMessageCode>
                <ResultDescription>XML Parsing Error at Line 2, Column 15: Found unexpected element &apos;ProductImage&apos; while parsing the start of this &apos;AmazonEnvelope&apos; document. Children of this element will be ignored by the parser..</ResultDescription>
            </Result>

我不明白为什么他会忽略ProductImage标签,我在文档中跟随一个例子,它应该没问题。 我发送的Feed request.setFeedType("_POST_PRODUCT_IMAGE_DATA_"); 是因为我错过了信封部分吗?我认为java API做到了这一点,我对其他Feed没有任何问题(即使产品没有在sellecentral库存中显示也很难)。

这是我的POST_PRODUCT_DATA提要(我应该发送的第一个,而不是上面提到的那个)没有错误返回:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Product>
    <SKU>ABCDORD0001</SKU>
    <LaunchDate>2014-11-10T00:00:00.000+01:00</LaunchDate>
    <ReleaseDate>2014-11-10T00:00:00.000+01:00</ReleaseDate>
    <Condition>
        <ConditionType>New</ConditionType>
    </Condition>
    <DescriptionData>
        <Title>titolo_articolo</Title>
        <Brand>brand_item</Brand>
        <Description>descrizione_articolo_dett</Description>
        <ItemType>sotto_categoria</ItemType>
    </DescriptionData>
    <ProductData>
        <Sports></Sports>
    </ProductData>
</Product>

我希望有人可以提供帮助。

2 个答案:

答案 0 :(得分:0)

这听起来像是您使用_POST_PRODUCT_DATA_ SubmitFeed consant发送图片Feed。

相反,您需要使用_POST_PRODUCT_IMAGE_DATA_常量发送图像。有workflow here的描述。有关Feed所需内容的详细信息,请查看Selling on Amazon, Guide to XML。它在第47/48页上提供了示例Feed。

答案 1 :(得分:0)

问题是我错过了亚马逊信封部分,这里是我现在发送到网络服务的正确xml的一个例子:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AmazonEnvelope>
    <Header>
        <DocumentVersion>1.01</DocumentVersion>
        <MerchantIdentifier>A2UAUVMGTII0KR</MerchantIdentifier>
    </Header>
    <MessageType>Product</MessageType>
    <Message>
        <MessageID>1</MessageID>
        <OperationType>Update</OperationType>
        <Product>
            <SKU>ABCDORD0005</SKU>
            <StandardProductID>
                <Type>ISBN</Type>
                <Value>9788478888566</Value>
            </StandardProductID>
            <LaunchDate>2014-03-23T00:00:00.000+01:00</LaunchDate>
            <ReleaseDate>2014-03-23T00:00:00.000+01:00</ReleaseDate>
            <Condition>
                <ConditionType>New</ConditionType>
            </Condition>
            <DescriptionData>
                <Title>Harry Potter and the Philosopher's Stone</Title>
                <Brand>brand_item</Brand>
                <Description>Harry Potter and the Philosopher's Stone is the first novel in the Harry Potter series, written by J. K. Rowling.</Description>
                <Manufacturer>J. K. Rowling</Manufacturer>
                <ItemType>sotto_categoria</ItemType>
            </DescriptionData>
            <ProductData>
                <Sports></Sports>
            </ProductData>
        </Product>
    </Message>
</AmazonEnvelope>

这样工作得很好,没有返回错误,只需注意产品在卖家中心购物需要将近1分钟,并且需要10分钟才能处理并变为活动状态。 此外,元素StandardProductID非常重要,如果您没有提供正确的代码,则会收到错误的密钥错误。