I’ve got a problem. I’ve got at customer who has free shipping for orders on $200 and over.

The problem lies in the discounts she offers. 1 type of discount is the 10 for 9 price. So if the Subtotal reaches $201, then the customer gets free shipping, and if the customer has bought 10 for 9, then the customer will get the discount, and the Totalprice will end on maybe $175,-

So the customer will get at discount and free shipping, because of the cart rule is applied before the discount.

Is there any workaround / coding modifications I need to do, to correct this matter?

Thanks in advance - Thomas

  • What conditions for the Shopping Cart Price Rule you are using for the free shipping ? Commented Jul 11, 2014 at 13:51

2 Answers 2


in Mage/Shipping/Model/Carrier/Freeshipping.php change

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


    $quote2 = Mage::getSingleton('checkout/session')->getQuote();
    $discountTotal = 0;
    foreach ($quote2->getAllItems() as $item){
        $discountTotal += $item->getDiscountAmount();

    $sprice = $request->getBaseSubtotalInclTax() - $discountTotal;

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

If you are using the free shipping carrier to do this you could change this part:

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

You would need to alter to remove the baseDiscountAmount which is stored on the quote object.

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.