Can Shopify hide shipping methods on its own?
Partly. Shopify’s shipping settings decide which rates exist for an order. They can’t hide a rate that already qualifies. Here is what you can do natively, and where each option stops:
| Native option | What it controls | Where it stops |
|---|---|---|
| Shipping zones | Which rates apply to which countries or regions | No customer, product or cart conditions |
| Rate conditions | A minimum and maximum order price or order weight per rate | One price range or one weight range per rate. Can’t check customer, collection or discount |
| Shipping profiles | Different rates for specific products. Up to 99 custom profiles | Product-level only. A cart mixing profiles gets combined rates |
| Local delivery | Delivery within a set distance or specific postal codes | Only for your own local delivery option |
| Pickup in store | Pickup at locations you activate | Customers only see pickup locations in their own country |
| Checkout Blocks | Conditional hide, rename and reorder of delivery methods | Delivery customizations are Shopify Plus only |
| Custom Shopify Function | Anything the Delivery Customization API allows | Custom apps with Functions are Shopify Plus only, and need a developer |
Shopify Scripts are gone
Shipping Scripts used to handle this on Plus. Shopify stopped running all Scripts on June 30, 2026, so any rate-hiding Script has to be rebuilt as a Shopify Function or replaced with an app.
The gap is on non-Plus plans. Nothing native lets you say “hide Express when the cart has a fragile product”, “hide retail rates for customers tagged wholesale”, or “hide paid shipping once free shipping qualifies” when your rates don’t line up neatly with a price range. For that you need a public app from the Shopify App Store built on the Delivery Customization API. Shopify lets stores on any plan use those.
How hiding a shipping rate works
Every shipping app on the App Store that hides rates does it the same way. Shopify calculates the rates first, from your zones, profiles, carriers and local delivery settings. Then a delivery customization function runs and can hide, rename or reorder what came back. Then checkout shows the result.
This has three consequences:
- An app can only hide rates Shopify already returned. If a rate is missing because of a zone or profile gap, no rule will bring it back.
- The rate still exists. Hiding removes it from checkout for matching carts. It doesn’t delete or reprice anything in Settings → Shipping and delivery.
- There’s a shared ceiling. Shopify allows 25 active delivery customizations per store, counted across every app you have installed.
Delivery customizations cover shipping carriers, local delivery and pickup options. They apply to carrier-calculated rates as well as the flat rates you set yourself.
Hide shipping by product, tag or collection
This is the most common reason merchants search for this. You want freight only for oversized goods, no overnight for perishables, or no international shipping for products you can’t export.
In Nex Reorder, switch the rule to the Product-Based Rules condition set, then use one of these conditions:
| Condition | Use it for |
|---|---|
| Product tag in cart | The flexible option: tag products oversized, fragile, no-express and target the tag |
| Collection in cart | A whole collection, such as Furniture or Frozen |
| Product in cart | A handful of specific products |
| Product vendor, Product title, Variant name | Dropship vendors, naming patterns, one size or material |
| Quantity of product | Only when a product is bought in bulk |
Example: no overnight on bulky goods. Hide Overnight Shipping, with the condition Product tag in cart → Is one of → oversized.
Product conditions match on any item
A product condition passes if any item in the cart matches, not only when every item does. One oversized item in a mixed cart is enough to hide the rate. That is usually what you want for shipping.
To show a rate only for certain products, flip it. To show Freight only when an oversized item is in the cart, hide Freight with Product tag in cart → Is not one of → oversized.
Hide shipping by customer tag
Wholesale and B2B customers often need different delivery options from retail shoppers. Shopify’s shipping settings have no customer conditions at all, so this one always needs an app.
| Goal | Hide | Condition |
|---|---|---|
| Wholesale sees only freight | Your retail rates | Customer tag → Is one of → wholesale |
| Retail never sees wholesale freight | Wholesale Freight | Customer tag → Is not one of → wholesale |
| Logged-in customers only for local delivery | Local Delivery | Customer is logged in → Is false |
Other customer conditions are Customer total spent and Customer order count. Use them to keep a premium option for repeat buyers.
Test while logged in as the customer
Customer-tag rules only match when the shopper is logged in with a tagged account. If a rule works for you but not for a customer, the difference is usually login state. See works for me but not for customers.
Hide shipping by country, state or ZIP code
Zones already split rates by country. Rules add precision inside a zone, down to state and ZIP / postal code.
| Goal | Hide | Condition |
|---|---|---|
| No express to remote areas | Express Shipping | Shipping ZIP / postal code → Is one of → the remote codes |
| Local delivery only in your area | Local Delivery | Shipping ZIP / postal code → Is not one of → your codes |
| No domestic-only rates for international orders | USPS Priority Mail (for example) | Shipping country → Is not one of → United States |
| Stop shipping to one state | Every shipping rate | Shipping state / province → Is one of → the state |
ZIP / postal code conditions also accept Starts with. That covers a whole postal area, like every code beginning M5, without listing each one.
Shipping country is not customer country
Shipping country is where the order is going. Customer country comes from the customer’s own address. They differ on gifts and business orders. For delivery rules, use shipping country.
Hide shipping by cart total, quantity or weight
Free-shipping threshold. When the cart qualifies for free shipping, hide the paid rates so the free option is the only choice. Hide Standard Shipping and your other paid rates with Cart subtotal → Greater than or equal → 75 (use your own threshold).
Use Cart subtotal here, not Cart total. Subtotal is the value of the items. Total includes what Shopify adds on top, so a rule built on total can trigger below your real threshold.
Quantity. Items in cart and Quantity of product can hide a rate for large orders. For example, hide Small Parcel when there are more than 5 items.
Weight. Nex Reorder does not have a cart-weight condition. For weight, use Shopify’s own rate conditions: each manual rate can have a minimum and maximum order weight. That is the right tool for “Standard up to 20 kg, Freight above”. If weight is really standing in for “big product”, a product tag is usually more reliable.
Make products pickup-only
Some products can’t be shipped: fresh flowers, large furniture, age-restricted items. Shopify’s pickup settings are set per location, not per product, so the usual approach is to hide the shipping rates whenever one of those products is in the cart:
- Turn on pickup in store for the locations that stock the products (Settings → Shipping and delivery).
- Tag the products, for example
pickup-only. - Create a hide rule on the Product-Based Rules set. Select your shipping rates (Standard Shipping, Express Shipping and any carrier rates) but not your pickup option.
- Add the condition Product tag in cart → Is one of →
pickup-only.
Shipping disappears for those carts, so pickup is the way to complete the order.
Check that pickup is really available
If a customer’s cart matches and none of your pickup locations serves them, they won’t have any delivery option and can’t check out. Customers only see pickup locations in their own country. Test with an address in each market you sell to.
Carrier-calculated rates (UPS, FedEx, USPS, DHL)
Live carrier rates can be hidden like any other rate. Two things are different:
- Match the label exactly as checkout shows it. Carrier rates often carry the carrier name and symbols, like
UPS® Ground. Copy the name from a live checkout and paste it into the rule. Don’t retype it from memory. - Plan availability comes from Shopify. Third-party carrier-calculated shipping is included on Shopify Advanced and Plus. Grow stores can add it for a monthly fee or by switching to annual billing. Hiding rules work on every plan. The carrier rates they hide depend on yours.
A common setup: hide the carrier’s overnight service for PO Box addresses, or hide a carrier entirely for one region. PO Box detection only works for rates from carrier services or third-party shipping apps. Shopify’s built-in rates may not pass the address details a rule needs.
Step-by-step: hide a shipping method with Nex Reorder
This walkthrough hides one rate. The same flow handles every example on this page. Only the condition changes.
2:35 - Install Nex Reorder from the Shopify App Store. It works on every Shopify plan, and there’s a free trial.
- Open Quick Hide Shipping Method from the Shipping Methods section of the dashboard.
- Name the rule so you’ll recognise it later, like Hide Express for oversized.
- Add the shipping method. Pick a preset (Standard, Express, Free Shipping, Local Pickup, Overnight) or type the exact label from checkout.
- Add conditions. Pick the condition set first (General, Product-Based, or Advanced & Custom), because switching sets later clears your conditions. With two or more conditions, choose All conditions pass (AND) or Any condition passes (OR). With no conditions, the rule applies to every checkout.
- Set Rule Status to Activated and save. The rule applies to checkout immediately.
- Test two checkouts: one that should trigger the rule (the rate is gone and at least one other remains), and one that shouldn’t (your normal rates are there).
To start from a pre-built rule instead, the Hide Free Shipping for selected countries template has the same shape as most country rules. Change the rate name and countries. More setups are in shipping rule examples.
Always leave at least one rate
If a rule hides every rate for some carts, those customers can’t check out. Unless that’s what you intend, test a cart that should still have options.
Troubleshooting: the rate is still showing
Work through these in order. The first two cover most cases.
- The name doesn’t match.
Standard ShippingandStandard shippingare different strings. Copy the label from a live checkout. See method name not matching. - The rule isn’t Activated. A saved rule isn’t a live rule. Check Rule Status.
- The condition logic is inverted. All where you meant Any, or Is one of where you meant Is not one of. Read the rule preview. It restates the rule in plain English. See all vs any conditions.
- Your test cart differs from the customer’s. Login state, destination and currency all change which conditions pass.
- The rule won’t activate. You’ve probably reached Shopify’s 25 active delivery customizations across all apps. Pause an unused rule or remove an old app. See rule won’t activate.
- You’re looking at the wrong surface. Rules don’t run in Shopify POS. The draft order screen in your admin shows the unmodified list, and the rule applies when the customer opens the checkout link.
- An old checkout tab. Reload it. There’s no cache to clear. See checkout not updating.
Still stuck? The full rule not working checklist covers the rest.
Hide, rename or reorder: pick the right action
Hiding isn’t always the best fix. If customers pick the wrong rate because the name is unclear, rename it instead: UPS Ground → Standard Delivery (5–7 business days). If you want customers to prefer a rate without removing the others, reorder it to the top. Each rule does one action, so you can combine several on the same rates.
The same app also hides payment methods with the same conditions. For example, you can hide Cash on Delivery on the orders where you’ve also hidden local delivery.
Sources
Shopify platform details on this page were checked in September 2026 against:
- Delivery Customization Function API and Shopify Functions availability (shopify.dev)
- Setting up shipping zones and rates, Shipping profiles, Pickup in store and Third-party carrier-calculated shipping (Shopify Help Center)
- Customizing delivery options in Checkout Blocks (Shopify Help Center)
- Shopify Scripts will be deprecated on June 30, 2026 (Shopify developer changelog)
Shopify changes these periodically. For what no checkout app can do, see Shopify limitations.