# Kupon urodzinowy: dokumentacja modułu PrestaShop

> Wprowadzenie Moduł automatycznie wysyła klientom osobisty kod rabatowy przy trzech okazjach: w urodziny, w rocznicę pierwszego ważnego zamówienia i w rocznicę założenia konta. Każdy kod jest natywną regułą koszyka PrestaShop,…

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

## Wprowadzenie

Moduł automatycznie wysyła klientom osobisty kod rabatowy przy trzech okazjach: w urodziny, w rocznicę pierwszego ważnego zamówienia i w rocznicę założenia konta. Każdy kod jest natywną regułą koszyka PrestaShop, zarezerwowaną dla klienta i do jednorazowego użytku. Następnie moduł mierzy obrót zamówień złożonych z tymi kodami.

Zgodność: PrestaShop 8.0 do 9.x, multistore, 8 języków (angielski, francuski, hiszpański, niemiecki, włoski, niderlandzki, polski, portugalski).

## Instalacja

1. W **Moduły > Menedżer modułów** kliknij **Załaduj moduł** i wyślij plik ZIP.
2. Moduł tworzy dwie tabele, rejestruje swoje hooki, generuje token zadania cron i kopiuje szablony e-maili dla każdego zainstalowanego języka.
3. W menu **Klienci** pojawia się nowa zakładka **Urodziny i ważne daty**. Prowadzi do niej także przycisk **Konfiguruj** modułu.

Aby przejść z wersji 1.0.0 na 1.1.0, wystarczy wysłać nowy plik ZIP: skrypt aktualizacji zarejestruje nowe hooki.

Panel wyświetla listę „Pierwsze kroki”, dopóki nie zostaną wykonane cztery podstawowe kroki: włączenie kampanii, wysłanie do siebie testowego e-maila, zaplanowanie codziennego zadania i zbieranie dat urodzenia.

## Konfiguracja kampanii

Zakładka **Kampanie** zawiera jedną kartę na okazję. Włącz ją przełącznikiem w prawym górnym rogu: pojawią się ustawienia i podgląd e-maila.

### Oferta

- **Rodzaj rabatu**: procent, stała kwota (w walucie domyślnej) lub darmowa dostawa.
- **Wartość** oraz **Dodatkowo darmowa dostawa** do procentu lub kwoty.
- **Minimalna wartość zamówienia (z VAT)**: 0 oznacza brak minimum.
- **Ważność po dacie**: liczba dni ważności kodu od daty okazji.
- **Wyślij z wyprzedzeniem**: liczba dni przed datą. 0 wysyła w dniu okazji.
- **Wzrost za każdy kolejny rok** i **Wartość maksymalna** (rocznica zamówienia i konta): na przykład 10 % w pierwszym roku, +2 co roku, maksymalnie 20 %.
- **Wyklucz produkty już przecenione** i **Można łączyć z innymi kuponami**.

### Kto go otrzymuje

- **Minimalna liczba ważnych zamówień**: 0 przy urodzinach obejmuje klientów, którzy nigdy nie zamawiali.
- **Prefiks kodu**: na przykład BDAY daje kody w rodzaju BDAY-7KQ2M9.
- **Grupy klientów**: brak zaznaczenia oznacza wszystkie grupy.

### E-mail

Temat, nagłówek i treść edytujesz dla każdego języka w zakładkach językowych. Podgląd po prawej aktualizuje się na żywo z rzeczywistym rabatem. Dostępne znaczniki: `{firstname}`, `{lastname}`, `{discount}`, `{code}`, `{expiry_date}`, `{min_amount}`, `{years}` (poza urodzinami) i `{shop_name}`. Puste pole używa domyślnego tekstu języka.

Przycisk **Zapisz i wyślij test** wysyła e-mail na adres zalogowanego pracownika, w jego języku.

## Planowanie codziennej wysyłki

W **Automatyzacja i ustawienia** skopiuj adres URL zadania cron i wywołuj go raz dziennie, najlepiej wcześnie rano. Przykładowa linia cron:

```
0 7 * * * curl -s "https://twoj-sklep.pl/module/dfkeydates/cron?token=TWOJ_TOKEN" >/dev/null
```

Każde uruchomienie tworzy kody na dany dzień, wysyła e-maile i przypomnienia, łączy użyte kody z zamówieniami i usuwa wygasłe, nieużyte kody.

- **Nadrabianie pominiętych dni** (domyślnie 2): jeśli zadanie się nie uruchomiło, przetwarzane są daty z poprzednich dni.
- **Maksymalna liczba kodów na uruchomienie** (domyślnie 200): reszta zostanie wysłana przy następnym uruchomieniu.
- **Uruchamiaj także podczas wizyt**: bez crona moduł uruchamia się przy wizytach w sklepie, najwyżej raz na godzinę, po wysłaniu strony. Zatrzymuje się, gdy tylko w ciągu ostatnich 26 godzin zostanie wywołany prawdziwy cron.

Na tej samej stronie znajdują się przyciski **Symuluj dzisiaj** (lista kodów, które zostałyby wysłane, bez wysyłania), **Uruchom teraz**, **Ponownie zsynchronizuj użyte kody** i **Nowy token**.

Każdy klient otrzymuje najwyżej jeden kod na okazję i rok. Zadanie możesz więc uruchamiać wielokrotnie bez ryzyka duplikatów.

## Ochrona przed nadużyciami i zbieranie dat urodzenia

**Okres oczekiwania po rejestracji lub zmianie daty urodzin** (domyślnie 30 dni) blokuje kod urodzinowy dla konta zbyt nowego lub takiego, w którym data została właśnie wpisana albo zmieniona w sklepie. Zmiany wprowadzone przez pracownika w panelu administracyjnym nie uruchamiają tego okresu.

Daty urodzenia pochodzą z natywnego pola konta klienta (**Klienci > Ustawienia > Data urodzenia**). Jeśli to pole jest wyłączone, moduł zbiera je sam:

- na **stronie potwierdzenia zamówienia**, gdy data jest nieznana (opcja _Pytaj o datę urodzenia na stronie potwierdzenia zamówienia, jeśli jest nieznana_);
- na stronie **Moje prezenty i ważne daty** w koncie klienta.

Panel pokazuje odsetek kont ze znaną datą.

## Przypomnienie przed wygaśnięciem

Włącz przypomnienie i wybierz, ile dni przed wygaśnięciem ma zostać wysłane. Wychodzi tylko wtedy, gdy kod nie został użyty. Teksty przypomnienia i tekst przycisku wszystkich e-maili ustawia się dla każdego języka. Przycisk **Wyślij testowe przypomnienie** zapisuje ustawienia i wysyła Ci przykład.

## Kod jednym kliknięciem

Przycisk w każdym e-mailu prowadzi do podpisanego linku przypisanego do kodu. Moduł zapamiętuje kod i dodaje go do koszyka, gdy tylko klient się zaloguje i ma produkty w koszyku. Jeśli klient nie jest zalogowany, trafia na stronę logowania. Jeśli minimalna wartość zamówienia nie została osiągnięta, kod czeka i zostaje zastosowany, gdy tylko to nastąpi. Kod wygasły, już użyty lub przeznaczony dla innego klienta jest odrzucany z komunikatem.

## Strona klienta „Moje prezenty i ważne daty”

Dostępna z poziomu **Moje konto**, pokazuje aktywne kody z przyciskiem kopiowania i przyciskiem **Użyj w koszyku**, najbliższe ważne daty klienta, formularz daty urodzenia, poprzednie prezenty i pole rezygnacji z tych e-maili. Stronę można ukryć w ustawieniach.

## Statystyki i śledzenie obrotu

Zakładka **Pulpit** pokazuje dla wybranego okresu:

- **wygenerowany obrót** netto i brutto, liczony na ważnych zamówieniach, w których użyto kodu, przeliczony na walutę domyślną;
- **kody wysłane i użyte**, współczynnik konwersji i średnią wartość koszyka;
- **udzielony rabat** i zwrot (obrót podzielony przez rabat);
- **zamówienia bez kodu** złożone w okresie ważności kodu;
- wykres z 12 miesięcy, wyniki według okazji, wysyłki z najbliższych 30 dni i ostatnie zamówienia z kodem.

Obrót jest przypisywany do okresu wysłania kodu. Zakładka **Wysłane kody** zawiera wszystkie kody z wyszukiwarką, filtrami według okazji, statusu i daty, ponowną wysyłką e-maila dla aktywnego kodu i eksportem CSV. Karta klienta w panelu administracyjnym również pokazuje kody wysłane do tego klienta.

## Czyszczenie wygasłych kodów

Ustawienie **Usuwaj wygasłe, nieużyte kody po** (domyślnie 30 dni) usuwa odpowiadające im reguły koszyka, aby lista **Katalog > Rabaty** pozostała czytelna. Historia i statystyki modułu są zachowywane. Ustaw 0, aby nigdy nie usuwać.

## RODO

Moduł rejestruje się w oficjalnym module RODO PrestaShop. Eksport danych klienta obejmuje jego kody i preferencje, a usunięcie kasuje historię modułu dla tego klienta. Każdy klient może zrezygnować z tych e-maili w swoim koncie.

## Multistore

Kampanie i ustawienia są osobne dla każdego sklepu. Wybierz sklep w menu multistore, aby je edytować. Utworzone kody są ograniczone do danego sklepu.

## Najczęstsze pytania i rozwiązywanie problemów

### Nie jest wysyłany żaden kod

Sprawdź, czy włączona jest co najmniej jedna kampania, i użyj **Symuluj dzisiaj**. Jeśli lista jest pusta, żaden klient nie spełnia dziś kryteriów: nieznana data, trwający okres oczekiwania, grupa niewybrana, za mało zamówień lub klient, który zrezygnował.

### E-maile nie docierają

Wyślij testowy e-mail z kampanii. Jeśli nie dociera, sprawdź konfigurację poczty PrestaShop w **Zaawansowane > E-mail**. Kod, którego e-mail się nie powiódł, jest oznaczony na liście kodów i można go wysłać ponownie.

### Zamówienia brakuje w statystykach

Liczone są tylko ważne zamówienia. Jeśli zamówienie utworzył w panelu administracyjnym pracownik bez uprawnień do modułu, kliknij **Ponownie zsynchronizuj użyte kody**; codzienne zadanie robi to również automatycznie.
