PS PrestaShop Początkujący

Przewidywana data dostawy: kompletny przewodnik

Instalacja i konfiguracja modułu Przewidywana data dostawy: godzina graniczna, czasy przygotowania, przewoźnicy i dni wolne od pracy.

Zaktualizowano Wersja modułu 1.0.0

Prezentacja

DataFirefly Delivery Date pokazuje przewidywaną datę dostawy na karcie produktu, w koszyku i w checkoucie sklepu PrestaShop 8 albo 9. Wyliczenie łączy cztery czynniki: czas przygotowania właściwy dla każdego produktu, widełki dostawy przewoźnika (minimum i maksimum dni roboczych), weekendy i dni wolne od pracy oraz Twoją dzienną godzinę graniczną. Przed godziną graniczną licznik na żywo pokazuje klientowi czas pozostały do wysyłki tego samego dnia.

Instalacja

  1. W back office PrestaShop otwórz Moduły → Menedżer modułów → Wgraj moduł.
  2. Wgraj plik dfdeliverydate.zip.
  3. Kliknij Zainstaluj, a następnie Konfiguruj.

Instalacja tworzy trzy tabele (ps_dfdeliverydate_product, ps_dfdeliverydate_carrier, ps_dfdeliverydate_holiday), rejestruje potrzebne hooki, dodaje ekran administracyjny do dni wolnych i wprowadza wstępnie 8 francuskich świąt państwowych jako wpisy powtarzalne rocznie.

Konfiguracja ogólna

W Moduły → Menedżer modułów → DataFirefly Delivery Date → Konfiguruj pierwszy panel zbiera ustawienia globalne:

  • Godzina i minuta graniczna: moment, do którego zamówienie kwalifikuje się do wysyłki tego samego dnia (domyślnie 14:00).
  • Strefa czasowa wysyłki: identyfikator strefy PHP, domyślnie Europe/Paris. Dla polskiego sklepu ustaw Europe/Warsaw. Wszystkie wyliczenia dat odbywają się w tej strefie, niezależnie od strefy serwera.
  • Domyślny czas przygotowania: stosowany do każdego produktu, dla którego nie wprowadzono wartości własnej.
  • Domyślne minimum i maksimum dni przewoźnika: używane, gdy przewoźnik nie ma własnych widełek.
  • Wyłączenie weekendów: usuwa sobotę i niedzielę z wyliczeń. Jeśli opcja jest wyłączona, możesz wyłączyć samą niedzielę (kolejna opcja), gdy wysyłasz w soboty.
  • Tryb wyświetlania: widełki (od minimum do maksimum), sama data najpóźniejsza albo widełki wraz z datą wysyłki.
  • Strefy wyświetlania: trzy niezależne przełączniki, czyli karta produktu, koszyk i checkout.
  • Licznik na żywo: włącza albo wyłącza licznik HH:MM:SS do godziny granicznej.

Czas przygotowania per produkt

Każda karta produktu w back office ma panel „Delivery date: preparation time”. Wpisz liczbę dni roboczych potrzebnych, zanim produkt będzie mógł zostać wysłany:

  • 0: produkt dostępny w magazynie, gotowy do natychmiastowej wysyłki (kwalifikuje się do wysyłki tego samego dnia przed godziną graniczną);
  • 2: produkt wymagający dwóch dni roboczych przygotowania;
  • 14: produkt wytwarzany albo personalizowany na zamówienie.

Wartość zapisuje się przy zapisie produktu. W koszyku o dacie wysyłki całego zamówienia decyduje produkt o najdłuższym czasie przygotowania.

Konfiguracja przewoźników

Drugi panel strony konfiguracji wymienia wszystkich aktywnych przewoźników. Dla każdego z nich ustal minimum i maksimum dni roboczych dostawy. Typowe wartości dla polskiego rynku: InPost Paczkomat 1 do 2, DPD 1 do 3, Poczta Polska 2 do 5. Na karcie produktu i w koszyku używane są widełki domyślnego przewoźnika sklepu, a w checkoucie moduł przełącza się na przewoźnika faktycznie wybranego przez klienta.

Gdy PrestaShop wersjonuje przewoźnika (po modyfikacji automatycznie powstaje nowy identyfikator), moduł kopiuje konfigurację na nowy identyfikator, więc żadne ustawienie nie przepada.

Dni wolne od pracy

Dniami wolnymi zarządzasz w Ulepszenia → Dostawa → Dni wolne (Delivery Date). Każdy wpis ma datę, nazwę, znacznik powtarzalny oraz status aktywny albo nieaktywny:

  • Powtarzalny: liczą się tylko miesiąc i dzień, a wpis jest automatycznie rzutowany na rok bieżący i następny (na przykład Boże Narodzenie każdego 25 grudnia).
  • Jednorazowy: konkretna, pojedyncza data, idealna dla dnia wolnego przypadającego raz albo dla wyjątkowego zamknięcia sklepu.

Wstępnie zainstalowanych jest 8 francuskich świąt państwowych, wszystkie jako powtarzalne: 1 stycznia, 1 maja, 8 maja, 14 lipca, 15 sierpnia, Wszystkich Świętych, 11 listopada i 25 grudnia. Możesz je dezaktywować pojedynczo i wprowadzić własny kalendarz.

Dla polskiego sklepu dezaktywuj 8 maja i 14 lipca, a następnie dodaj jako powtarzalne polskie święta o stałej dacie: 1 i 6 stycznia, 1 i 3 maja, 15 sierpnia, 1 i 11 listopada oraz 25 i 26 grudnia. Święta ruchome zależne od daty Wielkanocy (Poniedziałek Wielkanocny, Zielone Świątki, Boże Ciało) wprowadź jako wpisy jednorazowe na każdy rok, ponieważ ich data zmienia się co roku.

Algorytm wyliczania

Wyliczenie przebiega w poniższych krokach, wszystkie liczone w dniach roboczych w skonfigurowanej strefie czasowej:

  1. Data wysyłki startuje od dnia dzisiejszego. Jeśli bieżąca godzina jest po godzinie granicznej, przesuwa się na jutro.
  2. Czas przygotowania produktu (albo maksimum z koszyka) jest dodawany w dniach roboczych, z pominięciem weekendów i dni wolnych.
  3. Jeśli uzyskana data wysyłki wypada w dniu nieroboczym, przesuwa się na najbliższy dzień roboczy.
  4. Widełki dostawy wyliczane są przez dodanie minimum i maksimum przewoźnika, również w dniach roboczych.

Komunikat o wysyłce dzisiaj i licznik pojawiają się wyłącznie wtedy, gdy spełnione są trzy warunki naraz: bieżąca godzina jest przed godziną graniczną, dziś jest dzień roboczy, a czas przygotowania wynosi zero.

Personalizacja szablonów

Trzy widgety frontendowe są renderowane przez szablony Smarty możliwe do nadpisania. Skopiuj potrzebne pliki z modules/dfdeliverydate/views/templates/hook/ do themes/twoj-motyw/modules/dfdeliverydate/views/templates/hook/:

  • product-delivery-date.tpl: karta produktu;
  • cart-delivery-date.tpl: koszyk;
  • checkout-delivery-date.tpl: checkout i potwierdzenie zamówienia.

Każdy szablon otrzymuje tablicę $dfdd, zawierającą między innymi ships_today, min_date_label, max_date_label, ship_date_label, cutoff_ts i display_mode. Arkusz CSS znajduje się w views/css/front.css (klasy z prefiksem dfdd-).

Rozwiązywanie problemów

  • Widget nie pojawia się na karcie produktu: sprawdź, czy strefa jest włączona w konfiguracji i czy Twój motyw faktycznie implementuje hook displayProductAdditionalInfo (robi to motyw Classic i większość motywów rynkowych).
  • Licznik pokazuje 00:00:00: godzina graniczna na dziś już minęła. Licznik wyświetla się tylko wtedy, gdy wysyłka tego samego dnia jest jeszcze możliwa.
  • Daty wydają się przesunięte o jeden dzień: sprawdź strefę czasową ustawioną w module. Wyliczenie korzysta z tej strefy, a nie ze strefy serwera ani przeglądarki. Dla polskiego sklepu właściwa jest Europe/Warsaw.
  • Dzień wolny nie jest uwzględniany: sprawdź, czy wpis jest aktywny, a przy wpisie jednorazowym, czy jego rok odpowiada rokowi bieżącemu.

Deinstalacja

Deinstalacja usuwa trzy tabele modułu, wszystkie wpisy konfiguracyjne (prefiks DFDD_), ekran administracyjny dni wolnych oraz rejestracje hooków. Czasy przygotowania wprowadzone produkt po produkcie są więc bezpowrotnie tracone. Jeśli będą Ci potrzebne, wyeksportuj je wcześniej.

Czy ta strona była pomocna?

Nadal utknąłeś? Napisz do wsparcia