DataFirefly Waitlist: dokumentacja
Instalacja, konfiguracja, obsługa kombinacji, cron, śledzenie konwersji i rozwiązywanie problemów modułu alertów powrotu do sprzedaży dla PrestaShop 8 i 9.
Prezentacja
DataFirefly Waitlist dodaje do sklepu PrestaShop 8 lub 9 alert powrotu produktu do sprzedaży. Gdy tylko produkt, lub konkretna kombinacja, spadnie poniżej skonfigurowanego progu stanu magazynowego, na karcie produktu automatycznie pojawia się przycisk „Powiadom mnie o dostępności”. Odwiedzający zostawia adres e-mail i otrzymuje alert natychmiast po uzupełnieniu zapasów. Każde zamówienie złożone później przez powiadomionego subskrybenta jest przypisywane jako konwersja w pulpicie.
Instalacja
- W panelu administracyjnym przejdź do Moduły → Menedżer modułów → Zainstaluj moduł.
- Wgraj plik
dfwaitlist-x.x.x.zip. - Kliknij Zainstaluj. Moduł tworzy tabelę
df_dfwaitlist_subscriber, rejestruje swoje hooki i dodaje zakładkę administracyjną. - Otwórz konfigurację, aby podać adres e-mail sprzedawcy i pobrać adres URL crona.
Brak zewnętrznych zależności. PHP 7.4 minimum, zgodność do PHP 8.3. Kod źródłowy niezaszyfrowany.
Konfiguracja
Przejdź do Moduły → DataFirefly Waitlist → Konfiguruj. Dostępne ustawienia:
- Double opt-in: gdy jest aktywny, zapis najpierw wysyła e-mail potwierdzający. Dopóki odwiedzający nie kliknie, subskrypcja pozostaje niepotwierdzona i nie wywoła żadnego alertu. Można wyłączyć, jeśli wolisz natychmiastowy zapis.
- Próg stanu magazynowego: ilość, poniżej której produkt jest uznawany za niedostępny i pojawia się przycisk.
- Próg alertu sprzedawcy: liczba zapisanych na ten sam produkt, od której otrzymujesz e-mail z powiadomieniem. Domyślnie 10.
- E-mail sprzedawcy: odbiorca powyższego alertu.
- Czas życia subskrypcji: subskrypcje nigdy niepowiadomione są automatycznie czyszczone po N dniach. Domyślnie 90.
- Tekst przycisku: personalizowany dla każdego języka.
- Klauzula RODO: tekst wyświetlany pod formularzem, personalizowany dla każdego języka.
- Adres URL crona: zabezpieczony tokenem, regenerowany jednym kliknięciem z panelu.
Działanie po stronie klienta
Pojawienie się przycisku
Przycisk jest wstrzykiwany przez hook displayProductActions, a o jego widoczności decyduje strona kliencka. Moduł odpytuje endpoint /modules/dfwaitlist/stockcheck, aby poznać rzeczywisty stan magazynowy wyświetlanej kombinacji, co czyni go niezależnym od sposobu ponownego renderowania AJAX motywu. Efekt: przycisk znika, gdy wybrany wariant jest dostępny, i pojawia się ponownie w przeciwnym razie, bez przeładowania strony.
Kombinacje (warianty)
Zapis odbywa się dla pary (produkt, kombinacja). Formularz jawnie pokazuje wariant, którego dotyczy, na przykład „Wariant: Czerwony / Rozmiar L”. Gdy odwiedzający zmienia wariant przed zatwierdzeniem, cel przełącza się automatycznie. E-mail z alertem wskazuje dokładną kombinację i prowadzi do karty produktu z wstępnie wybranym wariantem: pomylenie jednego rozmiaru z drugim jest niemożliwe.
Potwierdzenie (double opt-in)
Przy aktywnym double opt-in subskrybent otrzymuje e-mail z tokenowanym linkiem potwierdzającym. Zapis jest brany pod uwagę dopiero po kliknięciu. Ten mechanizm gwarantuje jakość listy (brak fikcyjnych adresów) i dostarcza dowód jawnej zgody.
Alert powrotu do sprzedaży
Po uzupełnieniu zapasów subskrybent otrzymuje responsywny e-mail HTML z nazwą produktu, konkretną kombinacją i bezpośrednim linkiem do karty produktu. Każdy e-mail zawiera link do wypisania się jednym kliknięciem.
Wykrywanie powrotów do sprzedaży
Dwa uzupełniające się kanały, oba należy pozostawić aktywne:
- Hook
actionUpdateQuantity: czas rzeczywisty. Gdy tylko pracownik zmienia stan magazynowy w panelu albo anulowane zamówienie zwalnia zapas, e-maile wychodzą natychmiast. - Cron zabezpieczający: chroniony tokenem. Wychwytuje ruchy magazynowe, które nie przechodzą przez hooki: importy API, synchronizację ERP, skrypty CLI, aktualizacje przez Webservice PrestaShop.
Konfiguracja crona
Skopiuj adres URL wyświetlany w konfiguracji modułu (zawiera token bezpieczeństwa) i podłącz go do wywołania co godzinę:
0 * * * * curl -s "https://twoj-sklep.com/module/dfwaitlist/cron?token=TWOJ_TOKEN" > /dev/null 2>&1
Jeśli podejrzewasz wyciek tokena, zregeneruj go jednym kliknięciem z konfiguracji: stary adres URL natychmiast przestaje działać. Pamiętaj o aktualizacji crontaba po regeneracji.
Śledzenie konwersji
W hooku actionValidateOrder moduł porównuje każdą pozycję zamówienia z subskrypcjami w statusie „powiadomiony”. Dopasowanie odbywa się po trójce (email, id_product, id_product_attribute). W przypadku zgodności subskrypcja jest oznaczana jako skonwertowana, a id_order zostaje zapisany.
Śledzenie opiera się na adresie e-mail, a nie na koncie klienta, dlatego działa równie dobrze dla zamówień gości, jak i zalogowanych klientów.
Pulpit administracyjny
- 6 KPI: zapisani, oczekujący na potwierdzenie, powiadomieni, zakupy, współczynnik konwersji, wypisani.
- Lista produktów z zapisami: sortowalna i stronicowana. To Twoja lista priorytetów uzupełniania zapasów: produkt z 47 zapisanymi to 47 niemal pewnych sprzedaży, jeśli szybko uzupełnisz stan.
- Widok szczegółowy według produktu: każdy zapisany ze swoim indywidualnym statusem.
- Eksport CSV: pełny eksport aktywnego sklepu: e-mail, produkt, kombinacja, statusy (potwierdzony, powiadomiony, kupiony, wypisany), daty, IP, id zamówienia w przypadku konwersji. Plik zawiera BOM UTF-8, dzięki czemu otwiera się bezpośrednio w Excelu bez zepsucia kodowania.
Alert sprzedawcy
Gdy niedostępny produkt osiąga skonfigurowany próg zapisanych, automatyczny e-mail informuje Cię o liczbie oczekujących i zawiera link do pulpitu. E-mail jest wysyłany tylko raz na produkt, aby uniknąć szumu. To sygnał, który zamienia listę oczekujących w narzędzie sterowania uzupełnianiem zapasów: priorytetyzujesz na podstawie zmierzonego popytu, nie intuicji.
E-maile
Trzy szablony, każdy dostarczany w wersjach FR/EN/ES/DE, w formacie responsywnego HTML i czystego tekstu:
- Potwierdzenie: wysyłane tylko przy aktywnym double opt-in, z linkiem aktywacyjnym.
- Alert powrotu do sprzedaży: produkt, kombinacja, bezpośredni link do karty, link do wypisania się.
- Alert sprzedawcy: liczba oczekujących zapisanych i link do pulpitu.
Szablony można edytować w modules/dfwaitlist/mails/<iso>/.
RODO i jakość listy
- Double opt-in do włączenia, z dowodem zgody (IP jest zapisywane przy rejestracji).
- Wypisanie się jednym kliknięciem w każdym e-mailu z alertem, przez unikalny token odrębny od tokena potwierdzenia. Subskrypcja jest oznaczana jako wypisana bez usuwania, aby zachować identyfikowalność, i żaden przyszły e-mail nie zostanie wysłany.
- Automatyczne czyszczenie subskrypcji nigdy niepowiadomionych po upływie skonfigurowanego okresu (domyślnie 90 dni): minimalizacja danych.
- Honeypot antybotowy wbudowany w formularz oraz limit jednego adresu e-mail na produkt, aby zapobiec seryjnym zapisom.
- Żadnych wywołań zewnętrznych: dane pozostają w bazie PrestaShop, z podziałem na sklepy. Nic nie jest wysyłane do DataFirefly ani do usług zewnętrznych.
Multisklep i wielojęzyczność
Tabela subskrypcji zawiera kolumny id_shop i id_lang. Każdy podsklep w sieci multistore ma więc własną listę oczekujących, własne alerty sprzedawcy i własne KPI. E-maile wychodzą w języku, w którym subskrybent dokonał zapisu.
Rozwiązywanie problemów
Przycisk się nie pojawia
- Sprawdź, czy produkt jest faktycznie poniżej skonfigurowanego progu stanu: powyżej przycisk jest celowo ukryty.
- Na produkcie z wariantami sprawdź wybrany wariant: przycisk wyświetla się tylko wtedy, gdy ten wariant jest niedostępny.
- Motyw musi implementować hook
displayProductActions. Tak jest w Classic i Hummingbird; w nietypowym motywie własnym sprawdź jego obecność w szablonie produktu. - Wyczyść cache PrestaShop (Zaawansowane → Wydajność).
Alerty nie wychodzą po uzupełnieniu zapasów
- Sprawdź, czy subskrypcja jest potwierdzona: przy double opt-in niepotwierdzony zapis nigdy nie otrzymuje alertu.
- Jeśli stan zmieniono poza panelem (API, ERP, CLI), hook czasu rzeczywistego się nie uruchamia: przejmuje to cron. Sprawdź, czy działa i czy token w adresie URL jest aktualny.
- Przetestuj ogólną wysyłkę e-maili PrestaShop (Zaawansowane → E-mail → Test).
Niektóre konwersje nie są zliczane
Dopasowanie wymaga adresu e-mail oraz produktu oraz kombinacji. Jeśli klient zamawia z innego adresu e-mail niż ten z zapisu albo kupuje inny wariant niż ten, na który czekał, konwersja nie jest przypisywana. Jest to celowe, aby uniknąć fałszywych trafień zniekształcających KPI.
Odinstalowanie
Odinstalowanie usuwa tabelę df_dfwaitlist_subscriber i wszystkie klucze konfiguracji z prefiksem DFWAITLIST_. W bazie nie pozostaje żaden ślad. Wymagane jest potwierdzenie, ponieważ subskrypcje i statystyki konwersji zostaną bezpowrotnie utracone: wyeksportuj wcześniej CSV, jeśli chcesz zachować historię.