Instalacja, konfiguracja i atrybuty produktu
Zakres dokumentu
Ten dokument opisuje instalację modułu Estimated Delivery Date, konfigurację w panelu administracyjnym Magento 2 oraz zarządzanie atrybutami dodawanymi do produktu. Opis pól bazuje na aktualnej implementacji modułu.
Instalacja
Pakiet jest przeznaczony do instalacji przez Composer.
Przykładowa instalacja z repozytorium VCS:
composer config repositories.kowal.estimated.delivery.date vcs https://github.com/kowalco/estimated-delivery-date
composer require kowal/module-estimated-delivery-date
bin/magento module:enable Kowal_EstimatedDeliveryDate
bin/magento setup:upgrade
bin/magento cache:flush
Po wdrożeniu produkcyjnym należy uruchomić standardowy proces kompilacji i deployu statycznych zasobów zgodny z projektem Magento:
bin/magento setup:di:compile
bin/magento setup:static-content:deploy
bin/magento cache:flush
Lokalizacja konfiguracji
Konfiguracja modułu jest dostępna w panelu administracyjnym:
Stores > Configuration > Sales > Estimated Delivery Date
Ustawienia są dostępne na poziomie default, website i store view, zgodnie z mechanizmem konfiguracji Magento.
General
Enabled
Włącza lub wyłącza moduł dla danego zakresu konfiguracji. Gdy pole jest wyłączone, komunikaty na froncie nie powinny być prezentowane.
Domyślna wartość: Yes.
Calculation Timezone
Strefa czasowa używana do kalkulacji dat i godziny cut-off. Jeśli pole pozostanie puste, moduł używa strefy czasowej sklepu skonfigurowanej w Magento.
Przykład wartości:
Europe/Warsaw
Zastosowanie: przydatne, gdy sklep działa w wielu store view lub gdy magazyn obsługujący wysyłki pracuje w innej strefie czasowej niż domyślna konfiguracja sklepu.
Fallback Message
Komunikat zastępczy używany jako tekst awaryjny, gdy sklep chce pokazać ogólną informację zamiast konkretnej daty.
Domyślna wartość:
Termin dostawy potwierdzimy po złożeniu zamówienia.
Format daty używany przy renderowaniu komunikatów dla klienta. Pole korzysta ze wzorca ICU obsługiwanego przez formatowanie dat Magento.
Domyślna wartość:
EEEE, d MMMM
Przykładowy efekt:
poniedziałek, 18 maja
Date Calculation
Processing Days Min
Minimalna liczba dni roboczych potrzebnych na kompletację zamówienia przed wysyłką.
Domyślna wartość: 1.
Zastosowanie: określa najwcześniejszą możliwą datę wysyłki.
Processing Days Max
Maksymalna liczba dni roboczych potrzebnych na kompletację zamówienia.
Domyślna wartość: 1.
Zastosowanie: pozwala utworzyć zakres dat wysyłki, gdy kompletacja może potrwać dłużej niż minimalny czas.
Transport Days Min
Minimalna liczba dni roboczych transportu od wysyłki do dostawy.
Domyślna wartość: 1.
Zastosowanie: określa najwcześniejszą możliwą datę dostawy po wysyłce.
Transport Days Max
Maksymalna liczba dni roboczych transportu.
Domyślna wartość: 2.
Zastosowanie: pozwala pokazać zakres dostawy, np. wtedy, gdy przewoźnik zwykle dostarcza w 1-2 dni robocze.
Same-day Shipping Cut-off Time
Godzina graniczna dla wysyłki tego samego dnia. Wartość powinna być wpisana w formacie HH:MM.
Domyślna wartość:
14:00
Jeśli aktualna godzina jest późniejsza niż cut-off, moduł przesuwa start kalkulacji na kolejny dzień roboczy.
Non-working Weekdays
Lista dni tygodnia traktowanych jako niepracujące. Wartości należy podać jako numery ISO oddzielone przecinkami:
1 - poniedziałek,
2 - wtorek,
3 - środa,
4 - czwartek,
5 - piątek,
6 - sobota,
7 - niedziela.
Domyślna wartość:
6,7
Zastosowanie: standardowo pomija soboty i niedziele przy liczeniu dni roboczych.
Safety Buffer Days
Dodatkowy bufor bezpieczeństwa doliczany do czasu transportu.
Domyślna wartość: 0.
Zastosowanie: przydatne w okresach zwiększonej liczby zamówień, przy niestabilnej pracy przewoźników lub przy produktach wymagających ostrożniejszej obietnicy dostawy.
Display Settings
Show on Product Page
Włącza prezentację przewidywanej daty na karcie produktu.
Domyślna wartość: Yes.
Show in Cart
Włącza prezentację przewidywanej daty w koszyku.
Domyślna wartość: Yes.
Show in Admin Order
Włącza sekcję Estimated Delivery Date w widoku zamówienia w panelu administracyjnym.
Domyślna wartość: Yes.
Show Cut-off Widget on Product Page
Włącza widget odliczający do godziny cut-off na karcie produktu.
Domyślna wartość: Yes.
Włącza widget cut-off w koszyku.
Domyślna wartość: No.
Określa sposób prezentacji widgetu cut-off.
Dostępne wartości:
Inline - widget jest prezentowany w miejscu osadzenia bloku,
Fixed - widget jest przyklejony do wybranego rogu ekranu,
Inline + Fixed - widget działa jednocześnie jako element inline i fixed.
Domyślna wartość: Inline.
Określa pozycję widgetu fixed.
Dostępne wartości:
Bottom Right - prawy dolny róg,
Bottom Left - lewy dolny róg,
Top Right - prawy górny róg,
Top Left - lewy górny róg.
Domyślna wartość: Bottom Right.
Określa typ urządzeń, na których ma być widoczny widget fixed.
Dostępne wartości:
Desktop,
Mobile,
Desktop + Mobile.
Domyślna wartość: Desktop + Mobile.
After Cut-off Behavior
Określa zachowanie widgetu po przekroczeniu godziny cut-off.
Dostępne wartości:
Hide Widget - widget zostanie ukryty,
Show After Cut-off Message - widget pokaże komunikat po cut-offie.
Domyślna wartość: Show After Cut-off Message.
Customer Messages
Komunikaty obsługują proste zmienne w formacie {{nazwa_zmiennej}}.
Dostępne zmienne dla komunikatów dostawy:
{{ship_date}},
{{ship_date_from}},
{{ship_date_to}},
{{delivery_date}},
{{delivery_date_from}},
{{delivery_date_to}}.
Dostępne zmienne dla komunikatów cut-off:
{{cutoff_time}},
{{cutoff_countdown}}.
Delivery Range Message
Szablon komunikatu używany, gdy kalkulacja zwraca zakres dat dostawy.
Domyślna wartość:
Przewidywana dostawa: {{delivery_date_from}} - {{delivery_date_to}}
Single Delivery Date Message
Szablon komunikatu używany, gdy najwcześniejsza i najpóźniejsza data dostawy są takie same.
Domyślna wartość:
Przewidywana dostawa: {{delivery_date}}
Cut-off Countdown Message
Komunikat prezentowany przed przekroczeniem godziny cut-off.
Domyślna wartość:
Zamów w ciągu {{cutoff_countdown}}, a wyślemy jeszcze dzisiaj.
After Cut-off Message
Komunikat prezentowany po przekroczeniu godziny cut-off, jeśli pole After Cut-off Behavior ustawiono na pokazywanie komunikatu.
Domyślna wartość:
Dzisiejsza wysyłka już zamknięta. Wyślemy w następny dzień roboczy.
Emails
Send Separate Email After Payment
Włącza osobną wiadomość e-mail wysyłaną po opłaceniu zamówienia.
Domyślna wartość: No.
Zastosowanie: pozwala potwierdzić klientowi, że płatność została przyjęta i zamówienie weszło do realizacji.
Payment Confirmation Template
Szablon e-maila wysyłanego po płatności.
Domyślna wartość:
estimated_delivery_date_emails_payment_template
Payment Confirmation Sender
Nadawca wiadomości po płatności. Pole korzysta z tożsamości e-mail skonfigurowanych w Magento.
Domyślna wartość:
sales
Allow Email After Delivery Date Change
Pozwala wysyłać klientowi wiadomość po ręcznej zmianie terminu dostawy w panelu administracyjnym.
Domyślna wartość: Yes.
Delivery Date Change Template
Szablon e-maila wysyłanego po zmianie terminu dostawy.
Domyślna wartość:
estimated_delivery_date_emails_date_change_template
Delivery Date Change Sender
Nadawca wiadomości o zmianie terminu dostawy.
Domyślna wartość:
sales
Default Apology Message
Domyślna treść przeprosin używana w wiadomości o zmianie terminu dostawy.
Domyślna wartość:
Przepraszamy, termin realizacji Twojego zamówienia uległ zmianie.
Require Delay Reason
Wymaga podania powodu opóźnienia przy ręcznej zmianie terminu w widoku zamówienia.
Domyślna wartość: No.
Zastosowanie: wymusza lepszą dyscyplinę operacyjną i ułatwia późniejsze wyjaśnianie zmian terminu.
Send Automatically After Manual Date Change
Automatycznie wysyła wiadomość do klienta po ręcznej zmianie terminu dostawy.
Domyślna wartość: No.
Jeśli pole jest wyłączone, administrator może zdecydować o wysyłce przez zaznaczenie checkboxa w widoku zamówienia.
Zarządzanie atrybutami produktu
Moduł dodaje do produktu grupę atrybutów Estimated Delivery Date. Atrybuty są opcjonalne i mają zakres store view. Jeśli nie zostaną uzupełnione, moduł korzysta z reguł lub konfiguracji globalnej.
Atrybuty produktu mają pierwszeństwo przed regułami wyliczonymi dla produktu. Pozwala to szybko nadpisać termin dla konkretnego SKU bez zmiany ustawień globalnych.
Gdzie edytować atrybuty
Atrybuty są dostępne w panelu administracyjnym Magento:
Catalog > Products > Edit Product > Estimated Delivery Date
Jeśli grupa nie jest widoczna w danym attribute set, należy sprawdzić konfigurację zestawu atrybutów produktu w Magento.
EDD Processing Days Min
Kod atrybutu:
edd_processing_days_min
Minimalna liczba dni roboczych potrzebnych na kompletację konkretnego produktu.
Zastosowanie: produkt dostępny od ręki może mieć wartość 0, a produkt sprowadzany od dostawcy np. 3.
EDD Processing Days Max
Kod atrybutu:
edd_processing_days_max
Maksymalna liczba dni roboczych kompletacji konkretnego produktu.
Zastosowanie: jeśli kompletacja jest zmienna, można ustawić np. minimum 2 i maksimum 5, aby komunikat pokazywał bezpieczniejszy zakres.
EDD Transport Days Min
Kod atrybutu:
edd_transport_days_min
Minimalna liczba dni roboczych transportu dla konkretnego produktu.
Zastosowanie: przy produktach wysyłanych innym przewoźnikiem lub z innego magazynu.
EDD Transport Days Max
Kod atrybutu:
edd_transport_days_max
Maksymalna liczba dni roboczych transportu dla konkretnego produktu.
Zastosowanie: przy produktach wielkogabarytowych, paletowych lub wymagających specjalnej logistyki.
EDD Static Customer Message
Kod atrybutu:
edd_static_text
Własny komunikat dla klienta prezentowany zamiast komunikatu z konfiguracji globalnej.
Przykłady:
Produkt wykonywany na zamówienie. Termin dostawy potwierdzimy po zakupie.
Przewidywana dostawa: {{delivery_date_from}} - {{delivery_date_to}}
Atrybut może wykorzystywać te same zmienne dat, które są dostępne w globalnych komunikatach dostawy.
EDD Confidence
Kod atrybutu:
edd_confidence
Poziom pewności terminu zapisany przy obietnicy dostawy.
Rekomendowane wartości:
guaranteed - termin gwarantowany,
likely - termin prawdopodobny,
estimated - termin orientacyjny,
unknown - brak wiarygodnej estymacji.
Aktualna implementacja zapisuje tę wartość w wyniku kalkulacji i snapshotach. Może być wykorzystana przez szablony, integracje lub dalszą personalizację komunikatów.
Disable Estimated Delivery Date
Kod atrybutu:
edd_disable
Wyłącza prezentację przewidywanej dostawy dla konkretnego produktu na karcie produktu oraz wyłącza dla niego widget cut-off.
Zastosowanie: produkty niedostępne, produkty wymagające indywidualnej wyceny dostawy, usługi, produkty w przedsprzedaży lub towary, dla których sklep nie chce składać obietnicy terminu.
Praktyka uzupełniania atrybutów
Dla większości produktów atrybuty można pozostawić puste i korzystać z konfiguracji globalnej. Warto uzupełniać je tylko wtedy, gdy konkretny produkt realnie różni się od standardowego procesu logistycznego.
Przykładowe podejście:
- produkty dostępne od ręki: pozostawić puste albo ustawić krótszy czas kompletacji,
- produkty sprowadzane od dostawcy: ustawić dłuższy zakres kompletacji,
- produkty wielkogabarytowe: ustawić dłuższy transport,
- produkty personalizowane: użyć własnego komunikatu statycznego,
- produkty bez wiarygodnego terminu: włączyć
Disable Estimated Delivery Date albo ustawić komunikat wyjaśniający.
Po zmianie atrybutów produktu należy odświeżyć cache Magento, jeśli sklep używa pełnego cache strony lub dodatkowych mechanizmów cache w motywie.
Import świąt i dni wolnych
Import jest dostępny w panelu administracyjnym:
Sales > Estimated Delivery Date > Import Holidays
Plik CSV musi zawierać kolumny:
code,name,type
Kolumny opcjonalne:
date_from,date_to,month,day,country,region,postcode_pattern,shipping_method,source_code,store_id,scope,is_active
Obsługiwane typy w kolumnie type:
single - pojedyncza data, wymaga date_from,
range - zakres dat, wymaga date_from i date_to,
recurring - data cykliczna, wymaga month i day.
Opis wybranych pól importu:
code - unikalny kod święta lub dnia wolnego,
name - nazwa widoczna administracyjnie,
type - typ wpisu: pojedynczy dzień, zakres lub data cykliczna,
date_from - data początku w formacie YYYY-MM-DD,
date_to - data końca w formacie YYYY-MM-DD,
month - miesiąc dla wpisu cyklicznego,
day - dzień miesiąca dla wpisu cyklicznego,
country - kod kraju,
region - region,
postcode_pattern - wzorzec kodu pocztowego,
shipping_method - metoda dostawy,
source_code - kod źródła MSI,
store_id - identyfikator store view,
scope - zakres zastosowania, domyślnie shipping_delivery,
is_active - status aktywności wpisu.
Przykład:
code,name,type,date_from,date_to,month,day,country,store_id,is_active
christmas_2026,Christmas Break,range,2026-12-24,2026-12-26,,,,,1
new_year,New Year,recurring,,,1,1,,,1
Zarządzanie terminem w zamówieniu
Sekcja Estimated Delivery Date jest dostępna w widoku zamówienia, jeśli włączono pole Show in Admin Order.
Administrator może edytować:
- datę wysyłki od,
- datę wysyłki do,
- datę dostawy od,
- datę dostawy do,
- komunikat dla klienta,
- powód opóźnienia.
Jeśli e-mail po zmianie terminu jest włączony, administrator może zaznaczyć wysyłkę wiadomości z przeprosinami i nowym terminem. Moduł zapisuje historię zmian wraz z poprzednim i nowym terminem, powodem oraz informacją o wysyłce e-maila.
REST API
Moduł udostępnia endpointy:
GET /rest/V1/estimated-delivery/product/:sku
GET /rest/V1/estimated-delivery/cart/:cartId
GET /rest/V1/estimated-delivery/guest-cart/:cartId
GET /rest/V1/estimated-delivery/order/:orderId
API zwraca m.in. datę wysyłki, datę dostawy, komunikat, poziom pewności, kod reguły, datę kalkulacji i źródło danych. Dla zamówienia moduł zwraca zapisany snapshot, jeśli istnieje.