Amazon Marketplace API ProductImage Feed непредвиденная ошибка элемента при разборе xml
Я работаю с API Amazon MWS Feed в Java, и у меня возникли некоторые проблемы при отправке канала ProductImage в Amazon.
Это 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>
И это ответ веб-службы (только интересная часть):
<Result>
<MessageID>1</MessageID>
<ResultCode>Error</ResultCode>
<ResultMessageCode>5000</ResultMessageCode>
<ResultDescription>XML Parsing Error at Line 2, Column 15: Found unexpected element 'ProductImage' while parsing the start of this 'AmazonEnvelope' document. Children of this element will be ignored by the parser..</ResultDescription>
</Result>
Я не понимаю, почему он игнорирует тег ProductImage, я следую примеру в документации, и все должно быть в порядке. Я отправляю канал с request.setFeedType("_POST_PRODUCT_IMAGE_DATA_");
Это потому, что мне не хватает части конверта? Я думал, что это сделал java API, у меня не было проблем с другими каналами (даже несмотря на то, что продукт не отображается в инвентаре 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 ответа
Проблема заключалась в том, что мне не хватало части амазонка-конверта, вот пример правильного 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 действительно важен, если вы не предоставите правильный код, вы получите в ответ отсутствующую ключевую ошибку.
Это звучит так, как будто вы отправляете свой канал изображений с помощью _POST_PRODUCT_DATA_
SubmitFeant Conant.
Вместо этого вам нужно отправить свои изображения, используя _POST_PRODUCT_IMAGE_DATA_
постоянная. Здесь есть описание рабочего процесса. Обратитесь к разделу " Продажи на Amazon", "Руководство по XML", чтобы получить подробную информацию о требуемом содержимом канала. Это показывает пример подачи на страницах 47/48.