SW Shopware 6 Początkujący

DfCartRecovery: odzyskiwanie porzuconego koszyka dla Shopware 6

Instalacja i konfiguracja odzyskiwania porzuconych koszyków w Shopware 6: zaplanowane przypomnienia, unikalne kody rabatowe, link przywracający i tracking.

Zaktualizowano Wersja modułu 1.0.0

Wprowadzenie

DfCartRecovery dodaje do Shopware 6 (Community Edition) odzyskiwanie porzuconych koszyków, normalnie zarezerwowane dla planu Commercial: wykrywanie koszyków, do 3 zaplanowanych e-maili przypominających, unikalny kod rabatowy per klient, link przywracający koszyk jednym kliknięciem i tracking odzyskanych zamówień. Żadnych usług zewnętrznych, żadnego builda administracji: wszystko konfiguruje się w ustawieniach pluginu.

Wymagania

  • Shopware 6.5, 6.6 lub 6.7 (Community Edition self-hosted; Shopware Cloud SaaS nie jest obsługiwany)
  • PHP 8.1 lub nowszy (zalecane 8.2+)
  • Aktywny konsument wiadomości i wykonywanie zadań cyklicznych (standardowa rekomendacja Shopware w produkcji)
  • Działająca wysyłka e-maili w sklepie (przypomnienia idą przez natywny serwis mail Shopware)

Instalacja

  1. Rozpakuj archiwum i umieść katalog DfCartRecovery w custom/plugins/.
  2. Z katalogu głównego Shopware wykonaj:
bin/console plugin:refresh
bin/console plugin:install --activate DfCartRecovery
bin/console cache:clear

Zadanie cykliczne df_cart_recovery.process rejestruje się automatycznie i wykonuje co 15 minut. Sprawdź, czy Twoje workery działają:

bin/console scheduled-task:run
bin/console messenger:consume async low_priority

Instalacja tworzy tabelę śledzenia df_cart_recovery i szablon e-maila “Przypomnienie o porzuconym koszyku (DataFirefly)”, wstępnie przetłumaczony na FR, EN, DE, ES i IT.

Konfiguracja

Przejdź do Rozszerzenia → Moje rozszerzenia → DfCartRecovery → Konfiguracja. Trzy karty ustawień:

Ogólne

  • Włącz odzyskiwanie koszyków: globalny przełącznik pluginu.
  • Minimalna wartość koszyka: koszyki poniżej tej kwoty są ignorowane (0 = brak minimum).
  • Retencja danych (dni): starsze rekordy śledzenia są usuwane automatycznie (domyślnie 30 dni, zobacz sekcję RODO).

E-maile przypominające

  • Liczba przypomnień: 1, 2 lub 3 (domyślnie 2).
  • Przypomnienie 1: minuty po porzuceniu koszyka (domyślnie 60, czyli 1 godzina).
  • Przypomnienie 2: minuty po przypomnieniu 1 (domyślnie 1440, czyli 24 godziny).
  • Przypomnienie 3: minuty po przypomnieniu 2 (domyślnie 4320, czyli 72 godziny).

Sekwencja 1 h / +24 h / +72 h to sprawdzony standard e-mailowego retargetingu: zostaw ją jako punkt wyjścia, a potem dostrajaj według swoich statystyk odzyskiwania.

Kod rabatowy

  • Dołącz unikalny kod rabatowy: włącza generowanie kodów indywidualnych.
  • Promocja dla generowanych kodów: wybierz promocję Shopware, która będzie nośnikiem kodów (patrz niżej).
  • Wyślij kod z przypomnieniem nr: domyślnie 2: klienci wracający po pierwszym e-mailu zamawiają bez rabatu.
  • Prefiks kodu: domyślnie CART; generowane kody wyglądają jak CART-7F3A91B2.

Utworzenie promocji dla unikalnych kodów

  1. W administracji Shopware otwórz Marketing → Promocje i utwórz promocję (albo użyj istniejącej).
  2. W zakładce ogólnej włącz Indywidualne kody promocyjne.
  3. Ustaw rabat (procent lub kwota), warunki i okres ważności jak zwykle.
  4. Aktywuj promocję, a następnie wybierz ją w konfiguracji pluginu.

Promocja musi koniecznie mieć włączone kody indywidualne: plugin wstawia wygenerowane kody do tej listy. Bez tej opcji wysłane kody nie zostaną zaakceptowane w checkoucie.

Personalizacja e-maila przypominającego

Treść edytujesz w Ustawienia → Szablony e-mail, typ “Przypomnienie o porzuconym koszyku (DataFirefly)”, dla każdego języka sklepu. Dostępne zmienne Twig:

  • firstName / lastName: imię i nazwisko klienta
  • items: pozycje koszyka, każda z label i quantity
  • total i currency: kwota koszyka i kod waluty
  • recoveryUrl: link przywracający koszyk (umieść go na przycisku akcji)
  • voucherCode: unikalny kod rabatowy (pusty, gdy opcja wyłączona lub przypomnienie bez kodu: otocz jego blok warunkiem Twig)
  • shopName: nazwa sklepu kanału sprzedaży
  • reminderNumber: numer bieżącego przypomnienia (1, 2 lub 3)

Każdy e-mail zawiera unikalny link postaci /df-cart-recovery/token, generowany na domenie kanału sprzedaży klienta, w jego języku. Po kliknięciu plugin odbudowuje koszyk pozycja po pozycji, sygnalizuje produkty, które stały się niedostępne, komunikatem w storefroncie, odnotowuje czas kliknięcia i przekierowuje na stronę koszyka. Linki nieprawidłowe lub wygasłe przekierowują na stronę główną z czytelnym komunikatem.

Tracking odzyskiwania

Gdy tylko zamówienie zostaje złożone, plugin dopasowuje adres e-mail klienta do trwających porzuconych koszyków: rekord przechodzi w status “odzyskany” z identyfikatorem zamówienia, datą i liczbą wysłanych przypomnień. Przypomnienia dla tego koszyka natychmiast się kończą. Dane można przeglądać w tabeli df_cart_recovery (tokeny, statusy, kliknięcia, powiązane zamówienia) na potrzeby Twoich raportów SQL lub BI.

RODO i dane

  • Żadne dane nie opuszczają Twojego serwera; nie jest wywoływana żadna usługa firm trzecich.
  • Rekordy śledzenia są automatycznie czyszczone po skonfigurowanym okresie retencji.
  • Przy odinstalowaniu wybierz “Usuń wszystkie dane aplikacji”, aby skasować tabelę, szablon e-maila i konfigurację, albo zachowaj je, żeby zatrzymać historię.

Rozwiązywanie problemów

Żaden e-mail nie jest wysyłany

  • Sprawdź, czy zadanie cykliczne działa: bin/console scheduled-task:list powinno pokazywać df_cart_recovery.process w statusie scheduled, a Twoje workery messengera muszą być aktywne.
  • Przetestuj globalną wysyłkę e-maili sklepu (Ustawienia → Agent pocztowy): plugin korzysta ze standardowego serwisu mail.
  • Skontroluj minimalną wartość koszyka i opóźnienie przypomnienia 1: koszyk porzucony 20 minut temu przy opóźnieniu 60 minut nie jest jeszcze kwalifikowany.

Goście nic nie otrzymują

To oczekiwane zachowanie: bez adresu e-mail żadne przypomnienie nie jest możliwe. Goście są śledzeni od momentu identyfikacji (logowanie lub założenie konta podczas checkoutu); scalenie koszyka aktualizuje rekord ich adresem.

Kod rabatowy nie pojawia się w e-mailu

  • Sprawdź, czy opcja “Dołącz unikalny kod rabatowy” jest aktywna i czy wybrano promocję.
  • Promocja musi istnieć, być aktywna i mieć włączone kody indywidualne.
  • Kod jest dołączany dopiero od skonfigurowanego przypomnienia (domyślnie drugiego): przypomnienie 1 w standardowej konfiguracji go nie zawiera.

Token jest nieprawidłowy albo rekord został wyczyszczony (przekroczona retencja); klient otrzymuje komunikat zachęcający do ponownego złożenia koszyka. Wydłuż okres retencji, jeśli Twoje opóźnienia przypomnień są długie.

Czy ta strona była pomocna?

Nadal utknąłeś? Napisz do wsparcia