# Social Proof: powiadomienia o zakupach i odwiedzający na żywo

> Prezentacja Moduł Social Proof: powiadomienia o zakupach i odwiedzający na żywo dodaje na kartach produktów dwa mechanizmy budujące zaufanie: dyskretne powiadomienia o ostatnich zakupach („Anna K. kupiła ten produkt 2…

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

## Prezentacja

Moduł **Social Proof: powiadomienia o zakupach i odwiedzający na żywo** dodaje na kartach produktów dwa mechanizmy budujące zaufanie: **dyskretne powiadomienia o ostatnich zakupach** („Anna K. kupiła ten produkt 2 godz. temu") oraz **odznakę odwiedzających na żywo** („12 osób ogląda ten produkt").

Jego wyróżnikiem jest podejście **etyczne i zgodne z RODO już na poziomie projektu**: wyświetla wyłącznie **zamówienia rzeczywiście złożone** w Twoim sklepie oraz **odwiedzających rzeczywiście obecnych**. Nigdy niczego nie wymyśla. Anonimizacja jest wykonywana **po stronie serwera** przed jakąkolwiek wysyłką do przeglądarki, czasy są zaokrąglane, żadne surowe dane klienta nie są ujawniane, a moduł nie zapisuje **żadnego cookie**.

Zgodny z PrestaShop od 8.0 do 9.x, obsługuje tryb wielosklepowy i wiele języków (w zestawie tłumaczenia FR, EN, ES, DE, IT), bez Composera i bez jQuery. Jeśli nie ma ostatnich zamówień albo odwiedzających jest za mało, moduł po prostu nic nie wyświetla.

## Instalacja

1. W panelu administracyjnym otwórz **Moduły > Menedżer modułów**.
2. Kliknij **Wgraj moduł** i wybierz plik `dfsocialproof.zip`.
3. Instalacja automatycznie tworzy tabelę odwiedzających i zapisuje domyślne wartości konfiguracji.
4. Moduł działa na kartach produktów od razu, z ostrożnymi i sprawnymi ustawieniami startowymi.

Aby zacząć, nie trzeba niczego ustawiać. Domyślnie: powiadomienia z zamówień z ostatnich 7 dni, anonimizacja „imię i inicjał", licznik wyświetlany od 3 jednoczesnych odwiedzających.

## Konfiguracja

Strona **Konfiguruj** jest podzielona na trzy panele oraz ramkę „Privacy by design", która podsumowuje gwarancje modułu.

### Powiadomienia o zakupach

- **Włącz powiadomienia o zakupach**: przełącznik pierwszego mechanizmu.
- **Okno czasowe (godziny)**: wyświetlane są wyłącznie prawdziwe zamówienia złożone w tym oknie (domyślnie 168 godz., czyli 7 dni). Jeśli takich nie ma, nic się nie wyświetla.
- **Maksymalna liczba powiadomień**: limit na jedno załadowanie strony (domyślnie 5).
- **Poziom anonimizacji**: trzy tryby opisane w kolejnej sekcji.
- **Uwzględniane statusy zamówień**: lista wielokrotnego wyboru (Ctrl lub Cmd, aby wybrać kilka). Powiadomienia generują tylko zamówienia w tych statusach; domyślnie są to statusy „zatwierdzone" w Twoim sklepie.

### Licznik odwiedzających

- **Włącz licznik odwiedzających**: przełącznik drugiego mechanizmu.
- **Okno zliczania (minuty)**: odwiedzający jest liczony, dopóki jest aktywny w tym oknie (domyślnie 15 min). Zapisy są potem automatycznie czyszczone.
- **Minimalna liczba odwiedzających do wyświetlenia**: poniżej tego progu (domyślnie 3) odznaka pozostaje ukryta, aby nigdy nie wskazywać pojedynczej osoby.

### Wyświetlanie

- **Pozycja**: róg wyświetlania powiadomień (lewy dolny albo prawy dolny).
- **Opóźnienie początkowe (sekundy)**: czas do pierwszego powiadomienia (domyślnie 4 s).
- **Odstęp między powiadomieniami (sekundy)**: przerwa między dwoma powiadomieniami (domyślnie 9 s).
- **Czas wyświetlania (sekundy)**: jak długo widoczne jest każde powiadomienie (domyślnie 6 s).

Powiadomienia wyświetlają się tylko raz na załadowanie strony: żadnej nieskończonej pętli, która w końcu irytuje. Odwiedzający może zamknąć powiadomienia, a ten wybór jest zapamiętywany na całą sesję przeglądania.

## Trzy poziomy anonimizacji

Wybrany poziom obowiązuje dla wszystkich powiadomień, a przekształcenie odbywa się **na serwerze**: przeglądarka otrzymuje wyłącznie gotowy tekst, nigdy dane źródłowe.

- **Imię i inicjał**: „Anna K. kupiła ten produkt". Najbardziej angażujące, a mimo to nieidentyfikujące.
- **Tylko miasto**: „Klient z Krakowa kupił ten produkt". Miasto pochodzi z adresu dostawy zamówienia.
- **Pełna anonimowość**: „Ktoś kupił ten produkt". Najostrożniejszy wariant, odpowiedni dla wrażliwych asortymentów.

### Zaokrąglone czasy względne

Wyświetlane znaczniki czasu („2 godz. temu", „25 min temu") są celowo **zaokrąglane**, minuty do pełnych 5 minut. Cel: uniemożliwić ponowną identyfikację klienta przez zestawienie dokładnej godziny zamówienia z innymi informacjami. To świadoma decyzja projektowa w duchu privacy by design, a nie techniczne przybliżenie.

## Jak działa licznik odwiedzających

Każdy odwiedzający kartę produktu jest liczony przez **solony odcisk SHA-256** z tajnym kluczem Twojego sklepu (`_COOKIE_KEY_`). Ten odcisk nigdy nie jest wyświetlany ani ujawniany przeglądarce i służy wyłącznie do usuwania duplikatów wizyt.

- **Zero cookies**: moduł nie zapisuje ani cookie, ani danych w pamięci lokalnej na potrzeby zliczania.
- **Automatyczne czyszczenie**: wygasłe zapisy są usuwane z bazy przy okazji kolejnych operacji, bez konfigurowania zadania cron.
- **Próg godności**: poniżej skonfigurowanego minimum odznaka znika, pojedynczy odwiedzający nigdy nie zostanie opisany jako „1 osoba ogląda ten produkt".
- **Odświeżanie**: licznik aktualizuje się co 60 sekund lekkim zapytaniem AJAX.

## Privacy by design i RODO

- **Wyłącznie prawdziwe zamówienia**: żadnych wymyślonych danych, nigdy. Wiarygodność Twojego sklepu pozostaje nienaruszona, a Ty po właściwej stronie prawa konsumenckiego (praktyki wprowadzające w błąd).
- **Anonimizacja po stronie serwera**: teksty trafiają do przeglądarki już zanonimizowane i sformatowane. Do frontu nie przechodzą żadne surowe dane klienta (pełne nazwisko, e-mail, adres).
- **Odpowiedzi AJAX bez cache**: nagłówki uniemożliwiają pośrednie przechowywanie tekstów.
- **Odciski są czyszczone**: tabela odwiedzających sama się porządkuje, a retencja ogranicza się do niezbędnego minimum.
- **Zero cookies, zero zasobów zewnętrznych**: nie musisz nic dodawać do swojego banera zgód z powodu tego modułu.

Panel „Privacy by design" w panelu administracyjnym podsumowuje te gwarancje: możesz przedstawić go w tej formie swojemu inspektorowi ochrony danych albo dołączyć do rejestru czynności przetwarzania.

## Dostępność i wydajność

- Powiadomienia ogłaszane przez **aria-live polite** dla czytników ekranu.
- Respektowanie **prefers-reduced-motion**: animacje są wyłączane, jeśli odwiedzający sobie tego życzy.
- **Tryb ciemny** obsługiwany automatycznie.
- **Vanilla JS** bez jQuery, zasoby ładowane tylko na stronie produktu: pomijalny wpływ na szybkość.

## Zgodność techniczna

- **PrestaShop**: od 8.0 do 9.x.
- **PHP**: od 7.4 do 8.x.
- **Hooki**: actionFrontControllerSetMedia (zasoby i konfiguracja frontu, wyłącznie strona produktu) oraz displayProductAdditionalInfo (odznaka odwiedzających).
- Obsługa trybu **wielosklepowego** i **wielojęzycznego** (w zestawie tłumaczenia FR, EN, ES, DE, IT).
- Bez zależności Composera, bez jQuery.

## Najczęstsze pytania

### Czy moduł wymyśla zakupy albo odwiedzających?

Nie, nigdy. Powiadomienia pochodzą wyłącznie z rzeczywiście zarejestrowanych zamówień, a licznik zlicza tylko realnie obecnych odwiedzających. Bez danych moduł nic nie wyświetla.

### Co zrobić, jeśli mój sklep ma mało zamówień?

Poszerz okno czasowe, na przykład do 336 godz. dla 14 dni: powiadomienia pozostają prawdziwe, tylko względny znacznik czasu jest starszy. Moduł nigdy nie wypełni pustki fałszywymi danymi.

### Czy licznik zapisuje cookie?

Nie. Opiera się na solonym odcisku SHA-256 wyliczanym po stronie serwera, nigdy nieujawnianym i automatycznie czyszczonym. Nie trzeba zbierać dodatkowej zgody.

### Czy działa z PrestaShop 9 i trybem wielosklepowym?

Tak, od PrestaShop 8.0 do 9.x, z natywną obsługą trybu wielosklepowego.

## Rozwiązywanie problemów

- **Nie wyświetla się żadne powiadomienie**: sprawdź, czy w oknie czasowym istnieją zamówienia w jednym z wybranych statusów. Przy braku prawdziwych danych to normalne zachowanie modułu.
- **Licznik odwiedzających się nie pojawia**: liczba aktywnych odwiedzających jest prawdopodobnie poniżej progu minimalnego. Obniż próg albo przetestuj na kilku przeglądarkach lub urządzeniach jednocześnie.
- **Powiadomienia nie wracają**: jeśli odwiedzający zamknął powiadomienie, ten wybór jest zapamiętany na czas sesji. Otwórz okno prywatne, aby przetestować ponownie.
- **Odznaka się nie aktualizuje**: odświeżanie następuje co 60 sekund; sprawdź też, czy zbyt agresywny cache nie blokuje zapytań AJAX do kontrolera frontu.
