PS PrestaShop Początkujący

DataFirefly Price Alert: dokumentacja

Instalacja, konfiguracja, tryby powiadomień, cron, śledzenie konwersji i rozwiązywanie problemów w module powiadomień o obniżce ceny dla PrestaShop 8 i 9.

Zaktualizowano Wersja modułu 1.0.3

Prezentacja

DataFirefly Price Alert dodaje powiadomienie o obniżce ceny do Twojego sklepu PrestaShop 8 lub 9. Odwiedzający zapisują się z karty produktu (z kontem klienta albo bez), wybierają jeden z dwóch trybów, każda obniżka albo cena docelowa, i dostają e-mail, gdy tylko cena spadnie. Każde zamówienie złożone przez powiadomionego subskrybenta jest automatycznie przypisywane jako konwersja, a odzyskany przychód widać w pulpicie administracyjnym.

Instalacja

  1. W back office przejdź do Moduły → Menedżer modułów → Zainstaluj moduł.
  2. Wgraj plik dfpricealert-x.x.x.zip.
  3. Kliknij Zainstaluj. Moduł tworzy dwie tabele (df_pricealert_subscriber i df_pricealert_event), rejestruje swoje hooki i dodaje zakładkę Price Alerts w menu Katalog.

Żadna zależność Composera nie jest wymagana: moduł zawiera własny autoloader PSR-4. Minimalna wersja PHP to 8.0.

Konfiguracja

Przejdź do Moduły → DataFirefly Price Alert → Konfiguruj. Dostępne ustawienia:

  • Podwójna zgoda (RODO): włączona domyślnie. Subskrybent dostaje e-mail potwierdzający, a powiadomienie staje się aktywne dopiero po jego kliknięciu. Zdecydowanie zalecane pod kątem zgodności z RODO.
  • Domyślny tryb powiadomień: tryb wstępnie zaznaczony w formularzu, każda obniżka albo cena docelowa. Klient zawsze może go zmienić.
  • Pozycja formularza: displayProductActions (pod przyciskiem zakupu) albo displayProductAdditionalInfo (strefa informacji dodatkowych).
  • Minimalny procent obniżki: w trybie każda obniżka pomija redukcje mniejsze niż N procent. Wartość 0 oznacza, że każda obniżka wyzwala powiadomienie.
  • Próg powiadomienia sprzedawcy: dostajesz e-mail, gdy produkt osiągnie N aktywnych subskrybentów. Wartość 0 wyłącza funkcję.
  • E-mail sprzedawcy: odbiorca powyższego powiadomienia (domyślnie adres e-mail sklepu).
  • Retencja (dni): automatyczne czyszczenie subskrybentów wypisanych i powiadomionych starszych niż N dni. Domyślnie 180, wartość 0 wyłącza.

Działanie po stronie klienta

Zapis

Formularz jest zawsze widoczny na karcie produktu. Klient wpisuje swój adres e-mail i wybiera:

  • Każda obniżka: zostanie powiadomiony przy pierwszej redukcji poniżej ceny wyświetlanej w momencie zapisu, z zastrzeżeniem skonfigurowanego progu minimalnego.
  • Gdy osiągnie: wpisuje cenę docelową, obowiązkowo niższą od ceny bieżącej. Powiadomienie wychodzi wyłącznie wtedy, gdy cena spadnie do tego poziomu albo poniżej.

Jeśli produkt ma warianty, wybrana kombinacja jest przechwytywana automatycznie i aktualizowana, gdy klient zmieni wariant przed zatwierdzeniem.

Potwierdzenie (podwójna zgoda)

Przy włączonej podwójnej zgodzie subskrybent dostaje e-mail potwierdzający. Powiadomienie pozostaje w statusie pending aż do kliknięcia, po czym przechodzi w active. Bez podwójnej zgody powiadomienie jest aktywne natychmiast.

Powiadomienie

Gdy zostanie wykryta kwalifikująca się obniżka, subskrybent dostaje e-mail z przekreśloną starą ceną, nową ceną, procentem obniżki, zaoszczędzoną kwotą i bezpośrednim linkiem do produktu. Jego status zmienia się na notified i nie otrzyma kolejnego e-maila w ramach tego samego zapisu.

Wykrywanie obniżek: trzy wyzwalacze

Moduł wykrywa obniżki cen trzema uzupełniającymi się kanałami:

  1. Hook actionObjectProductUpdateAfter: uruchamia się przy każdym zapisie produktu w back office. Pokrywa ręczne zmiany cen z zerowym opóźnieniem.
  2. Hook actionUpdateProductAttribute: uruchamia się przy zmianie wariantu. Pokrywa zmiany cen per kombinacja.
  3. Polecenie CLI bin/scan-prices.php: do podpięcia pod cron. Niezbędne przy cenach specjalnych z zaplanowaną datą, które aktywują się bez wyzwolenia jakiegokolwiek hooka.

Konfiguracja crona

*/30 * * * * php /sciezka/do/twojego/sklepu/modules/dfpricealert/bin/scan-prices.php --shop=1 >> /var/log/dfpricealert.log 2>&1

Parametr --shop jest opcjonalny (w przeciwnym razie brany jest sklep domyślny). Polecenie wypisuje liczbę wysłanych powiadomień i czas wykonania.

Zalecana konfiguracja: zostaw hooki włączone (zerowe opóźnienie przy zmianach ręcznych) i dodaj cron co 30 minut, aby pokryć promocje zaplanowane z wyprzedzeniem.

Śledzenie konwersji

Na hooku actionOrderStatusPostUpdate moduł przechodzi przez każdą pozycję zamówienia i szuka subskrybenta w statusie notified odpowiadającego trójce: adres e-mail klienta, identyfikator produktu, identyfikator wariantu. Przy dopasowaniu subskrybent przechodzi w status purchased, a id_order zostaje zapisany.

Dopasowanie akceptuje albo dokładny wariant, albo zapis ogólny (wariant 0), dzięki czemu produkty bez wariantów oraz zapisy na produkt główny są przypisywane poprawnie. Śledzenie działa również przy zakupach bez rejestracji, ponieważ dopasowanie odbywa się po adresie e-mail.

Pulpit administracyjny

Zakładka Katalog → Price Alerts pokazuje:

  • 6 wskaźników KPI: aktywni subskrybenci, powiadomieni, skonwertowani, współczynnik konwersji, średnia udzielona obniżka, odzyskany przychód.
  • Produkty o wysokim potencjale: top 10 produktów według liczby aktywnych subskrybentów, ze średnią ceną z momentu zapisu. To Twoja lista priorytetowych kandydatów do celowanej promocji.
  • Lista subskrybentów: filtrowalna po statusie, adresie e-mail i produkcie, paginowana po 25 wierszy.
  • Akcje: natychmiastowe przeskanowanie wszystkich produktów, wyczyszczenie starych wpisów, eksport pełnej listy do CSV.

Cykl życia subskrybenta

Każdy zapis przechodzi przez następujące statusy:

  • pending: zapisany, oczekuje na potwierdzenie (podwójna zgoda).
  • active: powiadomienie aktywne, monitorowane przez skany.
  • notified: e-mail o obniżce wysłany. Status końcowy, o ile nie dojdzie do zakupu.
  • purchased: wykryto zamówienie po powiadomieniu, konwersja przypisana.
  • unsubscribed: wypisanie przez link obecny w każdym e-mailu.

Każde przejście jest zapisywane w tabeli df_pricealert_event (pełna ścieżka audytu).

E-maile

Trzy szablony, każdy dostarczony w FR/EN/ES/DE w formacie HTML i tekstowym:

  • confirm: potwierdzenie podwójnej zgody z przyciskiem aktywacji.
  • alert: powiadomienie o obniżce, przekreślona stara cena, wyeksponowana nowa cena, oszczędność kwotowa i procentowa, przycisk prowadzący do produktu.
  • merchant: powiadomienie sprzedawcy, gdy produkt przekroczy próg aktywnych subskrybentów.

E-mail wychodzi w języku subskrybenta (tym ze strony w momencie zapisu), z automatycznym powrotem do angielskiego, jeśli dany język nie jest dostępny. Szablony można dostosować w katalogu modules/dfpricealert/mails/<iso>/.

Szablony polskie nie są dostarczane w standardzie. Dla polskiego sklepu skopiuj katalog mails/en/ do mails/pl/ i przetłumacz trzy szablony w wersji HTML i tekstowej. Bez tego kroku subskrybenci z polską wersją językową dostaną e-maile po angielsku.

RODO

  • Podwójna zgoda przez e-mail przed aktywacją (włączona domyślnie).
  • 32-bajtowe tokeny kryptograficzne (random_bytes) unikalne per subskrybent, osobne do potwierdzenia i do wypisania się.
  • Link do wypisania się jednym kliknięciem w każdym e-mailu.
  • Konfigurowalne automatyczne czyszczenie starych danych (zasada minimalizacji danych).
  • Żadne dane nie są wysyłane do usług zewnętrznych, wszystko zostaje na Twoim serwerze.

Rozwiązywanie problemów

Powiadomienia nie wychodzą

  • Sprawdź, czy subskrybent ma status active, a nie pending, ponieważ podwójna zgoda wymaga potwierdzenia.
  • Sprawdź minimalny próg obniżki: redukcja o 3 procent przy progu 5 procent nie wyzwoli powiadomienia.
  • W trybie ceny docelowej cena musi osiągnąć próg albo zejść poniżej, samo obniżenie nie wystarczy.
  • Przy cenach specjalnych z zaplanowaną datą sprawdź, czy cron działa (zajrzyj do logu).
  • Przetestuj wysyłkę e-maili w PrestaShop w ogóle (Ustawienia zaawansowane → E-mail → Test).

Błędy przy zapisie

Moduł loguje wszystkie błędy w Ustawienia zaawansowane → Logi z prefiksem [dfpricealert]. Formularz dodatkowo wyświetla szczegółowe błędy serwera bezpośrednio pod przyciskiem (status HTTP i fragment odpowiedzi), co przyspiesza diagnostykę.

Formularz się nie pojawia

  • Sprawdź skonfigurowaną pozycję: niektóre motywy nie implementują displayProductAdditionalInfo, przełącz się wtedy na displayProductActions.
  • Wyczyść cache PrestaShop (Ustawienia zaawansowane → Wydajność).

Deinstalacja

Deinstalacja usuwa obie tabele modułu (razem z subskrybentami i zdarzeniami), hooki, zakładkę administracyjną i wszystkie klucze konfiguracyjne. Wyeksportuj plik CSV wcześniej, jeśli chcesz zachować historię.

Czy ta strona była pomocna?

Nadal utknąłeś? Napisz do wsparcia