Neu Fehler in: JTL Exportformat Google Shopping v2.2.0, Bereich: Exportformat Google Review XML

Marco Stark

Aktives Mitglied
18. Oktober 2014
30
4
Hallo liebes Dev-Team, Hey Felix @FMoche

Bei der Einrichtung des Review Feeds im Google Merchant Center ist unser Feed mit mehreren Fehlern als "invalid" eingestuft, respektive abgelehnt worden. Bei der Überprüfung der ursächlichen "GoogleReviewXML.php" im Ordner "jtl_google_shopping/Exportformat/" ist mir ein Fehler aufgefallen. Weiterhin gibt es Verbesserungspotenzial im Bereich der XML-Knoten: title, content und product_name.

Fehler
Im Übergang/Zeilenumbruch von Zeile 22 zu 23 ist euch ein Leerzeichen zu viel rein gerutscht. Hinter dem = Zeichen in Zeile 22 sollte direkt der String aus Zeile 23 folgen. Aktuell befindet sich in Zeile 23 aber ein Leerzeichen am Anfang.
Original: https://gitlab.com/jtl-software/jtl...aster/Exportformat/GoogleReviewXML.php#L20-23

Lösung
Um den Code etwas lesbarer zu machen, war ich mal so frech und habe die Schema Namespace/Instance Namespace optimiert sowie den Leerzeichenfehler behoben:
Patch: https://gist.github.com/muemarco/19fce9ab05c0abee18b077b4a3234a22#file-googlereviewxml-php-L20-L23



Verbesserungspotenzial (XML-Knoten)
Die Inhalte der folgenden XML-Knoten werden mit "user generated content" befüllt. Hier ergibt sich die Herausforderung, dass speziell in den Knoten title und content von unseren Kunden oft Steuerzeichen in die Produktbewertungen getippelt werden. Das beliebteste ist "&". Das gleiche gilt für den Knoten product_name. Sofern das passiert, validiert der Feed nicht mehr.

Lösungsvorschlag
Das Problem lässt sich mittels CDATA-Abschnitten unkompliziert lösen. Die Datentypen der genannten XML-Knoten sind in der product_reviews.xsd mit "nonEmptyStringType" angegeben, validieren daher erfolgreich gegen die eingefügten CDATA-Abschnitte. Hier die geänderten Zeilen in der Datei "GoogleReviewXML.php":

title-Knoten, Zeile 261
Original: https://gitlab.com/jtl-software/jtl.../master/Exportformat/GoogleReviewXML.php#L261
Patch: https://gist.github.com/muemarco/19fce9ab05c0abee18b077b4a3234a22#file-googlereviewxml-php-L261

content-Knoten, Zeile 262
Original: https://gitlab.com/jtl-software/jtl.../master/Exportformat/GoogleReviewXML.php#L262
Patch: https://gist.github.com/muemarco/19fce9ab05c0abee18b077b4a3234a22#file-googlereviewxml-php-L262

product_name-Knoten, Zeile 308
Original: https://gitlab.com/jtl-software/jtl.../master/Exportformat/GoogleReviewXML.php#L308
Patch: https://gist.github.com/muemarco/19fce9ab05c0abee18b077b4a3234a22#file-googlereviewxml-php-L308

Alternative Lösung via sanitize-Funktion
Das Steuerzeichen & in str_replace hinzufügen und durch & ersetzen. Lösung:
Code:
    /**
     * @param string $content
     * @return string
     */
    private function sanitize(string $content): string
    {
        return \str_replace(['>', '<', '&'], ['&gt;', '&lt;', '&amp;'], \html_entity_decode($content));
    }

Falls ihr einen Feed für interne Tests benötigt (unverändertes Shoping Plugin Version 2.2.0), in dem alle nicht erlaubten Steuerzeichen in den Bewertungen verwendet wurden, könnt ihr euch gerne bei uns bedienen (ca. 7.700 Produktbewertungen / 6,4 MB). Den neuen Feed, resultierend aus der gepatchten GoogleReviewXML.php findet ihr an gewohnter Stelle. Upload im Merchant Center sowie XML Validierung waren erfolgreich.

Mit den besten Grüßen,
Marco
 
Zuletzt bearbeitet:

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.369
347
Halle (Saale)
Hallo @Marco Stark und vielen Dank für die Hinweise.
Das werde ich so gerne übernehmen, wobei das Sanitizen hier eher komplett unnötig erscheint, oder?
Wenn die Felder in CDATA gewrappt werden, kann ja auch genauso direkt ">", "<" und "&" genutzt werden.
Zumindest validiert das XML dann auch via
xmllint --schema http://www.google.com/shopping/reviews/schema/product/2.3/product_reviews.xsd --noout FILE.xml

Darauf, dass Google hier HTML-Entities erwarten würde, finde ich jedenfalls keinen Hinweis.
 
  • Gefällt mir
Reaktionen: Marco Stark

Marco Stark

Aktives Mitglied
18. Oktober 2014
30
4
Guten Morgen Felix,

der Upload des neuen/geänderten Feeds war erfolgreich. Goggle hat ihn vollständig verarbeitet.
 

FloX

Aktives Mitglied
12. Februar 2019
49
6
Aktuell meldet mein Exportformat Google Shopping Plugin laut PHP- Log folgenden Fehler:
Code:
Cron-Reschedule-Event-Fehler für Hook: kaliforms_delete_entries, Fehlercode: could_not_set, Fehlermeldung: Die Cron-Ereignisliste konnte nicht gespeichert werden., Daten: {"schedule":"daily","args":[],"interval":86400}

Das ganze tritt seit Shop-Update auf 5.2.2 & Umstellung auf aktuellere PHP Version 8.2 auf.
Wer kann helfen?
Ich habe bereits diverse Dinge probiert... Neuinstallation Plugin, Löschen und Neu erstellen der Cronjobs, löschen der Exportdateien usw.
Externes aufrufen des Cronjobs (bringt manchmal Fehler 500, manchmal nichts), usw.

Die Google Shopping XML-Datei wird mit 5 Produkten erstellt und bricht dann ab... laut Export > Exporte-Manager 0/808 Artikel exportiert.
memory_limit ist auf 512MB gestellt, Ausführungszeit 120s, also daran sollte es nicht scheitern.
PHP-Version ist die 8.2

Danke soweit...
MfG
 

NETZdinge.de

Sehr aktives Mitglied
7. April 2010
2.631
405
@FMoche : Noch ein weiteres Problem: Google sieht Bewertungen mit Unicode als Problem ("Unnötige Tags")... Kunden verwenden aber gerne mal Emojis, die dann unter anderem als Unicode Decimal Code enthalten sind...

Hier eine mögliche Funktion das zu entfernen:

PHP:
public function removeEmoji(string $string): string
{
    
        $string = iconv('UTF-8', 'ISO-8859-15//IGNORE', $string);
        $string = preg_replace('/\&#\d{4,};/', ' ', $string);
        return iconv('ISO-8859-15', 'UTF-8', $string);
}
 
Zuletzt bearbeitet:

NETZdinge.de

Sehr aktives Mitglied
7. April 2010
2.631
405
Weiterhin: es wäre imho sinnvoll, die Bewertungen von Vaterartikeln auf die Kindartikel (optional?) zu verteilen, da, wenn ich das richtig sehe, die Vaterartikel nicht in den Feed kommen... Diese Bewertungen gehen also verloren...

Vorschlag: in loadProduct() in der GoogleReviewXML.php hinter Zeile 122 einfügen:
PHP:
 $this->exportProducts[$product->kArtikel]->Bewertungen->oBewertung_arr = array_merge($this->exportProducts[$product->kArtikel]->Bewertungen->oBewertung_arr, $this->exportProducts[$product->kVaterArtikel]->Bewertungen->oBewertung_arr);
 

ChrisTS

Sehr aktives Mitglied
15. Oktober 2010
563
186
Bei mir weichen die Bewertungen bei google Shopping erheblich von den Bewertungen im Shop ab.
Muss ich hier als Subfeed im Merchant Center die googlereview.xml hocladen oder woher nimmt sich google hier die Bewertungen und wie werden Sie aktualisiert?
Gibt es eine Anleitung?
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Fehler beim öffnen von JTL Hub JTL-ShippingLabels - Fehler und Bugs 2
Neu Login-Fehler 403 bei app.shipping.jtl-cloud.com seit 17.07.2026 JTL-ShippingLabels - Fehler und Bugs 7
Neu JTL-Wawi Shopabgleich per E-Mail überwachen (Warnungen & Fehler) Onlineshop-Anbindung 1
Fehler beim Abgleich mit dem JTL-Shop JTL-Wawi 2.0 12
Problem mit Hermes Österreich Sendungsnummern – Fehler beim Amazon-Abgleich in JTL-Wawi JTL-Wawi 1.10 0
Neu Vorlage enthält ein Syntax Fehler eBay-Anbindung - Fehler und Bugs 1
Fehler bei Installation: Powershell V2 JTL-Wawi 2.0 8
Neu Fehler DHL Versenden 4.0 - DHL Authorisation Server. JTL-ShippingLabels - Fehler und Bugs 1
Neu Fehler nach Update auf Version 5.7.2 beim Bestellabschluß Betrieb / Pflege von JTL-Shop 7
Neu Fehler Datenbank auf neuem Server mit Wawi 2.0.6 JTL-Wawi - Fehler und Bugs 5
Neu Kein Datenaustausch – Timeout-Fehler Shopify-Connector 0
Neu DHL 4.0 API Fehler - Could not cast or convert from System.Int64 JTL-ShippingLabels - Fehler und Bugs 7
Neu Wawi 2.0.6 Fehler bei Druckerzuordnung und Nachdruck JTL-ShippingLabels - Fehler und Bugs 12
Neu Amazonpay Fehler nach Anbindung von Datev - bitte helfen Schnittstellen Import / Export 0
Neu Artikeldetails -> Bilder Plattform "Alle" Fehler oder kein Fehler JTL-Wawi - Fehler und Bugs 1
Lexware Office von Kunden meldet Arithmetik Fehler in Zugferd 2 XRechnung JTL-Wawi 1.11 9
Neu DHL Versenden 4.0 Fehler: Please enter a house number JTL-ShippingLabels - Fehler und Bugs 5
Neu 500er Fehler im Shop nach aktivierung des Nova Child Templates für JTL-Shop 3
Neu Rechte-Fehler im J10n Modul und Auswirkung auf base.mo.php in div. Plugins (Shop 5.7.1) JTL-Shop - Fehler und Bugs 0
Neu Shop zeigt keine Artikel mehr Fehler 500 Betrieb / Pflege von JTL-Shop 9
Neu Paypal 2.2.1; Fehler "Der Zahlungsanbieter hat eine Anmeldung gefordert" Plugins für JTL-Shop 2
Neu Keine Warenpost Int. Labels hsCode - Fehler? JTL-ShippingLabels - Fehler und Bugs 8
Fehler mit Zahlungsabgleich JTL-Wawi 1.11 11
Fehler beim Abgleich mit Amazon JTL-Wawi 2.0 10
Fehler nach Update auf Version 1.11.11 und 2.0.4 JTL-Wawi 2.0 7
Neu DHL 4.0 Versandexport Fehler JTL-ShippingLabels - Ideen, Lob und Kritik 15
Neu Seltsamer Fehler bei PayPal-Checkout: "Warenkorb enthielt Vaterartikel..." JTL-Shop - Fehler und Bugs 2
Neu PayPal Plugin wirft Fehler auf einmal wegen telefonnummer JTL-Shop - Fehler und Bugs 3
Neu Fehler DHL 4.0 Höherversicherung JTL-ShippingLabels - Fehler und Bugs 4
Neu DHL 4.0 Fehler "Please Enter Name 1" JTL-ShippingLabels - Fehler und Bugs 3
Neu Shop gesperrt - Webspace überschritten - Zusatzspace buchen bringt Fehler - Support fühlt sich nicht zuständig Betrieb / Pflege von JTL-Shop 7
Neu JTL-Shop 5.5 – „Rechnung nicht beilegen“ per Workflow anhand der Auftragsposition erkennen User helfen Usern - Fragen zu JTL-Wawi 0
Neu JTL-POS 2.0.0.3 - Barcodeschema lässt sich nicht speichern / alte sind weg JTL-POS - Fehler und Bugs 1
Neu JTL POS Crasht bei Druckerauswahl JTL-POS - Fehler und Bugs 6
JTL API 2.0 Verbinden - HILFE GESUCHT JTL-Wawi 2.0 4
Neu JTL-POS 2.0.0.2 Absturz nach Tagesabschluss JTL-POS - Fehler und Bugs 5
Neu JTL POS App Speicherverbrauch hoch, obwohl Datensicherung klein JTL-POS - Fehler und Bugs 7
Neu Seit heute früh kein Start von JTL-Wawi möglich - Datenbank nicht erreichbar User helfen Usern - Fragen zu JTL-Wawi 7
Neu Wie verarbeitet ihr B2B-Bestellungen aus E-Mail oder PDF in JTL-Wawi? Arbeitsabläufe in JTL-Wawi 16
Neu JTL-Wawi 2.0.6: eBay-Rahmenbedingungen bei bestehenden Angeboten/Vorlagen nicht mehr änderbar eBay-Anbindung - Fehler und Bugs 11
Neu Shipping 2.0 ist ein Grund für kleine Shops JTL zu verlassen bzw. gar nicht erst mit JTL anzufangen JTL-ShippingLabels - Ideen, Lob und Kritik 24
Neu guide.jtl-software.com seit mehreren Stunden nicht erreichbar JTL-Wawi - Fehler und Bugs 1
Neu Welche JTL-Shop Plugins oder Funktionen fehlen euch noch? – menuBuilder aktuell in Entwicklung Plugins für JTL-Shop 6
Neu Neuer JTL-Shop lässt sich nicht öffnen Installation / Updates von JTL-Shop 2
Neu Shopify-Connector auf neues JTL-Kundenkonto umstellen – App bleibt altem Konto zugeordnet Shopify-Connector 4
Neu 💚 Plugin: DZM Bonus Plus - das Treueprogramm für deinen JTL-Shop Plugins für JTL-Shop 8
Neu JTL-Ameise - Neue / aktualisierte Lieferadresse als Standard setzen User helfen Usern - Fragen zu JTL-Wawi 3
Neu JTL-Ameise - Neue / aktualisierte Lieferadresse als Standard setzen User helfen Usern 0
Neu Klarna (1.2.14) und JTL (5.7.2) nicht kompatibel Technische Fragen zu Plugins und Templates 0
Neu Amazon VCS-Lite – Fehlende Rechnungen nachträglich hochladen (JTL-Wawi 1.11.11)? Amazon-Anbindung - Fehler und Bugs 4

Ähnliche Themen