Magento: Table Rate Shipping & Shopping Cart Price Rules with Free Shipping

Magento Icon

I am working with a possible client about a new website, and one of the features that they have requested is to have table rate shipping based upon order total, and to have free shipping for $100 or more. This is normally easy and setup directly in the table rates. But there’s a catch.

There are a number of products that need to negate the free shipping if any of them are in the cart. Fortunately, this is doable using Shopping Cart Price rules. Here is how to do it:

Step 1:
Enable your table rates, download the CSV (making sure you are viewing the config on the website level), modify it and then upload your rates. Do not offer any free shipping in your CSV. Keep the Free Shipping method disabled.

Step 2:
Create your Shopping Cart Price rule. I’ve included images below to help explain it. Essentially, you need to set it up to look for a cart subtotal that is equal or greater than $100, and to make sure that there are no excluded products in the cart. You do this under the conditions tab. (Just change the “sku1, sku2, sku3” etc. to the SKU’s of the products you want to exclude)

What this does is offers the free shipping method (even though it is disabled) if the shopping cart total is $100 or more and does not include any excluded products. If there are any excluded products in the cart, the free shipping method will never be offered.

This entry was posted in Magento. Bookmark the permalink.

5 Responses to Magento: Table Rate Shipping & Shopping Cart Price Rules with Free Shipping

  1. Guido Jansen says:

    Somehow the free shipping doesn’t work when you’re using Table Rates like Guy describes (tested on 1.4.0 and 1.4.1). Luckily there appears to be a fix for this. Haven’t tested it, but will do so later this day…

  2. Guy says:

    For some reason I can’t get this to work as you describe. We are on Magento
    We use table rate shipping and UPS shipping. Free shipping only appears for UPS (when free method is set) or when Free shipping is enabled with an amount of 10000 (so it won’t be appear on orders less that do not match the rule). The table rate shipping is never free, always the amount specified in the csv file. Am I missing something or is this method for version 1.4?

    By the way you have a great blog!

    • Josh Pratt says:


      Your setup is different than mine. With UPS, you can enable a Free Shipping through the UPS shipping method. So, I’m sure that changes up the way my method works.

  3. optical says:

    How can I limit the free shipping to the lower 48 states by SKU using CSV? The backend is good if you don’t have a lot of products to manage for the promo.