Last updated - May 10, 2018
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 to 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 free shipping on certain products in your WooCommerce store(because you still need to charge for your shippable products right?).
Applying 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:
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 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.
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.
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.
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 three of the best WooCommerce plugins for our case.
1. 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 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.
2. 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.
3. WooCommerce Table Rate Shipping Pro Plugin
One of the features that make this plugin better than 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 want to apply 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.