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.
- Zestaw ikon motywu: ikony wyświetlane na koncie klienta. Motyw Classic PrestaShop używa Material Icons, natomiast wiele motywów komercyjnych ładuje FontAwesome. Wybierz ten, który Twój motyw faktycznie ładuje, albo brak ikony. Jeśli na koncie klienta zamiast ikony pojawia się pojedyncze słowo, oznacza to po prostu, że to ustawienie nie odpowiada Twojemu motywowi.
- Produkty wykluczone z zamówień planowanych: lista identyfikatorów produktów oddzielonych przecinkami. Te produkty nigdy nie są kopiowane do harmonogramu ani dodawane do odtworzonego koszyka. Zobacz sekcję o prezentach i regułach koszyka.
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.
Proponowanie cykliczności podczas składania zamówienia
Domyślnie klient planuje zamówienie później, na podstawie już złożonego zamówienia. Dwie opcjonalne funkcje pozwalają zaproponować mu cykliczność wcześniej, w momencie zakupu. Obie są wyłączone po instalacji: ich włączenie to decyzja, a nie skutek uboczny aktualizacji.
Opcja w procesie zamówienia
Pole wyboru „Zamień ten zakup w zamówienie cykliczne” pojawia się w koszyku oraz na górze kroku płatności, a po nim selektor częstotliwości pokazujący tylko te częstotliwości, które włączyłeś. Klient zaznacza pole, wybiera swój rytm i normalnie kontynuuje zamówienie.
Wybór jest zapisywany przy koszyku, a nie w sesji. Ma to znaczenie przy metodach płatności przekierowujących klienta na zewnętrzną stronę: zamówienie jest często zatwierdzane w zwrotnym wywołaniu płatności, gdzie sesja klienta już nie istnieje, a wybór przechowywany w sesji zostałby utracony bez żadnego ostrzeżenia.
Harmonogram powstaje dopiero po zatwierdzeniu zamówienia. Adresy, przewoźnik i waluta pochodzą więc z rzeczywistego zamówienia, a ponowna próba płatności nie może utworzyć dwóch harmonogramów. Pierwszy termin jest wyliczany na podstawie daty zamówienia i wybranej częstotliwości.
Opcja pojawia się wyłącznie dla zalogowanych klientów, ponieważ harmonogram należy do konta klienta. Uwzględnia także limit harmonogramów na klienta oraz listę wykluczonych produktów.
Informacja na karcie produktu
Krótka informacja mówi odwiedzającemu, że produkt można zamówić cyklicznie, i wyjaśnia zasadę w dwóch prostych zdaniach. Produkty z listy wykluczeń nigdy jej nie wyświetlają.
Jeśli nic się nie wyświetla
Oba elementy opierają się na standardowych punktach zaczepienia PrestaShop. Niektóre motywy, a zwłaszcza moduły zamówienia na jednej stronie, nie udostępniają ich wszystkich. Strona konfiguracji modułu wymienia te punkty wraz z ich stanem i oferuje przycisk do ponownej rejestracji. Jeśli któryś pozostaje nieaktywny po tej próbie, oznacza to, że Twój motyw lub moduł zamówienia go nie udostępnia.
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.
Prezenty i reguły koszyka
Produkt przyznany w prezencie przez regułę koszyka nigdy nie jest kopiowany do harmonogramu. To celowe: prezentu nie wybrał klient, a reguła koszyka sama dodaje go przy każdej odbudowie koszyka, gdy tylko warunki są spełnione. Pozostawienie go w harmonogramie sprawiłoby, że pojawiłby się dwukrotnie.
Prezent jest więc nadal przyznawany normalnie przy każdym terminie i podąża za aktualnym stanem Twojej reguły: jeśli zmienisz próg lub produkt przyznawany w prezencie, zamówienia planowane uwzględnią to natychmiast.
Jeśli prezent jest dodawany przez moduł zewnętrzny, a nie przez natywną regułę koszyka, automatyczne wykrywanie go nie rozpozna. Wpisz wówczas jego identyfikator produktu w ustawieniu Produkty wykluczone z zamówień planowanych. Wykluczenie działa także dla istniejących harmonogramów, bez konieczności tworzenia ich na nowo przez klientów.
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, każdy w wersji HTML i tekstowej, w siedmiu językach: francuskim, angielskim, hiszpańskim, włoskim, portugalskim, niemieckim i polskim:
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.