PayPal Express Button

Problemstellung in unserer Internetagentur: Wird mit dem aktuellen PayPal-Plugin ("SwagPaymentPayPalUnified", siehe https://store.shopware.com/swag828732772311f/paypal.html, dieses löst altes Plugin "PayPal Express" ab) der PayPal Express Checkout in einem Shopware-Onlineshop aktiviert, aber nicht angezeigt, kann das an der Lokalisierung des Shopware-Shops liegen. In unserem Falle meldete die Konsole den Javascript-Fehler "Error: Expected props.locale to be valid", die Lokalisierung ist also nicht gültig. In unserem Falle war diese Kasachisch (Sprachcode "kk_KZ"), da wir das Du-Sprachpaket ("Sprachpaket Deutsch Du - Shopware 5+ ready") von "Shop Uebersetzungen" verwenden. Der Code "kk-KZ" ist aber nicht vom PayPal-Plugin unterstützt. Was also tun?

 

Natürlich erst einmal an den Extension-Hersteller des Sprachpakets schreiben und um Hilfe bitten, da alle Anwender, die PayPal Express verwenden wollen, vor diesem Problem stehen - und eine Nachricht an Shopware selbst, die das PayPal-Plugin umgesetzt haben. Schön wäre natürlich, wenn das PayPal-Plugin für alle Sprachen, die es nicht unterstützt, "en_US" bzw. Englisch einer anderen Region als Fallback anbieten würde. Gibt es nicht, also hoffen wir auf das nächste Update und behelfen uns mit einer zusätzlichen IF-Schleife, die die deutsche Lokalisierung (z.B. "de_DE") übergibt, wenn der Code "kk_KZ" im Shop eingestellt ist. Dazu öffnen wir die Datei

 

/custom/plugins/SwagPaymentPayPalUnified/Subscriber/ExpressCheckout

 

und ändern die Funktion

 

getExpressCheckoutButtonLanguage()

 

in dieser Weise ab:

 

private function getExpressCheckoutButtonLanguage()

{

                $express_checkout_button_language = $this->dependencyProvider->getShop()->getLocale()->getLocale();

                if ($express_checkout_button_language == 'kk_KZ') {

                               return 'de_DE';

                } else {

                               return $express_checkout_button_language;

                }

                // return $this->dependencyProvider->getShop()->getLocale()->getLocale();

}

 

Also: Mache alles wie sonst auch, nur wenn Kasachisch, dann Deutsch. Damit wird der PayPal Express Button auch in unserem Shopware-Onlineshop (Onlineshopversion in einem aktuellen Projekt unserer Internetagentur: Shopware Professional 5.5.6) angezeigt. Nach dem nächsten Update dann hoffentlich ohne manuelle Anpassungen!