UK shipping zones configuration in WooCommerce

UK Shipping zones configuration
Author Łukasz Spryszak
Updated:
2020-10-30
Reading time:
5 minutes read

Running a store based in UK, selling there and having some difficulties with setting up the shipping? Wondering how to configure UK shipping zones in your WooCommerce shop the right way? Just keep on reading and learn how to do that step by step!

Since United Kingdom’s administrative geography is complex and multi-layered, the proper UK shipping zones configuration might turn out to be quite challenging. Shipping the products to Highlands or the Channel Islands is most often much more expensive than to UK mainland. To make it even more tangled the availability of the UK carriers’ services usually varies depending on the delivery’s destination. So, the tricky part here is how find a way to combine these two. The answer you might be looking for is…

UK shipping zones configuration based on postcodes

Limiting the shipping zones to specific postcodes, which has been a default WooCommerce feature since 2.6.1 release, is still a little bit underestimated and overlooked. However, if used properly it might become a real game changer. Setting up the shipping zones using the area-specific postcodes will allow you not only to target the shipping destination precisely, but also to manage them exactly the way you need. This is why furthermore I will show you how to put this feature into practice. By following these instructions you will learn how to configure the most common UK shipping zones’ setup compatible with various shipping plugins, including our…

DPD UK & DPD Local WooCommerce plugin

Send your shipments via DPD UK domestically and abroad. Collect shipping details, download printable labels and track parcels - get it all done automatically with one plugin.

Add to cart or View Details
Plugins used by 241,789+ shops
Last Updated: 2024-03-25
Works with WooCommerce 8.4 - 8.7.x

Setting up UK shipping zones

Let’s begin from the scratch and assume you haven’t started the UK shipping zones configuration yet.

If you have and just want to verify if it was done properly you can skip this part and go straight to the Zone 3 setup →

This most popular UK shipping zones setup I’m about to introduce you to, divides the whole UK teritory into 4 separate areas :

  1. Northern Ireland, Isle of Man, Isles of Scilly
  1. Scottish Highlands and Islands
  1. Channel Islands
  1. UK Mainland

We will move on to creating them in a minute, however, let’s stop here for a second. As you probably noticed the list above is not ordered sequentially. Zone 3 is on the first place, Zone 1 is the last one, etc. On the first glimpse it may seem like some sort of a random order, however, it’s not. It is intended and the zones were arranged this way for purpose. It is related to the WooCommerce zone matching mechanism and the fact that it checks the shipping zones starting from top to the bottom. So, the proper order does matter in this case to make sure the shipping zones using the narrower postcodes are considered first.

The second thing worth mentioning at this point is that we are going to use the wildcards while listing the postcodes for specific shipping zones. You can recognize them by an asterisk sign (*) at the end of the postcode, e.g. BT15*. If used in this case, it will cover all the postcodes starting with ‘BT15’ phrase, e.g. BT15 1AA, BT15 1AB, BT15 1AE, etc.

Knowing the basics let’s move on to WooCommerce → Settings → Shipping → Shipping Zones:

UK Shipping zones configuration - Add shipping zone

Hit the Add shipping zone button here and create a new shipping zone called…

Zone 3 – Northern Ireland, Isle of Man, Isles of Scilly

Fill in the Zone name, pick the United Kingdom as the Zone region and click the Limit to specific ZIP/postcodes link below:

UK Shipping zones configuration - Limit to specific ZIP/postcodes

A new text-area field should appear. Copy the postcodes below:

BT1*
BT2*
BT3*
BT4*
BT5*
BT6*
BT7*
BT8*
BT9*
BT10*
BT11*
BT12*
BT13*
BT14*
BT15*
BT17*
BT18*
BT19*
BT20*
BT21*
BT22*
BT23*
BT24*
BT25*
BT26*
BT27*
BT28*
BT29*
BT30*
BT31*
BT32*
BT33*
BT34*
BT35*
BT36*
BT37*
BT38*
BT39*
BT40*
BT41*
BT42*
BT43*
BT44*
BT45*
BT46*
BT47*
BT48*
BT49*
BT50*
BT51*
BT52*
BT53*
BT54*
BT55*
BT56*
BT57*
BT59*
BT60*
BT61*
BT62*
BT63*
BT64*
BT65*
BT66*
BT67*
BT68*
BT69*
BT70*
BT71*
BT72*
BT73*
BT74*
BT75*
BT76*
BT77*
BT78*
BT79*
BT80*
BT81*
BT82*
BT83*
BT92*
BT93*
BT94*
IM1*
IM2*
IM3*
IM4*
IM5*
IM6*
IM7*
IM8*
IM9*
TR21*
TR22*
TR23*
TR24*
TR25*

and paste them there:

UK Shipping zones configuration - Postcodes pasting

Confirm the whole adding the shipping zone process with Save changes button.

Follow the same steps for…

Zone 2 – Scottish Highlands and Islands

using the postcodes:

AB31*
AB32*
AB33*
AB34*
AB35*
AB36*
AB37*
AB38*
AB40*
AB41*
AB42*
AB43*
AB44*
AB45*
AB46*
AB47*
AB48*
AB49*
AB50*
AB51*
AB52*
AB53*
AB54*
AB55*
AB56*
KW1*
KW2*
KW3*
KW4*
KW5*
KW6*
KW7*
KW8*
KW9*
KW10*
KW11*
KW12*
KW13*
KW14*
KW15*
KW16*
KW17*
KW18*
PA20*
PA21*
PA22*
PA23*
PA24*
PA25*
PA26*
PA27*
PA28*
PA29*
PA30*
PA31*
PA32*
PA33*
PA34*
PA35*
PA36*
PA37*
PA38*
PA39*
PA40*
PA41*
PA45*
PA46*
PA47*
PA48*
PA49*
PA20*
PA42*
PA43*
PA44*
PA60*
PA61*
PA62*
PA63*
PA64*
PA65*
PA66*
PA67*
PA68*
PA69*
PA70*
PA71*
PA72*
PA73*
PA74*
PA75*
PA76*
PA77*
PA78*
PH17*
PH18*
PH19*
PH20*
PH21*
PH22*
PH23*
PH24*
PH25*
PH26*
PH30*
PH31*
PH32*
PH33*
PH34*
PH35*
PH36*
PH37*
PH38*
PH39*
PH40*
PH41*
PH42*
PH43*
PH44*
PH49*
PH50*
KA27*
KA28*
HS1*
HS2*
HS3*
HS4*
HS5*
HS6*
HS7*
HS8*
HS9*
ZE1*
ZE2*
ZE3*
ZE4*
IV1*
IV2*
IV3*
IV4*
IV5*
IV6*
IV7*
IV8*
IV9*
IV10*
IV11*
IV12*
IV13*
IV14*
IV15*
IV16*
IV17*
IV18*
IV19*
IV20*
IV21*
IV22*
IV23*
IV24*
IV25*
IV26*
IV27*
IV28*
IV29*
IV33*
IV34*
IV35*
IV36*
IV37*
IV38*
IV39*
IV40*
IV41*
IV42*
IV43*
IV44*
IV45*
IV46*
IV47*
IV48*
IV49*
IV50*
IV51*
IV52*
IV53*
IV54*
IV55*
IV56*
IV57*
IV58*
IV59*
IV60*
IV61*
IV62*
IV63*
FK17*
FK18*
FK19*
FK20*
FK21*
FK22*
FK23*
FK24*
FK25*
FK26*
FK27*
FK28*
FK29*
FK30*
FK31*
FK32*
FK33*
FK34*
FK35*
FK36*
FK37*
FK38*
FK39*
FK40*
FK41*
FK42*
FK43*
FK44*
FK45*
FK46*
FK47*
FK48*
FK49*
FK50*
FK51*
FK52*
FK53*
FK54*
FK55*
FK56*
FK57*
FK58*
FK59*
FK60*
FK61*
FK62*
FK63*
FK64*
FK65*
FK66*
FK67*
FK68*
FK69*
FK70*
FK71*
FK72*
FK73*
FK74*
FK75*
FK76*
FK77*
FK78*
FK79*
FK80*
FK81*
FK82*
FK83*
FK84*
FK85*
FK86*
FK87*
FK88*
FK89*
FK90*
FK91*
FK92*
FK93*
FK94*
FK95*
FK96*
FK97*
FK98*
FK99*
G83*
KA27*
KA28*
PH42*
PH43*
PH44*

as well as for…

Zone 4 – Channel Islands

JE1*
JE2*
JE3*
JE4*
GY1*
GY2*
GY3*
GY4*
GY5*
GY6*
GY7*
GY8*
GY9*
GY10*

and finally the…

Zone 1 – UK Mainland

AB*
AL*
B*
BA*
BB*
BD*
BH*
BL*
BN*
BR*
BS*
BT*
CA*
CB*
CF*
CH*
CM*
CO*
CR*
CT*
CV*
CW*
DA*
DD*
DE*
DG*
DH*
DL*
DN*
DT*
DY*
E*
EC*
EH*
EN*
EX*
FK*
FY*
G*
GL*
GU*
HA*
HD*
HG*
HP*
HR*
HS*
HU*
HX*
IG*
IP*
IV*
KA*
KT*
KW*
KY*
L*
LA*
LD*
LE*
LL*
LN*
LS*
LU*
M*
ME*
MK*
ML*
N*
NE*
NG*
NN*
NP*
NR*
NW*
OL*
OX*
PA*
PE*
PH*
PL*
PO*
PR*
RG*
RH*
RM*
S*
SA*
SE*
SG*
SK*
SL*
SM*
SN*
SO*
SP*
SR*
SS*
ST*
SW*
SY*
TA*
TD*
TF*
TN*
TQ*
TR*
TS*
TW*
UB*
W*
WA*
WC*
WD*
WF*
WN*
WR*
WS*
WV*
YO*
ZE*

You should end up with 4 separate shipping zones configured this way:

The only thing left here is to add and configure the shipping methods within these shipping zones the way which fits your needs best. You can either use the WooCommerce defaults or give a try to our Flexible Shipping plugin with DPD UK integration mentioned at the beginning. The setup described here should be fully compatible and go on well with the availability of particular DPD UK services in the entire United Kingdom.

If you want to learn more about the shipping zones you can also check our guide – WooCommerce shipping zones explained or simply leave your question in the comments section below. We’ll reply to all of them as usual!

Comments
Subscribe
Notify of
guest
26 Comments
Inline Feedbacks
View all comments
Adam Harris
Adam Harris
3 years ago

This has been so helpful! Thank you so much!

Łukasz Spryszak
Łukasz Spryszak
Reply to  Adam Harris
3 years ago

Thank you very much Adam for the kind words. It’s great to hear you find my article helpful 🙂

Danny Portus
Danny Portus
2 years ago

Id encourage nobody to use this list as it is grossly incorrect. ZE is Shetland isles and definitely not considered UK Mainland. TR is on the Mainland and nowhere near Northern Ireland or Isles…

If you type B* into the Mainland Zone it will clash with the BT* in the Northern Island Zone, you must use B1*,B10*,B11* etc in the Mainland Zone.

Copying and pasting this list is a quick way to getting stung with expensive shipping rates.

Łukasz Spryszak
Łukasz Spryszak
Reply to  Danny Portus
2 years ago

Hi Danny, to be honest I’m not 100% sure what kind of shipping cost calculation solution you are currently using which results in getting stung with high shipping fees, however, as you probably noticed the setup described in the article above was optimized for Flexible Shipping table rate and DPD UK plugins combination, where you define the exact shipping cost on your own. The key this shipping zones configuration is based on is the DPD UK services availability, especially the popular “Next Day” ones, which in fact might simply not be suitable in your particular case. However, I deeply believe it still might be a good starting point to customize the whole setup to fit your needs.

When it comes to the B* wildcard in the Mainland Zone and the potential problems with BT* in the Zone 3 I’m afraid that you’re wrong – it won’t be clashing due to the way how the WooCommerce shipping zones matching mechanism works. It takes the shipping address entered in the cart and checks if it matches the configured shipping zones starting from the top to the bottom of the list. If the shipping address matches the certain shipping zone e.g. the Zone 3 with BT* wildcard, the further ones are not even being considered. That’s why the B* wildcard works here as a kind of filler to get the rest of the not listed and more precise wildcards covered.

RobSO
RobSO
2 years ago

Hi, I am using these lists but we’re having issues with AB wildcard – AB42 is not being picked up?

Joe Mills
Joe Mills
2 years ago

Hi Lukasz
Really helpful list so thanks for that.
However, I would like to exclude all bar the UK mainland from having any shipping options at all. Is there a way of doing this?

Emma
Emma
Reply to  Łukasz Spryszak
1 year ago

how do i exclude certain postcode so to prevent orders being placed in these postcodes:
PO30, PO31, PO32, PO33, PO34, PO35, PO36, PO37, PO38, PO39, PO40, PO41
IM
JE
GY
HS
KW
IV21, IV22, IV23,
IV26, IV27, IV40, IV41, IV42, IV43, IV44, IV45, IV46, IV47, IV48, IV49, IV51, IV52, IV53, IV54
PH32, PH33, PH34, PH35, PH36, PH37, PH38, PH39, PH40, PH41, PH42, PH43, PH44
PA20, PA21, PA22, PA23, PA24, PA25, PA26, PA27, PA28, PA29, PA29, PA30, PA31.PA32, PA33, PA34, PA35,
PA36, PA37, PA38, PA41, PA42, PA43, PA44, PA45, PA46, PA47, PA48, PA49, PA60, PA61, PA62, PA63, PA64, PA65, PA66, PA67, PA68, PA69, PA70, PA71, PA72, PA73, PA, 74, PA75, PA76, PA77, PA78, PA80

Steve Turner
Steve Turner
1 year ago

Really helpful, thank you.

Piotrek Bodera
Piotrek Bodera
Reply to  Steve Turner
1 year ago

We’re glad that our article was useful to you, Steve. If you have any additional questions – you can post them in another comment or reach us out directly.

Emily
Emily
1 year ago

Great article! If I only need to set prices up for mainland or non-mainland UK, can I just have two zones (e.g. all the postcodes you’ve written in zones 3,2,4 and then another zone for 1.mainland UK)?
Also, I need to add in Isle of Wight postcodes such as PO30* do I just add that into a zone that goes before 1.mainland UK?

Tim Browning
Tim Browning
1 year ago

Important find … If you want postcodes with similar starting letters but different endings to be in different shipping zones, you need to use a space for areas with single starting digits – eg LS2* will also cover LS29 postcodes, If you want LS29 in a different zone, you’ll need to change the LS2* to LS2 * – note the space between the 2 and the *.

Last edited 1 year ago by Tim Browning
Dom
Dom
Reply to  Łukasz Spryszak
6 months ago

So I want PO3 1XX be treated differently than PO31 XXX, so I have on the top of the stack PO31 *…PO50 * (with the space) and lower in the stack PO1 *…PO30 * (again with the spaces) but it will still treat PO3 1XX same as PO31 XXX – any idea why?

I have bracket to treat differently – see my drop shipping company postage site

Last edited 6 months ago by Dom
Pablo
Pablo
11 months ago

Excellent post, many thanks! Could the last option be simply uk, while respecting the order?

Faye
Faye
11 months ago

Hi there, I am trying to add local zones which qualify for free delivery but I am having trouble getting my shipping zones to work. It doesn’t seem to pop up as an option when selecting delivery option upon checkout?? Could someone help point me in the direction please? TIA

Richard
Richard
4 months ago

If KW* is in the UK mainland and also KW1* – KW10* is in highlands, which one will be used when using a KW post code?

Chris
Chris
2 months ago

Just wanted to thank you SO much for this. Really helped me avoid spending money on an annual plugin where all I needed was this zone seperation. THANK YOU!

Check out our case studies

Dream Home Story
Furniture shipping via WooCommerce – Dream Home’s Case Study

Learn how to configure custom shipping rules for furniture orders – from heavy and bulky to small and light.

4 minutes read
Vitrek’s Story

Read Octolize Case Study about Vitrek – a provider of innovative global solutions for High Voltage Test and Measurement.

2 minutes read
EnglishSpeakingMum’s Story

Read Octolize Case Study about EnglishSpeakingMum – Polish dedicated and involved parenting blogger.

2 minutes read