Jak włączyć tryb serwisowy w PrestaShop

Tryb utrzymaniowy to najprostszy sposób, by bezpiecznie pracować nad sklepem na PrestaShop bez narażania klientów na błędy, przerwane płatności czy niedokończone zamówienia. W kilku krokach ukryjesz front sklepu, wyświetlisz jasny komunikat o pracach i zapewnisz sobie dostęp tylko spod własnego adresu. Poniżej znajdziesz praktyczną instrukcję, która prowadzi przez metody w panelu, rozwiązania awaryjne oraz dobre praktyki wdrożeniowe. Dzięki temu włączysz tryb serwisowy szybko i bezpiecznie.

Czym jest tryb serwisowy i kiedy warto go włączać

Na czym polega tryb serwisowy

Tryb serwisowy w PrestaShop to mechanizm, który tymczasowo wyłącza publiczny dostęp do części sklepu dostępnej dla klientów. Z perspektywy użytkownika zewnętrznego strona sklepu przestaje działać „jak zwykle” i wyświetla stronę informującą o trwających pracach. W tle nadal możesz wejść na panel administracyjny, przygotowywać zmiany, aktualizować moduły i testować — o ile zadbasz o wpisanie swojego adresu IP na listę dozwolonych. Dobrze skonfigurowany tryb serwisowy pomaga także serwować prawidłowy status HTTP, tak aby roboty wyszukiwarek nie uznawały sklepu za trwale niedostępny.

Najczęstsze scenariusze użycia

  • Aktualizacja rdzenia sklepu do nowszej wersji lub wgrywanie poprawek bezpieczeństwa.
  • Wdrażanie nowej wersji motywu, zmian w CSS/JS, przebudowa szablonów lub refaktoryzacja modułów.
  • Migracja infrastruktury: zmiana serwera, wersji PHP, bazy danych lub dostawcy hostingu.
  • Usuwanie krytycznych awarii, np. błąd podczas finalizacji zamówienia, błędny moduł płatności lub integracji.
  • Operacje na katalogu produktów, przenumerowanie wariantów, masowe importy i czyszczenie danych.

Czego tryb serwisowy nie załatwia

Tryb serwisowy nie zatrzymuje każdej aktywności w systemie i poza nim. W szczególności:

  • Nie wstrzymuje zewnętrznych wywołań zwrotnych (callbacków) z bramek płatności ani webhooków integracji ERP/kurierów.
  • Nie zatrzymuje zaplanowanych zadań cyklicznych (cron), o ile nie wyłączysz ich osobno.
  • Nie blokuje bezpośredniego dostępu do zasobów statycznych (obrazy, CSS/JS) — te mogą być nadal serwowane z pamięci podręcznej przeglądarki lub CDN.

Dobre praktyki organizacyjne

  • Ustal okno serwisowe i poinformuj o nim klientów w komunikatach oraz na stronie serwisowej; zaproponuj czas powrotu.
  • Przygotuj listę kontrolną prac, z wyraźnym punktem „wyłączenie trybu serwisowego” na końcu.
  • Jeżeli to możliwe, pracuj na stagingu i wdrażaj zmiany transakcyjnie (krótkie okno cięcia), aby ograniczyć niedostępność.
  • Zadbaj o kopię bezpieczeństwa bazy i plików przed startem prac, aby móc szybko odtworzyć sklep.

Włączenie trybu serwisowego w panelu administracyjnym

PrestaShop 1.7 i 8.x — krok po kroku

Ścieżka w menu: Skonfiguruj → Parametry sklepu → Ogólne → zakładka Utrzymanie (Maintenance). W wersjach 1.7 i 8.x odnajdziesz tam przełącznik „Włącz sklep” oraz pola do ustawień strony technicznej.

  • Przełącz „Włącz sklep” na „Nie” — to aktywuje tryb serwisowy.
  • W polu „Dozwolone adresy IP” wpisz swój aktualny adres (oddzielaj przecinkami). Warto dodać także IP współpracowników.
  • Ustaw komunikat wyświetlany klientom: krótki, z informacją o przybliżonym czasie zakończenia, ewentualnie kontaktem do supportu.
  • Zapisz zmiany i przetestuj w oknie prywatnym przeglądarki, aby potwierdzić, że klient widzi stronę utrzymaniową.

W tym miejscu możesz wykorzystać kontekst sklepu, jeśli masz włączony tryb wielu sklepów. Zwróć uwagę, aby operować na właściwym kontekście (konkretny sklep, grupa sklepów lub wszystkie sklepy), bo ustawienie jest zapisywane per kontekst.

PrestaShop 1.6 — gdzie znaleźć ustawienia

Ścieżka: Preferencje → Utrzymanie. Funkcjonalnie działa to tak samo: ustaw „Włącz sklep” na „Nie”, wpisz dozwolone adresy IP, uzupełnij komunikat i zapisz. Po zapisaniu sprawdź, czy ewentualne systemy cache po stronie serwera lub CDN nie podają starej wersji strony.

Praca w trybie wielu sklepów

W środowiskach wielosklepowych (funkcja multistore) tryb serwisowy może być włączany selektywnie. Najczęstsze scenariusze:

  • Wyłącz tylko ten sklep, nad którym pracujesz (kontekst: pojedynczy sklep), aby reszta działała normalnie.
  • Wyłącz wszystkie sklepy w grupie, jeżeli wdrożenie dotyczy współdzielonych modułów lub wspólnego motywu.
  • Wyłącz globalnie (wszystkie sklepy), jeśli prace dotyczą wspólnego rdzenia, infrastruktury lub bazy.

Pamiętaj, że lista dozwolonych adresów IP jest również zapisywana per kontekst. Gdy przełączysz kontekst, upewnij się, że Twoje IP znajduje się na liście.

Wyłączenie trybu serwisowego po zakończeniu prac

  • Wróć do tego samego ekranu w panelu i ustaw „Włącz sklep” na „Tak”.
  • Sprawdź kilka stron kategorii i kart produktów w trybie incognito, wykonaj testowe zamówienie.
  • Wyczyść pamięć podręczną sklepu i ewentualnego reverse proxy/CDN.
  • Włącz z powrotem zadania CRON oraz integracje, jeśli były wstrzymane.

Na koniec warto rzucić okiem w logi błędów serwera i modułów płatności, aby od razu wychwycić ewentualne problemy po wznowieniu ruchu.

Dostęp tylko dla wybranych: lista dozwolonych IP i testowanie

Jak ustalić swój adres

Najprościej wejdź na serwis „what is my ip” lub podobny i skopiuj wyświetlony adres. Jeśli pracujesz przez VPN, to adres będzie odpowiadał wyjściu Twojego tunelu. W sieciach firmowych za NAT-em mogą zmieniać się adresy, dlatego dobrą praktyką jest stałe połączenie VPN na czas prac albo dodanie kilku adresów używanych przez zespół.

Dodawanie adresów i formaty

  • W polu dozwolonych adresów wpisuj je po przecinku: 203.0.113.4, 2001:db8::1.
  • PrestaShop nie interpretuje notacji CIDR (np. 203.0.113.0/24). Lepiej dodać pojedyncze adresy lub krótkie listy.
  • Pamiętaj o IPv6, jeśli Twoje łącze go używa — sprawdzisz to na stronie do wykrywania IP.

Testowanie widoku klienta i administratora

  • Otwórz sklep w trybie incognito lub inną przeglądarką bez zalogowania do panelu — powinieneś zobaczyć stronę utrzymaniową.
  • Otwórz sklep normalnie (z tego samego miejsca), powinieneś widzieć pełen front dzięki temu, że Twój adres jest dozwolony.
  • Przetestuj także z sieci komórkowej — telefony często mają inne adresy niż Twoje biuro.

Najczęstsze problemy z IP

  • Zmieniające się IP dostawcy internetu — w trakcie dłuższych prac pojawi się inny adres i stracisz dostęp. Rozwiązanie: VPN ze stałym adresem lub szybka aktualizacja listy.
  • Praca przez proxy lub serwer pośredniczący — serwer może widzieć inny adres niż Twój komputer. Wtedy dodaj adres wyjściowy proxy.
  • Kolidujące ustawienia Varnish/Nginx — pamięć pośrednia może podawać wcześniej wyrenderowaną stronę. Wyczyść warstwę pośrednią lub chwilowo ją wyłącz.

Metody alternatywne i awaryjne (plik, baza, .htaccess)

Zmienianie ustawień bez panelu: baza danych

Gdy panel administracyjny jest niedostępny, możesz przełączyć sklep w tryb serwisowy bezpośrednio w bazie danych. W tabeli konfiguracji znajdziesz klucz odpowiedzialny za włączenie/wyłączenie sklepu. W typowych instalacjach jest to PS_SHOP_ENABLE ustawiany na 0 (wyłącz) lub 1 (włącz). Po zmianie odśwież stronę i sprawdź nagłówki odpowiedzi. W tej samej konfiguracji przechowywane są wpisy dozwolonych adresów: PS_MAINTENANCE_IP (lista rozdzielona przecinkami). Pamiętaj o wykonaniu kopii zapasowej przed edycją.

Wymuszanie strony serwisowej po stronie serwera

Jeśli chcesz mieć absolutną pewność, że nikt nie ominie strony utrzymaniowej, możesz skonfigurować serwer www, by zwracał odpowiedź tymczasowej niedostępności dla całego hosta, z wyjątkiem Twojego adresu. W środowiskach Apache sprawdzi się reguła w pliku .htaccess; w Nginx odpowiedni blok serwera. Taka konfiguracja pozwala także dołączyć nagłówek Retry-After oraz prawidłowy status 503, co jest korzystne dla wyszukiwarek. Pamiętaj, aby dodać wyjątki dla adresów potrzebnych do testów oraz panelu.

Atomic deploy i przerwy techniczne przy wdrożeniach

W rozbudowanych projektach zamiast długiego trybu utrzymaniowego stosuje się wdrożenia atomowe: przygotowujesz nową wersję sklepu w osobnym katalogu lub na osobnym serwerze, a na koniec przepinasz symboliczne łącze katalogu publicznego. Mimo to krótka strona serwisowa na 1–2 minuty bywa wskazana, zwłaszcza jeśli trzeba wykonać migracje bazy. W takim scenariuszu użyj serwera do serwowania prostej strony 503 i wykluczenia Twojego adresu.

Integracje zewnętrzne i wstrzymanie zadań

Pamiętaj o integracjach: API kurierów, ERP, marketplace’y, porównywarki cen. Część systemów może próbować pobierać feedy lub wywoływać webhooki w trakcie prac, co kończy się błędami po ich stronie. Jeżeli to możliwe, chwilowo wstrzymaj wysyłkę feedów, generowanie plików XML i synchronizację, a po zakończeniu uruchom pełną synchronizację wyrównującą.

Kopia zapasowa i odtworzenie

Przed wejściem w tryb serwisowy zrób backup bazy oraz plików. Jeżeli po wznowieniu ruchu pojawią się krytyczne błędy, szybki rollback do stabilnej wersji (z dobrze nazwanymi snapshotami) jest najprostszym sposobem przywrócenia sprzedaży. Dopiero potem spokojnie analizuj logi i różnice między wersjami.

Dobre praktyki: SEO, statusy, pamięć podręczna i personalizacja

Sygnalizowanie niedostępności wyszukiwarkom

Prawidłowy status odpowiedzi dla strony serwisowej to 503 Service Unavailable. Dzięki temu roboty wyszukiwarek zrozumieją, że przerwa jest tymczasowa i wrócą później. Jeśli to możliwe, dodaj nagłówek Retry-After (np. w minutach lub jako datę RFC1123). To odciąża indeks i chroni pozycje w wynikach. Zadbaj też o to, by strona serwisowa nie była indeksowana jako normalna treść — nie powinna zwracać 200 OK. To drobne rzeczy, ale znaczą dla SEO.

Robots i mapy witryny

Nie zmieniaj globalnie pliku robots.txt, jeśli przerwa jest krótka. Lepszy jest 503 niż nagłe blokowanie całego serwisu, które bywa zapominane i zostaje na dłużej. Jeżeli plik sitemap nadal jest serwowany, może zwracać 503 w trakcie prac — to akceptowalne. Po wznowieniu ruchu upewnij się, że sitemap generuje się poprawnie i odśwież ją w narzędziach dla webmasterów.

Pamięć podręczna i CDN

Nawet idealnie włączony tryb serwisowy nie pomoże, jeśli ruch użytkowników trafia w stare kopie zasobów. Wyczyść pamięć podręczną sklepu oraz warstwy pośrednie. W PrestaShop 1.7/8 usuń katalogi produkcyjne w var/cache/prod po stronie serwera (bez dotykania innych plików) lub użyj przycisku w panelu zaawansowanych ustawień. W 1.6 wyczyść kompilacje Smarty i pamięć podręczną modułów. Jeżeli korzystasz z CDN, włącz tryb Development/BYPASS, aby ominąć warstwę i widzieć bieżące zmiany. W ustawieniach CDN sprawdź, czy błędy 503 są przepuszczane do klienta, a nie zastępowane stroną własną dostawcy. Dla popularnego CDN, jak Cloudflare, możesz użyć reguł stron, aby na czas prac ominąć cache dla całej domeny lub jej części.

Personalizacja strony utrzymaniowej

Domyślna strona serwisowa jest poprawna technicznie, ale warto ją dopracować komunikacyjnie. Podaj przewidywany czas zakończenia, kontakt do wsparcia, linki do social mediów oraz krótkie wyjaśnienie, dlaczego prace są prowadzone. Wersje językowe powinny być zgodne z językami sklepu.

  • W PrestaShop 1.7/8 szablon strony znajduje się w themes/nazwa_motywu/templates/errors/maintenance.tpl. Możesz dziedziczyć po motywie klasycznym i nadpisać tylko sekcję treści.
  • W PrestaShop 1.6 ścieżka to themes/nazwa_motywu/maintenance.tpl. Upewnij się, że nie usuwasz hooków i standardowych bloków, które odpowiadają za styl.
  • Teksty edytuj w tłumaczeniach w panelu, aby zachować spójność językową i możliwość aktualizacji bez konfliktów w plikach.
  • Zadbaj o wagi zasobów: strona serwisowa powinna być lekka, aby ładowała się nawet przy problemach z infrastrukturą.

Kontrola po wznowieniu działania

Gdy wyłączysz tryb serwisowy, monitoruj krytyczne wskaźniki: czas generowania stron, wskaźnik błędów 5xx, porzucone koszyki, problemy z płatnościami. Przejrzyj logi serwera i modułów po kilku minutach oraz po godzinie od wznowienia. Jeżeli korzystasz z APM, ustaw krótkotrwałe ostrzeżenia na skoki błędów. Jeżeli zmieniałeś ustawienia pamięci podręcznej, przywróć je do docelowych — dobrze skonfigurowany cache szybko ustabilizuje wydajność pod ruchem.

< Powrót

Zapisz się do newslettera


Zadzwoń Napisz