Blog

PrestaShop 1.7 auf 9 updaten: 12 Schritte, bevor Sie auf „Update“ klicken

Das PrestaShopAddons-Team 82 min read


Ein Shop-Update von PrestaShop 1.7 auf 9 ist nicht mit einem Klick erledigt. Zwischen diesen Versionen hat PrestaShop die minimale PHP-Version angehoben, Hunderte von Core-Klassen entfernt, das Standard-Theme ersetzt und den Aufbau des Back Office verändert. Das Update selbst läuft meist problemlos. Was kaputtgeht, ist alles drumherum: ein Zahlungsmodul, das eine Methode aufruft, die es nicht mehr gibt, ein Override, das stillschweigend nicht mehr greift, oder ein Theme-Template, das Variablen erwartet, die PrestaShop 9 nicht mehr übergibt.

Diese Checkliste beschreibt die Reihenfolge, in der wir einen Shop auf PrestaShop 9 vorbereiten. Das meiste davon passiert vor dem eigentlichen Update, auf einer Kopie des Shops, damit für Ihre Kunden nichts kaputtgeht.

Bevor Sie anfangen: Notieren Sie drei Dinge

Öffnen Sie das Back Office und gehen Sie zu Advanced Parameters → Information. Notieren Sie:

  1. Ihre PrestaShop-Version, zum Beispiel 1.7.8.11 oder 8.1.7.
  2. Ihre PHP-Version, auf derselben Seite unter den Serverinformationen.
  3. Wie viele Module nicht von PrestaShop stammen. Sehen Sie unter Modules → Module Manager nach, was Sie selbst installiert oder gekauft haben. Genau diese Module entscheiden, wie aufwendig das Update wird.

Ein Shop auf 1.7.8 mit PHP 7.4 und zwanzig Drittanbieter-Modulen ist ein Projekt. Ein Shop auf 8.2 mit PHP 8.1 und fünf gut gepflegten Modulen ist ein Nachmittag.

Die Checkliste in 12 Schritten

1. Vollständiges Backup und Staging-Kopie anlegen

Sichern Sie sowohl die Dateien als auch die Datenbank und stellen Sie sicher, dass Sie beides tatsächlich wiederherstellen können. Legen Sie dann eine Staging-Kopie des Shops auf einem gleichartigen Server an, idealerweise auf einer passwortgeschützten Subdomain. Jeder der folgenden Schritte findet zuerst auf dieser Kopie statt. Der Live-Shop wird erst ganz am Ende angefasst.

2. Server prüfen: PHP 8.1 oder neuer

PrestaShop 9 setzt PHP 8.1 oder neuer voraus (9.0 unterstützt PHP 8.1 bis 8.4, 9.1 zusätzlich 8.5; siehe die offiziellen Systemanforderungen). Das ist der häufigste Stolperstein für 1.7-Shops, denn PrestaShop 1.7 läuft überhaupt nicht unter PHP 8. Klären Sie mit Ihrem Hoster, welche PHP-Versionen angeboten werden und ob Sie die Version pro Website umstellen können. Prüfen Sie außerdem memory_limit (die offizielle Dokumentation empfiehlt mindestens 512M), max_execution_time und ob die Erweiterungen intl, zip, gd und mbstring aktiviert sind.

3. Den Weg planen: 1.7 → 8 → 9

Ein direktes Update von 1.7 auf 9 wird nicht unterstützt: Der offizielle Update Assistant bringt 1.7-Shops zunächst auf PrestaShop 8. Der weitere Weg ergibt sich aus den PHP-Anforderungen. PrestaShop 1.7.8 läuft mit PHP bis 7.4, PrestaShop 8 mit PHP 7.2.5 bis 8.1, und PrestaShop 9 beginnt bei PHP 8.1. Für einen 1.7-Shop ist der übliche sichere Weg daher:

  1. Update von 1.7.8 auf 8.2, noch unter PHP 7.4.
  2. Server auf PHP 8.1 umstellen, das sowohl PrestaShop 8 als auch 9 unterstützen, und testen.
  3. Update von 8.2 auf 9.

Jeder Schritt ändert nur eine Sache auf einmal. Wenn also etwas kaputtgeht, wissen Sie, woran es liegt. Ein Shop, der bereits auf PrestaShop 8 läuft, kann direkt auf 9 aktualisiert werden.

4. Alle Drittanbieter-Module auflisten und beim Anbieter nachfragen

Notieren Sie für jedes Modul, das nicht mit PrestaShop mitgeliefert wurde, die Version und prüfen Sie, ob der Entwickler eine Version für PrestaShop 9 veröffentlicht hat. Bei Modulen aus PrestaShop Addons stehen die unterstützten Versionen auf der Produktseite. Wurde ein Modul seit Jahren nicht aktualisiert, planen Sie mit einem von drei Ergebnissen: ersetzen, reparieren lassen oder entfernen. Ungenutzte Module sind der einfachste Gewinn: Deinstallieren Sie sie vor dem Update, dann können sie nichts kaputtmachen.

5. Module nach Code durchsuchen, den PrestaShop entfernt hat

Zwischen 1.7.8 und 9.0 hat PrestaShop 444 Core-Klassen, rund 1.800 Methoden, 23 Konstanten und 16 Hooks entfernt. Ein Modul, das eines davon verwendet, wirft entweder einen Fatal Error oder erledigt still und leise einen Teil seiner Aufgabe nicht mehr.

Sie müssen diese Stellen nicht von Hand suchen. Wir haben ein kostenloses Open-Source-Skript veröffentlicht, das ein Modul scannt, jede verwendete entfernte Klasse, Methode und jeden Hook mit Datei und Zeile auflistet und für die häufigsten Fälle den Ersatz vorschlägt. Beschrieben ist es in einem kostenlosen PrestaShop 9 Kompatibilitäts-Checker für Module. So prüfen Sie alle Module eines Shops auf einmal:

for m in /var/www/shop/modules/*/; do php ps9check.php "$m"; done

Ein typischer Fund sieht so aus:

ERROR    yourmodule.php:176
         Tools::displayPrice() was removed in PrestaShop 9.0.
         → Use $this->context->getCurrentLocale()->formatPrice($price, $this->context->currency->iso_code).

Ein kurzer Bericht bedeutet meist Korrekturen in einer Zeile. Ein langer bedeutet, dass das Modul echte Arbeit braucht – und das wissen Sie besser jetzt als nach dem Update.

6. Den deklarierten Kompatibilitätsbereich jedes Moduls prüfen

Jedes Modul gibt in ps_versions_compliancy an, welche PrestaShop-Versionen es unterstützt. Liegt der Höchstwert unter 9.0, zum Beispiel 'max' => '8.99.99', verweigert PrestaShop 9 die Installation. Auch das meldet der Scanner. Erhöhen Sie den Wert erst, wenn das Modul tatsächlich unter PrestaShop 9 getestet wurde – sonst verstecken Sie das Problem nur.

7. Overrides aufspüren

Overrides sind Dateien im Ordner /override, die Teile des PrestaShop-Cores ersetzen. Zu Zeiten von 1.6 und 1.7 waren sie weit verbreitet. Wenn PrestaShop die Methode entfernt oder umbenennt, die ein Override ersetzt, wird das Override einfach nie aufgerufen – ohne jede Fehlermeldung. Die Funktion, die es hinzugefügt hat, verschwindet schlicht.

Listen Sie alles in /override/classes und /override/controllers auf, finden Sie heraus, welches Modul oder welcher Entwickler die jeweilige Datei hinzugefügt hat, und prüfen Sie, ob die überschriebene Methode in PrestaShop 9 noch existiert. Ein schneller Test: Unter Advanced Parameters → Performance können Sie auf der Staging-Kopie alle Overrides deaktivieren und beobachten, was sich ändert.

8. Das Theme einplanen

PrestaShop 9 bringt ein neues Standard-Theme mit: Hummingbird. Das Update stellt Ihr Theme nicht automatisch um – ein Shop mit Classic oder einem gekauften Theme behält es. Das ist eine gute Nachricht, hat aber zwei Folgen:

  • Ein gekauftes Theme braucht eine eigene PrestaShop-9-Version vom Theme-Entwickler, genau wie ein Modul.
  • Module, die mit Classic funktionieren, können sich unter Hummingbird anders verhalten und umgekehrt. Hummingbird nutzt CSS Cascade Layers und ein eigenes Warenkorb-Modal, wodurch mehrere Teile unseres eigenen Warenkorb-Moduls nicht mehr funktionierten, bis wir sie behoben hatten. Die Details stehen in unserer Fallstudie zum Update eines Moduls auf PrestaShop 9.

Wenn Sie später auf Hummingbird umsteigen möchten, testen Sie die wichtigen Module jetzt darauf, wo Sie ohnehin gerade testen.

9. Mit Zahlungs- und Versandmodulen beginnen

Nicht jedes defekte Modul kostet gleich viel. Ein defektes Blog-Modul ist ärgerlich. Ein defektes Zahlungs- oder Versandmodul bedeutet: keine Bestellungen. Testen Sie diese zuerst und am gründlichsten, und lassen Sie sich vom Zahlungsanbieter bestätigen, dass sein Modul PrestaShop 9 offiziell unterstützt. Zahlungsmodule sind zudem am ehesten diejenigen, die für 1.7 geschrieben und danach nie wieder angefasst wurden.

10. Das Update auf der Staging-Kopie durchführen

Verwenden Sie das offizielle PrestaShop-Modul Update Assistant (früher 1-Click Upgrade; siehe die offizielle Update-Anleitung). Aktivieren Sie vor dem Start den Debug-Modus auf der Staging-Kopie (Advanced Parameters → Performance → Debug mode), damit Sie die tatsächlichen Fehler sehen statt einer leeren Seite. Notieren Sie jeden Fehler und jede Notice. Eine Notice, die im Debug-Modus harmlos wirkt, kann trotzdem das Symptom eines Moduls sein, das nur halb funktioniert.

11. Den Weg zum Umsatz durchgängig testen

Geben Sie nach dem Update echte Testbestellungen auf der Staging-Kopie auf:

  1. Eine Kategorie und eine Produktseite aufrufen.
  2. In den Warenkorb legen, die Menge ändern, ein Produkt entfernen.
  3. Einen Gutschein einlösen.
  4. Den Checkout als Gast und als angemeldeter Kunde durchlaufen.
  5. Mit jeder angebotenen Zahlungsart bezahlen (im Testmodus).
  6. Die Bestellbestätigung per E-Mail und die Bestellung im Back Office prüfen.

Tun Sie das am Desktop und auf dem Smartphone. Probleme mit Warenkorb und Checkout zeigen sich oft nur mobil, zum Beispiel ein fixierter Button, der an der falschen Stelle landet. Wenn Ihr Shop einen Slide-in- oder Popup-Warenkorb nutzt, testen Sie ihn gezielt: Der Warenkorb ist der Teil des Shops, der am engsten mit dem Theme verzahnt ist. Unser Block Sliding Cart ist ein Beispiel für ein Warenkorb-Modul, das bereits unter PrestaShop 1.7, 8 und 9 läuft, sowohl mit Classic als auch mit Hummingbird.

12. Go-live und Rückweg planen

Wenn die Staging-Kopie funktioniert, wiederholen Sie das Update im Live-Shop zu einer ruhigen Zeit und mit aktiviertem Wartungsmodus. Legen Sie vorab fest, was „es ist schiefgegangen“ bedeutet und wie Sie den Rollback durchführen: Das Wiederherstellen des Backups aus Schritt 1 muss Minuten dauern, nicht Stunden. Behalten Sie nach dem Go-live einige Tage lang das Fehlerprotokoll und die Anzahl der Bestellungen im Blick.

Was typischerweise kaputtgeht

Beim Update unseres eigenen Moduls brauchte die PHP-Seite weniger Änderungen als erwartet. Die meiste Zeit kosteten diese Probleme:

  • Entfernte Core-Methoden wie Tools::displayPrice(), die an sieben Stellen zu Fatal Errors führten.
  • Klassen, die in einen neuen Namespace verschoben wurden, etwa die Presenter für Warenkorb und Produkt.
  • Das neue Theme: eine Warenkorb-Liste, die sich wegen der CSS Layers in ein zweispaltiges Grid verwandelte, und eine Theme-Funktion, die einen Fehler warf, sobald sie das HTML des Moduls übergeben bekam.
  • Notices im Debug-Modus, die harmlos aussahen, aber bei strengeren Prüfungen Seiten zum Absturz brachten.

Die ganze Geschichte samt Code-Korrekturen finden Sie in Ein PrestaShop-Modul auf PrestaShop 9 aktualisieren: Was kaputtging und wie wir es behoben haben.

Die Checkliste im Überblick

# Schritt Erledigt
1 Vollständiges Backup (Dateien + Datenbank), Wiederherstellung getestet, Staging-Kopie angelegt ☐
2 Hoster bietet PHP 8.1+; Speicher und Erweiterungen geprüft ☐
3 Update-Pfad festgelegt (1.7 → 8.2 → PHP 8.1 → 9 oder 8 → 9) ☐
4 Drittanbieter-Module aufgelistet; ungenutzte entfernt ☐
5 Alle Module auf entfernten Code gescannt ☐
6 ps_versions_compliancy geprüft ☐
7 Overrides aufgelistet und geprüft ☐
8 Theme hat eine PrestaShop-9-Version; wichtige Module unter Hummingbird getestet ☐
9 Zahlungs- und Versandmodule für PrestaShop 9 bestätigt ☐
10 Update auf der Staging-Kopie mit aktiviertem Debug-Modus durchgeführt ☐
11 Testbestellungen am Desktop und mobil aufgegeben ☐
12 Zeitfenster für den Go-live und Rollback-Plan abgestimmt ☐

Häufig gestellte Fragen

Kann ich direkt von PrestaShop 1.7 auf 9 updaten?

Nein. Der offizielle Update Assistant aktualisiert 1.7-Shops zunächst auf PrestaShop 8. Außerdem läuft PrestaShop 1.7 nicht unter PHP 8, während PrestaShop 9 PHP 8.1 oder neuer voraussetzt. Der sichere Weg: von 1.7.8 auf 8.2 mit Ihrer aktuellen PHP-Version, dann Umstellung auf PHP 8.1, dann Update auf 9.

Funktionieren meine Module unter PrestaShop 9?

Module, die der Entwickler für PrestaShop 9 aktualisiert hat, ja. Ältere Module funktionieren nur, wenn sie keinen Code verwenden, den PrestaShop entfernt hat. Unser kostenloser Kompatibilitäts-Checker listet diesen Code für jedes Modul auf, sodass Sie es vor dem Update wissen.

Welche PHP-Version braucht PrestaShop 9?

PHP 8.1 oder neuer. Prüfen Sie, welche Versionen Ihr Hoster unterstützt, bevor Sie alles Weitere planen.

Muss ich auf das Hummingbird-Theme umsteigen?

Nein. Beim Update bleibt Ihr aktuelles Theme erhalten. Ein gekauftes Theme braucht eine PrestaShop-9-Version vom Entwickler, und wenn Sie später umsteigen möchten, lohnt es sich, wichtige Module unter Hummingbird zu testen.

Wie lange dauert ein PrestaShop 9 Update?

Das Update selbst dauert einige Minuten bis eine Stunde. Die Vorbereitung dauert länger: von einem Nachmittag für einen PrestaShop-8-Shop mit wenigen gepflegten Modulen bis zu mehreren Tagen für einen 1.7-Shop mit vielen alten Modulen und Overrides.

Wenn der Scan-Bericht lang ausfällt

Manche Shops arbeiten diese Liste an einem Tag ab. Andere stellen fest, dass die Hälfte ihrer Module Änderungen braucht. Wenn Sie diesen Teil lieber abgeben möchten: Genau das ist unsere Arbeit. Korrekturen von Modulen für PrestaShop 9. Wir finden die Ursache, beheben sie auf einer Kopie Ihres Shops und spielen erst dann live ein. Schicken Sie uns den Bericht des Scanners, und wir melden uns mit Rückfragen oder einem Angebot.