Magento: Australia – setting shipping rates for metro and regional delivery

How to set metro and regional shipping rates for Australia in Magento eCommerce – tutorial with free template to download

Business case: “We’ve boundless plains to share”….  and deliver

“We’ve boundless plains to share” we sing in Australian national anthem: Australia is a big country, actually the only country that occupies the whole continent. Australian population is concentrated in several metro areas with millions of residents based in rather small limits. On the other hand in rural Australia population density is very low: there may be hundreds of kilometres between small villages.

The implication of this specific for eCommerce business is that delivery cost is very different between metro and regional areas, especially if you ship items over 20 kg that are too big for Australian Post.

Therefore rather often it makes a business sense to set-up regional and metro shipping prices for online stores. Such  pricing structure is simple enough to understand for consumers and at the same time flexible enough to keep your costs under control.

So quite often Aussie retailers want to implement price table similar with one below:

Shipping rates required
Destination Shipping rate
Melbourne metro $35
Regional Victorian $50
Sydney metro $35
Regional NSW $50
Adelaide metro $60
Regional SA $35
Brisbane/Gold Coast metro $60
Regional QLD $60
Perth metro $80
Regional WA $150
Tasmania (all) $60
NT (all) $120
Others $150

Assume that we don’t change the rate depends on shipping weight, volume and total price, so the business case seems to be quite simple.

How to configure such metro/regional shipping rates in Magento?

Magento eCommerce supports natively the next shipping calculation methods:

  • Flat rate
  • Table rates

There is also free shipping and several international carriers, but it isn’t relevant for our business case.

Unfortunately flat rate doesn’t work for us: we need to vary the rate depends on the destination.

Table rates seems to be a possible solution: this method allows to define rate depends on destination. However there is a problem with using out-of-the-box table rates and it is related with the requirement to have more then one rate for state: we have flat state rates only for TAS and NT, for other states we want to apply metro and regional rates to reflect different delivery costs.

So there is a need to find a way to distinguish regional and metro areas for VIC, NSW, QLD, SA and WA. How can we do that?

Only reliable way to do that (at least as we see it) is use postcodes. There are known postcode ranges for regional and metro areas and you can tweak that ranges based on how your carriers treat them.

So it is potentially possible to use out-of-the-box Magento table rates method, however the problem there is that you need to specify every single postcode that your customer can enter to define metro (or regional) area. With thousands of postcodes used in Australia it is quiet daunting and time consuming task to list them all.

Is there better way to do it?

Power of Magento ecosystem: free extension that can make this job easier

Wouldn’t be nice if instead of specifying every single postcode we can define postcode ranges? In this case we can have couple dozens instead of hundreds or thousand records in our shipping rates table. Fortunately such extension exists and moreover it is free!

It is called Matrix rate, developed by WebShopApps. You can install it from Magento Connect

N.B. Magenable isn’t affiliated with WebShopApps, we just found this free extension very useful. 

After installing this extension and initial configuration (you can find instructions how to do it at vendor’s website, we’ll not repeat them here) you need to prepare CSV file with your shipping pricing rules.

Pricing rules for our business case are presented in the table below. We stripped out non-essential information, actual CSV file contains more columns.

Shipping rates by postcode ranges
Postcode From Postcode To Cost Region description
150 Other than below
1100 1299 $35 Sydney Metro
2000 2234 $35 Sydney Metro
2235 2999 $50 Regional NSW plus ACT
3000 3207 $35 Melbourne Metro
3208 3999 $50 Regional VIC
4000 4199 $60 Brisbane Metro
4208 4287 $60 Gold Coast
4288 4299 $110 Regional QLD
4300 4305 $60 Brisbane Metro
4306 4499 $110 Regional QLD
4500 4519 $60 Brisbane Metro
4520 4999 $110 Regional QLD
5000 5199 $35 Adelaide Metro
5200 5999 $60 Regional SA
6000 6199 $60 Perth Metro
6200 6797 $150 Regional WA
7000 7999 $60 TAS
800 899 $120 NT
9000 9015 60 Brisbane Metro

You see that this table is less compact than one from original business case: sometimes things are a bit complicated, especially for QLD, where we set up several postcode ranges for the state to reflect metro and regional delivery areas according our business case requirements. Note that your requirements may be different so you may need to change postcode ranges.

After you prepare CSV file that reflect the logic above and upload it to your Magento store that’s it. You’ll get the rates established and they will be used for delivery calculation. BTW, the extension allows to implement more complicated logic.

Bonus – fill the form below to download CSV template

We’ve prepared a CSV template that reflects the business logic above, you are welcome to download it free of charge and use (at your own risk)
Is there any catch? Very little, we’ll add your email to our mail list and you’ll occasionally receive newsletters from us with eCommerce news, articles, researches and other useful information. You can unsubscribe from these emails any time if you don’t like them.



Get fresh eCommerce insights weekly

Subscribe to our mailing list

* indicates required


No, I don't need insights. Just close this pop-up

Consider changing your eCommerce platform?

Learn how to avoid nine deadly mistakes that can ruin your business.

Get free whitepaper from Magenable

Get whitepaper

Get free whitepaper!