I tried to avoid giving free shipping based on subtotal, but it doesn't work. If I apply coupon for example 50% customer pays so little, but gain the free shipping. How to achieve the scenario that any shopping cart rules do not affect free shipping. I'm using also VAT tax (so grand total is presented including and excluding tax).

  • 1
    So how do you apply the free shipping. Using a promo rule?
    – Sander Mangel
    Mar 5 '15 at 12:53
  • What shipping method are you using? Mar 5 '15 at 12:56
  • Temporary fix. I set the Free Shipping level higher based on the % off. But this only works if the discount is automatically applied in the cart. So, if discount is 40% off if you purchase $75 or more I set Free Shipping level to 75/.6 or $125.
    – babywit
    Nov 25 '16 at 21:43

Just edit the shopping cart price rule to

Conditions tab

Subtotal equals or greater than £YOUR-PRICE

When setting the condition, click subtotal and then little "is" and select the above.

Actions tab

Change only the “Free Shipping” field, and set to “For matching items only”. That should then create free shipping for your set price.

Hope this helps

  • 1
    This does not actually resolve the question. He is looking to handle it based on the grand total instead of subtotal. Apr 7 '16 at 13:14
  • 2
    Yes, but unless its been introduced recently, its not supported. There is no grand total condition. I would suggest its a bug really since it is a common requirement. Apr 27 '16 at 9:49
  • @JohnCuthbert you're correct grand total is not available, I don't actually see why anyone would want to discount grand total anyway - grand total is effectively subtotal minus tax and shipping. You can create the rule to include discount of the shipping - subtotal is the only way and it works...you can't discount tax. You can create a hack which I've seen some people doing but directly discounting the grand total could be dangerous especially for tax purposes. SubTotal and the additional options works in all scenarios, I don't see why not.
    – mg33dev
    Apr 30 '16 at 7:48

You need to modify the collectRates method of freeshipping.

For this copy Mage_Shipping_Model_Carrier_Freeshipping.php in local folder with same directory combination.

and replace this condition ::

if (($request->getFreeShipping())
    || ($request->getBaseSubtotalInclTax() >=


if (($request->getFreeShipping())
    || ($request->getPackageValueWithDiscount() >=
  • this solution not working for me
    – Narayan
    Jan 18 '18 at 7:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.