Hallo wertes Forum,
ich schlage mich seit ein paar Tagen mit einem seltsamen Bug des Paypal Plugins herum. Und zwar landen Kunden nach erfolgreicher Bestellung mittels Paypal-Express nicht auf der „Danke“-Seite, sondern stattdessen in einem leeren Warenkorb, was zu maximaler Verwirrung führt.
Die URL schaut soweit gut aus: „…/checkout/finish/sUniqueID/ll7G3pW9JiSKNhsquOiMVJbAsNWkmMQw“
Das Problem scheint zu sein, dass nicht die „finish“-Action ausgeführt wird, sondern stattdessen die „confirm“-Action des checkout-Controllers. Warum das so ist, konnte ich nicht rausfinden. Wenn ich in die confirm-Action eine Exception einbaue schaut das so aus:
Fatal error: Uncaught Exception: debug in /var/www/development/html/engine/Shopware/Controllers/Frontend/Checkout.php:158 Stack trace: #0 /var/www/development/html/engine/Library/Enlight/Controller/Action.php(159): Shopware_Controllers_Frontend_Checkout->confirmAction() #1 /var/www/development/html/engine/Library/Enlight/Controller/Dispatcher/Default.php(525): Enlight_Controller_Action->dispatch('confirmAction') #2 /var/www/development/html/engine/Library/Enlight/Controller/Front.php(223): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) #3 /var/www/development/html/engine/Shopware/Kernel.php(184): Enlight_Controller_Front->dispatch() #4 /var/www/development/html/vendor/symfony/http-kernel/HttpCache/HttpCache.php(491): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #5 /var/www/development/html/engine/Shopware/Components/HttpCache/AppCache.php(268): Symfony\Component\HttpKernel\HttpCache\Http in /var/www/development/html/engine/Shopware/Controllers/Frontend/Checkout.php on line 158
Meine Vermutung ist, dass das Paypal Plugin nach erfolgreicher Zahlungsabwicklung die Session bereinigt und danach zu dem normalen Shopware Workflow forwarded - der kapiert dann nicht, was das für ne Bestellung ist und tut so als wäre es ein komplett neuer Besucher. Allerdings sollte doch aber eigtl allein die URL dafür sorgen, dass das System versteht um welche Bestellung es geht?
Zusammengefasst: Bin verwirrt … warum führt der Controller ne andere Action aus, als per URL angefordert wird - es liegen soweit ich das sehen konnte auch keine „rewrites“ in einem PreDispatch Event vor.
Ich wäre sehr dankbar für Eure Hilfe!
PS: Das Problem tritt nur auf bei Paypal Express Zahlungen, nicht bei Paypal-Classic
PPS: Gibt es eventuell sonstige Schnellbesteller-Einstellungen die zu beachten sind, abseits der Paypal-Config?
PPPS: Shopware Version 5.3.0 und Paypal Plugin Version 3.4.11