# Tryb Konserwacji i Coming Soon: kompletny przewodnik

> Tryb Konserwacji i Coming Soon (dfmaintenancepro) wyświetla zaprojektowaną stronę oczekiwania nieautoryzowanym odwiedzającym: odliczanie, zbieranie e-maili, dostęp testerów po IP lub tokenie i soft launch per kraj, bez włączania natywnego trybu…

- Strona: <https://www.datafirefly.com/pl/documentation/dfmaintenancepro/>
- Język: pl
- Zaktualizowano: 2026-07-30
- Inne języki: [fr](https://www.datafirefly.com/documentation/dfmaintenancepro/index.md), [en](https://www.datafirefly.com/en/documentation/dfmaintenancepro/index.md), [es](https://www.datafirefly.com/es/documentation/dfmaintenancepro/index.md), [de](https://www.datafirefly.com/de/documentation/dfmaintenancepro/index.md), [it](https://www.datafirefly.com/it/documentation/dfmaintenancepro/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfmaintenancepro/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfmaintenancepro/index.md)
- Indeks: <https://www.datafirefly.com/pl/documentation/llms.txt>

Tryb Konserwacji i Coming Soon (`dfmaintenancepro`) wyświetla zaprojektowaną stronę oczekiwania nieautoryzowanym odwiedzającym: odliczanie, zbieranie e-maili, dostęp testerów po IP lub tokenie i soft launch per kraj, bez włączania natywnego trybu konserwacji PrestaShop. Sklep pozostaje technicznie online: zaplecze, webhooki płatności i zadania zaplanowane działają normalnie.

## Instalacja

1. W panelu administracyjnym otwórz **Moduły > Menedżer modułów > Zainstaluj moduł**.
2. Wgraj archiwum `dfmaintenancepro.zip` i kliknij **Zainstaluj**.
3. Kliknij **Konfiguruj**, aby otworzyć panel modułu.

Instalacja tworzy tabelę `dfmp_subscriber` (zebrane e-maile), rejestruje ukrytą zakładkę „Subscribers" i automatycznie generuje unikalny token dostępu. Żaden override nie jest instalowany: moduł opiera się wyłącznie na hooku `actionDispatcherBefore`.

Po instalacji moduł jest domyślnie wyłączony: spokojnie skonfiguruj stronę, obejrzyj podgląd, a następnie włącz ją we właściwym momencie.

## Panel informacyjny

U góry strony konfiguracji panel podsumowuje najważniejsze:

- **Status**: zielona odznaka „ACTIVE", gdy strona jest serwowana odwiedzającym, neutralna w przeciwnym razie.
- **URL testera**: link `https://twojsklep.com/?dfmp_token=XXXX` do udostępnienia: zapisuje cookie dostępu w przeglądarce testera.
- **Wygeneruj token ponownie**: natychmiast unieważnia wszystkie już przyznane cookies dostępu.
- **Podgląd**: pokazuje stronę konserwacji nawet przy wyłączonym module (parametr `dfmp_preview`).
- **Zebrane e-maile**: bezpośredni dostęp do listy zapisanych z ich liczbą.

## Konfiguracja ogólna

- **Włącz stronę konserwacji**: główny przełącznik. Po włączeniu wszyscy nieautoryzowani odwiedzający widzą stronę oczekiwania.
- **Tryb**: „Coming soon (przed startem)" lub „Konserwacja (tymczasowa niedostępność)". Ten wybór zmienia tylko odznakę na stronie; zachowanie SEO ustawia się w sekcji SEO.
- **Data startu**: format `RRRR-MM-DD GG:MM`, strefa czasowa serwera. Zasila odliczanie i nagłówek `Retry-After`.
- **Pokaż odliczanie**: licznik dni/godzin/minut/sekund ukrywa się automatycznie po osiągnięciu daty.

## Dostęp testowy (IP i token)

### Biała lista IP

Jeden wpis na linię (lub rozdzielone przecinkami). Akceptowane są trzy formaty:

- Dokładne adresy IPv4 lub IPv6: `82.64.12.7`
- Zakresy CIDR: `192.168.1.0/24` lub `2001:db8::/32`
- Wildcardy IPv4: `192.168.1.*`

### Link testera z tokenem

Udostępnij URL widoczny w panelu informacyjnym. Przy otwarciu w przeglądarce testera zapisywane jest cookie podpisane HMAC SHA-256 na skonfigurowany czas (domyślnie 72 godziny): następnie porusza się po prawdziwym sklepie jak gdyby nigdy nic. Pole **Czas ważności cookie dostępu** kontroluje tę ważność.

Link wyciekł? Kliknij „Wygeneruj token ponownie": token się zmienia, a wszystkie już zapisane cookies stają się natychmiast nieważne.

### Webhooki płatności

Opcja **Zezwól na kontrolery front modułów** (włączona domyślnie) przepuszcza wszystkie żądania `fc=module`: IPN i callbacki płatności (PayPal, Stripe itd.) nigdy nie są blokowane, nawet w trakcie konserwacji.

Pracownicy zalogowani do zaplecza zawsze widzą prawdziwy sklep, bez żadnej konfiguracji: wystarczy sesja admina.

## Soft launch per kraj

Ten tryb zamienia stronę oczekiwania w narzędzie stopniowego startu:

1. Włącz **Soft launch**.
2. Wpisz dozwolone **kody krajów ISO 3166-1 alpha-2**, rozdzielone przecinkami: `PL,DE,CZ,SK`.
3. Wybierz zachowanie dla **kraju nieokreślonego**: pokaż stronę konserwacji (domyślnie, ostrożnie) lub wpuść.

Wykrywanie kraju przebiega w tej kolejności:

1. Nagłówki geolokalizacji CDN: `CF-IPCountry` (Cloudflare), `CloudFront-Viewer-Country` (AWS), `X-Vercel-IP-Country`, `X-Geoip-Country` (nginx).
2. Baza GeoLite2 PrestaShop, jeśli geolokalizacja jest skonfigurowana w **Ustawienia międzynarodowe > Geolokalizacja**.

Bez CDN i bazy GeoLite2 kraju nie da się określić: wszyscy odwiedzający podlegają wtedy regule „kraj nieokreślony". Sprawdź konfigurację przed włączeniem soft launchu na produkcji.

## Treść i design

- **Tytuł, podtytuł, wiadomość**: tłumaczone język po języku przez flagi; wiadomość akceptuje prosty HTML.
- **Logo**: bezwzględny URL obrazu (zalecane PNG/SVG). Gdy puste, wyświetla się nazwa sklepu jako tekst.
- **Kolory**: tło, akcent (odliczanie, przycisk, odznaka) i tekst, przez selektory kolorów.
- **Media społecznościowe**: Facebook, Instagram, X, LinkedIn, YouTube: uzupełnij tylko te do pokazania, ikony SVG są wbudowane.
- **Własny CSS**: wstrzykiwany na końcu stylów, aby dostroić wszystko precyzyjnie.

Wygenerowana strona jest w 100% autonomiczna: CSS i JavaScript inline, żadnych zewnętrznych fontów ani skryptów, żadnych zewnętrznych żądań. Respektuje `prefers-reduced-motion` i dostosowuje się do mobile.

Używaj przycisku „Podgląd strony konserwacji" przy każdej zmianie: działa przy wyłączonym module, więc projektujesz bez ryzyka przed aktywacją.

## Zbieranie e-maili

- **Włącz zbieranie**: pokazuje formularz pod odliczaniem.
- **Placeholder, etykieta przycisku, komunikat sukcesu, informacja RODO**: wszystko tłumaczone per język.

Formularz działa w AJAX z niewidocznym polem honeypot neutralizującym boty. Każdy zapis rejestruje e-mail, język, wykryty kraj, IP i datę, z unikalnością per adres i per sklep.

### Lista zapisanych i eksport CSV

Z panelu informacyjnego otwórz **Zebrane e-maile**: lista filtruje się po kolumnach, sortuje, czyści masowo i eksportuje do CSV przyciskiem **Export CSV**, gotowa do importu do narzędzia e-mailingowego w dniu startu.

## SEO

- **Kod HTTP 503** (zalecany): sygnalizuje Google tymczasową niedostępność. Nagłówek `Retry-After` jest liczony z czasu pozostałego do daty startu (ograniczony do 7 dni); bez przyszłej daty używana jest wartość pola **Retry-After**.
- **Kod HTTP 200**: dla trwałej, indeksowalnej strony coming soon.

W każdym przypadku strona wysyła znacznik `noindex, nofollow` i nagłówki `no-cache`: katalog pozostaje zaindeksowany, strona oczekiwania nie.

## Działanie techniczne

Przy każdym żądaniu front moduł ocenia autoryzacje w tej kolejności i przepuszcza przy pierwszym sukcesie:

1. Pracownik zalogowany do zaplecza (cookie `psAdmin`).
2. Poprawny parametr `dfmp_token` w URL (zapisuje cookie dostępu).
3. Wciąż ważne podpisane cookie dostępu.
4. IP obecne na białej liście.
5. Dozwolony kraj, jeśli soft launch jest aktywny.

W przeciwnym razie renderowana jest strona konserwacji, a wykonanie zatrzymuje się przed kontrolerem front. Multisklep: konfiguracja i lista zapisanych są odrębne dla każdego sklepu.

## Rozwiązywanie problemów

- **Wciąż widzę sklep mimo aktywnego modułu**: prawdopodobnie jesteś zalogowany do zaplecza w tej samej przeglądarce albo cookie dostępu jest wciąż ważne. Przetestuj w trybie prywatnym.
- **Tester widzi stronę konserwacji mimo linku z tokenem**: token mógł zostać wygenerowany ponownie po wysłaniu linku; prześlij ponownie URL z panelu informacyjnego.
- **Soft launch blokuje wszystkich**: brak nagłówków CDN i bazy GeoLite2: kraj jest nieokreślony, a domyślna reguła blokuje. Przełącz „Kraj nieznany" na „Zezwól" albo skonfiguruj geolokalizację.
- **Odliczanie się nie pojawia**: sprawdź, czy data startu ma format `RRRR-MM-DD GG:MM` i leży w przyszłości.
- **Deinstalacja**: usuwa tabelę zapisanych: wyeksportuj CSV wcześniej, jeśli chcesz zachować adresy.
