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!