Magento 1 – MageOne_PayPalCheckout Erweiterung funktioniert nicht – PayPal API scheinbar falsch angebunden?
MageOne bietet Patches für Magento 1 Shopsysteme an um weiterhin Magento 1 Shops zu betreiben. Dazu gibt es von MageOne auch eine Paypal Checkout Erweiterung. Diese ist nötig, da die normale Magento 1 Paypal-Erweiterung bereits so veraltet ist, dass diese nicht mehr mit Paypal funktioniert.
Besagte Erweiterung wollten wir bei 2 Onlineshops nutzen. Leider funktioniert die Erweiterung unserer Meinung nach schlicht nicht.

An mehren Stellen sind Fehler in der Erweiterung, die unserer Meinung nach einen Betrieb schlicht unmöglich machen. Wir stehen in Kontakt mit MageOne und hatten sie auf die Probleme hingewiesen, aber leider keine wirkliche Antwort erhalten.
Letztlich haben wir die Erweiterung nun selbst debugt und sind über 2 Fehler in der Erweiterung gestoßen. Hier die Fehler sowie es zu lösen ist.
MageOne Checkout Erweiterung - JS Fehler wird im Checkout geworfen
"Error: Expected an order id to be passed"
Sowie weiter wird folgender Fehler geworfen
" ERR (3):
PayPalHttp\HttpException: {"name":"INVALID_REQUEST","message":"Request is not well-formed, syntactically incorrect, or violates schema.","debug_id":"XXXX","details":[{"field":"/purchase_units/@reference_id=='default'/payee/email_address","value":"XXXX.","location":"body","issue":"INVALID_PARAMETER_SYNTAX","description":"The value of a field does not conform to the expected format."},{"field":"/purchase_units/@reference_id=='default'/shipping/type","value":"shipping","location":"body","issue":"INVALID_PARAMETER_VALUE","description":"The value of a field is invalid."}],"links":[{"href":"https://developer.paypal.com/docs/api/orders/v2/#error-INVALID_PARAMETER_VALUE","rel":"information_link","encType":"application/json"},{"href":"https://developer.paypal.com/docs/api/orders/v2/#error-INVALID_PARAMETER_SYNTAX","rel":"information_link","encType":"application/json"}]} in /var/www/share/staging/lib/PayPalHttp/HttpClient.php:222"
Die Ursache scheint eine falsch programmierte API-Anbindung an PayPal zu sein. Die API von Paypal erwartet dass die Währung übergeben wird. Das erfolgt aber nicht und führt dazu zu einem Fehler.
Die Lösung ist somit:
app/code/community/MageOne/PayPalCheckout/Model/Standard/Api.php Zeile 209

Hier muss neben der Adresse auch die Währung übergeben werden.
Fehler der im Bereich der saveOrder action geworfen wird
Ein weiterer Fehler wird im Bereich der saveOrder Aktion geworfen. Es ist nicht möglich die Order zu platzieren, weil die Paypal API mit einem error antwortet. Das ist, weil in der MageOne Erweiterung scheinbar ein falscher Parameter übertragen wird.
Es muss übertragen werden default'/shipping/type "SHIPPING" jedoch wird "shipping" übertragen, was PayPal API ablehnt.
Die Lösung ist dort in der Datei app/code/community/MageOne/PayPalCheckout/Model/Standard/Api.php Zeile 44

Aktuell warten wir noch auf eine Bestätigung von MageOne zu den Bugs. Wir vermuten/hoffen die Bugs werden gefixt und in die offizielle Erweiterung übernommen, sodass die Erweiterung für andere auch nutzbar ist.
Bei uns selbst funktioniert die Erweiterung nun ohne Probleme.
Update: 18.10.24
Wir haben Rückmeldung von MageOne. Die sind dabei eine neue Version vorzubereiten und sollte wohl in Kürze draußen sein. Dann vermutlich ohne die Bugs.
Sie möchten weitere Informationen zu Magento Onlineshops?
Mehr über Magento Hilfe und Betreuung finden Sie hier
Mehr über Magento Erweiterungen Programmierung sehen Sie hier
Weitere Information zur Betreuung von Magento Onlineshops durch KonVis finden Sie hier
Weitere Informationen zu Magento Onlineshops und den Kosten finden Sie hier