Shipping Methods in Orders
How Saleor Selects Shipping Methods​
When a customer reaches the shipping step in checkout, or when you edit an order (draft or unconfirmed), Saleor builds the list of available shipping methods. It applies built-in rules, optionally applies app-driven logic via webhooks.
Built-in Shipping Methods​
-
Channel and zone prerequisites
- The checkout/order channel must have at least one shipping zone assigned.
- The shipping address country must be assigned inside at least one of those shipping zones.
- See: Shipping Zones.
-
Shipping methods channel availability
- Shipping methods are channel-specific. A method must be listed for the same channel.
- See: Shipping Methods.
-
Method conditions
- Product exclusions: methods that exclude any product present in the checkout/order are removed.
- Price-based methods: kept only if the channel subtotal is within the method’s min/max order price.
- Weight-based methods: kept only if the total weight is within the method’s min/max order weight.
- Postal code rules: include/exclude rules are checked against the shipping address postal code.
External Shipping Methods for Checkout’s​
Apps can provide additional methods in real time:
- Subscribe the app to
SHIPPING_LIST_METHODS_FOR_CHECKOUT
. - Saleor sends checkout context (addresses, lines, channel, currency).
- The app returns methods with prices; Saleor merges them with built-in methods.
- The returned
currency
must match the checkout currency. - Details and payload/response examples: Shipping webhooks.
Filtering Shipping Methods​
After collecting candidates, Saleor can call filtering webhooks so apps can disable methods per business rules:
CHECKOUT_FILTER_SHIPPING_METHODS
: when listing methods for a checkout.ORDER_FILTER_SHIPPING_METHODS
: when listing methods for an editable order (draft or unconfirmed).
An app may:
- Mark a method as inactive (
active = false
). - Provide a
message
explaining why a method is unavailable.
See examples and guidance: Filter shipping methods.
See also​
Example: Multiple Zones Matching One Address​
If a country is assigned to more than one shipping zone, Saleor will aggregate all applicable shipping methods from all matching zones.
Zones:
- Zone Benelux: Belgium, Netherlands, Luxembourg → Methods: Standard, Express
- Zone All EU (including BE, NL, LU): → Methods: Economy, Courier
Checkout: Address in Netherlands, subtotal €40
Result: All four methods (Standard, Express, Economy, Courier) are returned.
- Saleor does not stop at the first zone → all matching zones contribute methods.
- Methods are then filtered by channel, currency, product exclusions, price/weight, and postal code rules.
- Final list is sorted by price, regardless of zone.