Aktualisieren oder neu entwickeln: Was tun mit einem alten Modul unter PrestaShop 9?

Ihr Shop wechselt zu PrestaShop 9, aber ein Modul wird nicht mehr gepflegt. Wann ein Upgrade des bestehenden Codes ausreicht und wann eine Neuentwicklung die bessere Wahl ist.

Von Presta Support Veröffentlicht Geprüft

Eine alte Modulkarte, die sich in zwei Wege teilt: eine limettengrüne Upgrade-Karte mit Pfeil nach oben und eine gestrichelte Karte mit neuen Bausteinen, neben einem PrestaShop-9-Badge

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() oder ajaxDie(), 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() oder ajaxDie());
  • 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

  1. Fragen Sie zuerst den Entwickler. Prüfen Sie die Modulseite oder PrestaShop Addons: Möglicherweise gibt es bereits eine Version für PrestaShop 9.
  2. 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.
  3. Prüfen Sie die Abhängigkeiten. Benötigt das Modul ein anderes Modul, ein Theme-Feature oder einen externen Dienst?
  4. Betrachten Sie die Overrides. Im Backoffice unter Erweiterte Einstellungen > Informationen können Sie sehen, ob Overrides aktiv sind.
  5. 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.

  • PrestaShop 9
  • Module
  • Upgrades