Free Ride for Craft CMS

FAQ

Can't Commerce already do free shipping?

It can price a method at $0 under conditions. What it doesn't give you is the free shipping policy in one place: an ordered list where blocks veto, the first match wins, the cost of a chosen method can be waived, and the cart can tell the customer how far away they are. That's the half Free Ride does.

Is Free Ride free?

Yes. No editions, no paid tier.

Which mode should I use?

Offer a free shipping method when you want a separate $0 option at checkout. Waive the cost of the chosen method when you want an existing method — express, say — to drop to $0 without duplicating it. Block free shipping for orders that should never qualify. See Installation.

What if two rules match?

Block rules veto first. Then the first matching granting rule in the list is the one that decides the progress message and whether other methods are hidden. Several method rules that all match show up as alternatives the customer chooses between.

Can I say "free over $50, except to Alaska and Hawaii"?

Two rules: a method rule with Item Subtotal ≥ 50, and a block rule with Shipping State / Province is one of AK, HI. Or put the state condition on the method rule itself with is not one of — but then a cart in Alaska won't be told it's "$12 away", because it isn't.

Will the progress message ever lie?

It's built not to. It only reports a distance when exactly one condition on a rule failed and it's a threshold the customer can cross. Anything else, and the message is empty. A wrong number is worse than silence.

Does it work with AJAX carts?

Yes. actions/freeride/cart/progress returns the same progress as JSON for the current visitor's cart. See Usage.

Can customers see my rules?

No. The JSON endpoint returns the visitor's own cart progress and the name and handle of the rule it's about — not your conditions, thresholds on other rules, or anything else in the list.

Is the customer taxed on waived shipping?

No. The waiver runs straight after Commerce's shipping adjuster and before tax.

Why aren't rules in project config?

For the same reason Commerce's own shipping methods and rules aren't: they're store data that merchants change day to day, often in production. Export and import move them between environments when you need to.

Does it support multiple stores?

Yes. Rules belong to a store, and each store has its own ordered list.

Does it work with other shipping plugins?

Yes. Free Ride's methods are added alongside whatever Commerce and other plugins register, a waiver zeroes whichever method the customer picked, and Hide other shipping methods removes other plugins' options too.

Will it slow down checkout?

No meaningfully. Each cart is evaluated once per request and the result is reused, keyed on everything that can change the answer — items, subtotal, address, coupon, chosen method — so a recalculated cart is never answered from a stale decision.

Which Craft and Commerce versions are supported?

Craft CMS 5.3+, Craft Commerce 5.0+, PHP 8.2+.