I’ve been working on a plugin for Woocommerce that creates a xml product feed to be used with Google Merchant Center. The plugin is working fine and is delivering a XML-feed which to me looks perfect.
However I keep getting the following error in Google Merchant Center:
No Line XML formatting error
Our system encountered an error when processing your data feed.
According to Google this can be either of two problems:
- XML tag mismatch, OR;
- Invalid RSS/Atom document format
XML tag mismatch seems very unlikely since I build the XML feed using DOMdocument, which automatically opens and closes tags correctly. So it should be something about the document format.
It looks exactly the same as the examples offered by Google though. So I hit a wall.
Example feed:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0" xmlns:c="http://base.google.com/cns/1.0">
<product>
<g:id>187</g:id>
<g:gtin>A159WA-9DF</g:gtin>
<title><![CDATA[Casio A159WA-9DF Zilver-Goud]]></title>
<description><![CDATA[De Casio A159WA-9DF Zilver-Goud is een echte klassieker, het horloge was vanwege het strakke design in de jaren 70 erg populair. Ben je opzoek naar een horloge dat opvalt door zijn retro look? Dan is de Casio A159WA-9DF Zilver-Goud een geweldige keuze. Met een diameter van 36mm heeft het horloge een prettige grootte.]]></description>
<g:brand><![CDATA[Casio]]></g:brand>
<g:mpn>A159WA-9DF</g:mpn>
<g:price>33.54 EUR</g:price>
<link><![CDATA[https://temporis.nl/winkel/casio/casio-a159wa-9df-zilver-goud/]]></link>
<g:availability><![CDATA[in stock]]></g:availability>
<g:google_product_category>221</g:google_product_category>
<g:product_type><![CDATA[Chronograaf > Retro]]></g:product_type>
<g:image_link><![CDATA[https://temporis.nl/wp-content/uploads/2016/02/A159WA-9DF.jpg]]></g:image_link>
<g:condition>new</g:condition>
</product>
<product>
<g:id>180</g:id>
<g:gtin>A158WA-1</g:gtin>
<title><![CDATA[CASIO A158WA-1 Zilver]]></title>
<description><![CDATA[de Casio A158WA-1 heeft een opvallende retro horloge look die je meteen doet denken aan de jaren 70 en 80.]]></description>
<g:brand><![CDATA[Casio]]></g:brand>
<g:mpn>A158WA-1</g:mpn>
<g:price>39 EUR</g:price>
<link><![CDATA[https://temporis.nl/winkel/casio/casio-a158wa-1-zilver/]]></link>
<g:availability><![CDATA[in stock]]></g:availability>
<g:google_product_category>221</g:google_product_category>
<g:product_type><![CDATA[Chronograaf > Retro]]></g:product_type>
<g:image_link><![CDATA[https://temporis.nl/wp-content/uploads/2016/02/a158wa-1.jpg]]></g:image_link>
<g:condition>new</g:condition>
</product>
</rss>
Link to feed file with bogus information is here
Why am I getting a ‘No Line XML formatting error’?
I have wasted a whole afternoon regarding to the same issue, and I found the answer, actually, the example is not a correct one. Google updated the examples
https://support.google.com/merchants/answer/160589?hl=en
<channel>
and<item>
are used to replace<products>
and<product>
. Follow the correct example and you will pass.xD