Migracja PrestaShop 1.7 do 8 i 9: co się psuje i jak się przygotować

4 min czytania Inne języki: EN FR

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ę

PrestaShopObsługiwane PHP
1.7.87.1 – 7.4
8.0 – 8.27.2.5 – 8.1 (zalecane 8.1)
9.08.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

ObszarCo się dziejeCo zrobić
Moduły pisane pod PHP 7Błąd krytyczny po przełączeniu PHP: usunięte funkcje, ostrzejsze typy, zmiany w obsłudze tablic i stringówNowa wersja od autora albo poprawka kodu; moduły bez wsparcia – wymiana
OverrideKlasy core dostały w 8.0 typy zwracane i zmienione sygnatury – stare nadpisanie powoduje błąd krytycznyPrzepisz na hooki albo dostosuj sygnatury; wiele overridów da się zastąpić hookiem
Klasa AttributeW 8.0 zmieniła nazwę na ProductAttributePopraw odwołania w modułach i overridach
MotywTooltipy jQuery UI, zmienione identyfikatory w kroku płatności, motyw potomny ładuje zasoby rodzicaTest checkoutu krok po kroku; w motywie potomnym sprawdź use_parent_assets
Strona produktu w paneluOd 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 integracjeHasł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 kurierzyStare wersje modułów nie działają albo mają niezałatane błędyNajnowsze 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 .php zwraca 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

  1. Kopia sklepu na subdomenie testowej (pliki i baza), z wyłączonymi e-mailami do klientów i płatnościami w trybie testowym.
  2. Porządki: odinstaluj nieużywane moduły i usuń zbędne overridy jeszcze na 1.7.
  3. Aktualizacja core modułem aktualizacji (1-Click Upgrade) albo czysta instalacja z migracją danych – przy mocno zmodyfikowanych sklepach to drugie bywa szybsze.
  4. Przełączenie PHP i poprawki modułów do zera błędów w logach (var/logs).
  5. 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.

Napisz do nas

Zastanawiasz się, czy w ogóle aktualizować? Przeczytaj: PrestaShop 1.7 w 2026 roku: zostać czy aktualizować.

Źródła

← Wszystkie artykuły

Formularz kontaktowy

Dotyczy modułu: zapytanie ogólne