# DataFirefly Advent Calendar: kalendarz adwentowy dla PrestaShop

> Instalacja Zainstaluj moduł w Moduły > Menedżer modułów > Załaduj moduł, wysyłając plik ZIP, lub skopiuj folder dfadventcalendar do katalogu /modules/ sklepu i kliknij Instaluj. Instalacja tworzy tabele modułu, rejestruje…

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

## Instalacja

Zainstaluj moduł w **Moduły > Menedżer modułów > Załaduj moduł**, wysyłając plik ZIP, lub skopiuj folder `dfadventcalendar` do katalogu `/modules/` sklepu i kliknij Instaluj.

Instalacja tworzy tabele modułu, rejestruje jego hooki i dodaje zakładkę **Katalog > Rabaty > Kalendarz adwentowy**. Obrazy przesłane do okienek są zapisywane w `/img/dfadventcalendar/`, poza folderem modułu, dzięki czemu przetrwają aktualizację.

## Ustawienia modułu i zadanie cron

Strona konfiguracji modułu (przycisk Konfiguruj w menedżerze modułów) zawiera trzy ustawienia i adres cron.

### Adres strony

Ostatnia część adresu URL kalendarza, wspólna dla wszystkich języków (PrestaShop dodaje prefiks języka, na przykład /en/). Wartość domyślna zależy od głównego języka sklepu: `/kalendarz-adwentowy` po polsku, `/advent-calendar` po angielsku, `/adventskalender` po niemiecku. Przyjazne adresy URL muszą być włączone w PrestaShop.

### Codzienne przypomnienie: zadanie cron

E-maile z przypomnieniem są wysyłane przez zadanie cron. Skopiuj wyświetlony adres i zaplanuj go co 15 minut w panelu hostingu, na przykład:

```
*/15 * * * * curl -s "https://www.twoj-sklep.pl/module/dfadventcalendar/cron?token=TWOJ_TOKEN" > /dev/null
```

Przy każdym wywołaniu moduł wysyła przypomnienia na dany dzień od godziny ustawionej w kalendarzu, partiami (domyślnie 150, zmiana w „Przypomnienia na uruchomienie cron”). Każdy uczestnik dostaje najwyżej jedno przypomnienie dziennie i tylko wtedy, gdy nie otworzył jeszcze dzisiejszego okienka. Data ostatniego uruchomienia jest widoczna pod adresem; „Wygeneruj nowy token cron” unieważnia poprzedni adres.

Kalendarz działa bez crona. Zależą od niego tylko e-maile z przypomnieniem. Panel pokazuje alert, jeśli cron nie działał przez ostatnie 24 godziny.

## Tworzenie kalendarza

Otwórz **Katalog > Rabaty > Kalendarz adwentowy** i kliknij **Nowy kalendarz**.

### Daty i okienka

- **Data pierwszego okienka**: okienko 1 otwiera się o północy tego dnia, w strefie czasowej sklepu, a potem jedno okienko dziennie.
- **Liczba okienek**: 24 dla klasycznego kalendarza, 25 z dniem Bożego Narodzenia, od 1 do 31.
- **Zezwalaj na otwieranie minionych okienek**: uczestnik, który przegapił dzień, może nadrobić okienko do końca kalendarza.

Po zapisaniu moduł tworzy puste okienka. Pozostają zamknięte, dopóki ich nie skonfigurujesz i nie aktywujesz.

### Wygląd

Dostępnych jest pięć motywów: Las jodłowy, Papier kraft, Szron, Zimowa noc i Laska cukrowa. Opcja **Własne kolory** włącza cztery kolory (tło, tekst, okienka, akcent). Możesz dodać obraz tła (JPG, PNG lub WebP, maks. 5 MB), padający śnieg, wymieszane okienka i różne rozmiary okienek.

Przy różnych rozmiarach moduł sam decyduje, które okienka są szerokie lub duże, aby siatka wypełniała się bez luk na 6, 4 lub 3 kolumny w zależności od ekranu. Ostatnie okienko jest zawsze największe.

### Udział

- **E-mail wymagany do otwierania okienek**: gdy wyłączone, odwiedzający otwierają swobodnie, ale kody osobiste pozostają dla zapisanych.
- **Potwierdzenie adresu e-mail** (double opt-in): uczestnik klika link otrzymany e-mailem przed otwarciem okienek. Zalecane przeciw fałszywym adresom.
- **Pole newslettera**: dodaje opcjonalne, niezaznaczone pole. Zapis odbywa się przez natywny newsletter klienta lub moduł ps_emailsubscription, jeśli jest zainstalowany.
- **Tekst zgody**: wyświetlany obok obowiązkowego pola. Dodaj link do polityki prywatności.

### Przypomnienia

Włącz **Codzienny e-mail z przypomnieniem** i wybierz **Godzinę przypomnienia**. Uczestnik może wyłączyć przypomnienia na stronie kalendarza lub linkiem w każdym e-mailu.

### Baner na stronie głównej

Baner wyświetla się na stronie głównej w czasie trwania kalendarza oraz, jeśli chcesz, kilka dni wcześniej z odliczaniem. Aby umieścić go w innym miejscu motywu, dodaj `{hook h='displayDfAdventCalendar'}` do szablonu.

## Konfiguracja okienek

W panelu kalendarza kliknij **Okienka**, a następnie Edytuj przy każdym okienku.

### Typy okienek

- **Wiadomość**: tekst i obraz.
- **Kod rabatowy**: kod jest wyróżniony w oknie otwarcia.
- **Odsłonięty produkt**: karta produktu z ceną i przyciskiem dodania do koszyka. Wyszukaj produkt po nazwie lub indeksie.

Pole **Zapowiedź w e-mailu z przypomnieniem** to zdanie wysyłane w dzisiejszym przypomnieniu: zachęć do kliknięcia, nie zdradzając niespodzianki.

### Nagroda

Rabat procentowy, rabat kwotowy (brutto, waluta domyślna), darmowa dostawa lub produkt gratis, z opcjonalną minimalną kwotą zamówienia. W okienku z produktem opcja „Zastosuj rabat tylko do odsłoniętego produktu” ogranicza kod do tego produktu.

### Rodzaj kodu

- **Kod osobisty**: jednorazowa reguła koszyka jest generowana, gdy uczestnik otwiera okienko. Jest powiązana z jego kontem klienta, jeśli jest znane, i ważna do północy w dniu otwarcia plus wybrana dodatkowa ważność.
- **Ten sam kod dla wszystkich**: jedna reguła koszyka na okienko, tworzona i synchronizowana przez moduł. Pozostaw pole puste, aby otrzymać kod automatyczny (prefiks, rok i numer okienka, na przykład `ADVENT26-07`), lub wpisz własny. Ważność liczy się od daty okienka.

Brak czasu na 24 okienka? W panelu przycisk **Wypełnij puste okienka** stosuje gotowy plan: na zmianę od 10 do 20 procent rabatu i darmowa dostawa, 25 procent w ostatnim okienku, kody osobiste ważne o dzień dłużej. Teksty są pisane we wszystkich językach sklepu. Już skonfigurowane okienka nie są zmieniane.

## Podgląd przed startem

Przycisk **Podgląd** w panelu otwiera kalendarz tak, jak będzie wyglądał wybranego dnia, a ikona oka w każdym wierszu otwiera bezpośrednio okienko tego dnia. W podglądzie kody są przykładowe i nic nie jest zapisywane. Strona nie jest indeksowana.

**Więcej > Wyślij mi e-maile testowe** wysyła trzy e-maile (przypomnienie, powitanie, potwierdzenie) do zalogowanego pracownika, w jego języku.

## Co widzi klient

- Odliczanie do następnego okienka i, dla uczestników, pasek postępu.
- Wyróżnione dzisiejsze okienko. Okienka otwierają się w 3D, za pierwszym razem z konfetti. Animacje są wyłączone dla odwiedzających, którzy proszą o mniej ruchu.
- Przycisk **Dodaj do mojego koszyka** pod każdym kodem. Gdy koszyk jest pusty, kod jest zapamiętywany na 14 dni i stosowany z pierwszym dodanym produktem.
- Podsumowanie **Twoje kody** pod siatką, z ważnością każdego kodu i jego statusem (wykorzystany, wygasły).
- Przycisk udostępniania kalendarza i link w koncie klienta.

Zapisany już uczestnik, który ponownie wpisze swój adres, otrzymuje link logowania e-mailem: moduł nigdy nie loguje nikogo wyłącznie na podstawie wpisanego adresu.

## Losowanie finałowe

W ustawieniach kalendarza pole **Losowanie finałowe** określa minimalną liczbę otwartych okienek potrzebną do udziału (0 wyłącza losowanie), a **Nagroda w losowaniu finałowym** opisuje nagrodę pokazywaną w kalendarzu.

Panel Losowanie finałowe pokazuje liczbę uprawnionych uczestników. **Wylosuj zwycięzcę** wybiera losowo spośród uprawnionych potwierdzonych uczestników, z pominięciem wcześniejszych zwycięzców. Każde losowanie jest zapisywane z e-mailem, liczbą otwartych okienek, liczbą uprawnionych i datą.

Losowanie nagród podlega przepisom o konkursach i loteriach promocyjnych. Opublikuj regulamin w sklepie przed startem.

## Panel i statystyki

Panel pokazuje uczestników, potwierdzonych, aktywne przypomnienia, zapisy do newslettera, zamówienia złożone z kodem i przychód netto. Dla każdego okienka: otwarcia, zamówienia i przychód. Uczestników można wyeksportować do CSV z listy Uczestnicy.

**Więcej > Powiel na następny rok** kopiuje kalendarz z okienkami, tekstami i obrazami, przesuwa datę o rok i zostawia go nieaktywnym, bez uczestników i kodów.

Jeśli w sklepie jest Google Tag Manager, moduł wysyła do `dataLayer` zdarzenia: `dfadv_join`, `dfadv_door_open`, `dfadv_code_copy`, `dfadv_code_apply` i `dfadv_share`.

## E-maile

Trzy szablony są dostarczone w ośmiu językach w `mails/`: `dfadvent_reminder` (przypomnienie), `dfadvent_confirm` (potwierdzenie i link logowania) oraz `dfadvent_welcome` (powitanie). Aby je dostosować bez utraty zmian przy aktualizacji, skopiuj je do `themes/twoj-motyw/modules/dfadventcalendar/mails/`.

## Dane osobowe

- Pole zgody jest obowiązkowe, pole newslettera jest osobne i niezaznaczone.
- Każdy e-mail z przypomnieniem zawiera link wypisania jednym kliknięciem.
- Adres IP jest przechowywany wyłącznie jako hasz, aby ograniczyć zapisy do 5 na godzinę z jednego połączenia.
- Moduł obsługuje żądania eksportu i usunięcia danych osobowych PrestaShop.

## Rozwiązywanie problemów

### Przypomnienia nie są wysyłane

Sprawdź datę ostatniego uruchomienia crona w konfiguracji modułu, czy przypomnienia są włączone w kalendarzu i czy godzina przypomnienia już minęła. Przypomnienie otrzymują tylko potwierdzeni uczestnicy, którzy nie otworzyli jeszcze dzisiejszego okienka. Przetestuj wysyłkę opcją „Wyślij mi e-maile testowe”.

### Strona kalendarza zwraca błąd 404

Sprawdź, czy przyjazne adresy URL są włączone, i wyczyść pamięć podręczną PrestaShop. Jeśli adres koliduje ze stroną CMS lub kategorią, zmień go w konfiguracji modułu.

### Kod nie trafia do koszyka

Wyświetlany komunikat pochodzi z PrestaShop: nieosiągnięta minimalna kwota, wygasły kod lub kod osobisty powiązany z kontem klienta, gdy klient jest wylogowany. W tym ostatnim przypadku kod czeka i zostaje zastosowany w kolejnym koszyku po zalogowaniu.

### Okienko pozostaje zamknięte w swoim dniu

Okienka otwierają się o północy w strefie czasowej sklepu (Międzynarodowy > Lokalizacja > Konfiguracja). Sprawdź też, czy okienko jest aktywne: nieskonfigurowane okienko pozostaje zamknięte.

## Zgodność

- PrestaShop od 8.0 do 9.x, jeden ZIP dla obu wersji.
- Motywy Classic, Hummingbird i motywy potomne.
- Multisklep i wielojęzyczność.
- Architektura ModuleAdminController, bez zależności Composer.
- Moduł przetłumaczony na angielski, francuski, hiszpański, niemiecki, włoski, niderlandzki, polski i portugalski.
