
Mit PR #99 hat das SwagPayPal-Plugin eines seiner bedeutendsten internen Refactorings durchlaufen. Dieses Release geht weit über eine reine Modernisierung des Codes hinaus – es schafft ein langfristig tragfähiges Fundament für zukünftige Entwicklungen. Im Mittelpunkt stehen eine vereinheitlichte Zahlungslogik, die Entfernung veralteter Komponenten und die konsequente Ausrichtung auf die neue Zahlungsarchitektur von Shopware 6.7.
Für Entwicklerinnen und Entwickler, die individuelle Integrationen bauen, Erweiterungen entwickeln und warten oder zum Shopware-Ökosystem beitragen, bringt dieses Update spürbare Verbesserungen in Les-, Test- und Erweiterbarkeit.
Ein neues Fundament für Zahlungsflüsse
Im Zentrum des Refactorings steht die Ablösung der veralteten PayPalHandler.php. Diese Klasse war bisher für die Abwicklung der PayPal-Zahlungen zuständig, entwickelte sich über die Zeit jedoch zu einem Engpass für Wartbarkeit undOptimierungen. Ihr monolithischer Aufbau, die enge Kopplung an andere Komponenten und die duplizierte Logik erschwerten nicht nur Erweiterungen, sondern auch das Testen.
Mit der Einführung von AbstractPaymentMethodHandler.php wird eine neue Basisklasse geschaffen, die alle gängigen Zahlungsarten bedienen kann. Sie bündelt zentrale Funktionen wie pay(), finalize() und executeOrder() an einem Ort. Darüber hinaus wurden das Token-Handling sowie die Injektion von Services, wie dem VaultTokenService, standardisiert.
Spezifische Handler – darunter der überarbeitete PayPalPaymentHandler.php – erben nun von dieser abstrakten Klasse und fokussieren sich nur noch auf zahlungsspezifisches Verhalten. Das reduziert Redundanz und stellt sicher, dass alle Zahlungsflüsse einem konsistenten und nachvollziehbaren Muster folgen. Für Entwicklerinnen und Entwickler bedeutet das: weniger Komplexität, mehr Vorhersehbarkeit, und ein deutlich robusteres Fundament für Erweiterungen.
Aufräumen: Abschied vom Altbestand
Das Refactoring umfasst auch das Entfernen zahlreicher veralteter Klassen, darunter alte V1-Payment-Builder, Patch-Klassen und Test-Mocks. PayPal hat seinen PayPal PLUS-Service zugunsten der PayPal Commerce Platform eingestellt, die mehr Zahlungsoptionen bietet, darunter Wallets wie Apple Pay und Google Pay. Dadurch wurde der zugehörige PayPal PLUS-Code überflüssig.
Diese Bereinigung ist mehr als nur kosmetisch. Durch den Abbau technischer Schulden wird die Erweiterung leistungsstärker und stabiler, während gleichzeitig die Komplexität für Mitwirkende verringert wird. Entwickler, die sich mit der Erweiterung beschäftigen oder daran mitarbeiten, profitieren von weniger Reibungspunkten und klareren Abgrenzungen der Verantwortlichkeiten.
Bereit für Shopware 6.7
Ein zentrales Ziel dieses Refactorings ist die vollständige Ausrichtung auf die Zahlungsarchitektur von Shopware 6.7. Die vorher genutzten Interfaces wie AsynchronousPaymentHandlerInterface und SynchronousPaymentHandlerInterface wurden abgelöst und durch eine moderne, abstrakte Handler-Struktur ersetzt, die Verantwortlichkeiten klar trennt.
Die Methoden pay() und finalize() sind nun intern strukturiert, während executeOrder() als klar definierter Einstiegspunkt für individuelle Anpassungen dient. Dies vereinfacht nicht nur die Erweiterung, sondern verbessert auch die Unterstützung für wiederkehrende Zahlungen, Token Vaulting und Wallet-Integrationen wie Apple Pay oder Google Pay.
Für alle, die auf Basis von Shopware Zahlungsarten entwickeln oder integrieren, bedeutet das eine bessere Kompatibilität mit der Plattform – und deutlich nachvollziehbarere Abläufe im Code.
Für alle, die SwagPayPal erweitert haben
Wenn man eigene Zahlungs-Handler auf Basis von PayPalHandler.php oder anderer inzwischen entfernter Komponenten wie der V1-Builder aufgebaut hat, ist eine Migration erforderlich. Die neue Basisklasse AbstractPaymentMethodHandler.php stellt künftig die Grundlage für alle individuellen Erweiterungen dar.
Zwar bedeutet das in einigen Fällen einen Umstellungsaufwand, doch die Vorteile überwiegen: Weniger Boilerplate, klarere Strukturen und eine deutlich bessere Zukunftssicherheit im Zusammenspiel mit der Shopware-Plattform.
Was das für die Community bedeutet
Dieses Refactoring ist mehr als nur ein technisches Update. Es ist ein wichtiger Schritt hin zu einer modernen, wartbaren und langfristig erweiterbaren Zahlungsintegration. Es erleichtert nicht nur die tägliche Arbeit von Entwicklern, sondern fördert auch die aktive Mitgestaltung des Plugins – sei es durch eigene Erweiterungen, Pull Requests oder Diskussionen rund um die künftige Entwicklung.
Das SwagPayPal-Plugin ist damit bestens vorbereitet für kommende Anforderungen – sei es durch neue Zahlungsmethoden, regulatorische Anpassungen oder tiefere Integrationen in Drittsysteme. Wir laden die Community ein, sich weiterhin einzubringen, Feedback zu geben und gemeinsam die Zukunft des Commerce zu gestalten.
Vielen Dank fürs Lesen – und wie immer: Happy contributing!