How checkout chooses and prices a method
When a shopper asks for rates, ASM works through every method in a fixed sequence. Knowing that sequence explains most "why is this price…?" and "why is this method missing?" questions.
Before you begin
For a lighter introduction, read How shipping rules work first.
The sequence for one method
1. Does a rule match? ASM checks every rule of the method that's switched On. A rule matches when all its conditions pass, roughly in this order:
- the product's Invalid ship methods doesn't list this method
- Order value and Points ranges
- the rule's Origin ZIP code (a product in the cart ships from it)
- customer tags and Residence type
- Destination ZIP code, ZIP lists, Country, States / provinces
- PO boxes
- the product triggers: Products from certain origins, Products with a tag, SKUs in the cart
- Free only with code, if set
If no rule matches, the method isn't offered.
2. Products are sorted out. Products that ship free on this method (Free shipping over, or the product's Free shipping methods) and products with a Flat ship rates entry for this method are taken out of the cart that's about to be priced. Then the Weight range is checked against what's left.
3. The cart is packed. ASM packs the remaining products into boxes, using product sizes and box settings. Packaging weight markups add weight to each box.
4. Each box is priced. Each box is priced by the rule's type — a live carrier rate, the Percentage or flat boxes, or a Table row — and the boxes are added together.
5. Product charges are added. Product Flat ship rates and product Markup amounts are added.
6. Markups are added. Matching markups from the Markups page are added. They're never added to a $0 rate.
7. Limits are applied. Minimum charge and Maximum charge, then the Rate above or below an amount trigger.
8. Other methods are compared. Another method is offered and Rate compared to another method run once the other methods are worked out.
Finally, every method still offered is sent to checkout, cheapest first.
Which method is worked out first
You can't set this order. ASM works out methods without triggers first, then methods whose triggers depend on other methods. That's why a trigger should never depend on a method that has its own method-dependent trigger. See Advanced triggers reference.
Worked example
"Standard Shipping" uses a Table, Basis Weight: 0 → 8.95, 10 → 12.95. It has Maximum charge 19.00. A markup on the Markups page adds 10% of the rate.
A 12 lb cart worth $60 packs into two boxes of 7 lb and 5 lb:
| Step | Result |
|---|---|
| 1. Rule matches | Yes (no conditions) |
4. Box 1: 7 lb → row 0 |
$8.95 |
4. Box 2: 5 lb → row 0 |
$8.95 → total $17.90 |
| 6. Markup 10% | + $1.79 → $19.69 |
| 7. Maximum charge | capped → $19.00 |
Note that the table was looked up per box (7 lb and 5 lb), not for the 12 lb cart. A single 12 lb box would have used the 10 row: $12.95.
Rules of one method that point at different origins
A rule with an Origin ZIP code prices only the boxes shipping from that origin. Boxes from other origins are priced by the method's rules without an origin. The method's price is the total. See Rules for products that ship from different origins.
Apart from origins, design the rules of a method so that any one cart matches only one of them, for example with states or weight ranges that don't overlap. Overlapping rules make the price hard to predict.
Where to look when something's off
| What you see | Most likely step | Read |
|---|---|---|
| Method missing | 1, 2 or 8 | One shipping method is missing at checkout |
| Price is a multiple of what you expect | 4 | My table rate is charged two or three times |
| Price higher than expected | 4–7 | Shipping is higher than expected |
| Free shipping not applied | 2 | Free shipping isn't applying |