Wieloetapowe Odzyskiwanie Porzuconych Koszyków: kompletny przewodnik
Instalacja, konfiguracja i obsługa odzyskiwania porzuconych koszyków: automatyczne wykrywanie, wieloetapowe sekwencje e-maili, eskalowane kupony rabatowe, przywracanie koszyka jednym kliknięciem, śledzenie i statystyki odzyskiwania dla PrestaShop 8 i 9.
Prezentacja
Moduł Wieloetapowe Odzyskiwanie Porzuconych Koszyków (datafireflycartrecovery) automatycznie wykrywa porzucone koszyki i przypomina o nich klientom przez sekwencję zaplanowanych e-maili. Każdy etap ma własne opóźnienie, treść per język i opcjonalny kupon rabatowy, którego zachęta może nasilać się w czasie. Podpisany link pozwala klientowi odzyskać koszyk jednym kliknięciem, a pulpit mierzy realnie odzyskany przychód.
Średnio blisko 7 na 10 koszyków jest porzucanych przed płatnością. Dobrze ustawiona sekwencja przypomnień (proste przypomnienie, potem umiarkowany rabat, potem mocniejsza oferta z darmową dostawą) odzyskuje znaczącą część tego przychodu bez ręcznego wysiłku.
Zgodność
- PrestaShop 8.0 do 9.x
- PHP 8.1 do 8.3
- Pojedynczy sklep i multisklep (kampanie i statystyki segmentowane per sklep)
- 5 języków: FR, EN, ES, DE, IT
- Architektura PSR-4 bez Composera, jedna klasa na plik, brak zależności zewnętrznych
Instalacja
- W zapleczu otwórz Moduły > Menedżer modułów.
- Kliknij Zainstaluj moduł i wybierz plik
datafireflycartrecovery.zip. - Po instalacji kliknij Konfiguruj.
Podczas instalacji moduł tworzy swoje tabele (śledzone koszyki, kolejka wysyłki, zdarzenia, lista wykluczeń), rejestruje hooki, dodaje zakładkę Odzyskiwanie koszyków w menu Klienci i tworzy domyślną kampanię trójetapową gotową do użycia: +1 h (proste przypomnienie, bez kuponu), +24 h (kupon -5%) i +72 h (kupon -10% + darmowa dostawa).
Konfiguracja CRON-a
Moduł opiera się na dwóch zaplanowanych procesach, wykonywanych przez jeden adres URL zabezpieczony tokenem: skan (oznacza nieaktywne koszyki jako porzucone i planuje etapy) oraz przetwarzanie (wysyła należne e-maile z poszanowaniem zabezpieczeń). Dokładny adres URL, wraz z tokenem, jest wyświetlany na stronie konfiguracji modułu.
https://TWOJ-SKLEP/index.php?fc=module&module=datafireflycartrecovery&controller=cron&token=TWOJ_TOKEN
Zaplanuj zadanie mniej więcej co 15 minut, na przykład:
*/15 * * * * wget -q -O /dev/null "https://TWOJ-SKLEP/index.php?fc=module&module=datafireflycartrecovery&controller=cron&token=TWOJ_TOKEN"
Bez aktywnego zadania cron żaden koszyk nie zostanie oznaczony jako porzucony i żadne przypomnienie nie wyjdzie. Token chroni adres URL przed nieautoryzowanymi wywołaniami: nie udostępniaj go publicznie. Jeśli go zregenerujesz, pamiętaj o aktualizacji linii crona.
Ustawienia ogólne
Ze strony konfiguracji dostosuj globalne zachowanie wykrywania i wysyłki:
- Czas porzucenia (domyślnie 60 min): okres nieaktywności koszyka, po którym jest uznawany za porzucony.
- Rozmiar partii (domyślnie 50): liczba e-maili przetwarzanych przy każdym przebiegu crona, aby wygładzić obciążenie serwera i wysyłkę SMTP.
- Maksymalna liczba e-maili na koszyk (domyślnie 3): limit e-maili wysyłanych dla jednego koszyka, łącznie ze wszystkich etapów.
- Czas śledzenia (domyślnie 30 dni): po jego upływie nieskonwertowany koszyk przestaje być przypominany i jest archiwizowany.
- Automatyczne logowanie (domyślnie włączone): loguje klienta, gdy kliknie link przywracania (zobacz niżej).
- Nadawca: adres i nazwa nadawcy e-maili. Pozostaw puste, aby użyć adresu i nazwy sklepu.
Kampanie i sekwencje
Ustawienia kampanii
Kampania grupuje sekwencję etapów i jej reguły targetowania:
- Minimalna kwota koszyka: przypomina tylko o koszykach powyżej progu (0 = brak minimum).
- Okno wysyłki: przedział godzinowy (np. 8:00–21:00), poza którym należne e-maile są odkładane, aby uniknąć nocnych wysyłek. Okno obsługuje przejście przez północ.
- Anty-powtórzenia (cooldown): minimalny odstęp między dwiema sekwencjami dla tego samego klienta, aby go nie przeciążać.
- Targetuj gości: włącza lub wyłącza koszyki gości (koszyki bez konta klienta).
- Wyklucz konta B2B: wyklucza klientów, którzy mają wypełnioną firmę, numer rejestrowy lub numer VAT.
Etapy sekwencji
Każdy etap określa, kiedy i co wysłać:
- Pozycja: kolejność etapu w sekwencji.
- Opóźnienie po porzuceniu (w minutach): np. 60 = 1 h, 1440 = 24 h, 4320 = 72 h.
- Temat i treść HTML per język: treść marketingowa, tłumaczona dla każdego aktywnego języka.
- Etap aktywny: pozwala aktywować lub zawiesić etap bez jego usuwania.
Wpisywana treść HTML jest osadzana w responsywnym szablonie e-mail dostarczonym w pięciu językach: nagłówek, przycisk akcji, tabela podsumowania koszyka, blok kuponu rabatowego i stopka (w tym link wypisania) są dodawane automatycznie. W tekście dostępne są trzy zmienne: {firstname}, {shop_name} i {voucher_code}.
Kupony rabatowe
Każdy etap może generować imienny kupon, tworzony w locie dla danego klienta:
- Typ: procent lub kwota stała.
- Wartość i minimalna kwota zastosowania.
- Ważność w dniach.
- Darmowa dostawa (łączy się z rabatem).
- Rabat brutto lub netto.
Kupony są imienne, jednorazowe i ograniczone w czasie: nie mogą być udostępniane ani używane ponownie. Dobra praktyka to nie oferować żadnego rabatu na pierwszym etapie (proste przypomnienie), a potem stopniowo eskalować (-5%, potem -10% + darmowa dostawa), aby udzielać rabatu tylko tym klientom, którzy potrzebują go do konwersji.
Przywracanie koszyka jednym kliknięciem
Każdy e-mail zawiera podpisany link przywracania (HMAC), który odtwarza dokładnie koszyk klienta i, jeśli opcja jest włączona, automatycznie loguje go na jego konto. Jedno kliknięcie sprowadza go z powrotem na stronę koszyka, gotowego do płatności, z kuponem rabatowym danego etapu już przypisanym.
Link jest podpisany: każda modyfikacja jego parametrów go unieważnia. Automatyczne logowanie można wyłączyć w ustawieniach ogólnych, jeśli wolisz, aby klient logował się ręcznie.
Śledzenie i przypisywanie przychodu
- Otwarcia: niewidoczny piksel rejestruje otwarcie każdego e-maila.
- Kliknięcia: kliknięcie linku przywracania jest zliczane.
- Konwersja: przy zatwierdzeniu zamówienia moduł automatycznie łączy zamówienie z przypominanym koszykiem, oznacza koszyk jako odzyskany, przypisuje przychód i anuluje pozostałe przypomnienia sekwencji.
Zgodność z RODO
Każdy e-mail zawiera link wypisania. Gdy klient się wypisuje, jego adres trafia na trwałą listę wykluczeń: nigdy więcej nie otrzyma przypomnienia, a oczekujące wysyłki dotyczące go są anulowane. Koszyki bez użytecznego adresu e-mail nigdy nie są śledzone. Odinstalowanie modułu usuwa tabele, konfigurację i zakładkę administracyjną.
Pulpit i statystyki
Zakładka Odzyskiwanie koszyków wyświetla kluczowe wskaźniki z 30 dni: wykryte koszyki i porzuconą wartość, odzyskane koszyki i współczynnik odzyskania, wysłane e-maile, współczynniki otwarć i kliknięć oraz odzyskany przychód. Wykres porównuje dzień po dniu wykrycia z odzyskaniami, a tabela szczegółowo pokazuje wydajność każdego etapu aktywnej kampanii (wysłane, otwarte, kliknięte, współczynnik kliknięć). Zakładka Koszyki wyświetla ostatnie śledzone koszyki wraz z ich statusem.
FAQ i rozwiązywanie problemów
Żadne przypomnienie nie wychodzi
Sprawdź w pierwszej kolejności, czy zadanie cron jest aktywne i wywołuje adres URL z właściwym tokenem. Bez crona nic nie jest wykrywane ani wysyłane. Następnie sprawdź, czy kampania jest aktywna, czy co najmniej jeden etap jest aktywny i czy bieżąca godzina mieści się w oknie wysyłki.
Jak wykrywane są porzucone koszyki?
Moduł rejestruje koszyki przez hook PrestaShop, a następnie skan crona oznacza jako porzucone te, które pozostały nieaktywne dłużej niż skonfigurowany czas porzucenia, pod warunkiem że dostępny jest użyteczny adres e-mail.
Czy klient może otrzymać za dużo e-maili?
Nie: maksymalna liczba e-maili na koszyk, anty-powtórzenia między sekwencjami i okno wysyłki ściśle ograniczają częstotliwość. Gdy tylko koszyk zostanie skonwertowany lub klient się wypisze, pozostałe przypomnienia są anulowane.
Czy kupony rabatowe są bezpieczne?
Tak. Każdy kupon jest imienny, jednorazowy i ograniczony w czasie; jest generowany dla konkretnego klienta i nie może być użyty przez osobę trzecią.
Czy moduł jest zgodny z multisklepem?
Tak. Kampanie, śledzone koszyki i statystyki są segmentowane per sklep.
Czy jest zgodny z PrestaShop 9?
Tak. Moduł jest testowany na PrestaShop 8 i 9 i podąża za zmianami API PS9 (formatowanie cen przez API Locale, kontrolery itd.).