Skip to main content

How to set up shipping rules

Control which shoppers see which shipping options at checkout

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:

  1. 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.

  2. 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 groupsany 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 is for locations, not contains. Shipping address contains "CA" also matches Canada and any address with "CA" in it. Use Shipping address is "California".

  • Exact tags are strict. Customer tag is "vip" won't match vip-gold. Use contains "vip", or the full tag.

  • Case matters - match the exact capitalization used in Shopify.

  • starts with doesn't work in shipping conditions (it silently fails) - use contains instead.

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.

Did this answer your question?