Kowal Shipping Rules - Magento 2 extension for shipping methods, delivery restrictions, and extra fees.
Shipping in an online store is rarely simple. Standard Magento settings work for basic scenarios, but they quickly become insufficient when a store sells products with different dimensions, weights, transport requirements, or handling costs. In practice, this means the need to hide selected delivery methods, add packaging fees, apply exceptions for specific products, and create rules based on country, cart value, or product attributes.
Kowal ShippingRules was created to handle such rules in a single module. The extension combines three areas that are often split across several separate add-ons: shipping methods, shipping method restrictions, and extra fee. This allows the store to manage delivery logic in a more organized and predictable way.
The module lets you create custom shipping methods in Magento 2, assign rates to them, define when a method should be visible, block unavailable delivery options, and add extra charges only when justified by the order conditions. Rules can be based on cart data, shipping address, selected shipping method, and product attributes.
The greatest value of the module is control. The store administrator can define rules that automatically adjust available shipping methods and fees to a specific order. The customer sees more relevant delivery options, and the store team reduces the number of manual corrections after the order is placed.
The problem the module solves
In many Magento 2 stores, delivery cost and availability depend on more factors than just cart value. Products may differ in weight, size, packaging method, category, transport type, or risk of damage. In addition, the store may have different rules for specific countries, regions, postal codes, customer groups, or shipping methods.
Without dedicated rules, common problems appear:
- the customer selects a parcel locker for a product that does not fit,
- the store subsidizes shipping for heavy or oversized products,
- the staff has to contact the customer after the order is placed,
- some rules are maintained manually outside Magento,
- logistics fees are not visible in the cart before purchase,
- shipping methods are visible even though they should not be available,
- delivery rules are spread across several modules and are difficult to maintain.
Kowal ShippingRules organizes these situations. The module lets you move logistics rules into the Magento admin panel and apply them automatically during shipping selection.
What makes Kowal ShippingRules stand out?
One module instead of several separate extensions
Kowal ShippingRules combines shipping methods, restrictions, and extra fees. This means the store does not need to maintain a separate module for rate tables, another module for blocking shipping methods, and yet another module for extra fee.
Rules based on order data
Decisions can depend on cart contents, product attributes, order value, weight, product quantity, delivery location, and the selected shipping method. This makes it possible to build real logistics scenarios, not just simple rates by country or weight.
Greater transparency for the customer
The customer sees delivery methods matched to the order. If a method is not available, the store can hide it or show a message explaining why it is unavailable. This reduces the number of misunderstandings during checkout.
Better control of operating costs
Additional fees can be charged only in selected cases: for oversized, fragile, or specially packed products, or for specific delivery methods. This allows the store to recover logistics costs that were previously hidden in the margin.
Ready for migration from Amasty
The module was designed as an independent solution, but it takes into account the scenario of moving from Amasty modules used for shipping, restrictions, and extra fee. This means it can be used as a direction for consolidating delivery configuration in one module.
Who is this module for?
Kowal ShippingRules is designed for Magento 2 stores that need more flexibility in delivery management than the standard Magento configuration offers.
The module will be especially useful for stores that:
- sell heavy, fragile, long, breakable, or oversized products,
- have different delivery rules for different product categories,
- need to hide unavailable shipping methods,
- add fees for packaging, special transport, or logistics handling,
- want to create custom delivery methods without requiring development work each time,
- use rules based on product attributes,
- want to reduce manual handling of exceptions after the order is placed,
- plan to organize or replace several modules responsible for shipping.
Key capabilities
Creating custom shipping methods
The module lets you create shipping methods managed directly from the Magento admin panel. Each method can have its own name, code, description, sort order, activity status, and availability conditions.
Examples:
- Delivery by pallet for heavy products,
- Special transport for products requiring protection,
- Courier for oversized items for selected categories,
- Local delivery for selected postal codes,
- Logistics pickup for custom orders.
Shipping rates based on conditions
Rates can be assigned to methods based on order parameters. Rates can be filtered by country, region, postal code, subtotal, weight, product quantity, and shipping type, among other factors.
Examples:
- a different delivery price for orders above a specified weight,
- a separate rate for selected countries,
- a price based on cart value,
- different rates for standard and oversized products,
- rate priority when several rules match at the same time.
Shipping method restrictions
Kowal ShippingRules lets you limit the availability of shipping methods. A rule can hide a method or show the customer a message that a given delivery option is not available for this order.
Examples:
- hiding parcel lockers for products that are too large,
- blocking international shipping for selected products,
- hiding express delivery for orders with products that require assembly,
- showing the message: This delivery method is not available for oversized products.
Extra Fee, or additional charges
The module enables charging extra fees based on rules. Extra fee can be charged for the entire cart, for each product unit, or for products that meet specific conditions.
Examples:
- non-standard packaging fee,
- oversized transport fee,
- surcharge for products requiring additional protection,
- logistics fee for a specific delivery method,
- surcharge for orders to selected regions.
Conditions similar to Magento rules
Kowal ShippingRules uses the condition builder known from Magento. For store staff, this means a way of working similar to cart price rule configuration: choose a condition, operator, and value.
Conditions can apply to:
- SKU,
- product category,
- product type,
- weight,
- price,
- selected product attributes,
- cart value,
- product quantity,
- shipping country,
- region,
- city,
- postal code,
- coupon code,
- selected shipping method.
Business benefits
Reducing shipping losses
Not all orders cost the same to handle logistically. Oversized, fragile, or specially packed products often generate additional costs. Kowal ShippingRules lets you add these costs in a controlled way instead of hiding them in the margin or handling them manually after the order.
Fewer incorrect orders
If a customer selects a delivery method that does not fit the product, the store must resolve the issue manually later. The module limits such situations because it can hide unavailable methods before the order is placed.
Better communication with the customer
Instead of removing a method without explanation, the store can show the customer a message. This is especially useful when the restriction results from product characteristics, location, or transport requirements.
Faster order processing
Automatic rules reduce the number of exceptions handled by the sales or logistics team. If the store clearly defines delivery rules at the cart stage, fewer cases require correction after purchase.
One place to manage shipping
Methods, restrictions, and additional fees are linked together. Keeping them in one module reduces the risk of conflicts and makes configuration control easier.
Example use cases
Store with oversized products
The store sells products that cannot be shipped by a standard courier or to a parcel locker. The administrator can mark such products with an attribute and then prepare a rule that hides the parcel locker, shows pallet delivery, and adds an oversized fee.
Result: the customer immediately sees the correct delivery method, and the store does not need to contact them after purchase about an additional charge.
Store with fragile products
Products requiring additional protection can generate a packaging cost. The module lets you add the fee only when the cart contains a product that meets the condition.
Result: the store recovers the packaging cost, and the customer knows the full price before placing the order.
Store with local delivery
The store can make the Local delivery method available only for selected postal codes or regions. For other locations, the method will not be visible.
Result: the customer will not choose a delivery option that the store cannot fulfill.
B2B store
In B2B sales, delivery cost may depend on customer group, order value, region, or product type. The module lets you prepare rules that better match the store's sales policy.
Result: the store can apply different rules for different customer types without maintaining several separate processes.
Store with international delivery
Selected products may not be available for international shipping. The module lets you limit delivery methods for specific countries or product conditions.
Result: the store reduces the risk of orders it cannot fulfill in accordance with its terms or carrier restrictions.
Surcharge for a specific shipping method
If the selected delivery method generates an additional handling cost, you can link an extra fee to it.
Result: the fee appears only when the customer selects a specific shipping method.
Examples of rules you can configure
- If a product has the
gabarytattribute, hide the parcel locker. - If the cart weight exceeds the defined limit, show pallet delivery.
- If the shipping country is outside Poland, hide selected methods.
- If the cart contains a product from the delicate category, add a packaging fee.
- If the cart value is below the defined amount, charge an additional logistics fee.
- If the customer selects special transport, add extra fee.
- If the postal code is outside the serviced area, hide local delivery.
- If the order contains a product of a specific type, show only selected delivery methods.
What does working with the module look like?
The store administrator works in the Magento admin panel. First, they create a shipping method, then assign rates and conditions to it. If restrictions are needed, they can add a restriction for a specific method or group of methods. If the order should include an additional fee, the administrator creates an extra fee rule.
Example process:
- Create the Pallet delivery method.
- Add a rate for the country Poland and weight above a specified limit.
- Add a condition that the method applies to products with the
shipping_type = palletattribute. - Add a restriction hiding the parcel locker for the same products.
- Add an extra fee for handling special transport.
- Check a test cart and confirm that the customer sees the correct options.
Approach comparison
Standard Magento configuration
Standard Magento allows you to configure basic delivery methods, but more complex scenarios require additional extensions or custom modifications.
Several separate modules
A store can use a separate module for rates, another for restrictions, and another for fees. The problem then is maintaining consistency between configurations.
Kowal ShippingRules
Kowal ShippingRules brings methods, restrictions, and extra fee together in one module. This makes delivery rules easier to understand, maintain, and test.
Elements affecting store SEO
The module is not a direct SEO tool, but it can indirectly support the shopping experience, which matters for conversion and store quality:
- the customer sees real delivery costs faster,
- checkout is more predictable,
- fewer orders require correction after purchase,
- the store can clearly communicate logistics limitations,
- delivery rules are more consistent with the product offering.
Better delivery handling can reduce the number of abandoned carts caused by unclear costs or unavailable shipping methods.
Kowal ShippingRules — installation, configuration, and user guide
Purpose of this document
This document describes the practical implementation and operation of the Kowal_ShippingRules module in Magento 2. It is intended for people responsible for module installation, store configuration, implementation testing, and day-to-day management of shipping rules.
The document covers:
- module installation,
- basic configuration,
- creating shipping methods,
- rate configuration,
- managing shipping method restrictions,
- managing Extra Fee additional charges,
- diagnostics,
- migration from Amasty modules,
- a post-implementation testing checklist.
Basic information
Module technical name:
Kowal_ShippingRulesModule location:
app/code/Kowal/ShippingRulesCarrier code:
kowal_shippingrulesThe shipping method code in checkout has the following format:
kowal_shippingrules_Example:
kowal_shippingrules_dostawa_paletowaRequirements before installation
Before installation, confirm that:
- the store is running on Magento 2.4.x,
- the environment uses PHP
>=8.1, - the
Kowal_Basemodule is available, - a backup of files and the database has been created,
- deployment is first performed in a test or staging environment,
- it will be possible to run
setup:upgradeandsetup:di:compileafter installation, - the tester has access to the admin panel and checkout.
Module installation
1. Upload the module
The module should be located in the directory:
app/code/Kowal/ShippingRules2. Enable the module
bin/magento module:enable Kowal_ShippingRulesIf Kowal_Base is not enabled yet, enable it earlier or together with the module:
bin/magento module:enable Kowal_Base Kowal_ShippingRules3. Update the database
bin/magento setup:upgradeThis command creates the module tables and adds the columns required to support Extra Fee in quote, order, invoice, and creditmemo.
4. Compile DI
In production:
bin/magento setup:di:compile5. Clear cache
bin/magento cache:flush6. Check module status
bin/magento module:status Kowal_ShippingRulesThe module should appear on the list of active modules.
Post-installation check
After installation, run diagnostics:
bin/magento kowal:shippingrules:stabilization:checkFull JSON variant:
bin/magento kowal:shippingrules:stabilization:check --jsonThe command is read-only and does not change data. It checks, among other things:
- the presence of module tables,
- the number of records,
- invalid JSON in conditions,
- active methods without active rates,
- Extra Fee rules with a tax class when tax mode is disabled.
If the command returns errors, do not switch the module to production use until they have been clarified.
Basic configuration
Carrier
Path in the Magento admin panel:
Stores / Configuration / Sales / Delivery Methods / Shipping Methods & RulesFields:
Enabled— enables or disables thekowal_shippingrulescarrier.Title— the method group name visible in checkout.Test Method Name— the name of the test configuration method.Test Method Price— the price of the test configuration method.Sort Order— the carrier order in the list of delivery methods.Show Method If Not Applicable— whether to show an error when no methods are available.Displayed Error Message— the message shown when the method is not available.
Most important setting:
carriers/kowal_shippingrules/active = 1If the carrier is disabled, methods created in the module will not be available in checkout.
Diagnostics and emergency features
Path in the Magento admin panel:
Stores / Configuration / Sales / Shipping Methods & RulesGeneral Diagnostics section:
Enable Debug Logging— saves decision details to the log.Shadow Mode— a mode prepared for comparing behavior during migration.
Restrictions section:
Enable Restrictions— enables or disables only restrictions.
Extra Fees section:
Enable Extra Fees— enables or disables only additional fees.Fee Tax Mode— defines how tax is handled for Extra Fee.
Available tax modes:
Do Not Calculate Tax— the module does not calculate tax on Extra Fee.Calculate by Fee Tax Class— the module calculates tax according to the tax class set on the fee rule.
Default safe settings:
kowal_shippingrules/general/debug = 0kowal_shippingrules/general/shadow_mode = 0kowal_shippingrules/restrictions/enabled = 1kowal_shippingrules/fees/enabled = 1kowal_shippingrules/fees/tax_mode = noneModule menu in the admin panel
Path:
Sales / Shipping Methods & RulesAvailable sections:
Shipping Methods— shipping methods and rates,Shipping Restrictions— delivery method restrictions,Extra Fees— additional fees.
Managing shipping methods
When should you create a shipping method?
A shipping method should be created when the store needs its own delivery option, for example:
- pallet delivery,
- special transport,
- local delivery,
- courier for oversized products,
- logistics pickup,
- a method available only for selected products or regions.
Creating a method
Go to:
Sales / Shipping Methods & Rules / Shipping MethodsThen select Add New or edit an existing method.
Typical method fields:
Is Active— whether the method is active.Code— the technical method code.Name— the name visible to the customer.Description— the method description.Sort Order— the display order.Store Views— store view visibility.Customer Groups— customer group visibility.Conditions— method availability conditions.
Recommendations for the Code field:
- use lowercase letters,
- do not use Polish characters,
- do not use spaces,
- use underscores instead of spaces.
Examples:
dostawa_paletowatransport_specjalnykurier_gabarytdostawa_lokalnaThe full method code in checkout will have the carrier prefix:
kowal_shippingrules_dostawa_paletowaMethod rates
An active method should have at least one active rate. If the method does not have a matching rate, it will not appear in checkout.
A rate may depend on:
- country,
- region,
- postal code,
- cart value,
- weight,
- product quantity,
- shipping type,
- priority.
Price modes:
fixed— fixed price,percent_subtotal— percentage of subtotal.
Examples:
- price 29 zł for shipments up to 30 kg,
- price 149 zł for pallet delivery,
- 5% of cart value for special transport,
- a separate rate for selected postal codes.
Method conditions
Conditions define when the method should be available.
Examples:
- method available only for products from a selected category,
- method available only for a specific product attribute,
- method available only for a cart above a specified value,
- method available only for a selected shipping country.
If conditions are empty, the method is limited only by status, store view, customer group, and a matching rate.
Managing shipping method restrictions
When should you use restrictions?
Restrictions are used to hide or block shipping methods that should not be available for a specific order.
Examples:
- hide parcel lockers for oversized products,
- block international shipping for a selected category,
- show a message that express transport is unavailable for made-to-order products,
- hide a delivery method for a selected country.
Creating a restriction
Go to:
Sales / Shipping Methods & Rules / Shipping RestrictionsThen select Add New or edit an existing restriction.
Typical fields:
Is Active— whether the restriction is active.Name— internal name.Target Carrier— the carrier affected by the restriction.Target Method— the method affected by the restriction.Action— how it works.Message— message for the customer.Priority— priority.Stop Processing— whether to stop further rule checks.Store Views— store view scope.Customer Groups— customer group scope.Conditions— matching conditions.
Restriction actions
hide:
- the method will be hidden,
- the customer will not see it,
- good for obvious restrictions, such as parcel lockers for oversized items.
error:
- the method will be shown as unavailable,
- the customer will see a message,
- good when it is worth explaining the reason for unavailability.
Priority and Stop Processing
Rules are checked by priority. Higher priority means earlier evaluation.
Stop Processing = Yes means that after this restriction matches, the module does not check further restrictions for that method.
Recommendation:
- use higher priorities for more specific rules,
- use lower priorities for general rules,
- enable
Stop Processingif the rule should make the final decision on method availability.
Managing Extra Fee
When should you use Extra Fee?
Extra Fee is used to add additional charges to the order.
Examples:
- non-standard packaging fee,
- surcharge for oversized transport,
- fee for fragile products,
- logistics fee for a specific delivery method,
- surcharge for selected regions.
Creating Extra Fee
Go to:
Sales / Shipping Methods & Rules / Extra FeesThen select Add New or edit an existing fee.
Typical fields:
Is Active— whether the fee is active.Name— internal name.Label— fee name visible in totals.Target Carrier— the carrier affected by the fee.Target Method— the method affected by the fee.Price Type— price type.Price— fee value.Apply Mode— charging method.Tax Class ID— tax class if tax mode is used.Priority— priority.Stop Processing— whether to stop further fee calculation.Store Views— store view scope.Customer Groups— customer group scope.Conditions— charging conditions.
Price modes
fixed:
- fixed amount,
- for example 19 zł for packaging.
percent_subtotal:
- percentage of cart value,
- for example 3% of the order value.
Apply modes
cart:
- one fee for the entire cart.
per_item:
- fee multiplied by the product quantity.
per_matching_item:
- fee charged only for products that meet the conditions.
Example:
If the fee for special protection is 5 zł and there are 3 products in the cart that meet the condition, the per_matching_item mode will charge 15 zł.
Extra Fee tax
By default, tax on Extra Fee is not calculated:
kowal_shippingrules/fees/tax_mode = noneTo calculate tax:
- Set
Fee Tax ModetoCalculate by Fee Tax Class. - Fill in
Tax Class IDon the Extra Fee rule. - Test the cart, order, invoice, and creditmemo.
Extra Fee tax should always be verified against the tax configuration of the specific store.
Managing conditions
The module uses a condition builder similar to Magento rules.
Conditions may apply to, among other things:
- product attributes,
- SKU,
- categories,
- product type,
- weight,
- price,
- cart value,
- product quantity,
- shipping country,
- region,
- city,
- postal code,
- coupon,
- selected shipping method.
Example condition for an oversized product
Assumption:
- the product has the
shipping_typeattribute, - the value for oversized shipping is
pallet.
Rule:
If a product in the cart has shipping_type = palletPossible actions:
- show the
Pallet deliverymethod, - hide the parcel locker,
- add the
Oversized transportfee.
Recommendations when working with conditions
- create a simple rule first and test it in the cart,
- avoid too many conditions in one rule,
- describe rules with clear names,
- for important rules, use unambiguous product attributes,
- after changing product attributes, test the cart again.
Diagnostics and logging
Dedicated log file:
var/log/kowal_shipping_rules.logDebug can be enabled in:
Stores / Configuration / Sales / Shipping Methods & Rules / General DiagnosticsEnable:
Enable Debug Logging = YesRecommendations:
- do not leave debug logging permanently enabled in production,
- enable debug only for diagnosis,
- disable debug after testing is complete,
- analyze logs together with the test cart and rule configuration.
Emergency features
If a problem occurs after deployment, you can independently disable:
The entire carrier
Stores / Configuration / Sales / Delivery Methods / Shipping Methods & Rules / Enabled = NoEffect:
- methods from the
kowal_shippingrulescarrier will not be available.
Only restrictions
Stores / Configuration / Sales / Shipping Methods & Rules / Restrictions / Enable Restrictions = NoEffect:
- methods will not be hidden or blocked by restrictions.
Only Extra Fee
Stores / Configuration / Sales / Shipping Methods & Rules / Extra Fees / Enable Extra Fees = NoEffect:
- additional fees will not be charged.
Migration from Amasty
Migration goal
Migration from Amasty is intended to help move restriction and extra fee configuration to Kowal_ShippingRules.
The Kowal module does not require Amasty for normal operation. Amasty can be used as a migration data source and as a reference point during testing.
Supported data sources
The migrator analyzes:
amasty_shiprestriction_ruleamasty_extrafeeamasty_extrafee_optionTarget tables:
kowal_shipping_restrictionkowal_shipping_feeMigration safety rules
The migration was designed carefully:
- the report is read-only,
- dry-run does not save data,
- apply works as preview by default,
- saving requires the explicit
--executeoption, - only records with the
readystatus are saved, manual_reviewandunsupportedrecords are skipped,- migration is idempotent thanks to the
migration_sourceandmigration_source_keyfields, - migration does not disable Amasty,
- migration does not switch traffic automatically.
Step 1 — base report
Run:
bin/magento kowal:shippingrules:amasty:reportThe report will be saved to:
var/report/kowal_shippingrules_amasty_report.jsonThe report shows the presence and record counts of Amasty tables and Kowal tables.
Step 2 — transformation dry-run
Run:
bin/magento kowal:shippingrules:amasty:report --dry-run --limit=100Dry-run prepares the transformation plan, but does not save anything.
Record statuses:
ready— the record can be moved automatically,manual_review— the record requires manual review,unsupported— the record is not supported by the automatic migrator.
If the report contains many manual_review or unsupported items, those rules should be reviewed before apply.
Step 3 — apply preview
Run:
bin/magento kowal:shippingrules:amasty:apply --limit=100This still does not save data. The command shows how many records would be created, skipped, or end with an error.
Step 4 — apply restrictions
After accepting the preview:
bin/magento kowal:shippingrules:amasty:apply --type=restrictions --limit=100 --executeThe command will save only restrictions with the ready status.
Step 5 — apply Extra Fee
After accepting the preview:
bin/magento kowal:shippingrules:amasty:apply --type=fees --limit=100 --executeThe command will save only extra fees with the ready status.
Step 6 — post-migration diagnostics
Run:
bin/magento kowal:shippingrules:stabilization:checkAlso check the admin panel:
Sales / Shipping Methods & Rules / Shipping RestrictionsSales / Shipping Methods & Rules / Extra FeesStep 7 — comparative tests with Amasty
Before disabling or replacing Amasty configuration, compare the results for test carts.
Recommended carts:
- standard product,
- oversized product,
- fragile product,
- several products with different conditions,
- an order with different shipping countries,
- an order with different postal codes,
- an order with a coupon,
- an order with a method covered by Extra Fee.
For each cart, check:
- available shipping methods,
- hidden methods,
- error messages,
- charged extra fees,
- gross/net amounts if tax fee is used,
- order,
- invoice,
- creditmemo.
Step 8 — switch-over decision
Only after approving the results should you plan switching the production configuration.
Recommendations:
- do not disable Amasty without a backup,
- do not remove Amasty data immediately after migration,
- first disable operation on the configuration side,
- preserve rollback capability,
- prepare a list of rules requiring manual correction.
Rollback after migration
If a problem occurs:
- Disable the
Kowal ShippingRulescarrier. - Disable
Enable Restrictions. - Disable
Enable Extra Fees. - Restore the previous Amasty configuration.
- Check checkout.
- Keep migration reports for analysis.
Post-implementation checklist
Technical
module:statusshowsKowal_ShippingRulesas active,setup:upgradecompleted without errors,setup:di:compilecompleted without errors,cache:flushexecuted,stabilization:checkreturns no errors,- the admin panel shows the
Shipping Methods & Rulesmenu, - the log file is being written when debug is enabled.
Configuration
- the carrier is enabled,
- at least one shipping method has been created,
- the active method has an active rate,
- store views are set correctly,
- customer groups are set correctly,
- restrictions are enabled or intentionally disabled,
- extra fees are enabled or intentionally disabled,
- tax mode matches the store tax configuration.
Checkout
- the method appears for a cart that meets the conditions,
- the method does not appear when there is no matching rate,
- the
hiderestriction hides the method, - the
errorrestriction shows a message, - extra fee appears in totals after selecting the method,
- changing the shipping method recalculates the fee,
- the order includes fee amounts,
- the invoice includes fee amounts,
- the creditmemo refunds the fee correctly.
Most common issues
The method does not appear in checkout
Check:
- whether the carrier is enabled,
- whether the method is active,
- whether the method has an active rate,
- whether the rate matches the country, region, postal code, weight, and subtotal,
- whether the store view is correct,
- whether the customer group is correct,
- whether the method conditions are met,
- whether a restriction is hiding the method.
Extra Fee is not being charged
Check:
- whether
Enable Extra Fees = Yes, - whether the fee is active,
- whether target carrier and target method are correct,
- whether the fee conditions are met,
- whether a shipping method has been selected,
- whether the fee price is greater than zero,
- whether
Stop Processingin an earlier rule has not stopped further fee calculation.
The restriction is not working
Check:
- whether
Enable Restrictions = Yes, - whether the restriction is active,
- whether target carrier and target method are correct,
- whether the restriction conditions are met,
- whether the rule priority is correct,
- whether another rule with
Stop Processingis not ending processing earlier.
Extra Fee tax is not being calculated
Check:
- whether
Fee Tax Mode = Calculate by Fee Tax Class, - whether the fee rule has
Tax Class IDset, - whether Magento tax configuration returns a tax rate for the address,
- whether the cart has a shipping address,
- whether the fee is actually being charged.
Best practices
- Configure simple rules first, then add more conditions.
- Prepare a test cart for each important rule.
- Use clear names for methods, restrictions, and fees.
- Avoid several very similar rules with the same priority.
- Document the reason for creating a restriction or fee in the name.
- After changing product attributes, run a checkout test.
- Enable debug logging only for diagnosis.
- Perform Amasty migration in stages: report, dry-run, preview, execute, QA.
Related documents
README.md— technical module description for developers.docs/WDROZENIE.md— detailed implementation documentation and architecture.docs/OPIS_MARKETINGOWY.md— module marketing description.




















