I want to apply free shipping for subtotal more than $50 and it's working fine. but if customer applied any discount coupon then free shipping should not apply because grand total is less than $50. For now, Free shipping still applying because Subtotal is still greater than $50.

Can anyone help me how to remove free shipping if Grand total less than $50 after applying discount coupon?

1 Answer 1


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() >=
  • after changing this code, free shipping method is not at all displaying even when cart total is more than $100. Can you please check this again.
    – BornCoder
    Jun 20, 2017 at 6:08
  • replace getBaseSubtotalInclTax() with getPackageValueWithDiscount() Jun 20, 2017 at 6:12
  • getPackageValueWithDiscount is working fine but if we are using any other extension Like DPD shipping method then it will affect module functionality ?
    – BornCoder
    Jun 20, 2017 at 6:21
  • 1
    No. This will only change the freeshipping method. Jun 20, 2017 at 6:22

Your Answer

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

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