Porzucony koszyk: przypomnienie to informacja handlowa, więc wymaga zgody

4 min czytania
Pusty druciany wózek sklepowy na ciemnym tle

Odzyskiwanie porzuconych koszyków to jedna z najlepiej policzonych rzeczy w handlu internetowym. Ma jednak warunek wstępny, który w polskich poradnikach znika między akapitami: przypomnienie o koszyku jest informacją handlową, a informację handlową wysyła się za zgodą odbiorcy.

Adres podany w kasie został podany po to, żeby doszła faktura i plik. Nie po to, żeby przyszła zachęta do dokończenia zakupu.

Zgoda musi być osobna i odznaczona

Trzy rzeczy, które warunkują, czy zgoda w ogóle jest zgodą:

  • Osobne pole - nie doklejone do akceptacji regulaminu. Zgoda zbiorcza na kilka rzeczy naraz nie jest zgodą na żadną z nich.
  • Domyślnie odznaczone - pole zaznaczone z góry nie jest oświadczeniem woli klienta.
  • Zapisane brzmienie - nie sam fakt „zaznaczył”, tylko konkretny tekst, data i okoliczności. Za dwa lata nikt nie będzie pamiętał, jak brzmiała zgoda z tamtej wersji kasy, a to właśnie trzeba będzie pokazać.

Brzmienia zgody nie bierz z cudzego sklepu. To tekst prawny, za który odpowiadasz, i powinien pochodzić od twojego prawnika - podobnie jak regulamin. Dobra wtyczka pozwala go wpisać i nie wpisuje go za ciebie.

Adres i zgodę trzeba poznać w trakcie, nie na końcu

To jest ta część, którą najłatwiej przeoczyć przy pisaniu. Wygląda na szczegół techniczny, a przesądza o tym, czy mechanizm w ogóle ma sens.

Koszyk, za który ktoś zapłacił, nie jest porzucony. Jeśli adres i zgodę odczytasz dopiero przy składaniu zamówienia, dostaniesz dane wyłącznie od osób, które dokończyły zakup - czyli od wszystkich poza tymi, do których chciałeś napisać.

Dane trzeba przechwycić wtedy, kiedy klient wypełnia formularz:

// Kasa blokowa - Store API aktualizuje klienta przy każdej zmianie pola.
add_action(
    'woocommerce_store_api_cart_update_customer_from_request',
    'moj_przechwyt_kasy',
    10,
    2
);

// Kasa klasyczna - to samo, inna ścieżka.
add_action( 'woocommerce_checkout_update_order_review', 'moj_przechwyt_klasyczny' );

Pole zgody musi być w grupie „contact”

Przy rejestracji pola przez woocommerce_register_additional_checkout_field lokalizacja nie jest kosmetyką. Pola z grupy order WooCommerce zapisuje dopiero razem z zamówieniem - czyli nigdy, jeśli zamówienia nie ma. Pole zgody na przypomnienie o koszyku musi mieć 'location' => 'contact', bo tylko wtedy poznasz jego wartość przed kliknięciem „kupuję”.

Porzucone wózki sklepowe na podziemnym parkingu
Przypomnienie o koszyku to informacja handlowa - bez zgody nie wolno go wysłać.

Dwie pułapki przy wysyłce

Znak „wysłane” stawiaj przed wysyłką

Kolejność wygląda niewinnie, a decyduje o tym, co się stanie przy awarii. Jeśli oznaczysz zadanie jako wykonane dopiero po udanej wysyłce, a serwer poczty zawiesi się w trakcie, przy następnym przebiegu zadanie będzie nadal „oczekujące” - i klient dostanie ten sam mail drugi raz.

Lepiej nie wysłać niż wysłać dwa razy. Niewysłane przypomnienie to utracona szansa; wysłane dwa razy to zgłoszenie spamu, które zabiera ze sobą reputację całej domeny - razem z fakturami.

Cron odrzuca zdarzenia, które stoją zbyt blisko siebie

Funkcja wp_schedule_single_event() odrzuca duplikat w promieniu dziesięciu minut od istniejącego zdarzenia o tym samym haku. Przy testach wygląda to jak błąd w kodzie: zaplanowane „na już” zdarzenie po cichu nie powstaje, bo cykliczne stoi za dwie minuty. Nie powstaje też komunikat - funkcja zwraca po prostu wartość, której nikt nie sprawdza.

Ile przypomnień i kiedy

Przy produktach cyfrowych pierwsze przypomnienie po godzinie trafia w moment, w którym decyzja jeszcze trwa. Drugie po dobie jest już ostatnie, które ma sens - trzeci mail przestaje być przypomnieniem, a zaczyna być naprzykrzaniem się.

Każdy mail musi mieć działający odnośnik do wypisania się, nagłówek List-Unsubscribe i prawdziwego nadawcę w domenie sklepu. Bez SPF, DKIM i DMARC nawet poprawnie zebrana zgoda nie pomoże - wiadomość i tak wyląduje w spamie.

Co, jeśli zgody nie masz

Wtedy mechanizm ma stać. My tak właśnie mamy w naszym sklepie: wtyczka do porzuconych koszyków jest wyłączona, bo nie mamy brzmienia zgody od prawnika - a bez wpisanego brzmienia nie pokazuje pola w kasie, nie zapisuje ani jednego adresu i nie wysyła ani jednej wiadomości.

To nie jest ostrożność na wyrost. Mechanizm, który zbiera adresy „na zapas”, do czasu aż ktoś dopisze zgodę, zdąży zebrać bazę, której nie wolno użyć - i której trzeba będzie się pozbyć.

Nowa wtyczka? Dowiesz się pierwszy.

Premiery, poradniki i promocje - raz na jakiś czas, bez zasypywania skrzynki.

[ skrót ] Albo zrób to wtyczką
Newsletter z zapisami i wysyłką
v1.0.0 Nowość

Newsletter z zapisami i wysyłką

Newsletter we własnej bazie: zapisy ze zgodami, potwierdzenie mailem i kampanie bez abonamentu od liczby adresów.

Double opt-in Wygląd z panelu Bez limitu adresów
WP
6.5+
149,00 zł jednorazowo
Kup i pobierz
Własne pola produktu
v1.0.0 Nowość

Własne pola produktu

Własne pola produktu, które same pokazują się tam, gdzie trzeba.

WP
6.4+
249,00 zł jednorazowo
Kup i pobierz