Shipping rules are conditions on a delivery method that decide when it appears -based on the cart, the customer, or the destination. Add them to show a method only to the right shoppers (or hide it from the wrong ones).
Where to find them
Go to Shipping Rate Groups, open a method (or create one with Add delivery method), and scroll to the Shipping Rules section. Rules are per method - each method has its own set, and they only affect that method.
Once you navigate to the Shipping Rules section, you can add any rules you want.
How a rule is built
Each rule is Field + Operator + Value - for example, Product tags · does not contain · Extra.
You can filter by things like:
Numbers - cart value, cart weight, line-item count, item quantity, customer order count, lifetime spend, gross margin %
Text - SKU, shipping address, customer tag, product name, locale
Selections - product type, collection, vendor, subscription status
Product tags, metafields, inventory level, applied coupon, and more
Pick the right operator (the 90% rule)
Most mistakes come from choosing the wrong operator. Two things to keep straight:
ANY vs. ALL - decide whether the rule should apply if some items qualify or only if every item does:
is/contains→ passes if at least one cart item matches.is only/all items include→ passes only if every item matches.
AND vs. OR - this is set by the group a rule sits in:
Rules in the same group must all be true (AND).
Rules in different groups → any one group passing is enough (OR).
So "US or Canada" = two separate groups; "US customers who are also VIP" = both in one group.
Common gotchas
Use
isfor locations, notcontains.Shipping address contains "CA"also matches Canada and any address with "CA" in it. UseShipping address is "California".Exact tags are strict.
Customer tag is "vip"won't matchvip-gold. Usecontains "vip", or the full tag.Case matters - match the exact capitalization used in Shopify.
starts withdoesn't work in shipping conditions (it silently fails) - usecontainsinstead.
Examples
Hide a method for certain products:
SKU · does not contain · Extra→ the method won't show when any "Extra" SKU is in the cart.Show a method only for a collection:
Collection · is only · Frozen→ shows only when the whole cart is Frozen items.VIP-only rate:
Customer tag · contains · vip(same group as any other conditions you want ANDed).
If a method shows for the wrong people it's usually an ANY operator where you meant ALL, or a contains catching extra values. If it shows for nobody, it's usually two conditions in the same group that can't both be true - split them into separate groups.
Related: Setting up shipping methods


