PrestaShop 9: co się zmieniło i czy warto aktualizować
Nowe Admin API, motyw Hummingbird, PHP 8.1 do 8.4 i duże porządki w kodzie. Co z modułów pisanych pod 1.7 przestaje działać, kiedy aktualizować, a kiedy lepiej postawić sklep od nowa.
Zrobimy to za Ciebie. Opisz problem, a odpowiemy w ciągu 24 godzin roboczych.
Opisz projektPrestaShop 9.0.0 ukazał się 10 czerwca 2025 i jest pierwszą od lat wersją, która zmienia fundamenty, a nie tylko dokłada funkcje. Nowe API panelu, nowy motyw, wyższe wymagania PHP i usunięcie dużej ilości starego kodu. Dla właściciela sklepu sprowadza się to do jednego pytania: aktualizować teraz, poczekać, czy postawić sklep od nowa i przenieść dane. Odpowiadamy na podstawie aktualizacji, które zrobiliśmy od premiery.
W skrócie
- PrestaShop 9 wymaga PHP od 8.1 do 8.4, Symfony 6.4 LTS i Composera 2. Bez PHP 8.1 lub nowszego na serwerze aktualizacja nie ruszy.
- Trzy zmiany, które odczujesz: Admin API oparte na API Platform, nowy motyw Hummingbird i porządki w kodzie, po których część starych modułów przestaje działać.
- Z wersji 8.x aktualizujesz modułem Update Assistant (dawniej 1-Click Upgrade). Z 1.7 też się da, ale najpierw trzeba przejrzeć każdy moduł i każde nadpisanie rdzenia.
- Sklep z nadpisanym rdzeniem, dziesiątkami porzuconych modułów i szablonem sprzed lat zwykle taniej postawić od nowa i przenieść dane niż aktualizować.
Co dokładnie weszło w wersji 9
Premiera 9.0.0 miała miejsce 10 czerwca 2025. Dla sklepu liczą się trzy rzeczy: nowy sposób łączenia się z panelem, nowy motyw i inne wymagania serwera.
Admin API oparte na API Platform
Do tej pory integracje z panelem PrestaShop pisało się na starym webservice, który powstał jeszcze w czasach wersji 1.4 i od lat był rozwijany tylko w minimalnym stopniu. Wersja 9 dodaje Admin API zbudowane na API Platform, czyli na standardowym narzędziu ze świata Symfony. Integracje z ERP, OMS czy BaseLinkerem będą dzięki temu stabilniejsze, a każda aplikacja dostaje własne uprawnienia zamiast jednego klucza do wszystkiego. Stare webservice nadal działa, więc obecne integracje nie przestaną działać z dnia na dzień, ale nowe warto pisać już na Admin API.
Motyw Hummingbird
Hummingbird to nowy motyw napisany od zera, lżejszy i oparty na współczesnym stosie front-endowym. Dotychczasowy motyw Classic jest nadal dostępny, więc nikt nie zmusza Cię do zmiany wyglądu sklepu przy aktualizacji. Jeśli jednak Twój szablon pochodzi z 2018 roku i był wielokrotnie łatany, Hummingbird jest dobrym punktem wyjścia do nowego projektu. Trzeba tylko pamiętać, że moduły z własnym front-endem, np. filtry, menu czy slidery, były pisane pod Classic i nie zawsze działają poprawnie na nowym motywie bez poprawek.
Porządki w kodzie
Zespół PrestaShop usunął dużo przestarzałego kodu, który był oznaczony do usunięcia jeszcze w wersjach 1.7 i 8. Kolejne części panelu przeniesiono na Symfony 6.4. Dobra wiadomość dla bezpieczeństwa sklepu, zła dla modułów, które korzystały z tych starych fragmentów. Tu pojawia się większość problemów przy aktualizacji.
Wymagania serwera: PHP 8.1 do 8.4 i Symfony 6.4
Zanim zaczniesz cokolwiek planować, sprawdź w panelu hostingu, jaką wersję PHP możesz włączyć. PrestaShop 9 wymaga PHP od 8.1 do 8.4. Jeśli hosting oferuje najwyżej 8.0 lub 7.4, aktualizacja jest niemożliwa bez zmiany serwera, i to jest pierwszy koszt, który trzeba policzyć.
| Wersja PrestaShop | PHP | Stan wsparcia |
|---|---|---|
| 1.6 | PHP 5 i wczesne 7 | bez wsparcia od czerwca 2019 |
| 1.7.8 | PHP 7 | tylko poprawki bezpieczeństwa, utrzymanie zakończone wraz z wydaniem 9.0 |
| 8.x | PHP 7.2 do 8.x zależnie od wydania | wspierany, bez ogłoszonej daty końca |
| 9.0 | PHP 8.1 do 8.4 | zalecany cel aktualizacji, Symfony 6.4 LTS, Composer 2 |
Composer 2 ma znaczenie głównie dla programistów i przy instalacji z repozytorium. Przy gotowej paczce lub Update Assistant nie instalujesz go sam, ale hosting powinien dawać dostęp do linii komend, bo bez tego trudno o sprawny rollback.
Co z modułów pisanych pod 1.7 przestaje działać
Nie ma jednej listy niezgodnych modułów, bo wszystko zależy od tego, jak moduł został napisany. Są jednak powtarzalne wzorce, które widzimy przy każdej aktualizacji.
- Moduły korzystające z funkcji usuniętych w PHP 8. Kod pisany pod PHP 7 często używa konstrukcji, które w PHP 8.1 i wyżej zgłaszają błąd albo ostrzeżenie. Sklep działa, ale dziennik błędów rośnie o setki wpisów dziennie.
- Moduły oparte na klasach, które zniknęły w porządkach. Jeśli autor sięgał do wewnętrznych klas panelu zamiast do oficjalnych hooków, po aktualizacji moduł nie uruchomi się wcale.
- Moduły z nadpisaniami (override) klas rdzenia. Nadpisanie kopiuje fragment kodu PrestaShop i go zmienia. Gdy rdzeń się zmienia, nadpisanie zostaje stare i psuje np. liczenie koszyka albo zapis zamówienia.
- Moduły front-endowe przy przejściu na Hummingbird. Szablony Smarty i skrypty pisane pod Classic potrafią wyświetlać się krzywo albo wcale.
- Moduły porzucone przez autora. Jeśli ostatnia aktualizacja była trzy lata temu, nie licz na wersję zgodną z 9. Trzeba szukać zamiennika.
Jak to sprawdzić przed aktualizacją
Wyeksportuj listę modułów z panelu z wersjami i datami ostatniej aktualizacji. Dla każdego sprawdź u autora deklarowaną zgodność z 9.0. Potem zajrzyj do katalogu override w sklepie: każdy plik w nim to potencjalny problem. Na koniec sprawdź, czy szablon jest motywem potomnym Classic, czy luźną kopią z własnymi zmianami w setkach plików. Z tej listy powstaje realny kosztorys aktualizacji.
Ważne
Oznaczenie „zgodny z PrestaShop 8” nie oznacza zgodności z 9. Porządki w kodzie między 8 a 9 były większe niż między 1.7 a 8. Pytaj autora modułu wprost o wersję 9.0 i o PHP 8.4.
Kiedy aktualizować
Aktualizacja ma sens, gdy sklep jest w dobrym stanie technicznym i chcesz ten stan utrzymać. W praktyce oznacza to kilka warunków spełnionych jednocześnie.
- Sklep działa na 8.x, a moduły pochodzą od autorów, którzy nadal je rozwijają.
- Szablon jest motywem potomnym Classic albo własnym motywem utrzymywanym przez wykonawcę.
- Katalog override jest pusty albo zawiera kilka plików, które da się przepisać na hooki.
- Hosting daje PHP 8.1 lub wyżej i możliwość zrobienia pełnej kopii sklepu.
- Masz lub możesz mieć środowisko testowe, na którym aktualizację sprawdzisz przed startem.
Jeśli sklep stoi na 1.7.8, nadal działa i sprzedaje, ale od wydania 9.0 nie dostaje już nawet poprawek bezpieczeństwa. To nie jest powód do paniki w tym tygodniu, ale jest powód, żeby zaplanować przejście na miesiące, a nie na lata. Opisaliśmy to osobno w artykule o końcu wsparcia 1.6 i 1.7.
Kiedy stawiać sklep od nowa
Druga droga to czysta instalacja PrestaShop 9 i przeniesienie danych: produktów, klientów, zamówień, adresów URL i przekierowań. Brzmi drożej, ale często wychodzi taniej, bo nie płacisz za naprawianie rzeczy, których i tak nie chcesz.
- Sklep jest na 1.6 albo wczesnym 1.7 i nie było dla niego ścieżki aktualizacji bez ręcznych poprawek.
- Rdzeń był zmieniany bezpośrednio w plikach systemu, a nikt nie wie już, gdzie i po co.
- Masz kilkadziesiąt modułów, z czego połowy nikt nie używa, a część nie ma już autora.
- Szablon kupiony lata temu nie był aktualizowany i chcesz przy okazji zmienić wygląd.
- W bazie są duplikaty produktów, martwe kategorie i tysiące nieaktywnych pozycji po starych importach.
Przy nowej instalacji najważniejsze jest zachowanie adresów URL i przekierowań, inaczej sklep traci pozycje w Google. Jak to zrobić, opisaliśmy w artykule o migracji bez utraty pozycji, a sam proces przenoszenia na stronie o migracji PrestaShop.
Z naszej praktyki
Sklep z branży motoryzacyjnej działał na 1.7.6 z 68 modułami i 31 plikami nadpisań rdzenia. Próba aktualizacji na kopii wykazała, że 19 modułów nie uruchamia się na PHP 8.1, a dwa z nich odpowiadały za ceny dla warsztatów. Policzyliśmy obie drogi. Nowa instalacja 9.0 z 14 modułami i przeniesieniem 11 tysięcy produktów, 9 tysięcy klientów i historii zamówień wyszła o około jedną trzecią taniej niż naprawa starego sklepu, a strona kategorii ładuje się dwa razy szybciej.
Jak podchodzimy do decyzji
Krok po kroku
- Inwentaryzacja. Lista modułów z wersjami i datami, zawartość katalogu override, rodzaj szablonu, wersja PHP na hostingu.
- Próbna aktualizacja na kopii. Uruchamiamy Update Assistant na kopii sklepu i spisujemy wszystko, co się posypało. To zajmuje dzień, a daje twarde dane zamiast domysłów.
- Kosztorys dwu wariantów. Aktualizacja z naprawą modułów kontra nowa instalacja z przeniesieniem danych. Z liczbą godzin i listą ryzyk.
- Decyzja i termin. Wybieramy wariant, ustalamy okno poza sezonem i przygotowujemy plan powrotu, gdyby coś poszło nie tak.
- Start i dwa tygodnie obserwacji. Po przełączeniu codziennie sprawdzamy dziennik błędów, płatności, wysyłkę maili i integracje.
Aktualizacja do 9 to nie jest kliknięcie przycisku. To przegląd wszystkiego, co przez lata dokładano do sklepu, i decyzja, co z tego ma zostać.
Pytania, które słyszymy najczęściej
Czy muszę aktualizować do 9, skoro 8.x jest nadal wspierany?
Nie musisz dziś. PrestaShop 8.x nadal dostaje poprawki i nie ma ogłoszonej daty końca. Ale 9 jest zalecanym celem, a nowe moduły i integracje będą powstawać właśnie pod nią, więc odkładanie w nieskończoność nie ma sensu.
Czy mogę aktualizować bezpośrednio z 1.7 do 9?
Update Assistant obsługuje taką drogę, ale w praktyce większość pracy to nie sama aktualizacja, tylko moduły i nadpisania rdzenia. Przy mocno zmienionym sklepie na 1.7 częściej wychodzi nowa instalacja.
Czy muszę zmienić motyw na Hummingbird?
Nie. Classic jest nadal dostępny i działa w 9. Hummingbird ma sens przy nowym projekcie wyglądu albo przy nowej instalacji.
Ile trwa aktualizacja do 9?
Przy zadbanym sklepie na 8.x z kilkunastoma aktualnymi modułami: kilka dni z testami. Przy sklepie z 1.7 z dziesiątkami modułów: od dwu do kilku tygodni, zależnie od tego, ile trzeba wymienić.
Chcesz wiedzieć, która droga jest dla Twojego sklepu tańsza i bezpieczniejsza? Zrobimy próbną aktualizację na kopii i przedstawimy kosztorys obu wariantów. Zobacz, jak przechodzimy na PrestaShop 9.