How to Apply Free Shipping on Certain Products in WooCommerce? (with Video)

Apply Free Shipping on Certain Products in WooCommerce

Last updated - May 24, 2019

There are times when your business is in full swing or you want to attract more customers to your WooCommerce store. You strategies to offer discounts or offer free shipping on your products. We have discussed effective strategies involving dynamic pricing and discounts on your WooCommerce store in another article. The free shipping strategy is useful when you have products like promotional badges, goodies, or have freebies to offer, and do not want to charge your customers for this.

But here’s the twist in the tale. WooCommerce, by default, does not provide a specific feature that allows you to apply free shipping for only specific products. Although WooCommerce has a default shipping method as Free Shipping, it will be applied to all the products.

In this article, I’ll show you how you can apply WooCommerce free shipping on certain products (because you still need to charge for your shippable products right?).

Applying WooCommerce Free Shipping on Certain Products

There are two methods you can achieve this:

  1. An easy method involving WooCommerce Shipping Classes.
  2. Another easy method using Plugins (for more filtering and customization).

Method 1: Using WooCommerce Shipping Classes.

As I mentioned earlier, WooCommerce does not have a direct feature that allows you to apply free shipping on certain products. But you can achieve this using WooCommerce shipping classes and the default Flat Rate shipping method.

Here’s how you can do this:

1. Create a shipping class for free products – Go to WooCommerce > Settings > Shipping > Shipping classes. 

I am assuming you are aware of WooCommerce shipping classes. If not, refer to this article.

Click on Add shipping class button to get started. Consider you have two products; a hoodie and a mug. You wish to charge shipping for the hoodie and offer free shipping on the mug (I am using this scenario to show you how the free shipping will be applied along with the shippable product).

For this case, I have created two separate shipping class as shown in the screenshot below.

WooCommerce Free Shipping | Creating Shipping Classes
Creating Shipping Classes

Next, we need to configure shipping rates in shipping zones. For this, click on Shipping zones and select the shipping zone of your choice. For this demonstration, I am using the default shipping zone.

Add Flat Rate shipping method and click on Edit option to configure it, as shown in the below screenshot.

WooCommerce Free Shipping | Editing Flat Rate Shipping method
Editing Flat Rate Shipping method

A pop-up window appears where you can configure the Flat Rate settings. The first setting is to customize the method title. This method will be displayed in the cart and checkout. For our case, when the free shipping is applied, the resultant text is just Flat rate with no value, which may seem odd. Hence, it would be a good idea to change the title to a more generalized title, say Shipping Charge.

In the Shipping class cost section, enter shipping cost for “Free-products-class” as value 0. and the “Hoodie-class” is assigned value 10.
The settings are as shown in the screenshot below.

WooCommerce Free Shipping | Shipping Charges
Shipping Charges

Now we should assign the shipping classes to the required products.

Following screenshot shows how “Hoodie-class” is assigned to the product – “Woo Hoodie”.

WooCommerce Free Shipping | Hoodie shipping class
Assigning Hoodie shipping class

And the below screenshot shows how “Free-products-class” is assigned to the product – “Woo Mug”.

WooCommerce Free Shipping | Free products shipping class
Assigning Free products shipping class

Here’s how the shipping rates are applied on our WooCommerce cart page.

When the free product – “Woo Mug” is added to the cart, the flat rate shows empty value in the cart, as shown in the below screenshot.

WooCommerce Free Shipping | Free shipping applied
Free shipping applied

In this way, you can offer free shipping on certain products.

But that’s not it. To see how the cart is affected when shippable products are added to the cart, let us add the other product – “Woo Hoodie” to it.

WooCommerce Free Shipping | Free shipping applied along with Flat Rate
Free shipping applied along with Flat Rate

The Flat rate now shows $10, as configured in the “Hoodie-class shipping class cost” setting of Flat Rate shipping method. Hence, the shipping rate of only the shippable products will be charged.

Tip: If you want to retain the Flat rate title and still want to apply free shipping. An alternate solution is to create two different flat rate shipping methods. Define one flat method for shippable products while retaining the title, and change the title(probably to “Free Shipping”) & configure free shipping settings for another.

Method 2: Using WooCommerce Plugins for more customization.

If you wish to apply filters for offering free shipping on certain products, then there are quite a few plugins that will help you achieve this.

Here, I am listing four of the best WooCommerce plugins for our case.

1. ELEX Hide WooCommerce Shipping Methods Plugin

This plugin gives you the control to conditionally hide shipping methods according to several parameters on your store. One of the popular scenarios that store owners would want to use this plugin is to hide other shipping methods when free shipping is available. The plugin offers an easy to use interface that offers you an option to selectively hide shipping methods based on product category, Shipping class, order weight, shipping destination, etc.

For example, you can hide the default WooCommerce shipping methods for certain products and offer only one shipping method for certain others. Or, you can offer display only free shipping for products from a specific shipping class. If you have integrated a particular shipping carrier on your store, you can hide the entire method or specific services from the carrier as well.

Purchase the plugin here.

2. WooCommerce Advanced Free Shipping

Probably one of the ideal solutions for offering free shipping on specific products.

WooCommerce Free Shipping | WooCommerce Advanced Free Shipping Plugin
Image Source: WooCommerce Advanced Free Shipping Plugin

The plugin is specifically developed for free shipping scenarios. With this plugin, you can offer free shipping when the cart contains specific products, categories, shipping class, coupon, weight, quantity or subtotal. You can also configure using user details like user role, country, state, city, and postcode. In addition to this, you can use product properties like product dimensions, stock, and stock status.

Moreover, the plugin allows you to combine shipping methods and includes a feature to hide other shipping methods when free shipping is available.

Download the free plugin.

Following screenshot shows a sample basic settings to be configured for free shipping on specific products.

WooCommerce Free Shipping | WooCommerce Advanced Free Shipping plugin settings
WooCommerce Advanced Free Shipping plugin settings

If you think that’s enough of customization, you can check out the premium version for even more customization options.

The plugin author Jeroen Sormani suggests,

The Advanced Free Shipping plugin works best if the entire order should be free shipping. Otherwise, I’d advise splitting the cart into separate packages and set up the shipping rates accordingly. This can be done using the WooCommerce Advanced Shipping Packages plugin or a code snippet.

3. Advanced Flat Rate Shipping Method WooCommerce

Another fine alternative.

WooCommerce Free Shipping | Advanced Flat Rate Shipping Method WooCommerce
Image Source: Advanced Flat Rate Shipping Method WooCommerce

With this plugin, you can create unlimited shipping methods. You can create shipping methods for specific products, categories, countries, as well as cart subtotal. Not just this, you can also configure custom rates using shipping classes as well.

The plugin also has a feature to customize how the shipping methods have to be displayed. You can choose to display shipping methods with radio buttons or in a drop-down fashion.

Download the Free plugin.

The below screenshot shows a sample basic settings to be configured for free shipping on specific products.

WooCommerce Free Shipping | Advanced Flat Rate Shipping Method WooCommerce settings
Advanced Flat Rate Shipping Method WooCommerce settings

If you are looking for even further customization involving shipping zones, state, postcodes, user roles, product SKUs & tags, coupons and so on, then you should probably try out the premium version.

4. WooCommerce Table Rate Shipping Pro Plugin

This plugin helps you set up advanced shipping rules on your WooCommerce store.

One of the features that make this plugin better than the other two is the option to set a range for weight, price, and quantity of the products. If you are offering free shipping based on weight, price, the quantity of the products, categories, shipping destinations(shipping zone, countries, states and postal codes), this should be a better option.

One of the highlighted features is the Method Group column that allows you to combine multiple shipping methods.

In this plugin, the free shipping scenario is created using shipping classes or product categories.

Explore more features of the plugin.

If you prefer watching a video tutorial, you can check out the below video.

Final thoughts

If you want to apply WooCommerce free shipping on certain products without any conditions, you can follow the first method straight away. Else, using one of the above-mentioned plugins might be a good idea.

If you have a specific shipping requirement and are unable to find a solution for it, ask me in the comment section. Hopefully, I’ll get back to you with a possible solution.

Meanwhile, you can continue reading more amazing articles on our LearnWoo blog.

3 COMMENTS

  1. hi,
    I have free shipping products and paid shipping products in my website. paid shipping products are configured as per weight based shipping as am selling some heavy items. So i need the following scenarios to be configured.
    1. Free shipping method should be applied when only free shipping products available in cart,
    2. Weight based shipping method should be applied when a customer add any other products along with free shipping products.

    Hope my idea is clear to you. Any help would be apreicated

    • Hi Vahid,
      You have not mentioned how you are handling the free shipping and if you are using any shipping carrier for calculating shipping rates or not.

      However, for your first case, you can either use a code snippet or simply use the “ELEX Hide Shipping Method Plugin” that I have mentioned in the article. It will hide other shipping methods when free shipping is available for the product(s).

      For the second case, if you are using a shipping carrier like DHL, UPS, FedEx, etc., you don’t have to worry about calculation. As the respective shipping carrier will calculate shipping rates, provided you have selected Weight-based shipping rate calculation in your respective shipping carrier plugin for WooCommerce. If you want to set up manual weight-based rates calculation, you can try any popular WooCommerce Table Rate plugins.

      Hope that helps.

  2. Hi,
    in my case i have some free shipping products and others are charged for shipping products, your tips is perfect if the shipping charge is constant for whatever shippable items customers added. but i need shippable products charge should be varied as the weight increases, . In your tips, shipping charge will be 10 if they add more than 1 kg of products. but for me, it should be changed when weight increases, Any help apreciated.

LEAVE A REPLY