Making sense of Shipping Zones

If you are running a WordPress website with WooCommerce as your shop system of choice, you will have noticed that as of version 2.6, there has been a major update to the shipping settings. Like me, you may also be scratching your head trying to work out the best way to set this up.

After several days and attempts at getting a system set up that will work for my needs, I would like to give you a quick „how-to“ on how I did it. I will be using the German terminology as my WooCommerce is installed on a German WordPress installation (my Shop mainly is for the German market with some European customers, too).

What I wanted

I mainly sell just a few different products which are packed in boxes of various weight and size. I needed to set up the shipping rates to reflect the cost of shipping each individual box using DHL National and International shipping rates, thus passing on the cost of shipping 1:1 to the customer. Let’s look at the rates for National shipping currently charged by DHL:

Overview of DHL national shipping costs.

As I use this service exclusively for shipping orders from my shop, the easiest thing for me to do was copy the classes per weight into the WooCommerce settings. But first I had to work out how this worked. To make it short and to the point:

  1. Go to WooCommerce -> Einstellungen
  2. Click on the tab -> Versand
  3. Click on -> Versandklassen
  4. Click -> Versandklasse hinzufügen

Now you will see something like this:

Screenshot Versandklasse hinzufügen

There are three boxes to fill out. In the left-hand box, enter the name of the Versandklasse. In my example, I started with the smallest DHL shipping rate = Päckchen bis 1kg. The second box is for the slug. Just leave it blank, WooCommerce will add the slug automatically. The third box if for the description. Put something in here that reminds you later what the maximum dimensions and which price applies to this class.

You can either use the bottom-left button to save the new shipping class immediately or continue adding new classes until you are finished and save everything then.

NOTE: It may not be true for your installation, but when I added single shipping classes and saved them straight away, they didn’t show up in the list right away. If I left the page and returned afterward, they showed up. So don’t be irritated if the classes don’t all show up immediately. Refresh the page and see if they are there.

I continued adding shipping classes until I had an exact copy of the DHL shipping rates.

Defining Shipping Zones

So now we know how much a box will cost to ship via DHL using the weight as the defining classification. So far so good.

We now need to define the region in which these costs are applicable. So now we go:

  1. Click -> Versandzonen

You may see some Zones already defined in the overview. To simplify matters, let’s just ignore these and move on to creating your own zones. I needed to apply all the shipping costs I just entered into the system to anyone from Germany who orders in my shop. By creating a Zone called „National“ (but you can call it anything you want) and then telling the system where this will be applicable, you can link the shipping costs to a defined region.

Übersicht versandzonen

  1. Click -> Versandzone hinzufügen
  2. Enter the name. For example „National
  3. In the second box, click in the empty space.
  4. A drop-down list will appear from which you can choose the region you want to use. In my case, this would be Germany.
  5. Save your zone.

Screenshot auswahlbox

Now we have created the zone called „National“ but we still haven’t let the system know what shipping costs are related to it. To do that

  1. Click on „Versandkostenpauschale“ in the third column on the right-hand side – this opens a new dialogue box.

This is the most important step! I tried over and over again to find the right way to configure this page. I found most examples or tutorials out there very difficult to follow and it was only through trial and error that I eventually got it set up correctly. Have a look at how I set this up:

Versand Einstellungen

Bezeichnung“ is where you rename your shipping costs. I found the general settings of WooCommerce very confusing, as it names every new type of shipping method „Pauschale„. To me, this means you only charge is single shipping rate, no matter how many items are in the shopping basket and regardless of the weight of the order. Definitely not what I wanted. I wanted each box to be charged individually per weight. For example:

The order consists of 2 x boxes at 8 kg and 1 small box a just under 1 kg.

The customer should pay 2 x € 7,99 (DHL Paket bis 10kg) and € 4,- for the smaller box. It took me ages to work out how to do this.

If you look at the left-hand side of the dialogue, you will notice the „Versandklassen“ that we defined earlier are now visible! Cool! But when opening the dialogue for the first time, there are no costs assigned to them. You have to do this manually.

NOTE: do NOT fill out the third box from the top where „Price“ is marked! This will mess up your calculations if you are trying to set up your shipping costs the way I wanted them!

Simply enter the price of the shipping method described on the left (as we copied from the DHL price list earlier) as you can see in my example above. BUT: if you enter only the price, the system will add this shipping price only once to any order. For example, if a customer orders two boxes weighing 10kg and one box weighing 2kg, the system only charges 1x 10kg and 1x 2kg! That’s fine if you want it that way. But I wanted shipping charged for each and every box in the shopping basket. Note the formula on the right of the price:

* [qty]

Which means „Charge this price for each item in the basket“ or Price multiplied by quantity. Do this if you want shipping charged for each item in the order!

Once you have filled out all the shipping costs, save this page.

Applying the correct shipping cost to your products.

Now you must move to the setting for each product. To quickly perform the editing here

  1. Click on Produkte -> Produkte to bring up the product overview
  2. Chose the product you want shipping costs applied to. Hover over the product name and below will appear a few subheadings. Click -> Quick Edit
  3. Scroll down until you see the drop-down box for your shipping costs.
  4. Select the right shipping class (the ones we defined in the first step) for your product
  5. Save the product.

You need to do this for every product in your shop.  Don’t forget to do a test purchase yourself or by a friend just to test the settings. For me, this works fine. But I found the set-up of WooCommerce very frustrating and at time misleading.

I hope this helps you out in some way. Leave a comment if you have a better method or if you see a mistake in my thinking!

Thanks for reading…