Last updated - May 18, 2020
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. It is also a good idea to apply WooCommerce free shipping only for specific products.
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:
- An easy method involving WooCommerce Shipping Classes.
- 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:
Step 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.
Step 2 – Configure shipping rates
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.
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.
Step 3 – Apply shipping cost for the shipping class
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.
Step 4 – Assign shipping class to relevant products
Now we should assign the shipping classes to the required products.
Following screenshot shows how “Hoodie-class” is assigned to the product – “Woo Hoodie”.
And the below screenshot shows how “Free-products-class” is assigned to the product – “Woo Mug”.
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.
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.
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.
2. WooCommerce Advanced Free Shipping
Probably one of the ideal solutions for offering free shipping on specific products.
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.
Following screenshot shows a sample basic settings to be configured for free shipping on specific products.
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.
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.
The below screenshot shows a sample basic settings to be configured for free shipping on specific products.
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
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.
If you prefer watching a video tutorial, you can check out the below video.
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.