Jak zaktualizować PrestaShop do najnowszej wersji

dowiedz się

Aktualizacja PrestaShop to nie tylko kwestia nowych funkcji, ale przede wszystkim bezpieczeństwa, wydajności i długofalowej stabilności sprzedaży. Dobrze zaplanowany proces pozwala uniknąć przestojów, konfliktów wtyczek i utraty danych. Poniżej znajdziesz praktyczną, krok‑po‑kroku instrukcję: od przygotowań, przez wykonanie aktualizacji modułem 1‑Click oraz ręcznie, aż po kontrolę jakości i optymalizację po wdrożeniu. Skupiam się na minimalizacji ryzyka i maksymalnej przewidywalności działań.

Przygotowanie do aktualizacji

Sprawdzenie wymagań i plan wersji

Zacznij od weryfikacji, do której stabilnej gałęzi chcesz przejść (np. 8.x), sprawdzając oficjalną dokumentację PrestaShop oraz listę zmian. Dwie kluczowe rzeczy to środowisko uruchomieniowe i zgodność sklepu. Zweryfikuj wersję PHP, rozszerzenia (m.in. intl, cURL, GD, Zip), serwer bazodanowy (MySQL/MariaDB), limity pamięci i czasu wykonywania, a także wersję serwera WWW. Zapisz aktualne wartości i porównaj z tabelą kompatybilności wspieraną przez docelową wersję.

Ustal też strategię aktualizacji: mniejsza (patch/minor) zwykle jest bezpieczniejsza i szybsza, większa (major) może wymagać zmian w motywie, hakach i nadpisaniach. Dla skoków 1.6 → 1.7/8 przygotuj się na zmianę motywu oraz przegląd wezwań do akcji i hooków. Zmapuj zależności: zewnętrzne systemy płatności, kurierów, ERP/PIM, mechanizmy logistyki czy marketing automation, które mogą wymagać aktualizacji konektorów.

Audyt sklepu: motyw, moduły, nadpisania

Przejdź do listy wtyczek i wypisz wszystkie aktywne moduły, ich wersje i źródła (marketplace, vendor, custom). Zaktualizuj je w obecnej wersji sklepu, zanim zaczniesz właściwą aktualizację PrestaShop. Zwróć uwagę na moduły krytyczne (płatności, wysyłki, RODO, faktury), moduły modyfikujące katalog i koszyk, a także integracje. Oceń kompatybilność z docelową wersją: sprawdź karty modułów, changelogi, repozytoria.

Oceń motyw (kompatybilność z wersją jądra, hookami i szablonami .tpl). Jeżeli motyw nie wspiera docelowej wersji, zaplanuj aktualizację lub przejście na wersję wspieraną. Zidentyfikuj override’y (override/controllers, override/classes), niestandardowe klasy i modyfikacje core. Zanotuj je i oceń, czy da się je przenieść jako modułowe rozszerzenia lub zastąpić nowymi hookami.

Pełna kopia zapasowa i plan powrotu

Przed jakąkolwiek zmianą wykonaj kompletne backup plików i bazy. Skorzystaj z narzędzi hostingu, snapshotów, systemu kopii zapasowych lub poleceń mysqldump i rsync. Kopia powinna objąć katalogi z załącznikami (img, download, upload), moduły, motywy, katalog /config oraz dane sesji. Testowo odtwórz kopię w innym miejscu, aby mieć pewność, że działa. Zdefiniuj scenariusz rollback: jak szybko przywrócisz pliki i baza, jakie rekordy DNS lub reguły CDN zmienisz na czas awarii, kto podejmuje decyzję o wycofaniu i w jakim oknie czasowym.

Środowisko testowe i okno serwisowe

Skonfiguruj środowisko staging będące wierną kopią produkcji: ta sama wersja kodu, danych i konfiguracji (z zamianą kluczy, wyłączeniem bramek płatności i integracji czasu rzeczywistego). Zabezpiecz je hasłem i wyklucz z indeksowania. Przećwicz całą aktualizację na stagingu, zapisz kroki, czas i problemy. Na produkcji zaplanuj okno serwisowe, włącz tryb konserwacji i komunikację do klientów (baner, e-mail, social), by zminimalizować negatywny wpływ przerwy.

Higiena projektu: wersjonowanie i checklisty

Umieść kod w repozytorium Git i pracuj na gałęzi dedykowanej aktualizacji. Przygotuj checklistę działań przed, w trakcie i po. Ustal kryteria akceptacji: komplet testów funkcjonalnych (rejestracja, logowanie, dodanie do koszyka, płatność, e-maile), testy panelu (zamówienia, faktury, statusy, wysyłki), testy integracji (API kuriera, bramka płatności, ERP). W razie potrzeby przygotuj dane testowe i konta sandbox.

Metoda 1: Aktualizacja przez moduł 1‑Click Upgrade (AutoUpgrade)

Instalacja i konfiguracja modułu

Na środowisku testowym zainstaluj oficjalny moduł AutoUpgrade (1‑Click Upgrade). Upewnij się, że jego wersja jest aktualna i wspierana przez Twoją wersję sklepu. W panelu modułu sprawdź, jakie kanały aktualizacji są dostępne: stabilny, najnowszy, wersja lokalna. Wybierz docelową wersję, zapoznaj się z listą plików do zmiany oraz opcjami tworzenia kopii zapasowej przed startem procesu.

Włącz tryb konserwacji, ogranicz ruch cronów i zewnętrznych integracji (np. wstrzymaj synchronizacje ERP), zablokuj indeksowanie przez wyszukiwarki na stagingu. W module zaznacz opcje: tworzenie kopii plików i bazy danych, czyszczenie pamięci podręcznej, zastąpienie plików core, zachowanie ustawień konfiguracyjnych. Jeżeli masz większy sklep, rozważ podniesienie limitów czasu i pamięci w PHP, aby uniknąć przerwań.

Wybór opcji i bezpieczne uruchomienie

Zanim klikniesz Aktualizuj, wykonaj manualny snapshot środowiska. Upewnij się, że masz wolne miejsce na dysku (co najmniej 2–3x waga sklepu) i stabilne połączenie. Wybierz tryb szczegółowego logowania i zapisz logi procesu. Ustawienie “przeinstaluj moduły rdzeniowe” bywa pomocne przy niespójnościach, ale nie włączaj masowego nadpisywania wszystkiego, jeśli nie wiesz, co robisz. Zachowaj ostrożność przy opcji usuwania katalogów niestandardowych.

Uruchom aktualizację i nie zamykaj okna. W trakcie moduł tworzy kopie, pobiera paczkę, podmienia pliki i uruchamia skrypty migracji bazy danych. W razie przerwy sieciowej odśwież panel statusu i stosuj się do wskazówek. Po zakończeniu przejdź do czyszczenia cache (panel i ręcznie w razie potrzeby), a następnie zaloguj się ponownie do back office.

Kontrola po 1‑Click: testy i naprawy

Wykonaj szybkie sanity-check: strona główna, kategorie, produkt, koszyk, checkout, płatność w trybie testowym, e-maile transakcyjne, rejestracja i logowanie. W panelu sprawdź zamówienia, generowanie faktur, ustawienia przewoźników i podatków. Przejrzyj logi błędów serwera i PrestaShop. Jeżeli pojawiają się błędy klas lub szablonów, sprawdź override’y i konflikty motywu z nową wersją hooków.

Jeżeli aktualizacja się nie powiodła, użyj mechanizmu przywracania z modułu lub ręcznie odtwórz kopię. Wróć do checklisty: sprawdź dodatkowe zależności (np. brakujące rozszerzenie PHP), uprawnienia plików, niestandardowe reguły .htaccess, reguły firewalla WAF. Popraw przyczyny, odśwież cache i spróbuj ponownie na stagingu, zanim dotkniesz produkcji.

Typowe problemy i ich obejścia

Najczęstsze trudności dotyczą konfliktów z motywem i modułami. Przy dużych skokach wersji zaktualizuj motyw do wersji dedykowanej docelowemu jądru i zrób diff nadpisań. Gdy moduł płatności przestaje działać, sprawdź klucze API i tryb sandbox; uaktualnij go do wersji zgodnej z nowym PrestaShop. Jeżeli występują błędy w warstwie szablonów, włącz tryb debug, przechwyć stacktrace i zidentyfikuj niekompatybilne bloki smarty.

W przypadku długich migracji bazy, zwiększ limity serwera, zoptymalizuj tabelę dzienników, wyłącz ciężkie crony. Upewnij się, że katalog var lub app/cache (w zależności od wersji) został wyczyszczony i ma odpowiednie uprawnienia. Po aktualizacji zregeneruj miniatury obrazów produktów i sprawdź, czy reguły URL przyjaznych odnośników zachowały się poprawnie.

Metoda 2: Aktualizacja manualna (FTP/SSH/Composer)

Pobranie paczki i weryfikacja integralności

Manualna aktualizacja daje pełną kontrolę i bywa konieczna w niestandardowych instalacjach. Pobierz oficjalną paczkę źródłową z repozytorium lub strony projektu i zweryfikuj sumy kontrolne. Na stagingu rozpakuj archiwum obok bieżącej instalacji. Wyłącz tryb indeksacji przez boty i włącz konserwację. Przygotuj plan podmiany plików z wykluczeniami, by nie nadpisać konfiguracji i zasobów użytkownika.

Podmiana plików z zachowaniem konfiguracji

Skopiuj pliki nowej wersji nad starą instalację z wyłączeniem katalogów zawierających dane użytkownika i konfigurację (np. /img, /upload, /download oraz pliki konfiguracyjne). Zachowaj klucze i ustawienia środowiskowe. Przed podmianą wykonaj dodatkowy backup katalogu vendors i modułów krytycznych. Po skopiowaniu usuń nieużywane pliki zgodnie z listą zmian (deprecated i removed). Zweryfikuj uprawnienia i właściciela plików.

Migracja bazy i czyszczenie pamięci podręcznej

Uruchom skrypty migracyjne dostarczone przez projekt (jeżeli są wymagane w Twojej ścieżce aktualizacji) lub użyj panelu instalatora w trybie upgrade. Po migracji wyczyść cache aplikacji i opcode, przebuduj klasę autoload, zregeneruj plik .htaccess i mapę adresów URL. Następnie zaloguj się do panelu i przejdź przez wszystkie sekcje konfiguracyjne, potwierdzając brak błędów i ostrzeżeń. Sprawdź także spójność indeksów produktów i warunki wyszukiwania.

Specyfika skoków między głównymi wersjami

Przy przejściu 1.6 → 1.7/8 nie zakładaj kompatybilności starego motywu; konieczna jest aktualizacja lub zmiana. Różnice w hookach i strukturze szablonów mogą wymagać dopasowań modułów, translacji i CSS/JS. Przenieś override’y do dedykowanych rozszerzeń modułowych, aby ograniczyć ryzyko kolizji przy kolejnych aktualizacjach. Sprawdź, czy biblioteki front‑end (Bootstrap, jQuery) nie konfliktują z wersjami z nowego rdzenia.

Automatyzacja i kontrola jakości

Dla sklepów o wysokiej częstotliwości zmian wdroż automatyzację: pipeline CI/CD, testy jednostkowe i E2E, checklisty smoke testów. W procesie builda przeprowadzaj walidację kompatybilności modułów i motywu, statyczną analizę, kompresję zasobów i przygotowanie paczki do wdrożenia. Kopiuj tylko to, co niezbędne. Wykorzystaj tagi i release’y, aby móc w każdej chwili wykonać szybki rollback.

Czynności po aktualizacji

Testy funkcjonalne i kontrola SEO

Po wdrożeniu na produkcję wykonaj pełną ścieżkę zakupową w realnych warunkach (z testową płatnością lub minimalnym koszykiem). Sprawdź panel: wystawienie faktury, zwrot, generowanie etykiety wysyłkowej, zmiana statusów i komunikacja e‑mail. Obejrzyj logi błędów i ostrzeżeń, monitoruj zużycie zasobów i czas odpowiedzi. Przejdź przez raporty w Search Console i Analytics: czy mapa strony generuje się prawidłowo, czy nie ma błędów 404 i pętli przekierowań.

Zweryfikuj ustawienia przyjaznych URL, kanonicznych odnośników, robot.txt i meta tagów. Upewnij się, że reguły 301 pozostały aktywne po zmianach w strukturze. Jeżeli adresy produktów lub kategorii uległy zmianie, przygotuj kompletne przekierowania i przetestuj je automatycznie (listą URL‑i krytycznych). Sprawdź mikrodane produktowe i walidację w Rich Results Test.

Wydajność i konfiguracja pamięci podręcznej

Włącz i dostrój mechanizmy buforowania: Smarty, kompresję i łączenie zasobów, CDN, a w razie potrzeby zewnętrzny storage mediów. Zadbaj o aktualne rozszerzenia i konfigurację PHP (OPcache), odpowiednie TTL dla reverse proxy oraz reguły nagłówków cache po stronie przeglądarki. Zmierz TTFB i czasy renderowania krytycznych widoków. Jeżeli po aktualizacji wydajność spadła, porównaj profilery i wyłącz zbędne moduły, które duplikują funkcje rdzenia.

Bezpieczeństwo i stabilizacja

Po aktualizacji zmień hasła do panelu i dostępu serwerowego, przejrzyj uprawnienia katalogów i politykę CORS. Sprawdź, czy listy kontroli dostępu w panelu działają poprawnie oraz czy logowanie dwuskładnikowe (jeżeli używasz) przetrwało zmianę wersji. Zaktualizuj polityki nagłówków bezpieczeństwa i monitoruj komunikaty o lukach z marketplace modułów. Wprowadź harmonogram regularnych uaktualnień i testów odtwarzania kopii.

Sprzątanie i porządkowanie projektu

Usuń pliki instalacyjne, nieużywane moduły i motywy, stare logi i zrzuty. Uporządkuj override’y, refaktoryzuj niestandardowe funkcje do modułów. Udokumentuj dokonane zmiany, problemy i rozwiązania, aby przy kolejnej aktualizacji skrócić czas i ryzyko. Przygotuj krótką instrukcję dla działu obsługi: co się zmieniło w panelu, gdzie szukać raportów, jak zgłaszać błędy. Zadbaj o usunięcie dostępu testowych kont i kluczy sandbox z produkcji.

Monitoring, alerty i wskaźniki biznesowe

Skonfiguruj monitoring dostępności i czasu odpowiedzi, alerty z logów i limitów zasobów. Ustal wskaźniki zdrowia: konwersja, porzucone koszyki, błędy płatności, drop w ruchu organicznym. Jeśli cokolwiek odbiega od normy po aktualizacji, wykorzystaj plan rollback i przejdź na staging, aby szybko powtórzyć testy i wprowadzić poprawki. Pamiętaj, że celem aktualizacji jest stabilny wzrost, a nie tylko liczba w wersji.

Checklisty i przykładowy harmonogram aktualizacji

Checklisty przed aktualizacją

  • Audyt wersji rdzenia, motywu i modułów; potwierdzona kompatybilność docelowej wersji.
  • Aktualne kopie: pliki i baza; sprawdzone odtworzenie na środowisku testowym.
  • Stworzone środowisko staging i zamrożone deploye funkcjonalne na czas operacji.
  • Zaplanowane okno serwisowe i komunikacja do klientów; tryb konserwacji przygotowany.
  • Podniesione limity serwera, zrobiony backup dodatkowy tuż przed startem.

Checklisty po aktualizacji

  • Pełne testy koszyka, płatności, wysyłki, dokumentów sprzedażowych, e‑maili.
  • Wyczyszczony cache, zregenerowane miniatury, przebudowany .htaccess i mapa strony.
  • Weryfikacja SEO (404/301), mikroformatów i indeksacji; brak blokady robotów.
  • Optymalizacja wydajności: Smarty, CCC, CDN, OPcache w PHP.
  • Zabezpieczenia: hasła, uprawnienia, nagłówki, odpięte testowe integracje.

Przykładowy harmonogram wdrożeniowy

Dzień 1–2: audyt, plan wersji, inwentaryzacja modułów i motywu, przygotowanie stagingu. Dzień 3: próba aktualizacji modułem AutoUpgrade na stagingu, naprawa konfliktów. Dzień 4: testy E2E, optymalizacje, dokumentacja. Dzień 5: wdrożenie na produkcji w oknie serwisowym, szybkie testy smoke, monitoring 24–48h. Dzień 7: porządki po wdrożeniu, wnioski i plan kolejnych kroków.

Wskazówka praktyczna: jeśli masz duży katalog i ruch, rozważ wykonanie aktualizacji w dwóch etapach: najpierw mniejsza wersja (np. do najnowszej w obrębie obecnej gałęzi), potem przeskok do docelowej. Minimalizuje to ryzyko kumulacji zmian w bazie oraz złożonych konfliktów motywu i modułów.

Uwaga o integralności danych: po migracji wykonaj spójnościowe zapytania kontrolne (liczba aktywnych produktów, wariantów, cen promocyjnych, stanów magazynowych), porównując wyniki z produkcją sprzed aktualizacji. W przypadku rozbieżności najpierw zidentyfikuj proces (migracja bazy, moduł synchronizujący, import), a dopiero potem rozważ częściowy rollback.

Stosując powyższy proces, przeprowadzisz aktualizację przewidywalnie i bezpiecznie, utrzymując spójność funkcji sklepu, osiągów i widoczności w wyszukiwarkach. Kluczowe są przygotowanie, testy na stagingu, kopie oraz świadomy wybór metody (1‑Click vs manualna). Dzięki temu nowa wersja będzie realnym krokiem naprzód, a nie ryzykownym eksperymentem.

< Powrót

Zapisz się do newslettera


Zadzwoń Napisz