# Popup Pro Newsletter: kompletny przewodnik

> Popup Pro Newsletter wyświetla w Twoim sklepie Shopware popup zapisu do newslettera, który nagradza każdego nowego subskrybenta kodem rabatowym ważnym na jego pierwsze zamówienie. Cel jest podwójny: powiększyć listę mailingową…

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

Popup Pro Newsletter wyświetla w Twoim sklepie Shopware popup zapisu do newslettera, który nagradza każdego nowego subskrybenta kodem rabatowym ważnym na jego pierwsze zamówienie. Cel jest podwójny: powiększyć listę mailingową i wywołać pierwszą sprzedaż. Plugin opiera się wyłącznie na **natywnym systemie promocji Shopware**: nie tworzy żadnej własnej encji w bazie danych. Oferuje dwa tryby kodu (unikalny per subskrybent albo stały), rabat konfigurowalny procentowo lub kwotowo, wyzwalacze po czasie i po przewinięciu strony oraz zapis przez oficjalną trasę newslettera z opcjonalnym double opt-in zgodnym z RODO. Ten przewodnik obejmuje instalację, konfigurację, działanie kodów rabatowych, personalizację i rozwiązywanie problemów. Zgodny z Shopware 6.6 i 6.7.

Storefront Shopware od wersji 6.6 nie kompiluje już JavaScriptu pluginów w locie. Instalowany ZIP **musi zawierać katalog dist/ z prekompilowanym JS**. ZIP dystrybuowany przez DataFirefly już go zawiera; jeśli budujesz plugin samodzielnie, przeczytaj uważnie sekcję Instalacja poniżej.

## Jak działa kod rabatowy

Przy pierwszym w ogóle zapisie odwiedzającego plugin tworzy automatycznie **promocję Shopware** o nazwie "Popup Newsletter, Welcome", przypisaną do bieżącego kanału sprzedaży, z rabatem zdefiniowanym w konfiguracji. Następnie przy każdym zapisie:

- w trybie **kodu unikalnego** (zalecanym) generowany jest w locie indywidualny kod, przypinany do promocji przez natywne _indywidualne kody promocyjne_ Shopware, a następnie zwracany odwiedzającemu: nie do udostępnienia, śledzalny i możliwy do ograniczenia do jednego użycia;
- w trybie **kodu stałego** promocja ma jeden publiczny kod (typu `WELCOME10`) wyświetlany wszystkim subskrybentom.

Promocja pozostaje w pełni sterowalna w **Marketing → Promocje**: okres ważności, warunki, reguły zaawansowane. Aby zarezerwować ofertę na całkiem pierwsze zamówienie, zostaw włączoną opcję "jedno użycie na klienta"; przy ostrzejszym targetowaniu dodaj regułę Shopware (na przykład "liczba zamówień klienta = 0") bezpośrednio na promocji.

## Instalacja

1. Pobierz archiwum `DataFireflyPopupProNewsletter-v1.0.0.zip` ze swojego konta DataFirefly.
2. Zainstaluj je przez **Administracja → Rozszerzenia → Moje rozszerzenia → Prześlij rozszerzenie** albo skopiuj rozpakowany katalog do `custom/plugins/`.
3. Zainstaluj i aktywuj plugin: ``` bin/console plugin:refresh bin/console plugin:install --activate DataFireflyPopupProNewsletter bin/console cache:clear ```
4. Skompiluj motyw, aby dołączyć style popupu: ``` bin/console theme:compile ```

`theme:compile` to czysty PHP: działa na hostingu współdzielonym. Natomiast **kompilacja JavaScriptu** (`build-storefront.sh`) wymaga Node'a i dużej ilości pamięci, więc nie nadaje się na współdzielony. Dlatego JS jest dostarczany prekompilowany w ZIP-ie: nigdy nie musisz uruchamiać builda na swoim serwerze produkcyjnym.

### Jeśli budujesz plugin samodzielnie

Na pełnej deweloperskiej instalacji Shopware JS kompiluje się tak:

```
bin/console plugin:refresh
bin/console plugin:install --activate DataFireflyPopupProNewsletter
bash bin/build-storefront.sh
```

Generuje to `src/Resources/app/storefront/dist/storefront/js/data-firefly-popup-pro-newsletter/data-firefly-popup-pro-newsletter.js`. Spakuj plugin ponownie **razem** z tym katalogiem `dist/` przed wdrożeniem na produkcję.

## Konfiguracja

Otwórz **Rozszerzenia → Moje rozszerzenia → Popup Pro Newsletter → ⋯ → Konfiguruj**. Ustawienia są zorganizowane w karty.

### Ogólne

- **Włącz popup**: włącza albo całkowicie wyłącza wyświetlanie.

### Wyświetlanie

- **Pokaż po czasie (sekundy)**: popup pojawia się po X sekundach. `0` wyłącza ten wyzwalacz.
- **Pokaż po przewinięciu (% strony)**: popup pojawia się po osiągnięciu tego procentu przewinięcia. `0` wyłącza ten wyzwalacz.
- **Nie pokazuj ponownie przez (dni)**: częstotliwość wyświetlania per odwiedzający, zapamiętywana po stronie przeglądarki.
- **Ukryj dla zalogowanych klientów**: nie wyświetla popupu klientom już zalogowanym.

Oba wyzwalacze (czas i przewinięcie) działają łącznie: popup wyświetla się, gdy zostanie osiągnięty _pierwszy_ z nich. Aby wyzwalać wyłącznie przewinięciem, ustaw czas na `0`, i odwrotnie.

### Treść

Tytuł, podtytuł, placeholder pola e-mail, tekst przycisku, komunikat sukcesu (użyj placeholdera `%code%`, aby wstawić kod), komunikat oczekiwania na potwierdzenie (double opt-in), opcjonalny adres URL ilustracji i kolor akcentu. Wszystkie te teksty są edytowalne i tłumaczalne.

### Kod rabatowy

- **Tryb kodu**: `unikalny` (zalecany) albo `stały`.
- **Kod stały / prefiks**: publiczny kod w trybie stałym albo prefiks kodów indywidualnych w trybie unikalnym.
- **Typ i wartość rabatu**: procent albo kwota stała, dowolna wartość.
- **Jedno użycie na klienta**: ogranicza promocję do jednego użycia, aby zarezerwować ofertę na pierwsze zamówienie.
- **Double opt-in**: wysyła e-mail potwierdzający przed wydaniem kodu.

## Double opt-in i RODO

Zapis przechodzi przez oficjalną trasę newslettera Shopware (`NewsletterSubscribeRoute`), co gwarantuje synchronizację z Twoimi istniejącymi odbiorcami. Gdy double opt-in jest włączony, odwiedzający otrzymuje swój kod dopiero po potwierdzeniu adresu e-mailem; w międzyczasie w popupie wyświetla się personalizowalny komunikat oczekiwania. Nie są używane żadne cookies firm trzecich: zapamiętanie "nie pokazuj ponownie" jest przechowywane po stronie przeglądarki przez `localStorage`.

Double opt-in jest zalecany dla zgodności z RODO: poświadcza wyraźną zgodę subskrybenta. Możesz go włączyć albo wyłączyć w dowolnym momencie w konfiguracji.

## Personalizacja popupu

Rendering jest wydzielony w `views/storefront/component/datafirefly/popup-newsletter.html.twig`, wstrzykiwanym z `views/storefront/base.html.twig` w bloku `base_body`. Aby zmienić strukturę popupu, nadpisz ten szablon w swoim motywie. Style znajdują się w `app/storefront/src/scss/base.scss`, a kolorem akcentu steruje zmienna CSS `--df-popup-accent`, zasilana przez ustawienie "kolor akcentu" z konfiguracji. Zachowaniem (wyzwalacze, AJAX, kopiowanie kodu) zarządza plugin storefrontu `PopupNewsletterPlugin`.

## FAQ i rozwiązywanie problemów

**Popup w ogóle się nie wyświetla.** W niemal wszystkich przypadkach oznacza to brak prekompilowanego JavaScriptu: sprawdź, czy zainstalowany ZIP zawiera katalog `dist/`, a następnie uruchom `theme:compile` i wyczyść cache. Zbadaj stronę: element `.df-popup-newsletter` powinien być obecny w DOM z atrybutem `hidden`, to JS go odsłania.

**Zamknąłem go raz i już nie wraca.** To zachowanie oczekiwane: plugin zapamiętuje zamknięcie na skonfigurowaną liczbę dni przez klucz `dfPopupNewsletterDismissedAt` w `localStorage`. Aby przetestować ponownie, otwórz okno przeglądania prywatnego albo wyczyść pamięć lokalną przeglądarki.

**Popup wyświetla się, ale bez stylów.** Motyw nie został przekompilowany: uruchom `bin/console theme:compile`.

**Kod nie jest stosowany w koszyku.** Sprawdź w **Marketing → Promocje**, czy promocja "Popup Newsletter, Welcome" jest aktywna, przypisana do właściwego kanału sprzedaży i mieści się w swoim okresie ważności. W trybie unikalnym sprawdź, czy kod indywidualny nie został już wykorzystany.

**Co dzieje się przy odinstalowaniu?** Promocja i już rozdane kody są celowo zachowywane, aby nie unieważniać kodów będących w obiegu u Twoich klientów. Usuń je ręcznie w Marketing → Promocje, jeśli zajdzie taka potrzeba.

**Czy plugin spowalnia mój sklep?** Nie: żadnej własnej encji, żadnego dodatkowego zapytania przy ładowaniu stron, jeden lekki plik JS i SCSS skompilowany w Twoim motywie.
