Sushinet

Stop Slow Shipping on Perishable Orders in Shopify

Hide economy shipping whenever anything frozen, chilled or fresh is in the cart — why Shopify's own tools can't do it per product, and the one rule that can, keyed on a tag so it covers products you add later.

recipe

A frozen order that sits in a depot over a weekend is not a delivery problem. It is a refund, a replacement, a bad review, and a customer who does not come back. The shipping method that caused it was offered by your own checkout, and the buyer picked it in good faith because it was cheaper and it was there.

What you want is narrow: when anything that spoils is in the basket, the slow options stop being offered. Everything else in the store carries on as before.

The native way

Shopify's answer is shipping profiles. You create a profile for your perishable products, attach only the fast methods to it, and leave everything else on the general profile. If your store sells nothing but frozen goods, this is genuinely the right tool and you can stop reading here.

Where it breaks

Profiles decide which rates exist for a product. They do not decide which rates a buyer may choose for a cart, and those two questions come apart the moment a basket is mixed.

Add a frozen item and a shelf-stable one to the same cart and Shopify has to reconcile two profiles at once. What the buyer sees is a rate list that still contains the slow option, and nothing prevents them selecting it for an order that is half perishable. The frozen half spoils exactly as it would have done.

The second problem is quieter and shows up months later. A shipping profile is a list of products — so is a checkout rule that names product IDs. Both have to be maintained by hand, and both fail the same way: someone adds a new frozen SKU on a Tuesday, nobody remembers the list, and it ships economy in July. There is no error, no warning, and no way to notice until a customer tells you.

The rule that closes it

When the cart contains a product tagged perishablehide the delivery options economy, standard.

Two things make this different from a list of product IDs.

It asks about the cart, so a mixed basket is covered. If anything perishable is in there, the slow methods are gone for that checkout — once, for the whole order.

It asks about a tag, so it covers products you have not created yet. Tag a new item perishable and the rule already applies to it. You do not edit the rule, and there is no list to fall out of date.

Tag once, then stop thinking about it

The tag is the part worth doing carefully, because everything else follows from it. Pick one word and use it everywhere — perishable covering frozen, chilled and fresh is usually better than three separate tags, since the shipping decision is the same for all three. If you already tag products for warehouse or ops reasons, reuse that tag rather than inventing a parallel one; two tags that mean the same thing will disagree eventually.

How the app makes a tag work at checkout

Worth knowing, because it explains the one caveat.

Shopify's checkout cannot look up a product's tags while a buyer is standing there — the rules that run at checkout are sealed before they ever reach your store, and your tags are not known at that point. Most apps stop at that limitation and ask you to paste product IDs instead.

Instead, this app works out which products carry your tag when you publish the rule, and checks the cart against that. The buyer sees no difference and the checkout is no slower. What it means for you is that the product list behind the rule is a snapshot, refreshed automatically: when you tag a new product, it is picked up within seconds, and within the hour in the worst case if something is temporarily unreachable.

If a tag matches no products at all, you are told when you publish rather than left with a rule that quietly does nothing.

Check it before it is live

Preview it twice: once with a cart containing a tagged item, once with a cart that has none. The first should lose the slow options; the second should be untouched. A rule that changes both carts is matching more than you meant.

Then run it in monitor mode for a week. Monitor mode evaluates every real checkout and records what the rule would have done without changing anything a buyer sees, so you find out how many orders this actually affects before it affects any of them. For a shipping restriction that number is often the surprise — either far higher than expected, which tells you the rule is worth having, or zero, which usually means the tag is on fewer products than you thought.

Do this without touching code

Ruleproof builds every rule on this page as a plain sentence, previews it on a test shopper, and watches it against your real orders before it changes one — then switches on.

Questions

Can Shopify stop economy shipping for frozen products only?

Not on its own. Shopify's shipping settings decide what a method costs and where it goes, but the decision is made per shipping profile and per destination, never per cart, so a method is either offered or not offered to that address regardless of what the buyer put in the basket. You can put frozen items in their own shipping profile with only fast methods attached, and that genuinely helps — but a shipping profile applies to the whole order the moment one of its products is present, which means a cart with a frozen item and a shelf-stable one produces two rate groups the buyer sees together, and nothing stops them picking the slow rate for the part of the order that will spoil. A checkout rule works from the cart rather than the catalogue: if anything perishable is in the basket at all, the slow methods disappear from that checkout, once, for the whole order.

Why not just put perishables in their own shipping profile?

Shipping profiles are the right first tool and worth setting up, but they answer a different question — they decide which rates EXIST for a product, not which rates a buyer may choose for a mixed basket. The moment someone adds a frozen item and a jar of something shelf-stable to the same cart, Shopify has to reconcile two profiles, and what the buyer sees is rates that still include the slow option for part of the order. There is also a maintenance cost that grows quietly: a profile is a list of products, so every new frozen SKU has to be remembered and added, and the one nobody remembers is the one that ships economy in July. A rule keyed on a tag covers the next product automatically, because it asks what the cart contains rather than holding its own list.

Does it still work when I add a new frozen product?

Yes, and this is the main reason to key the rule on a tag rather than on a list of products. The rule says 'anything tagged perishable', so tagging a new product is all it takes — you do not go back and edit the rule, and there is no list that silently falls out of date. Under the hood the app works out which products carry that tag when you publish, and re-checks whenever a product changes, so a newly tagged item is covered within seconds and within the hour at the very worst. The alternative — pasting product IDs into the rule — works too, and it stops covering you the day you add product number 201, without any warning that it has.

What if a cart has both perishable and shelf-stable items?

The rule fires. That is deliberate: the question it asks is whether the cart CONTAINS anything perishable, not whether the whole cart is perishable, because the slow method would spoil the frozen half either way. If you would rather treat mixed baskets differently — say, allow economy when the perishable item is a small share of the order — you can add a second condition to the same rule, such as a cart total or an item count, and it only fires when both are true. Start with the simple version and watch it in monitor mode before you complicate it; mixed baskets are usually rarer than merchants expect.

Related guides

Ready to try it?

Ruleproof builds every rule on this page as a plain sentence, previews it on a test shopper, and watches it against your real orders before it changes one — then switches on.

← All checkout rule guides · See what Ruleproof does