Zamówienia Cykliczne i Planowane: dokumentacja PrestaShop 8 i 9
Instalacja, planowanie i obsługa zamówień cyklicznych: od codziennego crona po link koszyka wysyłany do klienta.
Co robi moduł
Moduł pozwala klientom zaplanować powtarzanie zamówienia z poziomu konta: co tydzień, co miesiąc, co kwartał, co rok lub w dowolnym odstępie wyrażonym w dniach.
Przed każdym terminem harmonogram wysyła klientowi e-mail z bezpiecznym linkiem. Gdy klient kliknie link, jego koszyk jest odtwarzany dokładnie w tym momencie, po czym klient trafia do standardowego procesu zamówienia, gdzie płaci wybraną przez siebie metodą.
Brak automatycznego obciążenia. Moduł nie przechowuje żadnych danych płatniczych i nie inicjuje żadnych obciążeń. Nie ma więc mandatu cyklicznego do zbierania, karty do tokenizacji ani silnego uwierzytelnienia do ponownego przeprowadzania. Klient sam zatwierdza i opłaca każde zamówienie.
Instalacja
- W panelu administracyjnym otwórz Moduły, Menedżer modułów, a następnie Zainstaluj moduł.
- Wgraj dostarczony plik ZIP lub skopiuj katalog
dfrecurringorderdo katalogumodules/sklepu. - Kliknij Zainstaluj. Tabele, zakładki administracyjne i wartości domyślne zostaną utworzone automatycznie.
- Skonfiguruj zadanie zaplanowane, opisane w następnej sekcji. Bez niego żaden e-mail z przypomnieniem nie zostanie wysłany.
Moduł dodaje menu Zamówienia, Zamówienia planowane, złożone z trzech ekranów: listy harmonogramów, historii wysyłek i konfiguracji.
Konfiguracja harmonogramu
Moduł powinien być wywoływany raz dziennie. Jedno wykonanie dziennie wystarcza: harmonogram przetwarza w jednym przebiegu wszystkie harmonogramy, których termin nadszedł.
Przez URL
Strona konfiguracji modułu wyświetla dokładny adres URL, wraz z tokenem. Wygląda on tak:
https://twoj-sklep.tld/module/dfrecurringorder/cron?token=TWOJ_TOKEN
Tego adresu można użyć z oficjalnym modułem Zadania cron PrestaShop, z zewnętrzną usługą cron lub z crontaba serwera:
0 6 * * * wget -q -O - "https://twoj-sklep.tld/module/dfrecurringorder/cron?token=TWOJ_TOKEN"
Z linii poleceń
To zalecana metoda na serwerze dedykowanym: pozwala uniknąć limitów czasu wykonania serwera WWW.
0 6 * * * php /sciezka/do/sklepu/modules/dfrecurringorder/cli/run.php --token=TWOJ_TOKEN
Opcja --id_shop=N ogranicza wykonanie do jednego sklepu w kontekście multistore. Bez tej opcji przetwarzane są wszystkie sklepy.
Sprawdzenie, czy wszystko działa
Strona konfiguracji zawiera przycisk Uruchom harmonogram teraz. Wywołuje on natychmiastowy przebieg i wyświetla raport: liczbę przetworzonych harmonogramów, wysłanych e-maili i ewentualnych błędów. Wywołanie przez URL zwraca ten sam raport w formacie JSON.
Token można w każdej chwili wygenerować ponownie na stronie konfiguracji. Pamiętaj wtedy o aktualizacji crontaba, w przeciwnym razie kolejne wywołania zostaną odrzucone.
Konfiguracja modułu
Doświadczenie klienta
- Pozwól klientom tworzyć własne harmonogramy: wyświetla przycisk „Zaplanuj to zamówienie” na stronie szczegółów zamówienia i na stronie potwierdzenia. Wyłącz tę opcję, jeśli wolisz tworzyć harmonogramy samodzielnie z panelu administracyjnego.
- Maksymalna liczba harmonogramów na klienta: 0 oznacza brak limitu. Wartość domyślna to 20.
- Minimalny odstęp w dniach: zapobiega tworzeniu harmonogramów o zbyt krótkich odstępach.
Dostępne częstotliwości
Każdą częstotliwość można włączyć lub wyłączyć niezależnie: codzienna, tygodniowa, dwutygodniowa, miesięczna, dwumiesięczna, kwartalna, półroczna, roczna oraz niestandardowa w dniach. W formularzu klienta pojawiają się tylko włączone częstotliwości.
Domyślnie aktywne są częstotliwości: tygodniowa, dwutygodniowa, miesięczna, dwumiesięczna, kwartalna, półroczna i roczna. Częstotliwość codzienna oraz odstęp niestandardowy są wyłączone, ponieważ pasują głównie do specyficznych scenariuszy B2B.
E-maile i link płatności
- Wyślij e-mail X dni przed terminem: wartość domyślna stosowana do nowych harmonogramów. Klient może dostosować ten czas dla swojego harmonogramu. Trzy dni to dobry punkt wyjścia: wystarczająco wcześnie, aby dać czas na reakcję, i wystarczająco późno, by pozostać w pamięci klienta.
- Okres ważności linku płatności: w dniach, domyślnie 14. Po tym czasie link wyświetla komunikat o wygaśnięciu i zachęca klienta do wygenerowania nowego z poziomu konta.
- Pomijaj produkty niedostępne: domyślnie włączone. Zobacz sekcję o przypadkach szczególnych.
- Wysyłaj kopię do sprzedawcy: przydatne w fazie rozruchu, aby zweryfikować rzeczywisty wygląd e-maili.
Harmonogram
- Liczba harmonogramów przetwarzanych na wykonanie: domyślnie 50. Zwiększ tę wartość, jeśli dzienny wolumen przekracza ten limit, lub uruchamiaj crona kilka razy dziennie.
- Usuń wszystkie dane przy odinstalowaniu: domyślnie wyłączone. Zobacz sekcję Odinstalowanie.
Po stronie klienta: planowanie zamówienia
Proces zawsze zaczyna się od już złożonego zamówienia, co gwarantuje spójność produktów, adresu i przewoźnika.
- Klient otwiera jedno ze swoich zamówień w historii lub pozostaje na stronie potwierdzenia tuż po zakupie.
- Klika Zaplanuj to zamówienie.
- W razie potrzeby dostosowuje ilości. Ilość ustawiona na 0 usuwa produkt z harmonogramu.
- Wybiera częstotliwość, datę następnego zamówienia oraz, opcjonalnie, datę końcową lub maksymalną liczbę zamówień.
- Zapisuje. E-mail potwierdzający podsumowuje harmonogram.
Harmonogram pojawia się następnie w sekcji Moje konto, Moje zamówienia planowane. Z tego ekranu klient może w każdej chwili:
- zmienić częstotliwość, datę lub ilości;
- wstrzymać i wznowić harmonogram, przy czym następny termin jest wtedy przeliczany na przyszłość;
- trwale usunąć harmonogram;
- kliknąć Zamów teraz, aby natychmiast uruchomić koszyk bez czekania na termin.
Po stronie sprzedawcy: śledzenie harmonogramów
Lista zamówień planowanych
Dla każdego harmonogramu wyświetla klienta, częstotliwość, liczbę produktów, następny termin, liczbę wysłanych już e-maili, liczbę faktycznie złożonych zamówień oraz status. Kolumna zamówień to najbardziej użyteczna miara: pokazuje, ile harmonogramów rzeczywiście przekłada się na przychód.
Szczegółowa karta harmonogramu pozwala natychmiast wysłać klientowi link płatności, co przydaje się w supporcie, gdy klient zgłasza, że nie otrzymał e-maila.
Historia wysyłek
Każdy wygenerowany link tworzy wiersz historii, którego status zmienia się wraz z przebiegiem procesu:
- Wysłany: e-mail został wysłany, link nie został jeszcze otwarty.
- Link otwarty: klient kliknął, koszyk został utworzony.
- Przekształcony w zamówienie: koszyk stał się zamówieniem. Numer zamówienia jest dołączany automatycznie.
- Wygasły: okres ważności upłynął bez zamówienia.
- Błąd: wysyłka e-maila nie powiodła się. Sprawdź konfigurację e-mail sklepu.
W karcie zamówienia
Panel na dole karty zamówienia wyświetla harmonogramy utworzone na podstawie tego zamówienia, z bezpośrednim dostępem do ich szczegółów.
Jak działa link płatności
Zrozumienie tego mechanizmu pomaga odpowiadać na pytania klientów.
- W momencie wysyłki e-maila moduł nie tworzy żadnego koszyka. Generuje jedynie losowy token o długości 48 znaków, jednorazowy i opatrzony datą.
- Gdy klient klika, moduł weryfikuje token i jego datę wygaśnięcia.
- Jeśli klient nie jest zalogowany, zostaje przekierowany na standardową stronę logowania, a następnie automatycznie wraca do swojego linku. Link nigdy sam nie uwierzytelnia odwiedzającego.
- Po zidentyfikowaniu klienta koszyk jest budowany na podstawie harmonogramu, z cenami, promocjami, regułami koszyka i stanami magazynowymi z tej chwili.
- Klient trafia do procesu zamówienia. Ponowne kliknięcie tego samego linku ponownie wykorzystuje już utworzony koszyk, dopóki nie stał się on zamówieniem.
To dlatego, że koszyk jest budowany w chwili kliknięcia, a nie wysyłki, pozostaje zawsze aktualny. Koszyk wygenerowany z góry w momencie e-maila stawałby się błędny, gdy tylko cena, promocja lub stan magazynowy zmieniłyby się między wysyłką a kliknięciem.
Przypadki szczególne
Produkt niedostępny w terminie
Przy włączonej opcji Pomijaj produkty niedostępne dany produkt jest po prostu pomijany, a pozostałe artykuły pozostają możliwe do zamówienia. Koszyk jest odrzucany tylko wtedy, gdy żaden produkt nie jest dostępny: klient widzi wówczas komunikat zachęcający do kontaktu ze sklepem lub modyfikacji harmonogramu.
Jeśli wyłączysz tę opcję, brak produktu blokuje odtworzenie koszyka. To zachowanie pasuje do sklepów, których zamówienia muszą wychodzić w całości albo wcale.
Adres usunięty między terminami
Jeśli adres dostawy zapisany w harmonogramie został usunięty przez klienta, moduł automatycznie przełącza się na jego pierwszy dostępny adres. Adres rozliczeniowy podlega tej samej logice. Klient zawsze może zmienić adres w procesie zamówienia.
Końcówki miesięcy
Harmonogram miesięczny rozpoczęty 31 stycznia nie przesuwa się. Moduł cofa datę do ostatniego dnia miesiąca, gdy ten jest krótszy: 28 lub 29 lutego, a potem 31 marca. Pierwotny dzień jest zapamiętywany, więc nigdy nie ginie.
Multistore
Każdy harmonogram jest przypisany do sklepu, w którym został utworzony. E-maile wychodzą z tożsamością tego sklepu, a link płatności prowadzi do jego domeny.
Zakończenie harmonogramu
Harmonogram kończy się automatycznie, gdy data końcowa zostanie przekroczona lub gdy osiągnięta zostanie maksymalna liczba zamówień. Przechodzi wtedy w status Zakończony i przestaje wysyłać e-maile, pozostając widoczny w historii.
Personalizacja e-maili
Moduł dostarcza dwa szablony, po francusku i po angielsku, każdy w wersji HTML i tekstowej:
dfro_reminder: przypomnienie wysyłane przed każdym terminem, z linkiem płatności.dfro_created: potwierdzenie wysyłane przy utworzeniu harmonogramu.
Można je edytować z poziomu Wygląd, Motyw i logo, E-maile lub bezpośrednio w katalogu mails/ modułu. Zmienne dostępne w przypomnieniu to: imię i nazwisko klienta, nazwa i częstotliwość harmonogramu, data następnego zamówienia, tabela produktów, szacowana kwota, link płatności, link do zarządzania, okres ważności linku i nazwa sklepu.
Kwota wyświetlana w e-mailu to szacunek obliczany w momencie wysyłki, wyłącznie informacyjny. Faktycznie naliczana kwota to kwota koszyka odtworzonego w chwili kliknięcia. Nigdy nie przedstawiaj tej kwoty jako gwarancji ceny.
Rozwiązywanie problemów
Żaden e-mail nie jest wysyłany
Sprawdź w kolejności: czy zadanie zaplanowane faktycznie się wykonuje, czy token w crontabie odpowiada temu wyświetlanemu w konfiguracji, czy co najmniej jeden harmonogram jest aktywny z osiągniętym terminem oraz czy wysyłka e-maili sklepu działa. Przycisk Uruchom harmonogram teraz pozwala szybko wyizolować problem: jeśli wysyła e-maile, przyczyną jest zadanie zaplanowane.
Link wyświetla „Nieprawidłowy link”
Token nie istnieje lub został obcięty przez klienta pocztowego. Wygeneruj nowy link z karty harmonogramu w panelu administracyjnym.
Klient krąży w pętli na stronie logowania
Dzieje się tak, gdy link jest otwierany na innym koncie niż konto adresata. Klient powinien się wylogować i ponownie otworzyć link.
Odtworzony koszyk jest pusty
Wszystkie produkty harmonogramu są wyłączone lub wyprzedane. Sprawdź ich stan w katalogu lub tymczasowo wyłącz opcję pomijania produktów niedostępnych, aby diagnoza stała się jednoznaczna.
Odinstalowanie
Domyślnie odinstalowanie zachowuje tabele i harmonogramy. Późniejsza ponowna instalacja odzyskuje więc wszystkie dane. Aby usunąć wszystko, włącz opcję Usuń wszystkie dane przy odinstalowaniu przed odinstalowaniem modułu.
To usunięcie jest nieodwracalne i obejmuje harmonogramy, ich pozycje produktowe oraz pełną historię wysyłek. Wykonaj kopię zapasową bazy danych przed włączeniem tej opcji.