WooCommerce Tutorial: Set up Shipping
Shipping is an important part of any ecommerce business if it is dealing in physical products. We will show you how to configure and set up WooCommerce shipping feature to deliver your physical products.
Setup WooCommerce Products
Before going into shipping, let’s talk a bit about how to create physical and digital products. In the Add New Product section, you have 2 check-boxes virtual and downloadable, if you select the virtual option, the product will be considered as a digital WooCommerce product and the shipping tab for that product will be disabled; while the downloadable option is for adding downloadable contents to the products which are necessary in case of digital products. But, if you leave both check-boxes of virtual and downloadable unchecked, the product will be considered a physical product. You can see these in the following image.
Now that you know how to add the physical product, let’s talk about the shipping.
Define Shipping Type and Shipping Price types
Real world Shipping is of two types:
- shipping per order
- shipping per item
Shipping per order means that the shipping will be calculated for whole order while in case of shipping per item price will be calculated for each item.
Shipping price is calculated by two types again:
- weight-based shipping
- item based shipping
By weight-based shipping, the prices are calculated on the base of product weight or dimensions, while in an item based shipping, the price is more like a flat rate applicable on the order.
Based on your business model, define which shipping type suits you. Also, another important variable is the shipping address. But we’ll talk about that later in the Shipping Zones section.
In weight-based shipping, as we discussed it, is dependent on weight or dimensions and they both need measuring units, which can be set from the WooCommerce Products general settings as shown in the image below.
So, to configure weight-based shipping in a product, you need to fill the fields highlighted in the image below for that product.
It does not complete the process but provides the weight or dimensions for that product required to calculate a weight-based shipping price.
You can also see the option shipping class in the above screen when adding shipping info in WooCommerce product, which some shipping methods use for similar product grouping (Flat rate etc.) and these can be added from WooCommerce Shipping settings -> shipping classes option.
Another thing of note is shipping zones, which provide more shipping options (With this instead of single flat rate you can add multiple flat rates for different location in US). Shipping zone is geographical location with shipping method(s) and rates. Shipping zones can be added from WooCommerce Shipping settings -> shipping zones option. WooCommerce comes with 3 shipping methods Flat Rate, Free Shipping, and Local Pickup, but you extend them via plugins. Let’s discuss them in detail.
Flat rate: Flat rate is a constant price for shipping. In Flat rate method, all available shipping classes are listed in case you want to set different flat rates for each class.
Note: If you want to set different flat rate for each class then simply set each class value and leave the above field named Cost empty. Otherwise, it will ignore the class value and will use the value from Cost field. You can also set flat rate per item, if that is the case then simply add * [qty] with the price (10 * [qty]), if you enter the price without * [qty] then the shipping would be order based.
Free Shipping: Free shipping means that the shipping will have no cost. This method needs a trigger, it will not show by default in the available shipping methods on the cart page. The trigger could be a coupon code, minimum order amount etc.
Local Pick: It means the customer will pick the ordered product(s) from the store by itself. So, no shipping cost.
As you have noticed none of these handle weight based shipping so, how can we achieve that? As I mentioned earlier we can extend these shipping methods through plugins. Following are some plugins which handle weight based shipping.
- USPS Simple Shipping for WooCommerce
- WooCommerce Weight Based Shipping
USPS Simple Shipping for WooCommerce: USPS can handle weight based shipping and it uses the weight or dimensions values set earlier in the product section. This plugin provides a lot more than just calculating prices on weight based. For more information please check its documentation.
WooCommerce Weight Based Shipping: As clear from its name, calculates shipping on weight based. This plugin allows you to add multiple rules based on different conditions. You can create packages on weight based which is handy in order based shipping using weight instead of flat rate. For more information please check the documentation.
The other important thing in handling shipping is the shipping tax. To use tax on shipping there are few steps involved. First, you must enable the tax option for WooCommerce, which can be done from WooCommerce general settings, check the image below, after that, you will be able to see tax settings in the WooCommerce.
After enabling the tax section, please edit your previously added product and add a tax class to it.
Tax class holds the tax ratio/price based on location. Just go to WooCommerce tax settings and select the tax class assigned to the products. Here you can specify taxes for different locations. If you want to apply taxes on the shipping then simply check the shipping option in adding the tax rules, otherwise, it will only be applied to the products using tax.
These shipping methods handle almost every scenario, but you can also customize them according to your needs. You can also add you own custom plugin for shipping too. There are third party WooCommerce shipping APIs such as Rocketship or GoShippo but we’ll discuss them another time.
Let us know your comments about WooCommerce shipping tutorial below.