ich stecke meist in Frontend-Plugins meine Zeit und Backend-Plugins sind für mich teilweise noch ein Rätsel.
Zum Beispiel das PayPal Plugin. Warum wird da so wahnsinnig viel Code verbaut? Der Datenaustausch mit der PayPal-Api dürfte doch maximal 2 Request beinhalten? Auftrag hin, Verifikation Code zurück, Bestellung abschliessen mit Verifikationscode hin und PayPal-Code zurück? Wozu braucht es dann soviel Code?
Ist das so zu verstehen, dass es nicht an PayPal liegt, sondern eher am SW-System welches es nicht so einfach macht ein Payment einzubinden? Bin für Aufklärung sehr dankbar.
für den einfachsten Case mag deine Annahme stimmen. Tatsächlich war der erste Prototyp des Plugins auch sehr schlank und hatte wirklich nur die Logik für deine zwei besagten Requests zu PayPal.
Nun ist es zum einen so, dass wir die PayPal API komplett in Objekte abstrahiert haben. Diesen Code findest du hier: https://github.com/shopwareLabs/SwagPayPal/tree/master/src/PayPal Dies haben wir gemacht, um die Daten, die wir zur API schicken und auch die Daten, die wir zurück bekommen objektorientiert verarbeiten können. Das erscheint einen vielleicht erstmal als viel Code. Es handelt sich aber hierbei in den meisten Fällen um “dumme” Datencontainer.
Ein zweiter Punkt ist, dass wir ja nicht nur den einfachen Redirect zu PayPal in unserem Plugin anbieten, sondern auch diverse andere Features, wie die Smart Payment Buttons, Express Checkout und PayPal Plus. Wird der Warenkork mitgeschickt, ja nein? Jede dieser Methoden braucht ein leicht anderes Handling. Durch diese verschiedenen Fälle im Ablauf ergibt sich eben auch mehr Code.
Ein dritter Punkt sind die Webhooks, die es so auch nicht für jeden Zahlungsanbieter gibt. Hier hat PayPal die Möglichkeit nachträglich Requests an den Shop zu schicken, um z.B. den Zahlungstatus zu ändern. Auch das muss natürlich irgendwie abgebildet werden.
Grundsätzlich ist es aber relativ einfach eine Zahlungsart in Shopware 6 einzubinden. Die vermeintliche Komplexität ergibt sich dann eben aus den Features, die ein Zahlungsanbieter in dem Plugin anbieten möchte und wie dessen API funktioniert.
Ich hoffe, ich konnte etwas Licht ins Dunkle bringen. Falls du noch weitere Fragen hast, gerne her damit
Vielen Dank für den Einblick. Das ist aufschlussreich für mich.
Ich weiss nicht wie es den anderen Shopwarianern geht, aber ich würde mich mega freuen wenn du [@Michael Telgmann](http://forum.shopware.com/profile/17553/Michael Telgmann „Michael Telgmann“) , Denis oder der Moritz öfter mal so ein, zwei Absätze schreibt warum man etwas umgesetzt hat wie es ist. Es muss keine Peter Lustig Folge werden, aber so ein paar klitze kleine Insights wären richtig nice.
Wir versuchen natürlich so oft und so viele Fragen, wie möglich zu beantworten, natürlich immer nur im Rahmen unserer zeitlichen Möglichkeiten. Dies können wir aber nicht immer zu jeder gestellten Fragen leisten Oft weiß ich aber auch einfach keine ausführliche Antwort, weil ich selbst nicht so im Thema drin bin. Das ist hier bei PayPal natürlich anders, weil ich das Plugin mit entwickle.
Wenn ihr zu irgendwas tiefergehende Hintergründe wissen wollt, schreibt uns weiterhin gerne an, wir schauen dann mal, in wie weit wir das dann beantworten können Ich werde dann auch mal die Kollegen anstupsen, die vielleicht zu anderen Themen mehr sagen können.