Wer wie ich mal vor dem Problem steht, dass der Google Export Feed mit Fehlermeldung und ohne Feed Generierung abbricht, der Sucht sich nach dem Warum halb tot. In meinem Fall wurde zwar die Quelle des Fehlers angegeben (PCDATA invalid Char value 7\n“,„file“:„“,„line“:3223},), doch es brachte mir nichts, da ja wie erwähnt kein Feed erstellt wurde. Ich konnte den Fehler zwar eingrenzen, indem ich aus dem Template solange Abfragekriterien entfernte, bis ich schliesslich feststellen konnte, dass der Fehler irgendwo in der Produktebeschreibung sein musste. Doch bei über 500 Artikeln hätte ich jede einzelne Produktebeschreibung manuell durchsehen müssen. Es musste also ein anderer Weg hin. Der Feed wurde ja offenbar kurz generiert, weshalb auch auf die Line 3223 verwiesen wurde. Doch wenn dies nur im Speicher (RAM) geschieht, nützt mir das nicht viel. Also habe ich die für den Feed verantwortliche php Datei entsprechend angepasst, damit mir diese den fehlerhaften Feed abspeichert.
Und das geht so:
Öffne die Datei: /htdocs/vendor/shopware/core/Content/ProductExport/Validator/XmlValidator.php
Sucht:
if (!simplexml_load_string($productExportContent)) {
$errors->add(new XmlValidationError($productExportEntity->getId(), libxml_get_errors()));
}
und ergänzt gleich danach:
// Save the incomplete feed content
$logFilePath = __DIR__ . '/feed.log';
file_put_contents($logFilePath, $productExportContent . PHP_EOL);
Speichert die Datei und führt den Feed erneut aus, indem ihr die Link URL kopiert und im Browser einfach ausführt.
Neu wird nun unter: /htdocs/vendor/shopware/core/Content/ProductExport/Validator/
die Datei „feed.log“ angelegt. Öffnet diese Datei am besten mit einem Editor wie Notepad++ welcher die Zeilen nummeriert. Sucht nun die fehlerhafte Zeilennummer und korrigiert den Fehler im jeweiligen Produkt. Die Datei wird übrigens nur im Fehlerfall angelegt. In meinem Fall war es folgendes Zeichen, welches ich in einer Produktebeschreibung hatte:
Ich hoffe meine Erkenntnis hilft auch anderen weiter.