Paypal(4.2.3) - Abrufen von Details zu Bestellungen nicht möglich

Hallo Community,

nach dem Shopware-Update auf 5.7.14 mussten wir auch unseren PayPal-Plugin updaten. Beim automatischen Update kam es zu dem hier:

beschriebenem Problem. Wir haben die empfohlene Lösung angewendet.

Daraufhin haben wir das alte Paypla-Plugin über die Pluginverwaltung deinstalliert und gelöscht. Danach Paypal 4.2.3 installiert und eingerichtet.
So und nun zu Problem.

Das Plugin scheint an sich zu funktionieren. Was nicht funktioniert ist das Anzeigen der Daten zu Bestellungen. Also im Beireich:
Kunden->Zahlungen->Paypal->Bestellungen.

Wenn man dort eine Bestellung anklickt dann wird dort ein Ajax-Call zu „backend/PaypalUnified/paymentDetails“ abgesetzt. Dieser kommt (scheinbar) auch erfolgreich zurück, mit der Meldung:

{"success":true,"payment":{"id":"...

JavaScript-seitig kommt aber ein Fehler:

Dabei verschwindet die Meldung
image

nicht.

Ich weiß nicht ob das Problem nur „alte“ Bestellungen betrifft. Wir haben leider noch keine neuen.

Kennt jemand das Problem? Gibt es schon eine Lösung?

Shopware-Version: 5.7.14
PayPal-Version: 4.2.3

Vielen Dank im Voraus,

Nikolaj Ruppert

Hallo,

ich habe gerade mal ein paar Bestellungen mit der alten Version(3.2.0) des Plugins angelegt. Dann ein update durchgeführt und versucht das Problem nach zu stellen. Leider ohne erfolg… Sind das besondere Bestellungen? Ich habe Express und normale PayPal Bestellungen versucht.

Vllt. einmal den cache komplett leeren und die Seite neu laden. Evtl. auch den BrowserCache

aus irgend einem Grund ist bei ihnen Shopware.apps.PaypalUnified.controller.Main.updateWindowByOrder in dieser Methode die Order leer

Schauen Sie mal in die Json Response ob dort die „order“ leer ist

LG

Dennis Garding

Hallo Herr Garding,

vielen Dank für die schnelle Antwort.
Sie haben völlig recht - die Order ist im JSON immer „null“:

Serverseitig kommt die „order“ ja von PaymentDetailService:

Welche Gründe kann es denn geben dass die Order hier nicht befüllt wird?

Vielen Dank und Schöne Grüße,

Nikolaj Ruppert

Hallo @NikolajRuppert

wir haben dafür mal ein Ticket erstellt und schauen uns das noch mal genauer an: Shopware Issuetracker

Wenn noch weitere Information fehlen, gerne als Kommentar hinzufügen.

Viele Grüße aus Schöppingen
Michael Telgmann

Hallo Herr Telgmann,

Klasse! Vielen Dank.

Nikolaj Ruppert

Leider haben wir ein noch viel größeres Problem:

Produktbedingt müssen wir als Zahlungsabschluss „AUTHORIZE“ verwenden:
image

Das heißt wir müssen zunächst einen Höchstbetrag blockieren können und dann später (wenn bekannt) den tatsächlichen Betrag abbuchen.

Das funktioniert nicht mehr! Es wird sofort der Höchstbetrag abgebucht.

Aktuell ist es für uns ein absoluter Blocker!

Das Problem haben wir bei Version 4.2.3 festbestellt. Nach Update auf 4.3 verhält es sich leider genauso.

Soll ich das noch im Ticketsystem vervollständigen?

Danke und Grüß

Nikolaj Ruppert

Aufgrund der Dringlichkeit haben wir versucht das Problem selbst nachzuvollziehen.

Dabei sind wir im Plugin auf den folgenden Code in der Datei:
/custom/plugins/SwagPaymentPayPalUnified/Components/Services/PaymentBuilderService.php
gestoßen:

Ist diese Stelle so zu verstehen, dass die Plugineinstellung ignoriert wird und „SALE“ als Intent hardgecoded verwendet wird?

Wir haben die Stelle jetzt so erweitert:


und es scheint unser Problem zu lösen.

Dennoch, was wäre denn die korrekte Lösung? Warum greift die Einstellung „AUTHORIZE“ vom Backend nicht?

Danke im Voraus,
Nikolaj Ruppert

Hallo Nikolaj,

der PaymentBuilderService wird nur noch für PLUS Zahlungen genutzt werden. PLUS funktioniert per Definition von PayPal nur mit „Sales“.

Schau mal bitte in die Datenbank in die Tabelle s_core_paymentmeans, was ihr dort für die Zeile „SwagPaymentPayPalUnified“ als action eingetragen habt. Dies muss unbedingt PaypalUnifiedV2 sein.

Viele Grüße aus Schöppingen
Michael Telgmann

Hallo Michael,

also für den Eintrag „SwagPaymentPayPalUnified“ ist die Action „PaypalUnified“ eingetragen
Es gibt aber auch Einträge, bei denen die Achtion „PaypalUnifiedV2“ eingetragen ist. Das sind „SwagPaymentPayPalUnifiedPayLater“ und „SwagPaymentPayPalUnifiedSepa“.

Was würden Sie uns in dem Fall empfehlen? Sollen wir die Action beim „SwagPaymentPayPalUnified“-Eintrag händisch auf „PaypalUnifiedV2“ setzen?
Und falls das die Lösung wäre, wie sollen wir uns bei zukünftigen Updates verhalten? Müssen wir dann irgendwas beachten?

Vielen Dank und schöne Grüße,
Nikolaj

Hallo Nikolaj,

ja, bitte den Wert einmal händisch auf PaypalUnifiedV2. Das sollte eigentlich während eines der letztens Updates mit passiert sein. Kann natürlich immer mal vorkommen, dass ein Datenbank Query nicht korrekt ausgeführt wurde.

Das die Action noch auf PaypalUnified gestellt ist, ist auf jeden Fall der Grund, warum die veraltete Methode, die du oben nanntest, genutzt wird.

Viele Grüße aus Schöppingen
Michael Telgmann