Ihr Shop wechselt zu PrestaShop 9, aber ein Modul wird von seinem Entwickler nicht mehr gepflegt. Sollten Sie es aktualisieren oder neu entwickeln lassen? Wir haben Dutzende Module aktualisiert, die für PrestaShop 1.5 bis 8 geschrieben wurden. In diesem Artikel erfahren Sie, worauf wir achten, machen einen schnellen Selbsttest und sehen, was die jeweilige Vorgehensweise für Ihren Shop bedeutet.
Warum alte Module unter PrestaShop 9 ausfallen
PrestaShop 9 ist ein größerer Schritt als die meisten Versionsupdates. Ein Modul, das unter 1.7 oder 8 einwandfrei funktionierte, kann die Installation stoppen, eine Seite beschädigen oder im schlimmsten Fall das gesamte Backoffice lahmlegen. Die Ursachen sind fast immer dieselben:
- Eine neuere PHP-Version. PrestaShop 9 benötigt PHP 8.1 oder neuer. Code, der für PHP 5 oder 7 geschrieben wurde, stößt auf strengere Typen, entfernte Funktionen und Warnungen, die zu Fehlern geworden sind.
- Ein neueres Symfony. PrestaShop 9 läuft auf Symfony 6.4 (PrestaShop 8 auf Symfony 4.4). Module, die Symfony-Dienste, -Formulare oder -Routen aus der alten Version verwenden, müssen angepasst werden.
- Entfernte Core-Methoden und -Konstanten. Funktionen, die jahrelang veraltet waren, wie
Tools::displayPrice()oderajaxDie(), sind verschwunden. Ein Modul, das diese weiterhin aufruft, schlägt fehl, sobald dieser Code ausgeführt wird. - Bibliotheken, die nicht mehr mitgeliefert werden. Ältere Module basieren manchmal auf Bibliotheken, die PrestaShop früher selbst enthielt, wie Guzzle 5 oder SwiftMailer. Unter PrestaShop 9 sind diese einfach nicht vorhanden.
- Overrides von geänderten Klassen. Ein Override ersetzt einen Teil einer Core-Klasse. Wenn sich diese Klasse ändert, kann der Override den Shop beschädigen oder eine Korrektur unbemerkt rückgängig machen.
Lesen Sie mehr über die Änderungen selbst in PrestaShop 9: Was ist neu und PrestaShop 9.2.
Ein Update reicht meistens aus, wenn
- das Modul heute auf PrestaShop 1.7 oder 8 installiert ist und funktioniert;
- die Probleme in entfernten Methoden und Konstanten bestehen (wie
Tools::displayPrice()oderajaxDie()); - das Modul seine eigene Logik in eigenen Dateien behält und nur wenige Overrides aufweist;
- seine Templates Smarty oder Twig auf normale Weise verwenden, sodass die Darstellungsschicht so bleiben kann, wie sie ist;
- Sie mit der Funktion des Moduls zufrieden sind und lediglich sicherstellen möchten, dass es weiterhin funktioniert.
Die meisten dieser Korrekturen sind mechanisch: Das Modul verhält sich exakt wie zuvor, lediglich der Code, den es aufruft, wird aktualisiert. Für PrestaShop 1.5 und 1.6 geschriebene Module lassen sich oft ebenfalls problemlos aktualisieren. Ihre Einstellungen und Daten bleiben an ihrem Platz, und das Modul sieht genauso aus und arbeitet wie zuvor.
Erwägen Sie eine Neuentwicklung, wenn
- das Modul viel HTML in PHP erstellt und dieses unescaped ausgibt: Dies abzusichern bedeutet, die gesamte Darstellungsschicht in Templates zu verlegen;
- es mehrere Core-Klassen überschreibt, deren Methoden sich in PrestaShop 9 geändert haben;
- es von einem anderen Modul abhängt, das nicht aktualisiert wurde (zum Beispiel ein Basis-Zahlungsmodul);
- es alte Bibliotheken bündelt, die PrestaShop 9 nicht mehr enthält, wie Guzzle 5 oder SwiftMailer;
- es sehr umfangreich ist und zudem den PrestaShop Validator bestehen muss;
- Sie ohnehin neue Funktionen wünschen und daher einen großen Teil des Codes ohnehin ändern würden.
Eine Neuentwicklung ist kein Versagen des alten Moduls. Manchmal ist der Code über die Jahre so gewachsen, dass eine saubere Aktualisierung mehr Arbeit erfordert als ein Start auf Basis eines klaren Designs.
Schneller Selbsttest
| Was Sie sehen | Deutet auf |
|---|---|
| Das Modul funktioniert unter PrestaShop 8 und fällt nur unter 9 aus | Update |
| Fehler erwähnen eine entfernte Methode oder Klasse | Update |
| Das Modul hat keine oder nur wenige Overrides | Update |
| Seiten des Moduls werden als HTML-Strings in PHP erstellt | Neuentwicklung oder größeres Update |
| Mehrere Overrides von Core-Klassen | Neuentwicklung oder größeres Update |
| Es benötigt ein anderes Modul ohne PrestaShop 9-Version | Dieses Modul zuerst prüfen |
| Sie möchten die Funktion des Moduls ändern | Neuentwicklung |
Dies sind Anzeichen, keine Regeln. Ein Modul kann ein Kriterium für eine Neuentwicklung erfüllen und dennoch problemlos aktualisiert werden. Aus diesem Grund testen wir, bevor wir einen Preis nennen.
Worauf Sie vor Ihrer Entscheidung achten sollten
- Fragen Sie zuerst den Entwickler. Prüfen Sie die Modulseite oder PrestaShop Addons: Möglicherweise gibt es bereits eine Version für PrestaShop 9.
- Listen Sie auf, was das Modul für Sie leistet. Welche Funktionen nutzen Sie tatsächlich? Eine Neuentwicklung kann Dinge weglassen, die niemand benötigt.
- Prüfen Sie die Abhängigkeiten. Benötigt das Modul ein anderes Modul, ein Theme-Feature oder einen externen Dienst?
- Betrachten Sie die Overrides. Im Backoffice unter Erweiterte Einstellungen > Informationen können Sie sehen, ob Overrides aktiv sind.
- Planen Sie dies gemeinsam mit dem Shop-Update. Wenn Ihr gesamter Shop auf PrestaShop 9 umzieht, testen Sie alle Module zusammen auf einer Kopie. Lesen Sie, wie wir dabei vorgehen, in unserem PrestaShop Upgrade-Service.
Was wir tun
Wenn Sie ein Modul hochladen, testen wir es zunächst in einem isolierten PrestaShop 9.2-Shop und unterbreiten Ihnen basierend darauf ein Angebot. Sollte ein Modul besser neu entwickelt werden, teilen wir Ihnen dies mit, bevor Sie bezahlen. Lassen Sie Ihr Modul aktualisieren oder bitten Sie uns um eine Überprüfung.