This method allows you to enter a shipping price on a per product basis. If certain products in your catalog are heavy and need to be shipped separately, or there is great variation in weight, size and dimension, then this is the method to use for defining shipping costs.
With every tutorial in this series we are using the latest version of WooCommerce version 1.5.6. The theme is Shelflife version 1.0.22, a beautiful responsive theme by Woo Themes. These all installed and activated in WordPress, version 3.3.2.
Configuring the plugin
- Enter a title for displaying this method at checkout
- Select an option for shipping as taxable or not
- Enter the order cost, all products will assume this cost before the per product price is added
- Enter in a default product cost to use if no per product price is configured
- Enter the countries for which this method ought to be used
When you install Per Product Shipping and activate it, navigate to the WooCommerce settings, then the shipping tab. There will be a link to configure Per Product shipping and below is what you will see.
We entered an order cost of 50 to be applied to the shipping cost for all products before the individual per product shipping charge is added.
Then we also added a default product cost of 200 to use when no individual product cost is configured. It is important to note that the default product cost is not added to the order cost.
We have essentially just added a shipping charge of 200 to all products.
The cart displayed above has one product with a per product price of 300, but remember, we entered an order cost of 50 when we configured the per product shipping method, which is why shipping becomes 350.
Above is another cart with multiple products. One product is configured with a per product price of 300 that is added to the product cost of 50. The next product has no per product price and will therefore use the default product cost of 200.
All the fees are added together to display one price of 550 nice and neatly.
Important to know
The following are a few caveats for using this method in conjunction with WooCommerce flat rates, they make more sense if you read our post on flat rates.
- This method should be used on its own. It cannot be used in conjunction with standard WooCommerce flat rates, or any other, as an option to display custom costs on only certain products.
- If flat rates are used with per product then both methods will be offered to users at checkout and they will surely choose the cheaper option, which isn’t necessarily what you desire
- You could use per product shipping to apply alternate rates to specific countries if flat rates are applied to other countries, but this result is better solved using flat rates and the international delivery method that come standard with WooCommerce.
Final Considerations and Conclusion
Technically this method could be used if you ship locally and internationally, but it is unlikely that a product would incur the same shipping cost no matter the destination. We feel its best use is for local shipping.
The per product shipping method does not allow for multiple shipping costs that are used based on the shipping destination, which is why the method allows you to enter the destination countries for which the method applies.
But these are not drawbacks, the Per Product Shipping extension is a winner, because it is a simple to use and allows you to enter a custom shipping cost on a per product basis. You could achieve similar results with standard WooCommerce flat rates, using shipping classes, but that would entail configuring from 3 screens in the WordPress backend.
The great thing about the Per Product Shipping Extension is that once you configure the method, which takes no time, final shipping costs are configured via the product edit screens. You already have to enter the product title, description, image and other meta data, it doesn’t ask much of you to enter a value for one more field at the same time.
Shipping in SA with WooCommerce | Series index
You can read the rest of this series by clicking the links below.