PrestaShop 9.2 to fraza, którą wpisują właściciele sklepów szukający informacji o kolejnym wydaniu — a nie zawsze wydanie, które już istnieje. PrestaShop numeruje wersje w schemacie major.minor.patch, więc 9.2 (minor) to zupełnie inny typ zmiany niż 9.0.5 (patch). Zanim cokolwiek zaplanujesz, sprawdź status wydania w oficjalnych release notes i changelogu projektu. Ten tekst porządkuje przygotowania do linii 9.x: wymagania serwera, audyt modułów i motywu, kolejność migracji na stagingu. Jeśli 9.2 nie jest jeszcze opublikowane, traktuj je jako horyzont planowania, a nie plik do pobrania — cała logika przygotowań pozostaje ta sama.

Czym jest PrestaShop 9.2 i jak czytać numerację wydań

PrestaShop numeruje wydania w schemacie major.minor.patch. To nie kosmetyka — od tego zależy, ile pracy Cię czeka i czy aktualizacja to piątkowe popołudnie, czy projekt na cały miesiąc.

Skąd bierze się fraza „prestashop 9 2”? Z dwóch miejsc: z przyzwyczajenia do numeracji łat, gdzie „9.2” brzmi jak kolejna poprawka, oraz z automatycznie generowanych stron typu „release date”, które wyprzedzają fakty o kilka miesięcy. Zanim cokolwiek zaplanujesz, sprawdź status sam.

Wersja Twojego sklepu: zaplecze → Parametry zaawansowane → Informacje (Advanced Parameters → Information) pokazuje pełny numer, np. 9.0.5. Drugie źródło to plik app/AppKernel.php, w którym siedzi stała VERSION, oraz composer.json — jeśli widzisz tam prestashop/prestashop w wersji 9.0.x, to nie masz 9.2, tylko 9.0.x.

Oficjalna weryfikacja: release notes i tagi w repozytorium PrestaShop/PrestaShop na GitHubie, devdocs.prestashop-project.org (wymagania i zmiany dla deweloperów) oraz changelog dołączony do paczki. Jeśli w tych miejscach nie ma taga 9.2.x — wydania nie ma.

Rozstrzygnięcie: jeżeli numer 9.2 nie jest jeszcze opublikowany, mówimy o przygotowaniu do linii 9.x, a nie o istniejącym pliku do pobrania. Planuj horyzont, nie pobieranie. Szerszy kontekst skoków major opisuje nasz materiał o audycie i przygotowaniu sklepu do migracji na PrestaShop 10.

WydanieTyp zmianyCo się zmieniaRyzykoCzas testów
9.0.5patchbłędy i bezpieczeństwo, bez nowych funkcjiniskie1–2 godziny
9.1 / 9.2minornowe funkcje, deprecacje, zmiany w APIśrednie1–2 dni
10.0majorzmiany niekompatybilne, usunięcia legacywysokietygodnie

Co realnie zmienia linia PrestaShop 9.x względem 8.x

Różnica między 8.x a 9.x nie sprowadza się do nowych ikonek w panelu. To zmiana architektury, a co za tym idzie — zakresu testów, które musisz wykonać przed wdrożeniem.

Symfony jako fundament. W 8.x backend opiera się na starszej gałęzi frameworka, linia 9.x przeskakuje na nowszą. Praktyczna konsekwencja: moduł, którego kontroler admina korzysta z usuniętego serwisu albo z API wyciętego w nowszym Symfony, wywali błąd 500 przy pierwszym wejściu w konfigurację. Dokładny numer frameworka sprawdzasz w composer.json w paczce wydania, nie w blogpostach. Moduły pisane po staremu — globalne Db::getInstance(), wartości z Tools::getValue() bez walidacji, brak wstrzykiwania zależności — działają do pierwszej zmiany.

Admin API obok webservice. Stary webservice /api zostaje, ale równolegle rośnie nowe Admin API: inne uwierzytelnianie, inna struktura odpowiedzi, inne endpointy. Dla integracji z ERP to pytanie „przepisywać teraz czy za rok”. Jeśli ERP ciąga stany magazynowe po starym /api, ta ścieżka nadal działa, ale nowe funkcje mogą być dostępne wyłącznie w Admin API. Zanim podpiszesz umowę na kolejną integrację, sprawdź, na którym API pracuje dostawca — typowe pułapki opisujemy w tekście o zakresie i ograniczeniach modułów w PrestaShop.

Hummingbird kontra classic. Hummingbird to nowy motyw domyślny oparty na Bootstrapie 5, z innym podziałem szablonów. Classic zostaje jako kompatybilny. Child theme napisany dla classic nie przenosi się 1:1 — inne nazwy plików, inne hooki, inna struktura CSS. Przy katalogu z indywidualnymi szablonami produktu licz raczej dni niż godziny.

Co wypada bez refaktoru: stare kontrolery admina, przestarzałe helpery tłumaczeń, część hooków wyświetlania i wywołania usuniętych klas. Lista rośnie z każdym wydaniem minor, więc im później zaczniesz, tym drożej.

Wymagania techniczne PrestaShop 9.x: PHP, MySQL, pamięć, cache

Twarde progi, po których od razu widać, czy hosting podoła, czy trzeba szukać VPS-a.

PHP. Linia 9.x startuje z PHP 8.1 jako minimum, realnie celuj w 8.2 lub 8.3. Pamiętaj o kalendarzu php.net: wsparcie bezpieczeństwa dla 8.1 kończy się 31 grudnia 2025, dla 8.2 — 31 grudnia 2026. Sklep na gałęzi bez wsparcia to otwarte drzwi. Dokładny dozwolony zakres wersji sprawdź w dokumentacji dla deweloperów PrestaShop przed zmianą — projekt zawęża go wraz z patchami.

Baza danych. MySQL 8.0 lub MariaDB 10.4+ to bezpieczny start; starsze wersje mogą nie przejść instalatora. Kluczowy jest charset: utf8mb4 i spójne collation na wszystkich tabelach. Migracja z mieszanym collation kończy się błędami „Illegal mix of collations” przy JOIN-ach. Sprawdź przed kopiowaniem:
SELECT TABLE_NAME, TABLE_COLLATION FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'twoja_baza';

Progi serwerowe — wartości, nie „powinno wystarczyć”:

Kiedy shared hosting mówi „nie”. Brak CLI i composera, brak możliwości zmiany memory_limit, konto MySQL bez uprawnień ALTER i DROP (migracja ich wymaga), limit 1 GB na bazę, backupy bez możliwości przywrócenia na żądanie. Przed zakupem VPS sprawdź w panelu: przełączanie wersji PHP, dostęp po SSH, eksport bazy powyżej 100 MB przez phpMyAdmin, limity inode i politykę backupów. Zakres takich wdrożeń opisujemy w dziale PrestaShop w DropDigital.

Czy Twoje moduły i motyw zadziałają w PrestaShop 9.x

Audyt rozszerzeń zacznij od override'ów, nie od listy modułów. Katalog override/ zawiera pliki, które podmieniają logikę klas core. Po aktualizacji core się zmienia, a override zostaje ze starym kodem — i wtedy najczęściej sypie się koszyk albo panel administracyjny. Polecenie find override -type f -name "*.php" pokaże skalę problemu. Jeśli lista ma więcej niż 3–5 plików, masz dług do spłacenia przed migracją. Każdy plik porównaj z nową wersją klasy core (diff) i sprawdź, który moduł go wrzucił — najprościej po dacie modyfikacji pliku z dnia instalacji modułu.

Moduł oceniaj po trzech sygnałach: dacie ostatniego wydania, deklarowanej kompatybilności w config.xml (sekcja <compatibility> z wartościami min i max) oraz użyciu API oznaczonych w dokumentacji jako przestarzałe. Brak wpisu max oznacza, że autor nic nie deklaruje. W kodzie szukaj wywołań typu Tools::jsonEncode() czy Db::getInstance()->ExecuteS() — to stare aliasy, które w nowszej linii mogą zniknąć. Metodę przeglądu rozszerzeń i granice tego, co moduł może bezpiecznie robić, opisujemy szerzej w tekście o zakresie i ograniczeniach modułów w PrestaShop.

Najwyższe ryzyko: płatności i kurierzy. Testuj w tej kolejności: autoryzacja płatności, webhook/IPN, zwrot, generowanie etykiety, tracking, pobranie (COD), mapa punktów. Dopiero potem maile, feedy i moduły marketingowe. Kiedy czekać, a kiedy pisać własny? Jeśli integrujesz się z niszowym ERP i dostawca podaje termin „w tym kwartale, bez daty”, a zakres to 3–4 endpointy (zamówienia, stany, faktury), własny moduł to zwykle 3–5 dni pracy i pełna kontrola. Przy płatnościach kartowych i certyfikowanych integracjach — nie.

Sygnał w moduleGdzie sprawdzićRyzyko
Brak wpisu max w compatibilityconfig.xmlWysokie — autor nie deklaruje 9.x
Ostatnie wydanie starsze niż 24 miesiącechangelog modułu / karta produktuWysokie
Własne pliki w override/find override -name "*.php"Wysokie przy zmianach core
Stare aliasy API (Tools::jsonEncode, ExecuteS)grep po katalogu modułuŚrednie — zależy od klasy
Moduł płatności lub kurierapanel konfiguracji + logi webhookówKrytyczne — testuj pierwszy

Aktualizacja do PrestaShop 9.x krok po kroku (na stagingu, nie na produkcji)

Kolejność jest stała. Najpierw kopia: archiwum plików (tar) plus zrzut bazy przez mysqldump --single-transaction. Pamiętaj o katalogach img/ i download/ — potrafią mieć kilka GB. Zrzut od razu odtwórz na testowej bazie. Kopia, której nie sprawdziłeś, nie jest kopią.

Staging postaw na tym samym stacku: identyczna wersja PHP (ta sama minor), ta sama wersja MySQL/MariaDB, te same rozszerzenia intl, mbstring, gd, te same memory_limit i max_execution_time. Inaczej błędy z testów nie przeniosą się na produkcję. Potem aktualizacja modułem 1-Click Upgrade albo ręcznie (wymiana plików + uruchomienie skryptu upgrade). Ograniczenie 1-Click: nie przeskoczysz majora jednym kliknięciem. Historycznie przejścia idzie się etapami — 1.7 → 8.x → 9.x — i każdy etap testuj osobno. W stagingu włącz tryb debug, wyłącz cache i sprawdź logi błędów po każdym kroku.

Testy po aktualizacji rób w tej kolejności: koszyk, checkout gościa, checkout zalogowanego, każda metoda płatności, mail potwierdzający (SMTP, nie mail()), faktura PDF, zwrot i korekta. Rollback przygotuj przed startem: dump bazy sprzed wdrożenia, snapshot VM, stare pliki w osobnym katalogu, obniżone TTL DNS do 300 s, tryb maintenance. Ustal też okno — rollback bazy oznacza utratę zamówień złożonych w trakcie migracji, więc rób to w nocy i zablokuj zamówienia na czas przełączenia. Kontekst całego przygotowania sklepu opisujemy w sekcji PrestaShop w DropDigital.

TestCo dokładnie sprawdzić
Koszykdodanie, edycja ilości, kupon, wyliczenie dostawy
Checkout gościaadres, wybór kuriera, podsumowanie VAT
Checkout zalogowanegoadresy zapisane, historia zamówień
Płatnośćautoryzacja, webhook, zwrot, status zamówienia
Mail potwierdzającytreść, załączniki, dostarczalność
Faktura PDFnumeracja, dane firmy, stawki VAT
Zwrotstatus, korekta, stan magazynowy

SEO i wydajność po aktualizacji: gdzie najczęściej spada ruch

Po zmianie wersji PrestaShop generuje plik .htaccess od nowa — z zakładki SEO i URL. Jeśli pracujesz na Nginx, reguły przepisań są ręczne i nikt ich za Ciebie nie odtworzy. Sprawdź 10 adresów przez curl -I: produkt, kategoria, kategoria z paginacją, strona CMS, sitemap.xml, robots.txt. Szukaj kodów 200, ale też łańcuchów 301 → 301 — maksymalnie jeden przeskok. Zasada: 301, gdy zmieniłeś schemat URL i stary adres ma linki; 410, gdy produkt został trwale wycofany i nie ma odpowiednika; 404 tylko przy błędzie. Szczegóły wdrożenia opisuje tekst o Friendly URL w PrestaShop.

Lista kontrolna w Google Search Console: Sitemaps (czy data ostatniego odczytu się zmienia), Page indexing (czy nie rośnie grupa „Wykluczone”), Crawl stats (czy nie spadła liczba żądań), URL Inspection na pięciu najlepszych produktach. Canonical musi być absolutny, na https, bez parametrów. hreflang sprawdź w obie strony, z x-default.

Nowy motyw to nowe Core Web Vitals. Zmierz przed i po w PageSpeed Insights (dane laboratoryjne) oraz w raporcie CWV w GSC (dane terenowe). Progi: LCP ≤ 2,5 s, CLS ≤ 0,1, INP ≤ 200 ms — opisane w dokumentacji Web Vitals. Najczęstsze regresje: obraz hero powyżej 300 KB, fonty bez preload, bannery bez zadeklarowanych wymiarów powodujące przesunięcia.

Na koniec e-commerce: w GA4 DebugView sprawdź add_to_cart, begin_checkout, purchase. Upewnij się, że zakup nie leci dwa razy (moduł + GTM) i że waluta oraz wartość są poprawne. Które etapy mierzy moduł, rozpisujemy w artykule o etapach sprzedaży mierzonych przez moduł GA4 dla PrestaShop.

MetrykaPrógGdzie mierzysz
LCP≤ 2,5 sPageSpeed Insights, raport CWV w GSC
CLS≤ 0,1PageSpeed Insights, dane terenowe
INP≤ 200 msraport CWV w GSC
Waga obrazu hero≤ 200 KB (WebP/AVIF)DevTools → Network
Liczba przekierowańmaks. 1 na adrescurl -I, DevTools

Integracje, które psują się najczęściej: płatności, kurierzy, ERP

Z aktualizacją PrestaShop jest jak z remontem: przez tydzień wszystko wygląda dobrze, a psuje się to, co dotyka pieniędzy. Płatności, etykiety i ERP to trzy miejsca, w których błąd po migracji oznacza niedokończone zamówienie, paczkę bez numeru nadania albo stany magazynowe rozjeżdżające się z magazynem.

Płatności (Przelewy24, PayU, Stripe). Po pierwsze URL powrotu i webhooka w panelu operatora — musi wskazywać domenę, na której sklep faktycznie działa, z https i bez starego prefiksu. Po drugie hooki modułu: actionValidateOrder i paymentReturn powinny być zarejestrowane po aktualizacji. Po trzecie mapowanie statusów: „oczekiwanie na płatność” → „płatność zaakceptowana” → „w realizacji”. Sprawdź idempotencję — podwójny callback nie może zdublować zamówienia — oraz weryfikację podpisu (signature/checksum). W Stripe zanotuj wersję API w module: zmieniona po cichu potrafi zmienić format zdarzenia.

Kurierzy (InPost Paczkomaty, DPD, DHL). Generowanie etykiety, wybór paczkomatu w checkout i webhooki statusów. Najczęstsza pułapka to dane produktu: waga 0 kg albo brak wymiarów blokuje nadanie. Druga — strefa czasowa i format daty w API. Trzecia — brak listy punktów pickup po zmianie sposobu ich pobierania. Co przygotować przed startem, opisałem w tekście o integracji InPost z PrestaShop.

ERP. Sprawdź mapowanie statusów po ID, nie po nazwie — moduł może dopisać własne statusy i rozjechać całą siatkę. Ustal kierunek synchronizacji stanów (ERP → sklep czy sklep → ERP) i jej częstotliwość. Przy 9.x zweryfikuj, czy moduł nie korzysta z elementów legacy wycofanych w nowej linii — punktem wyjścia jest dokumentacja deweloperska PrestaShop i changelog modułu.

Sposób testu: na stagingu jedno zamówienie od początku do końca — produkt fizyczny, płatność w trybie sandbox, etykieta, faktura, e-mail, zwrot. Dopiero potem produkcja.

Aktualizować teraz czy poczekać? Decyzja w 5 pytaniach

Decyzję o aktualizacji podejmuje się na podstawie stanu sklepu, nie kalendarza wydawcy. Pięć pytań, na które odpowiedź „nie” oznacza „czekamy”:

  1. Z jakiej wersji startujesz? 9.0.x → 9.x to inna skala niż 1.7 → 9.x.
  2. Które moduły są krytyczne? Płatności, kurierzy, ERP, feedy, moduły B2B. Wypisz wersje i sprawdź deklarowaną kompatybilność.
  3. Jaki masz sezon? Jeśli większość obrotu robisz w Q4, nie dotykasz produkcji w październiku i listopadzie.
  4. Masz staging i procedurę rollbacku? Bez kopii bazy i plików oraz planu powrotu nie ma testu, jest loteria.
  5. Jaki jest budżet godzinowy i kto robi wdrożenie? Wewnętrzny zespół czy agencja — z konkretną datą w kalendarzu.

Orientacyjne widełki z naszych projektów (to nie wycena, a punkt wyjścia do rozmowy):

Rekomendacja. Patch w obrębie 9.0.x ma sens, gdy nie zmienia się API modułów, a lista krytycznych integracji przechodzi smoke test. Pełną migrację planuj, gdy wychodzisz z 1.7, masz overrides w rdzeniu albo moduły bez wsparcia dla 9.x.

Aktualizacja jest projektem, gdy zmieniasz motyw, moduły i dane. Jest zwykłym utrzymaniem, gdy domykasz patch: kopia, staging, test, wdrożenie w oknie serwisowym. Kryteria wejścia w opiekę z SLA są proste: dostęp do stagingu, lista modułów z wersjami, procedura rollbacku, monitoring i uzgodnione okno serwisowe. Punkt wyjścia do szerszego planu: audyt i przygotowanie sklepu do migracji oraz usługi PrestaShop.

ScenariuszZakres pracyOrientacyjny nakład
9.0.x → 9.x, motyw standardowy, 10–15 modułówkopie, staging, testy integracji, wdrożenieok. 8–20 h
8.1 → 9.x, motyw child, 20–30 modułówaudyt modułów, poprawki szablonów, testy płatności i kurierówok. 24–60 h
1.7 → 9.x, motyw pisany od zera, modyfikacje w rdzeniu i override’achmapowanie override’ów, migracja danych, przepisanie integracjiok. 80–200 h

Najczęstsze błędy i jak je wykryć

Traktowanie numeru 9.2 jako potwierdzonego wydania bez sprawdzenia źródła.

Jak wykryć: W artykułach i na forach pojawia się „9.2”, ale nie ma linku do release notes ani changelogu; data wpisu nie zgadza się z datą publikacji wydania.

Jak naprawić: Wejdź na GitHub PrestaShop (zakładka releases) oraz devdocs.prestashop-project.org i sprawdź listę tagów. Dopiero potem planuj zakres prac.

Aktualizacja wykonywana bezpośrednio na produkcji „na chwilę”, bo sklep ma mały ruch.

Jak wykryć: Brak środowiska stagingowego lub staging działa na innej wersji PHP i innej bazie niż produkcja.

Jak naprawić: Postaw kopię na tym samym stacku (PHP, MySQL/MariaDB, wersje rozszerzeń) i przeprowadź pełną aktualizację oraz testy właśnie tam.

Przeskok z 1.7 lub bardzo starej 8.x od razu do najnowszej linii 9.x jednym przebiegiem.

Jak wykryć: Moduł 1-Click Upgrade kończy pracę błędem w połowie albo sklep wstaje z brakującymi tabelami i błędami w logach.

Jak naprawić: Idź etapami: 1.7 → ostatnia 8.x → 9.x. Każdy etap kończ testami i kopią zapasową.

Zakładanie, że wszystkie moduły i motyw z 8.x zadziałają bez zmian.

Jak wykryć: Po aktualizacji na stagingu pojawiają się błędy PHP o brakujących klasach, białe strony w koszyku lub brak hooków w szablonie.

Jak naprawić: Zrób listę modułów z datą ostatniego wydania i deklarowaną kompatybilnością. Wszystko starsze niż rok traktuj jako podejrzane i testuj w pierwszej kolejności.

Pomijanie folderu override/ przy diagnostyce błędów po aktualizacji.

Jak wykryć: Objawy nie znikają po wyłączeniu modułu, a w override/ leżą pliki sprzed lat, nadpisujące klasy rdzenia.

Jak naprawić: Zinwentaryzuj override/ przed aktualizacją, a na stagingu wyłączaj je pojedynczo, żeby ustalić źródło błędu.

Hosting współdzielony bez sprawdzenia limitów pamięci i czasu wykonania przed startem migracji.

Jak wykryć: Aktualizacja lub import bazy przerywa się w połowie, w logach widać przekroczenie memory_limit lub max_execution_time.

Jak naprawić: Przed migracją sprawdź w panelu wartości memory_limit i max_execution_time oraz dostępność OPcache. Jeśli nie możesz ich podnieść, przenieś staging na VPS.

Lista kontrolna do odklikania

Podsumowanie

Numer 9.2 trzeba najpierw zweryfikować w oficjalnych źródłach, a dopiero potem wpisywać go do harmonogramu. Niezależnie od tego, czy wydanie już istnieje, przygotowanie do linii 9.x sprowadza się do czterech rzeczy: sprawdzenia stacku serwerowego, audytu modułów i override'ów, stagingu na tym samym środowisku oraz listy testów po aktualizacji. Sklep, który ma nieutrzymywane moduły i stary motyw, zapłaci za migrację czasem, nie tylko budżetem. Zacznij od audytu — to najtańszy etap całego projektu.

Najczęściej zadawane pytania

Czy PrestaShop 9.2 już istnieje?

Nie potwierdzam tego w tym artykule i nie podaję daty premiery, bo takich danych nie wymyślam. Status sprawdzisz w release notes na GitHubie PrestaShop oraz w dokumentacji dla deweloperów. Jeśli numer nie występuje na liście wydań, oznacza to, że linia 9.2 jest horyzontem planowania, a nie gotowym wydaniem.

Czym różni się 9.0.5 od 9.2 pod względem ryzyka aktualizacji?

Trzecia cyfra (patch) oznacza poprawki błędów i łatki bezpieczeństwa — zwykle aktualizacja jest krótka i ogranicza się do podmiany plików oraz testów. Druga cyfra (minor) to nowe funkcje i zmiany w kodzie, które mogą wymagać dopasowania modułów i motywu. Przy minorze zawsze zakładaj pracę na stagingu i testy integracji.

Czy mogę przejść z PrestaShop 1.7 od razu do linii 9.x?

Bezpieczniej jest iść etapami: najpierw do ostatniej stabilnej wersji z linii 8.x, potem do 9.x. Moduł 1-Click Upgrade ma ograniczony zakres wspieranych ścieżek i przy dużym skoku ryzyko rośnie. Każdy etap kończ kopią zapasową i testami kluczowych ścieżek zakupowych.

Jakiej wersji PHP wymaga PrestaShop 9.x?

Linia 9.x stoi na nowszych gałęziach PHP niż 8.0 i nie obsługuje wersji, które straciły wsparcie producenta. Dokładne widełki minimalnej i zalecanej wersji znajdziesz w release notes konkretnego wydania oraz w devdocs.prestashop-project.org — sprawdź je przed rozmową z hostingiem, bo to najczęstsza przyczyna blokady migracji.

Czy mój motyw i moduły z 8.x będą działać w 9.x?

Nie ma jednej odpowiedzi — decyduje sposób, w jaki moduł został napisany. Moduły korzystające z przestarzałych klas i hooków oraz te nadpisujące rdzeń przez override/ wymagają sprawdzenia w pierwszej kolejności. Moduły płatności i kurierów testuj przede wszystkim, bo ich awaria blokuje sprzedaż.

Ile trwa aktualizacja do PrestaShop 9.x?

Samo uruchomienie aktualizacji to zwykle kwestia dziesiątek minut. Realny czas projektu wyznacza audyt modułów, testy i poprawki — przy rozbudowanym sklepie z niestandardowymi integracjami to praca liczona w tygodniach. Dlatego staging i lista testów powstają przed startem, nie po.

Jeśli chcesz sprawdzić, czy Twój sklep jest gotowy na linię 9.x, zerknij na naszą ofertę wdrożeń PrestaShop albo napisz do nas z listą modułów — powiemy wprost, co wymaga wymiany, a co przetrwa aktualizację.

Źródła i materiały