WooCommerce Advanced Shipping has been released some weeks ago, but never got introduced on here. Anyone who is looking for a nice allround shipping plugin for WooCommerce, I would recommend reading further in this article as it will explain what to expect from the plugin.

WooCommerce Advanced Shipping

Lets start with a small explanation what the plugin is and does. WooCommerce Advanced Shipping allows you to create (multiple) shipping methods. Of course no-one wants all shipping methods available for every person, state, country, weight, quantity, etcetera. This is where the Conditional Logic of the plugin comes in.

Conditional Logic

That might sound difficult and hard to some people, but I’ve made it as easy as possible in the plugin. All you need to do to create a condition rule is:

1. Select an condition
2. Select an ‘Operator’
3. Select/fill in a value

Selecting a condition

woocommerce_advanced_shipping_conditionsWhen clicking the ‘condition’ drop down you will see a list of conditions to choose from. Take a look at the screenshot on the right to see the conditions that are available when you install the plugin. Any of these conditions can be used to restrict the created shipping method.

Lets use Country for example in this post.

Selecting a Operator

In the operator you will find 4 options you can select from:

  1. Equal to
  2. Not Equal to
  3. Greater or Equal to
  4. Less or Equal to

I think #1 and #2 speak for themselves, when using the ‘Equal to’ operator, the (going to select) value should equal to the customers (shipping) Country.

When choosing the ‘Not Equal to’ operator,  it will exclude the shipping method from any customer that will have set his shipping Country to the selected value.

Selecting a Value

woocommerce-advanced-shipping-valueWhen you change the ‘Condition’ drop down, you will notice that the value field will display a loading icon and soon after will display a field. This is because not every condition has the same field type and possible drop down options.

When done loading (should take less than a second on most conditions), it can display a text field or a drop down. When there’s a drop down it will contain all the possible values you can choose from. In a text field you can set your own input value.

For this example, all countries will be in the drop down if you’ve set-up your shop to sell to specific countries.

End result for this simple example; Shipping method to the Netherlands is $10,-
woocommerce-advanced-shipping-netherlands

Combining conditions

woocommerce-advanced-shipping-combiningYou probably already noticed the ‘+’ button after a (each) condition. When clicking this button, it will automatically add a new condition row where you can set extra condition that needs to be met to allow the shipping method. This way you can combine it to set different shipping rates for e.g. weight, subtotal, quantity etcetera.

In the screenshot on the right you see thee browser screens, each with one shipping method created for shipping to the Netherlands. In the example the shipping costs are divided by the subtotal of the cart. If your order is more expensive, you will pay more shipping costs. Although there are three shipping methods, the user will only see one shipping methods with how the subtotal conditions are set-up.

Condition groups

woocommerce-advanced-shipping-condition-groupsFor those who’ve paid good attention to the screenshots might have seen the ‘Add Or group’ button below the condition. This button adds en entirely different condition group to your conditions. When working with conditions groups, all conditions in just one of the condition groups need to be met when the shipping method will be displayed. This way it will be easier to group shipping rates with the same name/costs without having to create new of shipping methods.

In the example in the right, this shipping method will display if a user has the shipping country set to; Netherlands OR France OR Germany.

Shipping method settings

Below all the conditions you’ve got a second box with some settings. In this settings area you can set the shipping title and some different shipping price options.

Shipping costs: Fill in the shipping costs you want to charge to the customer, empty or 0 is free. Only numbers are possible.
Handling fee: Extra handling fee, this is a one-time costs like shipping costs, this can be a number or a percentage (use percentage sign to set percentages. E.g. 5%).
Cost per item: Set the price that will be calculated per item, this includes quantity. This field can be a number or percentage.
Cost per weight: This fee will be multiplied by the amount of weight the customer has in his cart.
Tax status: Applies taxes if its setup in WC -> Settings -> Tax

Setting up cost per product / shipping class / category

If you have the need to setup some more advanced shipping cost, using the extra WAS Advanced Pricing extension would be a great addition. This extension allows you to add cost on a per product, shipping class and category basis. In addition to that, it also allows you to setup weight based shipping more easily and quickly from within one shipping rate.

With the WAS Advanced Pricing extension you can setup the advanced cost based on minimum and maximum quantities added to the cart, subtotal of the selected category / shipping class, or the weight of the selected category / shipping class products in the cart.

Within this extension it is also possible setup:

  • Cart and/or group subtotal percentage cost (e.g. add 10% of shipping class ‘A’ subtotal to shipping cost)
  • Setup cost per interval (e.g. add $2 shipping cost per each 10 quantity of shipping class ‘A’)
  • Easier then ever add cost per additional item in the cart

Examples

Pictures say more than a thousand words, so there are some screenshots on how you could use the plugin:

Test it yourself

You can always test the plugin out yourself via de demo website: http://was-demo.jeroensormani.com/

Hope you liked this introduction of WooCommerce Advanced Shipping. Feel free to post any questions or remarks about the plugin.

Oh, can’t forget to post where you can get this: Its available on CodeCanyon for a ridiculous low price of $17,-

Got a pre-sale or support question? Feel free to reach out to me!

Jeroen Sormani

I'm a professional WordPress plugin developer on a mission to create the best plugins for my clients. I'm specialised in developing general WordPress, WooCommerce and Easy Digital Downloads plugins.

Interested in talking about a WordPress project? Get in touch!

Follow me on Twitter

214 thoughts on “Introducing WooCommerce Advanced Shipping

Annie November 9, 2014 at 1:26 pm

Thanks for this tutorial Jeroen!

George January 26, 2015 at 7:47 am

Hi Jeroen. I see that there is an update available but I am not sure how to do it. I would like to keeo my current shipping settings so please help.

Thx
George

Jeroen Sormani February 14, 2015 at 1:12 pm

Hey George,

Sorry for the late response!

The shipping settings are saved in the database, so these won’t get lost when updating.
You can download the latest version from CodeCanyon, and replace the current WAS plugin folder via FTP, or update via the plugins page in your WordPress dashboard.

Hope that helps!

Jeroen Sormani

Jenn January 26, 2015 at 11:39 pm

Hi – does this plugin pull in pricing from specific shipping carriers? Or do we still need another plugin for that?

Jeroen Sormani February 14, 2015 at 1:14 pm

Hi Jenn,

I missed both your and Geoge’s comment, so also for you sorry for my late reply.

WooCommerce Advanced Shipping allows you to create new shipping rates, it is not possible to pull prices from other shipping plugins.

Hope that answers your question.

Cheers,
Jeroen Sormani

Colleen March 24, 2015 at 8:07 am

Hi there – I have been searching and reading and wanted to find out if this was the right product for our needs. We want free shipping over $75 in the cart – and hide the other options what ever they end being. Can this do that?

Jeroen Sormani March 24, 2015 at 10:22 am

Hi Colleen,

Yes, there is a option to ‘Hide other shipping when free is available’, which does hide all but the free one(s).

Besides WooCommerce Advanced Shipping that will do the job, you might find WooCommerce Advanced Free Shipping to also fill your needs. https://wordpress.org/plugins/woocommerce-advanced-free-shipping/

Hope that helps 🙂

Cheers,
Jeroen

Felipe April 17, 2015 at 9:50 pm

Greetings

I’m interested on buying the WooCommerce Advanced Shipping plugin, but I need to know first if I can make a list of about 700 cities (with 4 different shipping rates) to make it availible on the shipping calculator?

Jeroen Sormani April 18, 2015 at 4:32 pm

Hi Felipe,

This should be possible, but I haven’t tried that many cities before.
A good idea would be to use the Shipping zones extension; (read more here https://aceplugins.com/doc/advanced-shipping-for-woocommerce/extension-woocommerce-advanced-shipping-shipping-zones/)

Cheers,
Jeroen

Felipe April 21, 2015 at 3:26 am

Thanks for your reply, Jeroen

I already have an extension that works with zip codes, but because of my target audience I need too make it availible to calculate their shipping rates by just searching for their city in a list in my shop.

Jeroen Sormani April 21, 2015 at 7:52 am

I see.

Best thing I can recommend here than is to try out the demo site; http://was-demo.jeroensormani.com/wp-admin
You can add the cities there and see if it works for your needs.

(Do note that the demo site is reset around midnight GMT)

Cheers

francesco April 24, 2015 at 4:14 pm

hi, how can i exclude the cheaper shipping class cost?
If you buy 2 product with 2 different shipping class in the cart the buyer can choice the shipping method with the related shipping cost.

thank you

Jeroen Sormani April 24, 2015 at 6:26 pm

Hi Francesco,

I answered your email earlier, hope that answered your question. Please reply to that if you still have any 🙂

Cheers,
Jeroen

Carlos May 3, 2016 at 2:58 pm

Hi,
I have a customer that wants also this option. To have only the biggest shipment when several products are on cart.
How can I do it, please! Is quite urgent.
Thanks

jeroen May 3, 2016 at 8:13 pm

Hi Carlos,

Please reach out to me via the support form: https://jeroensormani.com/woocommerce-advanced-shipping/support/

Thanks,
Jeroen

Sergej May 7, 2015 at 9:56 am

Hey there,

quite a nice thing. How do I combine Categories in the rules? It says that “all products in cart must match category” and I want it to make it either or.

Thanks alot,

Sergej

Jeroen Sormani May 7, 2015 at 7:36 pm

Hi Sergej,

You can add a ‘or’ condition group, do note that it requires to set all the other conditions.

Unfortunately it is not possible at this point to add it within the same condition group.

If you have any further questions, please contact me via mail 🙂

Cheers,
Jeroen

Sadrah May 12, 2015 at 2:02 am

I have a large condition group (28) that each include one additional condition. For example, one group is: State equal to North Carolina, Contains Shipping Class 6 Pack.
Another in the groups is: State equal to Tennessee, Contains shipping Class 6 Pack.

Is there a way to duplicate this list of 28 states in order to change a single condition? In this case it would look like this: State equal to North Carolina, Contains Shipping Class Case
State equal to Tennessee, Contains Shipping Class Case.

It would be a huge time saver if the entire group could be duplicated.

Thanks!

Jeroen Sormani May 12, 2015 at 5:29 pm

Hi Sadrah,

I think the WAS Shipping Zones Extension would come in handy for you. You can read more about it here; https://aceplugins.com/doc/advanced-shipping-for-woocommerce/extension-woocommerce-advanced-shipping-shipping-zones/

If you’d like to duplicate a shipping method, with each of its conditions you can use the following plugin; https://wordpress.org/plugins/duplicate-post/

Cheers,
Jeroen

johannies May 15, 2015 at 6:31 pm

I want to know if after the plugin has made the calculation will forward the information to the paypal for the payment to be done? Thanks

Jeroen Sormani May 15, 2015 at 7:42 pm

Hi,

This is all done by WooCommerce itself, WooCommerce Advanced Shipping allows you to add shipping rates, and the calculations of totals, the checkout and stuff are regulated by WC itself 😉

Cheers,
Jeroen

Robert May 23, 2015 at 7:20 am

Hi Jeroen,

Interesting plugin this is something I am looking for but I am not sure if it it does what I really need, can you please advise?

What I am trying to achieve is the following: to restrict the shipping if a product of a certain category is not in the cart and the cart total value doesn’t reach a certain amount.

For example in a pizza delivery shop the customer cannot chose delivery only with drinks in the cart, it is mandatory to buy a pizza or pasta in order to be able to deliver the beverages.

Can you please tell me if I can achieve the above situation with your plugin?

Thanks in advance,
Robert

Jeroen Sormani May 23, 2015 at 7:59 am

Hi Robert,

Yes this would be possible.

Though you would need a extension script that I’ve got ready to set a ‘contains category’ condition (there is a ‘category’ condition, but this requires ALL products in the cart to have the given category, while ‘contains category’ requires at least one).

Get in touch via the contact form if you end up buying WooCommerce Advanced Shipping and want that script 😉

Cheers,
Jeroen

Leah June 16, 2015 at 9:43 am

Hi – looks like this could be just what I am after.
Could you please confirm a couple of points?
– can I set rates by shipping class by State?
– can rates for different shipping classes as above be combined for a total shipping fee?

e.g. I sell flowers and gift baskets on my site. They are shipped from seperate locations, so if both are purchased together, I need to charge shipping for both. I also have different rates for each shipping class per state.

Thanks!

jeroen June 16, 2015 at 4:30 pm

Hi Leah,

– Yes you can set different rates per shipping class (with the WAS Advanced Pricing extension)
You can then create a rate for each state.

– When setting cost with the WAS Advanced Pricing extension, those will combine. Not sure how you manage your different locations, but if you require to set cost per shipping class you’re set 🙂

Let me know if you’ve got any further questions.

Jeroen

Anabelle June 22, 2015 at 7:23 pm

Hello,

Is it possible to set prices by total cart volume?

Adding the volume of each product, and having different ranges for different total volumes in cubic meters?

We are doing shippings for big products, and we need to charge different for a small truck, a medium truck, or a large truck.

Thanks.

jeroen June 22, 2015 at 7:32 pm

Hi Anabelle,

It is possible to set a ‘Volume’ condition if you add that with a extension script that I’ve got available.

That way you can set a – greater – and – less – condition for the volume, and set your pricing according that.

Please get in touch via https://jeroensormani.com/woocommerce-advanced-shipping/support/ if you end up buying and want that extension script 😉

Jeroen

Eduardo Cardillo June 23, 2015 at 6:43 pm

Hey Jeroen,
I was just now testing this plugin on your demo and i can’t get percentages to work properly on the field Cost per Item. I’m trying to set up 8% on this field, and in a total value of $12, instead of adding $0,96 (8% of 12) to the shipping value it adds $8.. Am i doing something wrong? How does it work? (I am including the % on the field.)

jeroen June 23, 2015 at 8:33 pm

Hi Eduardo,

It is adding the right amount now, maybe you changed it in the meanwhile. I got two times the Happy ninja, for $24, and being charged $1.92.

Could be you’re viewing a cached version of the shipping cost, those can be quite deceiving 😉

Let me know!

Jeroen

Eduardo Cardillo June 25, 2015 at 7:57 pm

I don’t think it’s related to cache… tried again in other computers and cleaning cache, and still doesn’t work.

I’m trying to emulate this situation: if the user lives in Brazil, state of São Paulo, and he chooses this one specific product, the cost per item needs to be a percentage over the price this product costs.

I’m developing a store for a client that has this specific situations – shipping taxes apply (or not) according to where the user lives and which product or category of products he is trying to buy. I am reeeally needing a solution for this, so your plugin seems perfect for that, but when i try to, for example, add 8% over a specific product if the client chooses São Paulo, it is adding $8 instead of the percentage total value…

Could you help me on that? I’m willing to buy the plugin but I need to be sure i can make it work.

Thanks!

jeroen June 26, 2015 at 4:36 pm

Hi Eduardo,

Just tested it again, and it seems to be working for me. (added handling fee -> 8%, one product of $20 in the cart, charged me $1.60 in shipping)

Can you take a look at the demo site and see if the current setup shipping method works for you? (demo site resets itself every 24h so hopefully you’ll be able to view it).

Otherwise, could you create a method and notify me?

On other thoughts, if this is only for taxes, it might make more sense to actually set the shop taxes for specific location..?

Also, feel free to get in touch via mail if you’d want some further assistance 🙂

Cheers,
Jeroen

Eduardo Cardillo June 30, 2015 at 3:47 pm

My problem happens specifically at the “COST PER ITEM” field.

If you could send me an e-mail, i cannot seem to find yours at the website.

Thanks!

jeroen July 1, 2015 at 6:01 am

Hi Eduardo,

You can send me a support request via this form; https://jeroensormani.com/woocommerce-advanced-shipping/support/

Thanks,
Jeroen

Chris June 24, 2015 at 2:31 pm

Hi Jeroen,

Thanks for the fantastic plugin! Just like to check on this condition:

We are trying to disable one of the free shipping promo if coupons are applied. My problem is that coupons do not only consist of numbers so greater/less/equal to is not really valid in this example.

Is there any way we can work this out with the plugin?

Thanks!

jeroen June 24, 2015 at 4:50 pm

Hi Chris,

There is no easy way to exclude all coupons (it is possible by adding all ‘coupon’ => ‘not equal to’ => ‘Coupon_1’ conditions). The ‘Coupon’ condition is only valid with the ‘Equal’ and ‘Not equal’ operators (even if all are numbers), its setup to match the exact coupon code.

The plugin is made to be easily extendable, so you could custom code an extra condition ‘Has coupon’ => “yes/no”.

You can also mail me if you have any other questions 😉

Cheers,
Jeroen

Daan Verberne June 25, 2015 at 1:26 pm

Hi Jeroen,

Is it possible with this plugin to do the following:

– Consumer always € 4,95
– User role “dealer 1” € 2,50 (excl) of free at >= 120 (excl)
– User role “dealer 2” € 5 (excl) of free at >= 120 (excl)
– User role “dealer 3”:
– 0-20 pieces € 5,25
– 21-40 pieces € 10,50
– 41-60 pieces € 15,75
– etc…
– OR >= € 800 (excl): free

Thanks.

Daan Verberne
Buro 3

jeroen June 25, 2015 at 4:55 pm

Hi Daan,

From current point of view I’d say thats possible. A couple notes/questions/thoughts;
– I’m not 100% sure about displaying incl/excl tax for different user roles and if this can be accomplished (by default) within WC
– The Quantity based pricing on dealer 3, that is possible if its based on the cart quantity, if its product specific quantity that might be a bit more difficult.

Feel free to contact me via mail if you’d want to get in touch and discuss this more 🙂

Cheers,
Jeroen

jasvir June 30, 2015 at 4:37 am

Hi,

i want to create countries group for advance shipping method. or i can say one method is for more than one country??
how can i do it in woocomerece??

jeroen July 1, 2015 at 5:57 am

Hi Jasvir,

You can create country groups with the Shipping Zone extension; https://aceplugins.com/doc/advanced-shipping-for-woocommerce/extension-woocommerce-advanced-shipping-shipping-zones/

Cheers,
Jeroen Sormani

Tim June 30, 2015 at 12:50 pm

Hi Jeroen,

I’m looking to prevent shipping to certain countries if a cart has too many of one shipping class in it (import restrictions). Would this be possible using WAS?

Kind Regards
Tim

jeroen July 1, 2015 at 6:00 am

Hi Tim,

Although it is possible to recognise a certain shipping class and quantity in the cart, it isn’t possible to say X amount of shipping class Y (the quantity condition is based on the cart total quantity).

With a small amount of custom code you will be able to create a custom condition with something like ‘5 or more quantity or class’ – equal to – Y.

If you’re able to do such thing, I can send you an example script on how to create a custom condition.

Hope that helps!

Cheers,
Jeroen

Jan July 1, 2015 at 12:07 pm

Hi,
this plugin is the best, but I found one problem. I have a lot of methods in Advanced Shipping but I want some method only for some payment method, but I can only choose this plugin with all methods.

Has some solution?

Thanks,
Jan

jeroen July 1, 2015 at 3:50 pm

Hi Jan,

Unfortunately there is no easy way of selecting the created shippings in a drop down like that, that is due to the way the shipping rates are added to WooCommerce (WC only lists the shipping methods as you see at the top under the ‘Shipping’ tab).

Currently there is a (bit techy) workaround which requires a manual change in the database.
I have it on my list to see if there is a way to submit a patch to the WooCommerce core that works for everyone.

I’d be happy to provide some more information about the manual change in the database if you’d like. Please contact me via jeroensormani.com/woocommerce-advanced-shipping/support/ if you want 🙂

Can’t say if/when the other solution will be possible.

Cheers,
Jeroen Sormani

Leave a Reply