Kowal Shipping Rules - rozszerzenie Magento 2 do metod wysyłki, restrykcji dostawy i dodatkowych opłat.
Wysyłka w sklepie internetowym rzadko jest prosta. Standardowe ustawienia Magento sprawdzają się przy prostych scenariuszach, ale szybko stają się niewystarczające, gdy sklep sprzedaje produkty o różnych gabarytach, wagach, wymaganiach transportowych albo kosztach obsługi. W praktyce oznacza to konieczność ukrywania wybranych metod dostawy, doliczania opłat za pakowanie, stosowania wyjątków dla konkretnych produktów oraz tworzenia zasad zależnych od kraju, wartości koszyka czy atrybutów produktu.
Kowal ShippingRules powstał po to, aby takie reguły obsługiwać w jednym module. Rozszerzenie łączy trzy obszary, które często są rozproszone między kilka osobnych dodatków: metody wysyłki, restrykcje metod dostawy i extra fee. Dzięki temu sklep może zarządzać logiką dostawy w sposób bardziej uporządkowany i przewidywalny.
Moduł pozwala tworzyć własne metody wysyłki w Magento 2, przypisywać do nich stawki, określać kiedy metoda ma być widoczna, blokować niedostępne opcje dostawy oraz doliczać dodatkowe opłaty tylko wtedy, gdy są uzasadnione warunkami zamówienia. Reguły mogą bazować na danych koszyka, adresu dostawy, wybranej metody wysyłki oraz atrybutach produktów.
Największą wartością modułu jest kontrola. Administrator sklepu może zdefiniować zasady, które automatycznie dopasują dostępne metody dostawy i opłaty do konkretnego zamówienia. Klient widzi bardziej trafne opcje dostawy, a obsługa sklepu ogranicza liczbę ręcznych korekt po złożeniu zamówienia.
Problem, który rozwiązuje moduł
W wielu sklepach Magento 2 koszt i dostępność dostawy zależą od większej liczby czynników niż sama wartość koszyka. Produkty mogą różnić się wagą, rozmiarem, sposobem pakowania, kategorią, typem transportu albo ryzykiem uszkodzenia. Dodatkowo sklep może mieć inne zasady dla konkretnych krajów, regionów, kodów pocztowych, grup klientów lub metod wysyłki.
Bez dedykowanych reguł pojawiają się typowe problemy:
- klient wybiera paczkomat dla produktu, który się do niego nie mieści,
- sklep dopłaca do wysyłki produktów ciężkich lub gabarytowych,
- obsługa musi kontaktować się z klientem po złożeniu zamówienia,
- część reguł jest utrzymywana ręcznie poza Magento,
- opłaty logistyczne nie są widoczne w koszyku przed zakupem,
- metody wysyłki są widoczne mimo tego, że nie powinny być dostępne,
- zasady dostawy są rozproszone między kilka modułów i trudne do utrzymania.
Kowal ShippingRules porządkuje te sytuacje. Moduł pozwala przenieść reguły logistyczne do panelu Magento i zastosować je automatycznie podczas wyboru dostawy.
Co wyróżnia Kowal ShippingRules?
Jeden moduł zamiast kilku osobnych rozszerzeń
Kowal ShippingRules łączy obsługę metod wysyłki, restrykcji i dodatkowych opłat. Dzięki temu sklep nie musi utrzymywać osobnego modułu do tabel stawek, osobnego modułu do blokowania metod dostawy i kolejnego modułu do extra fee.
Reguły oparte na danych zamówienia
Decyzje mogą zależeć od zawartości koszyka, atrybutów produktów, wartości zamówienia, wagi, ilości produktów, lokalizacji dostawy i wybranej metody wysyłki. Pozwala to budować realne scenariusze logistyczne, a nie tylko proste stawki za kraj lub wagę.
Większa przejrzystość dla klienta
Klient widzi metody dostawy dopasowane do zamówienia. Jeżeli metoda nie jest dostępna, sklep może ją ukryć albo pokazać komunikat z powodem niedostępności. To zmniejsza liczbę nieporozumień przy finalizacji zakupu.
Lepsza kontrola kosztów operacyjnych
Dodatkowe opłaty można naliczać tylko w wybranych przypadkach: dla produktów gabarytowych, delikatnych, wymagających specjalnego pakowania albo dla konkretnych metod dostawy. Sklep może dzięki temu odzyskać koszty logistyczne, które wcześniej były ukryte w marży.
Przygotowanie pod migrację z Amasty
Moduł został zaprojektowany jako niezależne rozwiązanie, ale uwzględnia scenariusz przejścia z modułów Amasty używanych do wysyłki, restrykcji i extra fee. Dzięki temu może być wykorzystany jako kierunek konsolidacji konfiguracji dostawy w jednym module.
Dla kogo jest ten moduł?
Kowal ShippingRules jest przeznaczony dla sklepów Magento 2, które potrzebują większej elastyczności w zarządzaniu dostawą niż oferuje standardowa konfiguracja Magento.
Moduł będzie szczególnie przydatny dla sklepów, które:
- sprzedają produkty ciężkie, delikatne, długie, kruche albo wielkogabarytowe,
- mają różne zasady dostawy dla różnych kategorii produktów,
- potrzebują ukrywać niedostępne metody wysyłki,
- doliczają opłaty za pakowanie, transport specjalny lub obsługę logistyczną,
- chcą tworzyć własne metody dostawy bez każdorazowej pracy programistycznej,
- korzystają z reguł zależnych od atrybutów produktów,
- chcą ograniczyć ręczną obsługę wyjątków po złożeniu zamówienia,
- planują uporządkować lub zastąpić kilka modułów odpowiadających za wysyłkę.
Najważniejsze możliwości
Tworzenie własnych metod wysyłki
Moduł pozwala tworzyć metody wysyłki zarządzane bezpośrednio z panelu Magento. Każda metoda może mieć własną nazwę, kod, opis, sortowanie, status aktywności i warunki dostępności.
Przykłady:
- „Dostawa paletowa” dla produktów ciężkich,
- „Transport specjalny” dla produktów wymagających zabezpieczenia,
- „Kurier dla gabarytów” dla wybranych kategorii,
- „Dostawa lokalna” dla wybranych kodów pocztowych,
- „Odbiór logistyczny” dla zamówień niestandardowych.
Stawki wysyłki zależne od warunków
Do metod można przypisywać stawki zależne od parametrów zamówienia. Stawki mogą być filtrowane między innymi po kraju, regionie, kodzie pocztowym, subtotalu, wadze, ilości produktów oraz typie wysyłki.
Przykłady:
- inna cena dostawy dla zamówień powyżej określonej wagi,
- osobna stawka dla wybranych krajów,
- cena zależna od wartości koszyka,
- różne stawki dla produktów standardowych i gabarytowych,
- priorytet stawek, gdy kilka reguł pasuje jednocześnie.
Restrykcje metod dostawy
Kowal ShippingRules pozwala ograniczać dostępność metod wysyłki. Reguła może ukryć metodę albo pokazać klientowi komunikat, że dana forma dostawy nie jest dostępna dla tego zamówienia.
Przykłady:
- ukrycie paczkomatu dla produktów zbyt dużych,
- zablokowanie wysyłki zagranicznej dla wybranych produktów,
- ukrycie metody ekspresowej dla zamówień z produktami wymagającymi kompletowania,
- pokazanie komunikatu: „Ta metoda dostawy nie jest dostępna dla produktów gabarytowych”.
Extra Fee, czyli dodatkowe opłaty
Moduł umożliwia naliczanie dodatkowych opłat na podstawie reguł. Extra fee może być naliczane dla całego koszyka, dla każdej sztuki produktu albo dla produktów spełniających konkretne warunki.
Przykłady:
- opłata za pakowanie niestandardowe,
- opłata za transport gabarytowy,
- dopłata za produkty wymagające dodatkowego zabezpieczenia,
- opłata logistyczna dla konkretnej metody dostawy,
- dopłata dla zamówień do wybranych regionów.
Warunki podobne do reguł Magento
Kowal ShippingRules korzysta z generatora warunków znanego z Magento. Dla osób obsługujących sklep oznacza to sposób pracy zbliżony do konfiguracji promocji koszykowych: wybierz warunek, operator i wartość.
Warunki mogą dotyczyć:
- SKU,
- kategorii produktu,
- typu produktu,
- wagi,
- ceny,
- wybranych atrybutów produktów,
- wartości koszyka,
- ilości produktów,
- kraju dostawy,
- regionu,
- miasta,
- kodu pocztowego,
- kodu kuponu,
- wybranej metody wysyłki.
Korzyści biznesowe
Ograniczenie strat na wysyłce
Nie wszystkie zamówienia kosztują tyle samo w obsłudze logistycznej. Produkty gabarytowe, delikatne lub wymagające specjalnego pakowania często generują dodatkowe koszty. Kowal ShippingRules pozwala doliczyć te koszty w kontrolowany sposób, zamiast ukrywać je w marży albo obsługiwać ręcznie po zamówieniu.
Mniej błędnych zamówień
Jeżeli klient wybierze metodę dostawy, która nie pasuje do produktu, sklep musi później rozwiązać problem ręcznie. Moduł ogranicza takie sytuacje, ponieważ może ukrywać niedostępne metody jeszcze przed złożeniem zamówienia.
Lepsza komunikacja z klientem
Zamiast usuwać metodę bez wyjaśnienia, sklep może pokazać klientowi komunikat. To przydatne szczególnie wtedy, gdy ograniczenie wynika z cech produktu, lokalizacji albo wymagań transportowych.
Szybsza obsługa zamówień
Automatyczne reguły zmniejszają liczbę wyjątków obsługiwanych przez dział sprzedaży lub logistykę. Jeżeli sklep jasno definiuje zasady dostawy na etapie koszyka, mniej spraw wymaga korekty po zakupie.
Jedno miejsce zarządzania wysyłką
Metody, restrykcje i dodatkowe opłaty są powiązane ze sobą. Utrzymywanie ich w jednym module zmniejsza ryzyko konfliktów i ułatwia kontrolę konfiguracji.
Przykładowe scenariusze użycia
Sklep z produktami wielkogabarytowymi
Sklep sprzedaje produkty, których nie da się wysłać standardowym kurierem lub do paczkomatu. Administrator może oznaczyć takie produkty atrybutem, a następnie przygotować regułę, która ukryje paczkomat, pokaże dostawę paletową i doliczy opłatę gabarytową.
Efekt: klient od razu widzi właściwą metodę dostawy, a sklep nie musi kontaktować się z nim po zakupie w sprawie dopłaty.
Sklep z produktami delikatnymi
Produkty wymagające dodatkowego zabezpieczenia mogą generować koszt pakowania. Moduł pozwala doliczyć opłatę tylko wtedy, gdy w koszyku znajduje się produkt spełniający warunek.
Efekt: sklep odzyskuje koszt opakowania, a klient zna pełną cenę przed złożeniem zamówienia.
Sklep z dostawą lokalną
Sklep może udostępnić metodę „Dostawa lokalna” tylko dla wybranych kodów pocztowych lub regionów. Dla pozostałych lokalizacji metoda nie będzie widoczna.
Efekt: klient nie wybierze dostawy, której sklep nie może zrealizować.
Sklep B2B
W sprzedaży B2B koszt dostawy może zależeć od grupy klientów, wartości zamówienia, regionu albo typu produktów. Moduł pozwala przygotować reguły, które lepiej odpowiadają polityce handlowej sklepu.
Efekt: sklep może stosować inne zasady dla różnych typów klientów bez utrzymywania kilku osobnych procesów.
Sklep z dostawą międzynarodową
Wybrane produkty mogą nie być dostępne dla wysyłki zagranicznej. Moduł pozwala ograniczyć metody dostawy dla konkretnych krajów lub warunków produktowych.
Efekt: sklep zmniejsza ryzyko zamówień, których nie może zrealizować zgodnie z regulaminem lub ograniczeniami przewoźnika.
Dopłata do konkretnej metody wysyłki
Jeżeli wybrana metoda dostawy generuje dodatkowy koszt obsługi, można powiązać z nią extra fee.
Efekt: opłata pojawia się tylko wtedy, gdy klient wybierze konkretną metodę wysyłki.
Przykłady reguł, które można skonfigurować
- Jeżeli produkt ma atrybut
gabaryt, ukryj paczkomat. - Jeżeli waga koszyka przekracza ustalony limit, pokaż dostawę paletową.
- Jeżeli kraj dostawy jest poza Polską, ukryj wybrane metody.
- Jeżeli w koszyku znajduje się produkt z kategorii „delikatne”, dolicz opłatę za pakowanie.
- Jeżeli wartość koszyka jest poniżej ustalonej kwoty, nalicz dodatkową opłatę logistyczną.
- Jeżeli klient wybierze transport specjalny, dolicz extra fee.
- Jeżeli kod pocztowy nie należy do obsługiwanego obszaru, ukryj dostawę lokalną.
- Jeżeli zamówienie zawiera produkt określonego typu, pokaż tylko wybrane metody dostawy.
Jak wygląda praca z modułem?
Administrator sklepu pracuje w panelu Magento. Najpierw tworzy metodę wysyłki, następnie przypisuje do niej stawki i warunki. Jeśli potrzebne są ograniczenia, może dodać restrykcję dla konkretnej metody lub grupy metod. Jeśli zamówienie powinno zawierać dodatkową opłatę, administrator tworzy regułę extra fee.
Przykładowy proces:
- Utwórz metodę „Dostawa paletowa”.
- Dodaj stawkę dla kraju Polska i wagi powyżej określonego limitu.
- Dodaj warunek, że metoda dotyczy produktów z atrybutem
shipping_type = pallet. - Dodaj restrykcję ukrywającą paczkomat dla tych samych produktów.
- Dodaj extra fee za obsługę transportu specjalnego.
- Sprawdź koszyk testowy i potwierdź, że klient widzi właściwe opcje.
Porównanie podejścia
Standardowa konfiguracja Magento
Standardowe Magento pozwala skonfigurować podstawowe metody dostawy, ale bardziej złożone scenariusze wymagają dodatkowych rozszerzeń albo indywidualnych modyfikacji.
Kilka osobnych modułów
Sklep może korzystać z osobnego modułu do stawek, osobnego do restrykcji i osobnego do opłat. Problemem jest wtedy utrzymanie spójności między konfiguracjami.
Kowal ShippingRules
Kowal ShippingRules skupia metody, restrykcje i extra fee w jednym module. Dzięki temu reguły dostawy są łatwiejsze do zrozumienia, utrzymania i testowania.
Elementy wpływające na SEO sklepu
Moduł nie jest narzędziem SEO wprost, ale może pośrednio wspierać doświadczenie zakupowe, które ma znaczenie dla konwersji i jakości sklepu:
- klient szybciej widzi realne koszty dostawy,
- checkout jest bardziej przewidywalny,
- mniej zamówień wymaga korekty po zakupie,
- sklep może jasno komunikować ograniczenia logistyczne,
- zasady dostawy są spójniejsze z ofertą produktową.
Lepsza obsługa dostawy może zmniejszać liczbę porzuconych koszyków wynikających z niejasnych kosztów lub niedostępnych metod wysyłki.
Kowal ShippingRules — instrukcja instalacji, konfiguracji i obsługi
Cel dokumentu
Ten dokument opisuje praktyczne wdrożenie i obsługę modułu Kowal_ShippingRules w Magento 2. Jest przeznaczony dla osób odpowiedzialnych za instalację modułu, konfigurację sklepu, testy wdrożeniowe oraz codzienną obsługę reguł wysyłki.
Dokument obejmuje:
- instalację modułu,
- konfigurację podstawową,
- tworzenie metod wysyłki,
- konfigurację stawek,
- obsługę restrykcji metod dostawy,
- obsługę dodatkowych opłat Extra Fee,
- diagnostykę,
- migrację z modułów Amasty,
- checklistę testów po wdrożeniu.
Informacje podstawowe
Nazwa techniczna modułu:
Kowal_ShippingRules
Lokalizacja modułu:
app/code/Kowal/ShippingRules
Kod carriera:
kowal_shippingrules
Kod metody wysyłki w checkout ma format:
kowal_shippingrules_<kod_metody>
Przykład:
kowal_shippingrules_dostawa_paletowa
Wymagania przed instalacją
Przed instalacją należy potwierdzić:
- sklep działa na Magento 2.4.x,
- środowisko używa PHP
>=8.1, - moduł
Kowal_Basejest dostępny, - wykonano backup plików i bazy danych,
- wdrożenie jest wykonywane najpierw na środowisku testowym lub staging,
- po instalacji będzie możliwość uruchomienia
setup:upgradeisetup:di:compile, - osoba testująca ma dostęp do panelu administracyjnego i checkoutu.
Instalacja modułu
1. Wgraj moduł
Moduł powinien znajdować się w katalogu:
app/code/Kowal/ShippingRules
2. Włącz moduł
bin/magento module:enable Kowal_ShippingRules
Jeżeli Kowal_Base nie jest jeszcze włączony, należy włączyć go wcześniej albo razem z modułem:
bin/magento module:enable Kowal_Base Kowal_ShippingRules
3. Zaktualizuj bazę danych
bin/magento setup:upgrade
Ta komenda tworzy tabele modułu oraz dodaje kolumny wymagane do obsługi Extra Fee w quote, order, invoice i creditmemo.
4. Skompiluj DI
Na produkcji:
bin/magento setup:di:compile
5. Wyczyść cache
bin/magento cache:flush
6. Sprawdź status modułu
bin/magento module:status Kowal_ShippingRules
Moduł powinien znajdować się na liście modułów aktywnych.
Kontrola po instalacji
Po instalacji uruchom diagnostykę:
bin/magento kowal:shippingrules:stabilization:check
Wariant pełny w JSON:
bin/magento kowal:shippingrules:stabilization:check --json
Komenda jest read-only i nie zmienia danych. Sprawdza między innymi:
- obecność tabel modułu,
- liczbę rekordów,
- błędny JSON warunków,
- aktywne metody bez aktywnych stawek,
- reguły Extra Fee z tax class przy wyłączonym trybie podatku.
Jeżeli komenda zwraca błędy, nie należy przełączać modułu na produkcyjne użycie przed ich wyjaśnieniem.
Konfiguracja podstawowa
Carrier
Ścieżka w panelu Magento:
Stores / Configuration / Sales / Delivery Methods / Shipping Methods & Rules
Pola:
Enabled— włącza lub wyłącza carrierkowal_shippingrules.Title— nazwa grupy metod widoczna w checkout.Test Method Name— nazwa testowej metody konfiguracyjnej.Test Method Price— cena testowej metody konfiguracyjnej.Sort Order— kolejność carriera na liście metod dostawy.Show Method If Not Applicable— czy pokazać błąd, gdy brak dostępnych metod.Displayed Error Message— komunikat, gdy metoda nie jest dostępna.
Najważniejsze ustawienie:
carriers/kowal_shippingrules/active = 1
Jeżeli carrier jest wyłączony, metody tworzone w module nie będą dostępne w checkout.
Diagnostyka i funkcje awaryjne
Ścieżka w panelu Magento:
Stores / Configuration / Sales / Shipping Methods & Rules
Sekcja General Diagnostics:
Enable Debug Logging— zapisuje szczegóły decyzji do logu.Shadow Mode— tryb przygotowany do porównywania zachowania podczas migracji.
Sekcja Restrictions:
Enable Restrictions— włącza lub wyłącza tylko restrykcje.
Sekcja Extra Fees:
Enable Extra Fees— włącza lub wyłącza tylko dodatkowe opłaty.Fee Tax Mode— określa sposób obsługi podatku dla Extra Fee.
Dostępne tryby podatku:
Do Not Calculate Tax— moduł nie nalicza podatku od Extra Fee.Calculate by Fee Tax Class— moduł nalicza podatek według klasy podatkowej ustawionej na regule fee.
Domyślne, bezpieczne ustawienia:
kowal_shippingrules/general/debug = 0
kowal_shippingrules/general/shadow_mode = 0
kowal_shippingrules/restrictions/enabled = 1
kowal_shippingrules/fees/enabled = 1
kowal_shippingrules/fees/tax_mode = none
Menu modułu w panelu
Ścieżka:
Sales / Shipping Methods & Rules
Dostępne sekcje:
Shipping Methods— metody wysyłki i stawki,Shipping Restrictions— restrykcje metod dostawy,Extra Fees— dodatkowe opłaty.
Obsługa metod wysyłki
Kiedy tworzyć metodę wysyłki?
Metodę wysyłki należy utworzyć wtedy, gdy sklep potrzebuje własnej opcji dostawy, np.:
- dostawa paletowa,
- transport specjalny,
- dostawa lokalna,
- kurier dla produktów gabarytowych,
- odbiór logistyczny,
- metoda dostępna tylko dla wybranych produktów lub regionów.
Tworzenie metody
Przejdź do:
Sales / Shipping Methods & Rules / Shipping Methods
Następnie wybierz Add New albo edytuj istniejącą metodę.
Typowe pola metody:
Is Active— czy metoda jest aktywna.Code— techniczny kod metody.Name— nazwa widoczna dla klienta.Description— opis metody.Sort Order— kolejność wyświetlania.Store Views— widoczność dla store view.Customer Groups— widoczność dla grup klientów.Conditions— warunki dostępności metody.
Zalecenia dla pola Code:
- używaj małych liter,
- nie używaj polskich znaków,
- nie używaj spacji,
- stosuj podkreślenia zamiast spacji.
Przykłady:
dostawa_paletowa
transport_specjalny
kurier_gabaryt
dostawa_lokalna
Pełny kod metody w checkout będzie miał prefiks carriera:
kowal_shippingrules_dostawa_paletowa
Stawki metody
Aktywna metoda powinna mieć co najmniej jedną aktywną stawkę. Jeżeli metoda nie ma pasującej stawki, nie pojawi się w checkout.
Stawka może zależeć od:
- kraju,
- regionu,
- kodu pocztowego,
- wartości koszyka,
- wagi,
- ilości produktów,
- typu wysyłki,
- priorytetu.
Tryby ceny:
fixed— stała cena,percent_subtotal— procent od subtotalu.
Przykłady:
- cena 29 zł dla przesyłek do 30 kg,
- cena 149 zł dla dostawy paletowej,
- 5% wartości koszyka dla specjalnego transportu,
- osobna stawka dla wybranych kodów pocztowych.
Warunki metody
Warunki określają, kiedy metoda ma być dostępna.
Przykłady:
- metoda dostępna tylko dla produktów z wybranej kategorii,
- metoda dostępna tylko przy określonym atrybucie produktu,
- metoda dostępna tylko dla koszyka powyżej określonej wartości,
- metoda dostępna tylko dla wybranego kraju dostawy.
Jeżeli warunki są puste, metoda jest ograniczana tylko przez status, store view, customer group i pasującą stawkę.
Obsługa restrykcji metod dostawy
Kiedy używać restrykcji?
Restrykcje służą do ukrywania lub blokowania metod wysyłki, które nie powinny być dostępne dla konkretnego zamówienia.
Przykłady:
- ukryj paczkomat dla produktów gabarytowych,
- zablokuj wysyłkę zagraniczną dla wybranej kategorii,
- pokaż komunikat, że transport ekspresowy jest niedostępny dla produktów na zamówienie,
- ukryj metodę dostawy dla wybranego kraju.
Tworzenie restrykcji
Przejdź do:
Sales / Shipping Methods & Rules / Shipping Restrictions
Następnie wybierz Add New albo edytuj istniejącą restrykcję.
Typowe pola:
Is Active— czy restrykcja działa.Name— nazwa wewnętrzna.Target Carrier— carrier, którego dotyczy restrykcja.Target Method— metoda, której dotyczy restrykcja.Action— sposób działania.Message— komunikat dla klienta.Priority— priorytet.Stop Processing— czy zatrzymać dalsze sprawdzanie reguł.Store Views— zakres store view.Customer Groups— zakres grup klientów.Conditions— warunki dopasowania.
Akcje restrykcji
hide:
- metoda zostanie ukryta,
- klient jej nie zobaczy,
- dobre dla oczywistych ograniczeń, np. paczkomat dla gabarytów.
error:
- metoda zostanie pokazana jako niedostępna,
- klient zobaczy komunikat,
- dobre, gdy warto wyjaśnić powód niedostępności.
Priorytet i Stop Processing
Reguły są sprawdzane według priorytetu. Wyższy priorytet oznacza wcześniejsze sprawdzanie.
Stop Processing = Yes oznacza, że po dopasowaniu tej restrykcji moduł nie sprawdza kolejnych restrykcji dla tej metody.
Zalecenie:
- używaj wyższych priorytetów dla reguł bardziej szczegółowych,
- używaj niższych priorytetów dla reguł ogólnych,
- włącz
Stop Processing, jeśli reguła ma ostatecznie rozstrzygać dostępność metody.
Obsługa Extra Fee
Kiedy używać Extra Fee?
Extra Fee służy do doliczania dodatkowych opłat do zamówienia.
Przykłady:
- opłata za pakowanie niestandardowe,
- dopłata za transport gabarytowy,
- opłata za produkty delikatne,
- opłata logistyczna dla konkretnej metody dostawy,
- dopłata dla wybranych regionów.
Tworzenie Extra Fee
Przejdź do:
Sales / Shipping Methods & Rules / Extra Fees
Następnie wybierz Add New albo edytuj istniejącą opłatę.
Typowe pola:
Is Active— czy fee działa.Name— nazwa wewnętrzna.Label— nazwa opłaty widoczna w totals.Target Carrier— carrier, którego dotyczy fee.Target Method— metoda, której dotyczy fee.Price Type— typ ceny.Price— wartość opłaty.Apply Mode— sposób naliczania.Tax Class ID— klasa podatkowa, jeśli używany jest tax mode.Priority— priorytet.Stop Processing— czy zatrzymać dalsze naliczanie fee.Store Views— zakres store view.Customer Groups— zakres grup klientów.Conditions— warunki naliczenia.
Tryby ceny
fixed:
- stała kwota,
- np. 19 zł za pakowanie.
percent_subtotal:
- procent od wartości koszyka,
- np. 3% wartości zamówienia.
Tryby naliczania
cart:
- jedna opłata dla całego koszyka.
per_item:
- opłata mnożona przez ilość produktów.
per_matching_item:
- opłata naliczana tylko dla produktów spełniających warunki.
Przykład:
Jeżeli opłata za specjalne zabezpieczenie wynosi 5 zł, a w koszyku są 3 produkty spełniające warunek, tryb per_matching_item naliczy 15 zł.
Podatek Extra Fee
Domyślnie podatek od Extra Fee nie jest naliczany:
kowal_shippingrules/fees/tax_mode = none
Aby naliczać podatek:
- Ustaw
Fee Tax ModenaCalculate by Fee Tax Class. - Uzupełnij
Tax Class IDna regule Extra Fee. - Przetestuj koszyk, order, invoice i creditmemo.
Podatek Extra Fee powinien być każdorazowo sprawdzony z konfiguracją podatkową konkretnego sklepu.
Obsługa warunków
Moduł korzysta z generatora warunków podobnego do reguł Magento.
Warunki mogą dotyczyć między innymi:
- atrybutów produktów,
- SKU,
- kategorii,
- typu produktu,
- wagi,
- ceny,
- wartości koszyka,
- ilości produktów,
- kraju dostawy,
- regionu,
- miasta,
- kodu pocztowego,
- kuponu,
- wybranej metody wysyłki.
Przykład warunku dla produktu gabarytowego
Założenie:
- produkt ma atrybut
shipping_type, - wartość dla gabarytu to
pallet.
Reguła:
Jeżeli produkt w koszyku ma shipping_type = pallet
Możliwe działania:
- pokaż metodę
Dostawa paletowa, - ukryj paczkomat,
- dolicz fee
Transport gabarytowy.
Zalecenia przy pracy z warunkami
- twórz najpierw prostą regułę i przetestuj ją w koszyku,
- unikaj zbyt wielu warunków w jednej regule,
- opisuj reguły czytelnymi nazwami,
- dla ważnych reguł używaj jednoznacznych atrybutów produktów,
- po zmianie atrybutów produktów przetestuj koszyk ponownie.
Diagnostyka i logowanie
Dedykowany plik logu:
var/log/kowal_shipping_rules.log
Debug można włączyć w:
Stores / Configuration / Sales / Shipping Methods & Rules / General Diagnostics
Włącz:
Enable Debug Logging = Yes
Zalecenia:
- nie zostawiaj debug logging włączonego stale na produkcji,
- włącz debug tylko na czas diagnozy,
- po zakończeniu testów wyłącz debug,
- logi analizuj razem z koszykiem testowym i konfiguracją reguł.
Funkcje awaryjne
Jeżeli po wdrożeniu wystąpi problem, można niezależnie wyłączyć:
Cały carrier
Stores / Configuration / Sales / Delivery Methods / Shipping Methods & Rules / Enabled = No
Efekt:
- metody z carriera
kowal_shippingrulesnie będą dostępne.
Tylko restrykcje
Stores / Configuration / Sales / Shipping Methods & Rules / Restrictions / Enable Restrictions = No
Efekt:
- metody nie będą ukrywane ani blokowane przez restrykcje.
Tylko Extra Fee
Stores / Configuration / Sales / Shipping Methods & Rules / Extra Fees / Enable Extra Fees = No
Efekt:
- dodatkowe opłaty nie będą naliczane.
Migracja z Amasty
Cel migracji
Migracja z Amasty ma pomóc przenieść konfigurację restrykcji i extra fee do Kowal_ShippingRules.
Moduł Kowal nie wymaga Amasty do normalnego działania. Amasty może być użyte jako źródło danych migracyjnych oraz punkt odniesienia podczas testów.
Obsługiwane źródła danych
Migrator analizuje:
amasty_shiprestriction_rule
amasty_extrafee
amasty_extrafee_option
Docelowe tabele:
kowal_shipping_restriction
kowal_shipping_fee
Zasady bezpieczeństwa migracji
Migracja została zaprojektowana ostrożnie:
- raport jest read-only,
- dry-run nie zapisuje danych,
- apply domyślnie działa jako preview,
- zapis wymaga jawnej opcji
--execute, - zapisywane są tylko rekordy ze statusem
ready, - rekordy
manual_reviewiunsupportedsą pomijane, - migracja jest idempotentna dzięki polom
migration_sourceimigration_source_key, - migracja nie wyłącza Amasty,
- migracja nie przełącza ruchu automatycznie.
Krok 1 — raport bazowy
Uruchom:
bin/magento kowal:shippingrules:amasty:report
Raport zostanie zapisany do:
var/report/kowal_shippingrules_amasty_report.json
Raport pokazuje obecność i liczebność tabel Amasty oraz tabel Kowal.
Krok 2 — dry-run transformacji
Uruchom:
bin/magento kowal:shippingrules:amasty:report --dry-run --limit=100
Dry-run przygotowuje plan transformacji, ale nic nie zapisuje.
Statusy rekordów:
ready— rekord może zostać przeniesiony automatycznie,manual_review— rekord wymaga ręcznej analizy,unsupported— rekord nie jest obsługiwany przez automatyczny migrator.
Jeżeli raport zawiera dużo manual_review albo unsupported, należy przeanalizować te reguły przed apply.
Krok 3 — preview apply
Uruchom:
bin/magento kowal:shippingrules:amasty:apply --limit=100
To nadal nie zapisuje danych. Komenda pokazuje, ile rekordów zostałoby utworzonych, pominiętych lub zakończonych błędem.
Krok 4 — apply restrykcji
Po akceptacji preview:
bin/magento kowal:shippingrules:amasty:apply --type=restrictions --limit=100 --execute
Komenda zapisze tylko restrykcje ze statusem ready.
Krok 5 — apply Extra Fee
Po akceptacji preview:
bin/magento kowal:shippingrules:amasty:apply --type=fees --limit=100 --execute
Komenda zapisze tylko extra fees ze statusem ready.
Krok 6 — diagnostyka po migracji
Uruchom:
bin/magento kowal:shippingrules:stabilization:check
Sprawdź również panel:
Sales / Shipping Methods & Rules / Shipping Restrictions
Sales / Shipping Methods & Rules / Extra Fees
Krok 7 — testy porównawcze z Amasty
Przed wyłączeniem lub zastąpieniem konfiguracji Amasty należy porównać wyniki dla koszyków testowych.
Rekomendowane koszyki:
- produkt standardowy,
- produkt gabarytowy,
- produkt delikatny,
- kilka produktów o różnych warunkach,
- zamówienie z różnymi krajami dostawy,
- zamówienie z różnymi kodami pocztowymi,
- zamówienie z kuponem,
- zamówienie z wybraną metodą objętą Extra Fee.
Dla każdego koszyka sprawdź:
- dostępne metody dostawy,
- ukryte metody,
- komunikaty błędów,
- naliczone extra fee,
- kwoty brutto/netto, jeśli używany jest tax fee,
- order,
- invoice,
- creditmemo.
Krok 8 — decyzja o przełączeniu
Dopiero po akceptacji wyników można planować przełączenie konfiguracji produkcyjnej.
Zalecenia:
- nie wyłączaj Amasty bez backupu,
- nie usuwaj danych Amasty od razu po migracji,
- najpierw wyłącz działanie po stronie konfiguracji,
- zachowaj możliwość rollbacku,
- przygotuj listę reguł wymagających ręcznej korekty.
Rollback po migracji
Jeżeli wystąpi problem:
- Wyłącz carrier
Kowal ShippingRules. - Wyłącz
Enable Restrictions. - Wyłącz
Enable Extra Fees. - Przywróć dotychczasową konfigurację Amasty.
- Sprawdź checkout.
- Zachowaj raporty migracyjne do analizy.
Checklist po wdrożeniu
Techniczna
module:statuspokazujeKowal_ShippingRulesjako aktywny,setup:upgradezakończył się bez błędów,setup:di:compilezakończył się bez błędów,cache:flushwykonany,stabilization:checknie zwraca błędów,- panel administracyjny pokazuje menu
Shipping Methods & Rules, - plik logu jest zapisywany przy włączonym debug.
Konfiguracyjna
- carrier jest włączony,
- utworzono co najmniej jedną metodę wysyłki,
- aktywna metoda ma aktywną stawkę,
- store views są ustawione poprawnie,
- customer groups są ustawione poprawnie,
- restrykcje są włączone albo świadomie wyłączone,
- extra fees są włączone albo świadomie wyłączone,
- tax mode jest zgodny z konfiguracją podatkową sklepu.
Checkout
- metoda pojawia się dla koszyka spełniającego warunki,
- metoda nie pojawia się, gdy brak pasującej stawki,
- restrykcja
hideukrywa metodę, - restrykcja
errorpokazuje komunikat, - extra fee pojawia się w totals po wyborze metody,
- zmiana metody wysyłki przelicza fee,
- order zawiera kwoty fee,
- invoice zawiera kwoty fee,
- creditmemo poprawnie refunduje fee.
Najczęstsze problemy
Metoda nie pojawia się w checkout
Sprawdź:
- czy carrier jest włączony,
- czy metoda jest aktywna,
- czy metoda ma aktywną stawkę,
- czy stawka pasuje do kraju, regionu, kodu pocztowego, wagi i subtotalu,
- czy store view jest poprawny,
- czy customer group jest poprawna,
- czy warunki metody są spełnione,
- czy restrykcja nie ukrywa metody.
Extra Fee nie nalicza się
Sprawdź:
- czy
Enable Extra Fees = Yes, - czy fee jest aktywne,
- czy target carrier i target method są poprawne,
- czy warunki fee są spełnione,
- czy wybrano metodę wysyłki,
- czy cena fee jest większa od zera,
- czy
Stop Processingwcześniejszej reguły nie zatrzymał dalszego naliczania.
Restrykcja nie działa
Sprawdź:
- czy
Enable Restrictions = Yes, - czy restrykcja jest aktywna,
- czy target carrier i target method są poprawne,
- czy warunki restrykcji są spełnione,
- czy priorytet reguły jest właściwy,
- czy inna reguła z
Stop Processingnie kończy przetwarzania wcześniej.
Podatek Extra Fee nie nalicza się
Sprawdź:
- czy
Fee Tax Mode = Calculate by Fee Tax Class, - czy reguła fee ma ustawiony
Tax Class ID, - czy konfiguracja podatkowa Magento zwraca stawkę podatku dla adresu,
- czy koszyk ma adres dostawy,
- czy fee jest faktycznie naliczone.
Dobre praktyki
- Najpierw konfiguruj proste reguły, potem dodawaj kolejne warunki.
- Dla każdej ważnej reguły przygotuj koszyk testowy.
- Używaj czytelnych nazw metod, restrykcji i fee.
- Unikaj kilku bardzo podobnych reguł o tym samym priorytecie.
- Dokumentuj powód utworzenia restrykcji lub fee w nazwie.
- Po zmianie atrybutów produktów wykonaj test checkoutu.
- Debug logging włączaj tylko na czas diagnozy.
- Migrację z Amasty wykonuj etapami: raport, dry-run, preview, execute, QA.
Dokumenty powiązane
README.md— techniczny opis modułu dla programistów.docs/WDROZENIE.md— szczegółowa dokumentacja wdrożeniowa i architektura.docs/OPIS_MARKETINGOWY.md— opis marketingowy modułu.





















