Integration des Payrexx Gateways in den Sylius Online Shop

Entwicklung, Technologie

Reto Kohli

16. Mai 2022

Integration des Payrexx Gateways in den Sylius Online Shop

Perfektion ist nicht dann erreicht, wenn man nichts mehr hinzufügen, sondern wenn man nichts mehr weglassen kann.

— Antoine de Saint-Exupéry

Erste Erfahrungen mit Sylius

Auch nach zahlreichen Projekten, mit verschiedenen Shop-Systemen und ihren jeweiligen individuellen Stärken und Schwächen, halten wir stets Ausschau nach neuen Lösungen.

Bereits 2020 tauchte Sylius an unserem Horizont auf. Wir entschieden uns, ein erstes Projekt damit umzusetzen. Denn obwohl das Produkt relativ neu war, verfügte es bereits damals über einen beeindruckenden Funktionsumfang und ebensolche Flexibilität.

Beides sind allerdings zweischneidige Schwerter; auf der anderen Seite erwarten den Entwickler eine steile Lernkurve und entsprechend viele Möglichkeiten, Fehler zu machen. Diese haben wir genutzt, daraus gelernt, und konnten den ersten Online Shop erfolgreich realisieren.

Mehr “Swissness”

Im Rahmen des zweiten Projekts folgten neue Anforderungen. Es sollte eine Online-Bezahlung integriert werden, die neben den bekannten Kreditkarten auch nationale Anbieter wie Twint erlaubt. Als international konzipiertes System bietet Sylius allerdings keine Anbindung an in der Schweiz etablierte Zahlsysteme – ausser natürlich für PayPal, das allerdings nicht die geforderten Zahlungsmittel unterstützt, und deswegen nicht in Frage kam.

Der Entscheid für den Zahlungsanbieter fiel rasch auf

Payrexx

. Dieser bietet sämtliche in der Schweiz gängigen Bezahlmethoden an, und noch eine ganze Menge mehr.

Nun mussten die beiden Systeme dazu gebracht werden, miteinander zu sprechen.
Auch hier bot uns Sylius die Möglichkeit, die gewünschte Funktionalität in den Bestellprozess einzubinden: Als Plugin für Payum.

/Pay(?:um|rexx)/

Payum

ist in jeder Installation von

Sylius

bereits enthalten, und bietet sozusagen einen Universaladapter für Zahlvorgänge an. Sein einziger und offensichtlicher Mangel ist die Dokumentation in mässigem Englisch – offensichtlich nicht die Muttersprache des Autors – die primär anhand von Beispielen ausgewählte Verwendungen aufzeigt, diese aber kaum erläutert.

Leider begegnet uns diese Situation bei Software öfter als uns lieb ist, und wir müssen manchmal mit “trial and error” arbeiten um herauszufinden, wie sie genau funktioniert. Die erste Umsetzung gestaltete sich entsprechend schwierig.

Über ein paar Zyklen von Nachlesen, Umschreiben und Probieren verbesserte sich nicht nur unser Verständnis, sondern auch der Code im Verhältnis dazu. Letzterer war am Ende noch halb so umfangreich wie zu Beginn.

Einstieg für Interessierte:

Facile est cum scimus

Rückblickend haben wir aus den beiden erwähnten Projekten nützliche Einsichten erhalten und vieles lernen können. Die folgende Auswahl ist nicht abschliessend, aber vollständig auf die meisten Projekte anwendbar:

Viel wichtiger als die innere Funktionsweise einer Software (Sylius, Payum) im Detail zu kennen, ist zu verstehen, wie sie im Grossen und Ganzen “tickt”, welche Konzepte also dahinter stecken. Abgesehen davon verlassen wir uns weitgehend darauf, dass sie genau das tut, was wir von ihr erwarten. Andernfalls würde ihre Verwendung keinen Sinn machen.

Eine weitere Erkenntnis ist, dass der Einsatz von Software in Form von mehreren einzelnen Komponenten wesentlich mehr konfigurieren erfordern kann als programmieren. Ein Plugin ist leicht geschrieben, aber nutzlos ohne das passende Gegenstück.

Einfacher als gedacht klappte die Verbindung über die Schnittstelle zum Payrexx API für die eigentliche Abwicklung der Bezahlungen; besonders deswegen, weil wir damit bereits Erfahrung mitgebracht haben.

Pic Credit: Calvin Sprague

Weiterer Lesestoff