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
DestinationShipping 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 FromPostcode ToCostRegion description
150Other than below
11001299$35Sydney Metro
20002234$35Sydney Metro
22352999$50Regional NSW plus ACT
30003207$35Melbourne Metro
32083999$50Regional VIC
40004199$60Brisbane Metro
42084287$60Gold Coast
42884299$110Regional QLD
43004305$60Brisbane Metro
43064499$110Regional QLD
45004519$60Brisbane Metro
45204999$110Regional QLD
50005199$35Adelaide Metro
52005999$60Regional SA
60006199$60Perth Metro
62006797$150Regional WA
70007999$60TAS
800899$120NT
9000901560Brisbane 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!