When using the WooCommerce Advanced Shipping plugin, you already get a good set of default pricing options. These options include ‘Shipping cost’, ‘Handling fee’, ‘Cost per item’, ‘Cost per weight’. These options are very broad and are satisfactory for about 80% of the users. If you want more advancing pricing options to setup, you can use the WooCommerce Advanced Shipping – Advanced Pricing extension. This is a extension that runs on top of WooCommerce Advanced Shipping, and not a stand alone plugin.

WooCommerce Advanced Shipping – Advanced Pricing

After you’ve installed the WAS Advanced Pricing extension, you will see that there is a new area added below the regular ‘Shipping settings’ called ‘Advanced Pricing’ (as seen on the screenshot).

Within that area, you will see a tabbed section where you can setup extra cost rules. There are 4 default Advanced Pricing options available which are discussed in detail below.

Advanced Pricing options

The 4 default Advanced Pricing options are described in detail below. All pricing options have at least a ‘amount’ field. The amount field contains the amount that will be added to the total shipping cost.

– You can add a asterisk (*) to the amount field if you’d like to apply the amount per unit (more info per option below).
– Adding a minus sign (-) will deduct the cost of shipping
– Adding a percentage sign (%) will use a percentage of the cart subtotal for that cost

It is possible to combine the above options.

** New as of version 2.1.0 **
– Adding a double percentage sign (%%) will use a percentage of the group subtotal (more info per option below)
– Charging cost per interval using the forward slash (/) or backslash () (more information below)
(this feature is experimental and could be subject to change)

** New as of version 2.2.0 **
– Adding a double asterisk (**) allows for ‘Additional cost per quantity’ (more info per option)

Cost per weight

With the cost per weight option it will be easier to create a weight based table rate shipping rates. The same thing was already possible within the plugin, but to setup different charges per weight range it required you to create separate shipping rate for each range.

With the Cost per weight option you can now setup multiple weight range cost in one shipping rate. See the screenshot on the right for a example.

You can add a asterisk (*) in the amount field to multiply the cost with the weight amount (decimal accurate).

You can use decimals to ensure weight values are not applied double. E.g. use ‘5.01’ as a min. weight to ensure carts that weight exactly 5kg don’t get $15 added.

Full documentation on Advanced Shipping – Cost per Weight.

Cost per shipping class

With this option you can setup a cost per a specific shipping class. The first option you can setup is the shipping class. The cost will only be applied when this shipping class is in the cart.

If you want, you can also set ‘min’ and ‘max’ conditions. By default these conditions look at the quantity of items in the cart of the given shipping class, when these conditions are set, the cart must match the set conditions before the cost is added.
These ‘min’ and ‘max’ fields have two special conditional options:
1)  Add a dollar sign ($) to setup the min/max condition based on the shipping class total. (its always a dollar sign, no matter the currency)
2) Add a ‘w’ (of ‘weight’) to setup the min/max condition based on the shipping class total weight.

Shipping class, weight based Shipping class, subtotal based Shipping class, quantity based

Cost per category

The Cost per category option is very similar to the shipping class. It has the same min/max condition and amount options.

Full documentation on Advanced Shipping – Cost per Category.

Cost per product

It is also possible to setup a cost per product. It allows you to setup min/max quantity conditions and a cost that will be added to the total shipping cost.

Adding a asterisk to the ‘Fee amount’ field will multiply the fee with the quantity of the product that is in the cart.

New: You can now also search and setup cost per variation in the ‘Cost per product’ section.

Full documentation on Advanced Shipping – Cost per Product.

Setting up a base cost with additional cost per quantity

A common setup is to have a initial base cost when sending a product, and then a smaller additional cost per quantity above that. Using this extension you can easily set this up. Here’s and example where the base cost of a product is $10, and a additional $1 is charged per additional item.

I’ve setup 2 rows, one for the base cost and one for the additional cost per item. Note that the cost per item is also applied for the first product, so you’d want to compensate that in the base cost like I did above by setting that to $9 instead of $10.

This is of course also possible to use with any of the pricing options, such as ‘Cost per weight’ to setup additional cost per kg for example.

New as of version 2.2.0

A new feature in version 2.2.0 introduces a easier way to setup additional cost per product. This method is particularly useful when you have a requirement where the additional cost only occurs after a higher minimum amount:

First 5 items: $10
Each additional item after that: $1

With the new feature you can now use a double asterisk (**) to setup a actual ‘additional cost per quantity’. The ‘Additional’ part is determined by the value entered in the ‘Min’ field. Below a setup for the provided example.

With this setup will charge $10 when there are 5 Pens in the cart, at 6 Pens it charges $11 and 7 Pens $12 etc..
(this feature is experimental and could be subject to change)

Setting up cost per interval

As of version 2.1.0 it is possible to setup a cost per interval. For example, this would allow you to setup a cost of $5 per 2kg, without having to setup the weight ranges manually.

In the ‘Fee amount’ field you can setup the above scenario as ‘5/2’ in the ‘cost per weight’ section. When using this in the other shipping class / category / product sections it is based on the quantity of those products, not the weight.

Forward slash vs. Backslash

With this there are two options to use, either the forward or the backslash, both do the same, but work a bit differently.

Forward slash
The forward slash will round things up. When you setup the ‘5/2’ in the fee amount field it will charge $5 per 2kg. But in the scenario that there’s an amount that doesn’t divide by ‘2’ it will round it up. Some examples:
‘5/2’ with 1kg will be charged $5
‘5/2’ with 2kg will be charged $5
‘5/2’ with 2.1kg will be charged $10

Backward slash
The backslash will round things down. Some examples with this:
‘5\2’ with 1kg will be charged $0
‘5\2’ with 2kg will be charged $5
‘5\2’ with 2.1kg will be charged $5
‘5\2’ with 3.9kg will be charged $5
‘5\2’ with 4kg will be charged $10

Extending WAS Advanced Pricing

The WAS Advanced Pricing plugin is made to be extended. If you didn’t find the feature you’re looking for in here you can create a custom piece of code that will add the required functionality. This way you don’t need to touch the plugin files themselves.
If don’t have the programming skills required, can always hire a (WordPress / WooCommerce/ developer to extend the plugin, or see if I (Jeroen Sormani) am available for the job.

How to get the WAS Advanced Pricing extension

Download the WAS Advanced Pricing extension by filling in the form on this page: https://jeroensormani.com/woocommerce-advanced-shipping/request-advanced-shipping-advanced-pricing-extension/ (download will start automatically)