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

Marco Stark

Aktives Mitglied
18. Oktober 2014
19
2
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
345
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
19
2
Guten Morgen Felix,

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

FloX

Aktives Mitglied
12. Februar 2019
45
4
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.283
339
@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.283
339
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
508
145
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 500 mit NOVAchild 5.3.1 in JTL-Shop 5.33 Templates für JTL-Shop 2
Neu JTL FEHLER! - JTL sendet falschen ISO-Code - Nordirland Versand mit DHL nicht mehr möglich JTL-ShippingLabels - Fehler und Bugs 4
Fehler bei Update von 1.5.55.8 auf 1.7.15.6 ( Unbehandelte Ausnahme #7110FFD83C0136E0 vom Typ JTL.Database.SqlUpdater.UpdateException) JTL-Wawi 1.7 0
Neu Fehler bei Abgleich JTl Wawi mit JTL Shop User helfen Usern - Fragen zu JTL-Wawi 2
Neu Plugin: WooCommerce Wallet oder Gutscheine mit JTL nutzen - Fehler in der MwSt User helfen Usern - Fragen zu JTL-Wawi 0
Neu JTL Plugin fuer Wordpress Plugin wirft Error/success Fehler WooCommerce-Connector 2
Neu JTL Shop 5 Fehler beim Abglich JTL-Shop - Fehler und Bugs 9
Neu Dringende Hilfe benötigt: JTL-Connector Fehler beim Shopware-Abgleich Shopware-Connector 15
Neu Dringende Hilfe benötigt: JTL-Connector Fehler beim Shopify-Abgleich trotz "200 OK" - Hat jemand eine Lösung? Shopify-Connector 1
Fehler bei JTL-Update (1.5.55.8 -> 1.7.15.6) "Arithmetischer Überlauffehler beim Konvertieren von expression in den int-Datentyp." JTL-Wawi 1.7 10
Neu SQL DB läuft mit Fehler voll und crasht Server JTL-Shop - Fehler und Bugs 1
Google Search Console - Crawling-Fehler: Robots.txt nicht erreichbar Einrichtung JTL-Shop5 6
Neu Fehler mit Zugriff auf die Datenbank (Exec Direct). Installation von JTL-Wawi 4
Fehler bei Rechnungsdatenserverice 2.0 JTL-Wawi 1.9 2
Neu Amazon Lister 2.0 Fehler 90248 Textilbereich Amazon-Lister - Fehler und Bugs 0
Neu Fehler bei Coupons bei Wechsel von 4 auf 5 Betrieb / Pflege von JTL-Shop 0
Neu Log bei Workflow Fehler JTL-Workflows - Ideen, Lob und Kritik 0
Neu Fehlermeldung: Fehler bei der Kommunikation mit dem eA-Server eBay-Anbindung - Fehler und Bugs 3
Neu Workflow Fehler User helfen Usern - Fragen zu JTL-Wawi 1
Fehler von der Kaufland API: productData.attributes.battery_disposal_instruction: No matching model found in additionalProperties to validate battery_ kaufland.de - Anbindung (SCX) 0
ERROR - Hersteller-Senden-Fehler PrestaShop-Connector 0
Neu Fehler bei Connector Shopify-Connector 4
Neu Fehler beim Zugrif aus die Datenbank (Exec Direct) JTL-Wawi - Fehler und Bugs 1
Neu Fehler im Statistik Modul User helfen Usern - Fragen zu JTL-Wawi 0
Neu Wawi Fehler - Auftrag öffnet im Hintergrund JTL-Wawi - Fehler und Bugs 8
Wawi 1.9.5.0 Zahlungsmodul Paypal Fehler + Bankkonto Fehler JTL-Wawi 1.9 24
Neu Fehler: "Abgleich soll nicht durchgeführt werden" Amazon-Anbindung - Fehler und Bugs 3
Neu Fehler bei Export mit Versandart DHL / Die Sequenz enthält keine Elemente. JTL-ShippingLabels - Fehler und Bugs 3
Neu Amazon Abgleich Fehler: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt Amazon-Anbindung - Fehler und Bugs 18
Neu Fehler-Log - Error executing query SELECT SUM JTL-Shop - Fehler und Bugs 3
Neu Amazon Abgleich Fehler Gelöste Themen in diesem Bereich 6
Neu DPD Fehler Etikettendruck ("An existing connection was forcibly closed by the remote host") Gelöste Themen in diesem Bereich 3
Neu Nach Datenbank-Migration Fehler: keine Lieferzeit usw. JTL-Shop - Fehler und Bugs 1
Fehler bei Hochladen der Versanddaten Otto.de - Anbindung (SCX) 0
PayPal Zahlungsabgleich Ausgang Fehler 10001 Internal Error JTL-Wawi 1.8 0
Neu Amazon Abgleich Fehler - Hotfix für Version 1.5.55.8 funktioniert nicht JTL-Wawi - Fehler und Bugs 7
Fehler beim Update des Mandaten easybusiness JTL-Wawi 1.9 2
Neu Fehler bei Update: "SQLSTATE[42S01]: Base table or view already exists: 1050 Table 'emails' already exists" Installation / Updates von JTL-Shop 4
Neu Fehler mit der Synchronisation zwischen Shop und WaWi JTL-Shop - Fehler und Bugs 1
Neu Statt Preis nur Preis auf Anfrage bei B2B Fehler JTL-Shop - Fehler und Bugs 1
Fehler und Bugs nach Update von 4.06 auf 5.3.3 mit Lösungen Sammelthread Upgrade JTL-Shop4 auf JTL-Shop5 3
Neu Fehler "Die eingegebenen Variantenmerkmale stimmen nicht mit den Variantenmerkmalen der Varianten des Artikels überein." eBay-Anbindung - Fehler und Bugs 0
Neu Fehler beim Update des Shops - DB Migration Installation / Updates von JTL-Shop 1
Neu Fehler bei Abgleich von Kategorien zu Shopify Shopify-Connector 0
Neu JTL Shop 5.4 - Seite 1 verschachtelt sich bei klick auf Seite 1 JTL-Shop - Fehler und Bugs 0
Neu Wie erstelle ich Bundles mit JTL Wawi? User helfen Usern 0
Neu HubSpot Anbindung an JTL-Wawi (CRM) User helfen Usern 1
Neu JTL WMS / WaWi / Retouren - Kundeneigentum an Kunden schicken Arbeitsabläufe in JTL-Wawi 1
JTL Voucher wird nicht versendet Einrichtung / Updates von JTL-Vouchers 0
Neu JTL-Ameise -Export - Alle Lieferanten funktioniert nicht JTL-Ameise - Fehler und Bugs 1

Ähnliche Themen