Neu Fehler beim Erstellen des GoogleShopping.xml (Plugin)

deutschevita

Aktives Mitglied
7. November 2015
48
6
Hallo zusammen,

eventuell hat jemand von euch schonmal einen ähnlichen Fehler gehabt:

Wenn wir den Export des googleshopping.zip Files anstoßen (JTL-Plugin), wirft der Server einen Fehler:
Code:
PHP Fatal error:  Uncaught TypeError: mb_strtolower() expects parameter 1 to be string, null given in /var/www/html/plugins/jtl_google_shopping/Exportformat/GoogleShoppingXML.php:372\nStack trace:\n#0 /var/www/html/plugins/jtl_google_shopping/Exportformat/GoogleShoppingXML.php(372): mb_strtolower(NULL)\n#1 /var/www/html/plugins/jtl_google_shopping/Exportformat/GoogleShoppingXML.php(324): Plugin\\jtl_google_shopping\\Exportformat\\GoogleShoppingXML->loadProductAttributes(Object(Plugin\\jtl_google_shopping\\Exportformat\\Product))\n#2 /var/www/html/plugins/jtl_google_shopping/Exportformat/GoogleShoppingXML.php(812): Plugin\\jtl_google_shopping\\Exportformat\\GoogleShoppingXML->loadExportProduct(232)\n#3 /var/www/html/plugins/jtl_google_shopping/Exportformat/GoogleShoppingExport.php(257): Plugin\\jtl_google_shopping\\Exportformat\\GoogleShoppingXML->writeContent()\n#4 /var/www/html/plugins/jtl_google_shopping/Exportformat/GoogleShoppingExport.php(312): Plugin\\jtl_google_shopping\\Exportformat\\GoogleShoppingExport->doExport()\n#5 /var/www/html/plugin in /var/www/html/plugins/jtl_google_shopping/Exportformat/GoogleShoppingXML.php on line 372

Wir verwenden die neueste Version des Plugins. Hat jemand eine Idee, wo hier der Fehler liegt, abgesehen davon dass die Ausnahme nicht behandelt ist? Vor unserem Umstieg auf Shop5 lief das ganze problemlos. Das Plugin wurde frisch neu installiert.

LG!
 

FMoche

Moderator
Mitarbeiter
15. Dezember 2014
1.369
347
Halle (Saale)
Die kommende Version 2.1.0 sollte den Fehler beheben.
Er tritt allerdings nur dann auf, wenn die Daten fehlerhaft sind.
In diesem Fall genau dann, wenn ein Merkmal in einer Sprache geladen wird für die keine Übersetzung existiert.
Natürlich sollte da kein Fatal Error auftreten, aber das weist zumindest auf ein Problem hin.

Erstellt also bitte für alle Fremdsprachen Übersetzungen für alle Merkmale (und -werte).
 

nxso

Aktives Mitglied
18. November 2020
7
4
Hallo zusammen. Hatte gerade bei Version 2.1.1 den gleichen Fehler ein paar Zeilen weiter unten:
Code:
PHP Fatal error:  Uncaught TypeError: mb_strtolower() expects parameter 1 to be string, null given in /home/wsmidbtl/domains/domain.com/public_html/plugins/jtl_google_shopping/Exportformat/GoogleShoppingXML.php:438


Und als Hotfix die betreffende Funktion in der Datei zurzeit so abgeändert. Könnte man das auch in das nächste Update übernehmen?
* /plugins/jtl_google_shopping/Exportformat/GoogleShoppingXML.php:438
PHP:
    /**
     * @param Product $product
     */
    private function addVariations(Product $product): void {
        foreach ($product->Variationen as $variation) {
/* neu */
            if ($variation->cName != null) {
/* neu */
                if (\mb_strtolower($variation->cName) === 'farbe') {
                    foreach ($product->oVariationenNurKind_arr as $variationProduct) {
                        if (\mb_strtolower($variationProduct->cName) === 'farbe') {
                            $product->cFarbe = $variationProduct->Werte[0]->cName;
                        }
                    }
                } elseif (\mb_strtolower($variation->cName) === 'material') {
                    foreach ($product->oVariationenNurKind_arr as $variationProduct) {
                        if (\mb_strtolower($variationProduct->cName) === 'material') {
                            $product->cMaterial = $variationProduct->Werte[0]->cName;
                        }
                    }
                } elseif (\mb_strtolower($variation->cName) === 'muster') {
                    foreach ($product->oVariationenNurKind_arr as $variationProduct) {
                        if (\mb_strtolower($variationProduct->cName) === 'muster') {
                            $product->cMuster = $variationProduct->Werte[0]->cName;
                        }
                    }
                } elseif (\str_replace(['ö', 'ß'], ['oe', 'ss'], \mb_strtolower($variation->cName)) === 'groesse') {
                    foreach ($product->oVariationenNurKind_arr as $variationProduct) {
                        if (\str_replace(
                            ['ö', 'ß'],
                            ['oe', 'ss'],
                            \mb_strtolower($variationProduct->cName)
                        ) === 'groesse') {
                            $product->cGroesse = $variationProduct->Werte[0]->cName;
                        }
                    }
                }
/* neu */
            }
/* neu */
        }
    }
 

Ähnliche Themen