PrestaShop 9 und unsere Module: was sich geändert hat und wie wir damit umgehen
PrestaShop 9 ist die größte Änderung für Modulcode seit 1.7. Der Core wechselt auf Symfony 6.4, setzt PHP 8.1 oder neuer voraus und entfernt APIs, Hooks und Bibliotheken, auf die ältere Module angewiesen waren. Hier lesen Sie, wie unsere Module damit umgehen und was Sie bei den übrigen Modulen Ihres Shops vor dem Upgrade prüfen sollten.
Wie unsere Module mit PrestaShop 9 umgehen
- Ein ZIP pro Modul. Eine eigene PrestaShop-9-Edition gibt es nicht. Wo sich die Plattform unterscheidet, prüft das Modul zur Laufzeit die Version des Shops und nutzt die passende API.
- Entfernte Core-Methoden laufen über ein gemeinsames Paket.
Tools::displayPrice()wurde in PrestaShop 9.0 entfernt. Unsere Module formatieren Preise überMyPrestaRocks\Compat\PriceFormatter, das in jeder Version die richtige API aufruft. Wenn PrestaShop eine weitere Methode entfernt, ändern wir den Wrapper einmal und liefern ihn an jedes Modul aus, das ihn nutzt. - Backoffice-Seiten nutzen die Modul-Admin-Controller von PrestaShop. Sie erweitern
ModuleAdminController, den PrestaShop 9 weiterhin über seinen Legacy-Controller-Wrapper ausführt. Keine davon erweitertFrameworkBundleAdminController, die Symfony-Basisklasse, die seit 9.0 als veraltet gilt und in einer späteren Hauptversion entfernt wird. - Jedes Modul gibt seine eigene Mindestversion an. Die meisten unserer Module geben PrestaShop 1.6 als Minimum an. Einige brauchen 1.7 oder neuer, darunter Search Revolution, Filter Revolution und Advanced SEO Sitemap Builder. Das Installationsprogramm von PrestaShop prüft dieses Minimum bei der Installation.
Was PrestaShop 9 für Module geändert hat
PrestaShop listet jede Änderung in seinen 9.0-Hinweisen für Modulentwickler auf. Diese hier legen Module am häufigsten lahm:
| Änderung | Was dadurch kaputtgeht |
|---|---|
| Guzzle, SwiftMailer und Tactician sind aus dem Core verschwunden, ersetzt durch Symfony HttpClient, Symfony Mailer und Symfony Messenger | Ein Modul, das sie genutzt hat, ohne eine eigene Kopie mitzuliefern, scheitert, sobald dieser Code läuft: oft bei einem Cronjob oder beim Versand einer E-Mail, nicht bei der Installation |
| Hooks der alten Produktseite und der alten Login-Seite wurden entfernt | Das Modul lässt sich installieren, aber die an diesen Hook gebundene Funktion läuft nie |
Tools::displayPrice() entfernt | Ein Fatal Error auf jeder Seite, die sie aufruft |
FrameworkBundleAdminController veraltet | Noch nichts. Darauf aufbauende Module funktionieren in 9.x weiterhin, müssen aber vor einer künftigen Hauptversion neu geschrieben werden |
Legacy-Admin-Seiten laufen jetzt in einem Symfony-Wrapper, der initFooter nicht aufruft | Code in diesem Schritt eines Legacy-Admin-Controllers läuft nicht mehr |
Themes sind eine eigene Frage. Classic nutzt weiterhin Bootstrap 4 alpha, Hummingbird dagegen Bootstrap 5, wie die Architekturübersicht von PrestaShop zeigt. Ein Modul, dessen Frontoffice-Templates Bootstrap-4-Markup verwenden, braucht eine optische Prüfung, wenn Sie auf Hummingbird wechseln. Das Backoffice behält sein eigenes UI-Kit, Ihre Theme-Wahl ändert daran also nichts.
Vor dem Upgrade
Aktualisieren Sie zuerst jedes Modul auf seine neueste Version. Führen Sie dann das Upgrade auf einer Staging-Kopie Ihres Shops durch, Dateien und Datenbank zusammen, mit dem Update Assistant von PrestaShop, und testen Sie die eigentliche Aufgabe jedes Moduls: eine Bestellung aufgeben, eine E-Mail senden, einen Import ausführen. Dass sich eine Einstellungsseite öffnet, sagt wenig aus. Das vollständige Vorgehen steht in unserem Leitfaden zur Migration auf PrestaShop 9.
Die aktuelle stabile Version ist PrestaShop 9.2, veröffentlicht am 30. September 2026. Wenn Sie jetzt ein Upgrade planen, ist das die Zielversion. Fragen zu einem bestimmten Modul und Ihrer PrestaShop-Version stellen Sie gern über die Kontaktseite.