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? Commented Mar 5, 2015 at 12:53
  • What shipping method are you using? Commented Mar 5, 2015 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
    Commented Nov 25, 2016 at 21:43

2 Answers 2


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. Commented Apr 7, 2016 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. Commented Apr 27, 2016 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
    Commented Apr 30, 2016 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
    Commented Jan 18, 2018 at 7:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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