An eCommerce store can have a varied range of products which differ in shape, size, material, durability etc. In such a scenario it becomes imperative for eCommerce store owners to specify shipping options, based on the product. For example if a company needs to deliver various chemicals from one place to another it would prefer a service like UPS that would transport the chemicals under controlled temperatures. However, if the company wants to deliver synthetic products such as cans, containers etc another shipping option could be employed. So, it can be said that the shipping option for products will be determined based on product.
Additionally, a customer should also be allowed to add products with different shipping options to a single cart. For example if a customer wants to purchase two products, one with a flat rate shipping option and one with a UPS shipping option he should not have to create two orders. The customer should be allowed to purchase both the products in one order.
If I have to make a long story short then a store owner would require the following features to apply product based shipping options effortlessly in a WooCommerce website.
- Categorize various products in WooCommerce shop
- Assign shipping rates to products in shop
- Allow users to add products with different shipping options to a single cart
While the first requirement is possible with WooCommerce. The second two aren’t. Assigning shipping rates to products in shops and allowing users to add products with different shipping options to a single cart require additional plugins. Below I am going to explain how to fulfill all the above three requirements.
Categorize Products Using Shipping Classes
The first requirement of assigning classes to products can be fulfilled within the WooCommerce plugin. Website admin can define classes by navigating to Products –> Shipping Classes in the admin dashboard.
The website admin can then assign classes to the products from the individual product page.
Assign Shipping Rates to Products
Products in the shop can be assigned various shipping rates. A flat shipping rate can be assigned to a class of products by navigating to WooCommerce –> Settings –> Shipping –> Flat Rate. For example a flat shipping rate of $5 can be assigned to a class ‘abc’ of products
However if website admin wants to define multiple rates to product classes based on conditions such as location, price, weight then ‘Table Rate Shipping’ plugin can be used. Using this plugin admin can define various conditions based on which a rate will be defined for a product class. For example if there is a certain class ‘abc’ for which, the shipping rate should be based on quantity of the product then the admin can set this in the table below by navigating to WooCommerce –> Shipping Zones –> Shipping Method
Add Products With Disparate Shipping Options in a Cart
The one shortcoming of the ‘Table Rate Shipping’ plugin is that it does not allow users to add the products with different shipping options into one cart. For example a customer won’t be allowed to add a product A which is using flat rate option and another product B which is using table rate option. Such a combination of products will create a conflict and the user will be forbidden from completing the action.
To address this shortcoming we have created an add on. Once this add on is activated in the admin dashboard the user can add products with disparate shipping options in the cart. Below is an example of a cart in which, products with disparate shipping options have been added in a single cart.
Using this solution website admins can assign variable shipping rates to products based on size, material, location etc in a extremely smooth and convenient manner.