Migracja PrestaShop 1.7 do 8 i 9: co się psuje i jak się przygotować
Aktualizacja PrestaShop 1.7 do 8 albo 9 rzadko psuje się w samym core. Psują się moduły, nadpisania (override), motyw i wszystko, co ktoś przez lata dopisał „na szybko”. Ten poradnik powstał na podstawie realnych migracji sklepów z 1.7 do 8.1: co sprawdzić przed startem, co zwykle przestaje działać, w jakiej kolejności to robić i co przetestować po migracji.
Wersje PHP wyznaczają drogę
| PrestaShop | Obsługiwane PHP |
|---|---|
| 1.7.8 | 7.1 – 7.4 |
| 8.0 – 8.2 | 7.2.5 – 8.1 (zalecane 8.1) |
| 9.0 | 8.1 – 8.4 |
Wniosek praktyczny: PrestaShop 1.7.8 nie ruszy na PHP 8, a PrestaShop 9 nie ruszy na PHP 7. Typowa kolejność to aktualizacja sklepu do 8.x na PHP 7.4, a dopiero potem przełączenie PHP na 8.1. Do wersji 9 przechodzi się z 8.x, już na PHP 8.1 lub nowszym – albo robi się czystą instalację 9 i przenosi dane. Każdy skok PHP to osobny test wszystkich modułów.
Zanim zaczniesz: inwentaryzacja
-- wersja sklepu zapisana w bazie
SELECT value FROM ps_configuration WHERE name = 'PS_VERSION_DB';
-- zainstalowane moduły z wersjami
SELECT name, version, active FROM ps_module ORDER BY active DESC, name;
# nadpisania klas i kontrolerów – każde trzeba sprawdzić
find override -name '*.php' ! -name 'index.php'
# funkcje usunięte w PHP 8 w modułach i motywie
grep -rlE 'create_function|each\(|mysql_query|\$[a-zA-Z_]+\{[0-9]' modules themes --include=*.php | head -50
Z wyników zrób tabelę: moduł, kto go dostarczył, czy jest wersja dla PrestaShop 8/9, czy jest jeszcze potrzebny. Na tym etapie zwykle okazuje się, że 20–30% modułów można po prostu usunąć.
Co się zwykle psuje
| Obszar | Co się dzieje | Co zrobić |
|---|---|---|
| Moduły pisane pod PHP 7 | Błąd krytyczny po przełączeniu PHP: usunięte funkcje, ostrzejsze typy, zmiany w obsłudze tablic i stringów | Nowa wersja od autora albo poprawka kodu; moduły bez wsparcia – wymiana |
| Override | Klasy core dostały w 8.0 typy zwracane i zmienione sygnatury – stare nadpisanie powoduje błąd krytyczny | Przepisz na hooki albo dostosuj sygnatury; wiele overridów da się zastąpić hookiem |
Klasa Attribute | W 8.0 zmieniła nazwę na ProductAttribute | Popraw odwołania w modułach i overridach |
| Motyw | Tooltipy jQuery UI, zmienione identyfikatory w kroku płatności, motyw potomny ładuje zasoby rodzica | Test checkoutu krok po kroku; w motywie potomnym sprawdź use_parent_assets |
| Strona produktu w panelu | Od 8.1 nowa strona produktu jest domyślna w nowych instalacjach; przy aktualizacji włącza się ją w „Nowe i eksperymentalne funkcje” | Sprawdź moduły, które dodają pola do edycji produktu, zanim ją włączysz |
| Importy i integracje | Hasła klientów i pracowników muszą być zapisane jako hash – skrypty, które wstawiały hasło jawne, przestają działać | Poprawka skryptów importu i integracji ERP |
| Bramki płatności i kurierzy | Stare wersje modułów nie działają albo mają niezałatane błędy | Najnowsze wersje od operatorów, test każdej metody |
Dodatkowo przy PrestaShop 9
- Symfony 6.4 i PHP 8.1+. Moduły z rozbudowaną częścią w panelu (kontrolery Symfony, formularze, Twig) wymagają wersji dla 9.
- Bezpośredni dostęp do plików
.phpzwraca błąd 403. Dotyczy to popularnych „skrótów” w modułach:ajax.php,cron.php, własnych feedów XML. Taki kod trzeba przenieść do kontrolerów modułu (ModuleFrontController,ModuleAdminController), a adresy cronów i feedów – zmienić u odbiorców. - Tryb debugowania włącza się tylko dla osoby z odpowiednim ciasteczkiem – łatwiej testować na produkcji, ale trzeba o tym wiedzieć.
- Hummingbird, nowy motyw, nie jest domyślny. Migracja do 9 nie wymaga zmiany motywu.
Kolejność, która działa
- Kopia sklepu na subdomenie testowej (pliki i baza), z wyłączonymi e-mailami do klientów i płatnościami w trybie testowym.
- Porządki: odinstaluj nieużywane moduły i usuń zbędne overridy jeszcze na 1.7.
- Aktualizacja core modułem aktualizacji (1-Click Upgrade) albo czysta instalacja z migracją danych – przy mocno zmodyfikowanych sklepach to drugie bywa szybsze.
- Przełączenie PHP i poprawki modułów do zera błędów w logach (
var/logs). - Testy według listy poniżej, potem zamrożenie zmian na produkcji i przeniesienie.
Lista testów po migracji
- Zamówienie każdą metodą płatności i dostawy, e-maile do klienta i do sklepu, faktury.
- Konto klienta: rejestracja, logowanie starym hasłem, reset hasła.
- Adresy URL produktów i kategorii bez zmian – albo przekierowania 301.
- Crony, feedy produktowe, integracje z ERP i kurierami.
- Indeks wyszukiwarki i regeneracja miniatur.
- Panel: edycja produktu z kombinacjami, zamówienia, zwroty.
Migracja PrestaShop bez przestoju
W CodeTheWeb przeprowadzamy migracje PrestaShop 1.7 → 8 i 9: inwentaryzacja modułów, przepisanie overridów na hooki, dostosowanie modułów własnych do PHP 8 i Symfony, testy na kopii i przeniesienie na produkcję. Opisz swój sklep – odpowiemy z planem i szacunkiem pracy.
Zastanawiasz się, czy w ogóle aktualizować? Przeczytaj: PrestaShop 1.7 w 2026 roku: zostać czy aktualizować.