Shopify Shipping in Australia: How to Stop Losing Money on Shipping Fee’s
Shopify is a fantastic platform for us Australian drop shippers however it’s lacking in one very important area… shipping.
Shopify, if you’re reading this, C’mon guys… you need to realise that sending a carton from Melbourne, VIC to Weilmoringle, NSW is way more expensive than sending that same parcel from Melbourne, VIC to Sydney, NSW.
It’s almost double the price!
So what are us Aussie Shopify users do to?
I’ve been battling with this issue since I first started drop shipping in 2014 and have had some really costly orders from remote locations where I didn’t just break even, I lost money on the sale due to the high cost of shipping to the customer.
At first, I started to exclude high-cost shipping areas from my advertising areas on Google AdWords such as to Western Australia and the Northern Territory.
But as my store began to climb the SERP’s (Search Engine Results Pages ie: Google), I no longer had control of who was able to access my website and buy my products.
My next attempt at a solution was a two part system
Part 1. Geotargeting bid adjustments in Google AdWords
I began advertising in high-cost shipping areas again but I reduced my ad spend for those areas in AdWords by adjusting my location targeting bids down on a deeper level. Here’s how I split my AdWords Geotargeting up for advertising in Australia:
Location Area | Bid Adjustment % |
Australian Capital Territory, Australia (state) | 0 |
New South Wales, Australia (state) | 0 |
Northern Territory, Australia (state) | -50 |
Queensland, Australia (state) | 0 |
South Australia, Australia (state) | 0 |
Tasmania, Australia (state) | -50 |
Victoria, Australia (state) | 0 |
Western Australia, Australia (state) | -50 |
Sydney, New South Wales, Australia (city) | 0 |
Darwin, Northern Territory, Australia (city) | -25 |
Brisbane, Queensland, Australia (city) | 0 |
Adelaide, South Australia, Australia (city) | 0 |
Hobart, Tasmania, Australia (city) | -25 |
Melbourne, Victoria, Australia (city) | 0 |
Perth, Western Australia, Australia (city) | -25 |
Areas that were more expensive to ship to such as regional and remote WA have a 50% reduction in ad spend for each search query whereas the same search query from someone in Perth, WA would only trigger a 25% reduction in ad spend as shipping to Perth isn’t as expensive. By separating each major city and state within Australia, I was then able to control how much I spent on advertising for each location.
By separating each major city and state within Australia, I was then able to control how much I spent on advertising for each location.
Still, it didn’t solve the problem entirely as I was still getting traffic from remote areas.
Part 2. Shipping Disclaimer
I introduced a disclaimer for my shipping rates within the stores shipping policy that said…
This approach worked but it involved a lot of manual work to chase up each customer who ordered from a non-metro location to then ask them for an additional payment.
And in some cases, it resulted in the sale being lost and an unhappy customer 🙁
I knew it wasn’t going to be a long term solution.
Raise the Shipping Rate To The Average Cost
My next approach was to increase the shipping rates to the average shipping price for the standard delivery areas as well as the regional areas.
For example; One of the stores shipping rates was $50 for 40kg to 50kg to addresses in Victoria. This would cover the standard delivery areas just fine. In some cases, the regional cost would be as high as $100 so I changed the rate for all orders of that 40kg to 50kg shipping rate from $50 to $75 to compensate for the regional orders.
Some you win and some you lose.
But this meant I was also losing out on sales as people in standard delivery zones would be put off by the price.
I even edited the message on the store’s cart page shipping estimator to say something like “Shipping cost too high? Call our team to get a better rate!”.
Of course, you can tell what happened then, right?
Everyone called and asked for a better rate. I spent far too much time on the phone with customers checking prices with BigPost (my preferred freight broker) to get the customer the best shipping price.
*Bangs head against desk*
Build My Own Shipping App to Show Live Carrier Rates
It was around this time that I hired my first full-time VA. It was bad enough that my time was being wasted looking for shipping rates for the customer but I knew I really didn’t want to be paying her to manually fetch shipping rates.
I reached out to a program developer buddy of mine that I met while in Chiang Mai with my problem, hoping he could help develop a shipping app.

My buddy Drew and I with our families eating dinner at our favourite vegetarian restaurant in Chiang Mai – Imm Aim
I knew this was possible as there are other apps similar on the Shopify App Store like the Australia Post Shipping Extension so it’s something that we could potentially build.
The idea was that we’d develop a shipping app for Australian stores using Shopify. The app would use the APIs from the two freight brokers that I used the most often–Transdirect and BigPost.
In theory, we’d be able to show live shipping rates from the freight providers on both Transdirect and BigPost, allowing the customer to choose which suited best.
We hit a brick wall after diving into this idea as to enable this to work, the Shopify user (you guys) would be required to create packages for each product and to be on a 12-month Shopify Plan.
After researching the market we concluded that there just wasn’t enough potential customers out there to justify the cost of developing the app… for now.
So, I was left back at square 1.
The Next Best Solution to Live Shipping Rates: Postcode Shipping Extension
I’m not sure how I came across it but somehow I found an app called Postcode Shipping Extension which provides customised shipping rates based on global postcode ranges.
The Postcode Shipping Extension app is pretty powerful in regards to how deep you want to go with creating different shipping rates. I won’t go into all the details here – I’ll leave that for you to discover on your own.
Instead, I want to share with you how I use this app on my Shopify stores…
How I use the Postcode Shipping Extension App on my stores
With the use of this app, I’m now able to charge customers the correct shipping price depending on their postcode rather than just a state wide flat rate.
I’ve set up this app in such a way that each postcode is categorised into one of five categories:
- Metro
- Inner Regional
- Outer Regional
- Remote
- Very Remote
As I’m in Australia there are plenty of towns here that are as we say “out in the sticks” which pretty much means “out in the middle of nowhere” or “very remote”.
Customers who place orders from out in the sticks are only shown a “Very Remote” shipping rate whereas customers who are from a major city or town area would be shown a cheaper “Metro” shipping rate.
The other 3 shipping rates would be shown to people who are located between “Metro” areas and “Very Remote” areas.
How The Postcode Shipping Extension App Works
How this app allows you to calculate the rates is pretty cool. I’ll show you how I’ve set it up on my store soon. But first, here’s a basic example of how having rates for different postcodes would work using Postcode Shipping Extension.
Example #1
Bruce the shopper lives in Southbank Victoria, 3006. He orders an item that is 15kg in weight. When Bruce is at checkout, Shopify calls upon the weight based shipping rate that is set for products between 14kg and 20kg for Barry’s postcode of 3006 which is called “Metro: Domestic Shipping” at a cost of $35 to Bruce.
Example #2
Bruce’s mate Barry also wants to buy the same item as Bruce but he lives out in White Cliffs, NSW 2836. When Barry is at checkout, Shopify calls upon the weight based shipping rate that is set for products between 14kg and 20kg for Bruce’s postcode of 2836 which is called “Very Remote: Domestic Shipping” at a cost of $110 to Barry.
As you can see, instead of losing $75 on shipping fee’s for Barry’s Very Remote order he’s been charged an accurate amount for his location.
Setting up this app isn’t easy. But here’s how I did it
Here’s a quick overview of how to set up the app as I have on my stores:
- Upgrade to an Annual plan on Shopify
- Install the Postcode Shipping Extension app
- Add your postcode zones (if you’re in Australia use the Postcode shipping zones spreadsheet I’ve created here)
- Add your shipping rates
- Delete your old shipping rates
Step 1. Upgrade to an Annual plan on Shopify
One of the obstacles I had with this app is that I needed to have Carrier Calculated Rates enabled from Shopify.
To enable the calculated shipping feature on my store I had to upgrade an Annual plan (pay for the Shopify subscription for 12 months in advance.) or pay an additional $20/month on the monthly cycle.
I paid for the Annual plan and saved myself $96 in doing so!
You can be on the Basic $29/month Shopify plan or the Standard $79/month Shopify plan to enable the carrier calculated feature.
How to activate carrier calculated shipping
Simply head to your store and navigate to: Settings > Account > Compare plans > Change your Billing Period.
Once you’ve paid for the annual plan just shoot Shopify support an email (support@shopify.com) letting them know that you’d like to have the carrier calculated rates function enabled.
A Shopify guru will get back to you within a few days with the confirmation 🙂
Step 2. Install the Postcode Shipping Extension app
I’ve got to admit – the app isn’t designed the best for user experience. But hey, it works! For me, it just took a little getting used to how to navigate my way around it.
To install the Postcode Shipping Extension app click here.
Step 3. Setting Up Postcode Ranges
When I got to this point I was stumped.
I didn’t know what postcodes were remote and which were metro.
After a few days of searching, I stitched together data from a number of websites to build a complete list of Australian postcodes which I put into a handy Postcode Zones spreadsheet.
(Note: for all you folks who aren’t in Australia, search Google for “remote zip codes” or “regional postage zones”. You could even approach a few universities that may have conducted location research and ask for their data.)
The Postcode Zones spreadsheet that I created consists of 13 sheets. You’ll only need the first 3 to begin with:
- Sheet 1. Has the Metro postcode zones for ACT, NSW, SA, QLD & VIC as well as WA, NT & TAS
- Sheet 2. Has the Inner Regional, Outer Regional, Remote and Very Remote postcodes for ACT, NSW, SA, QLD & VIC
- Sheet 3. Has the Inner Regional, Outer Regional, Remote and Very Remote postcodes for WA, NT & TAS
Once you’ve installed the app, open the Postcodes section and click the + Add Postcode Range button to set up a new range.
Enter your Range Name, Postcode Ranges and Country for your shipping locations.
Here’s how I’ve got mine set up:
(This location setup works for the products in my store but may not necessarily work for yours. Use your own judgement here and adjust as you see fit)
Range Name: | Metro A,N,S,Q,V |
(Note: Only you see the range name. The above stands for ACT, NSW, SA, QLD and VIC but there isn’t enough characters for the full description)
|
|
Country: | Australia |
Postcode Matches: | 1000-5999 |
(Note: this is shown on Sheet 1 of the Postcode Zones spreadsheet)
|
|
Excluded Postcodes: |
Add all the postcodes from Sheet 2 on the Postcode Zones spreadsheet
|
Catch All? | No |
Click the Submit button to save the rate
Next, we’ll be adding the rates for this postcode range. Don’t worry – you’ll be able to go back later on to finish adding the remaining range.
Step 4. Setting Up Rates
Open the Postcodes section and click the Add Rate button under the desired range to setup a new rate.
Enter your Rate Title, Base Rate, select Rate Type and set the Rate Cost.
Here’s how I’ve got mine set up for the first shipping rate “Metro: Free Shipping” on Sheet 4 of the Postcode Zone spreadsheet:
(As mentioned before, this setup works for the products in my store but may not necessarily work for yours. Use your own judgement here and adjust as you see fit)
Rate Name: Metro: | Free Shipping |
Base Rate: | 0 |
Rate Type: | By Weight |
Rate Cost: | 0 |
Minimum Weight: | 0 |
Maximum Weight: | 1 |
Minimum Quantity: | 0 |
Maximum Quantity: | 999999 |
Minimum Order Price: | 0 |
Maximum Order Price: | 999999 |
Click the Submit button to save the rate.
Continue to use the Postcode Zone spreadsheet to add each rate for the Metro rate range then move on to Sheet 5 for the Inner Regional rate range and so on.
Lastly, once you’ve finished adding all of the rates for each range, go back to Step 3 and add the WA, NT & TAS Postcode Range and the rates for this range.
Arrrrgh… I’m Lost?!
I bet most of you will read this and still be unsure. As I mentioned the app doesn’t have the best user experience in mind.
But stick with it. Re-read over the steps I laid out and you’ll eventually get it.
I know… It’s tedious work, but once it’s done it’s done!
Step 5. Delete your old shipping rates after you test the app
Now that the Postcode Shipping Extension app is managing your shipping you’ll need to go back and delete your original shipping rates from your Shopify shipping dashboard so that your customers aren’t shown the old rates and the new rates at checkout.
Of course, they’ll choose the cheaper out of the two!
(Note: don’t delete the zones, just the rates in each zone)
Before you delete anything, first head to your store and test out the shipping rates for a few of your products in different postcodes.
How to make your shipping rates seem like they’re live rates
Real calculated shipping rates are rarely rounded to full dollars (Eg. $20.00). So when a customer is shown a shipping rate such as $20.00 or $30.00 for example, they may think that you’re overcharging for shipping and not purchase.
I like to remove this fear by applying a rate adjustment in the Shopify shipping settings.
By applying a -$0.47 reduction to each shipping rate the customer is shown a shipping price of $19.53 rather than $20.00.
Does this work with Google Shopping?
Yes! I was waiting until Google crawled my site and testing the website shipping prices before writing this post just so that I was sure that the app worked with Google Shopping.
As Google tests from 48 Pirrama Road NSW 2009 only the “Metro: Domestic Shipping” shipping rate is shown as the postcode 2009 is in an inner city metro area.
I’m still testing and adjusting
Now that I don’t get stung by extra shipping costs by customers ordering from out in the sticks I’m a happy chappy. However, I don’t want to be losing sales when the shipping rates are too high.
Every now and then I’ll go back and check these rates to make sure they’re accurate and I’m not overcharging my customers or worse, losing sales for having the shipping costs too high.
I’ve found it easiest to change the weight of the product rather than adjust each rate in the app.
It doesn’t eliminate our problem, but it’s the best we can do for now
I still think that we need a shipping app here in Australia that connects with the major shipping carriers we use and displays live shipping rates to our customers. But for now, this is the most accurate method I know.
Let me know what you guys think and if you’ve found a better shipping method to use in the comments!
You’ve put a lot of work into this, with research and testing Matt. I haven’t even made the decision about whether we have our store in the US or in Australia (from New Zealand); do I understand correctly that you arrange the shipping yourself rather than have your suppliers dropship, or are you using both methods to get sales delivered to your customers?
Hey Annette!
Thanks for your comment 🙂
Personally, as an Aussie, I see HUGE potential here in Australia for eCommerce businesses to grow and scale with minimal competition. So many other retailers here (and in NZ) are still stuck in their old ways. Just look at all the stores that don’t yet have a shopping cart on their website, let along Google Shopping ads!
I understand that it’s hard for us non-US folks to target the US market. Just getting a bank account set up is difficult – not to mention all of the local businesses that have an advantage over you by knowing their audience better and being in the same time zone.
My advice: Think long term. More and more Aussies and Kiwi’s are shopping online. Why not be the first in your niche and get a head start on all future competition?
Either way whatever you decide you can always try the other. The beauty of drop shipping is the low barrier of entry to start something new!
Thanks for the advice Matt, guess I’m leaning towards Oz mainly because it’s not quite so far out of the comfort zone for contacting suppliers and I definitely see your point about pioneering the concept in this part of the world; still a bit hung up on the $ potential for Oz vs US – are you able to comment on that? Can you point me in the right direction for finding information on requirements to operate a business in Australia from NZ base? 🙂
I’d suggest joining the New Zealand DSL Members Facebook group …
I know that Jo Martin has a lot of experience operating a drop shipping business from NZ – perhaps you can ask her.
Awesome, thanks for your help Matt, will do!
Hello Matt
I understand from what I have read that you are drop shipping. Do you organise your own shipping from suppliers or are the charges so that what the suppliers are charging you will be more accurate? Also, do you feel drop shipping from other countries to Australia would be viable as far as shipping charges go.
Hey Melissa!
Yep, I most certainly do 🙂 And yes, I do like to organise shipping rather than have my suppliers organise it. Here’s why:
1) I tend to have better rates as I use multiple freight brokers such as Transdirect and BigPost. Most suppliers will only have one direct freight account with say TNT or Toll. This way I can choose the cheapest option from over 10 freight companies rather than just the one.
2) I have access to the tracking details straight away. Some suppliers are really bad at emailing through the tracking details. Often sending them days later, AFTER the order has already been delivered. All the while having customers calling asking if their order is shipped.
3) I control the cost when I manage shipping. I trust my suppliers but still think that maybe they could be adding a few $ here and there to beef up their profits.
Thanks Matt. You have given me another option to think about.
Hey Matt, I know that I have said it before but this is amazing and thank you so much for sharing this post. I am sure that so many people will benefit from it.
I am just wondering when you have set your additional rate cost – lets look at the Inner Regional costs of $1.25 – is that $1.25 per kilo in addition to the base rate cost?
I’m so glad it’s helped you out Renee!
Yep – you’re spot-on. The Additional rate cost is multiplied by the item weight and added to the standard rate.
Eg: Item A is 10kg. “Metro: Domestic Shipping” is $25 (base rate) – $0.47 (set at the Shopify shipping settings) = $24.53…
That same item being sent to a regional area falling under “Inner Regional: Domestic Shipping” is $25 (base rate) + [$1.25 x 10kg] (additional Rate) – $0.47 = $37.03
I hope that makes sense!
Thanks again Matt. I’ve finally sorted my rates out.
I’ve been using Transdirect and a postcode in Vic and then in Qld to find the variables in shipping costs for the different weights and ranges. A lot of tooing and froing!
Have you found that your rates go up in the lighter weights > 25kg and then back down as the shipment gets heavier and the base rate goes up?
I haven’t tried the rates out as yet but agree that there will be a bit of adjustments along the way.
Much appreciated
Craig
Hey Craig! Glad you were able to get it working. I did the same thing – at least in the beginning – to get some data on what the rates should be by entering in a few towns in the zone I was calculating.
I’m not quite sure what you mean with “your rates go up in the lighter weights > 25kg and then back down as the shipment gets heavier and the base rate goes up?”… What I do though is cross check each shipping charge against my BigPost invoice each week to make sure my rates are as accurate as possible.
Hi Matt, thanks so much for this great post. It has helped me understand the minefield of shipping set up! I think I can follow the thread here but am wondering where you are getting the base rates and multipliers? Are you getting them from your preferred shipping supplier or are they standard averages for aussie post codes? thanks Anne
Hey Anne,
Glad to have helped! Regarding the multipliers, I made them up as I was creating the rates and tested them to and from various locations within those areas. It’s not perfect but most of the time for the items I send it’s pretty darn close.
Hey again Matt, wanted to give you an update that I have implemented this process following your instructions from start to finish. Took me quite a while to work through the whole thing BUT I have just made my first sale with the new shipping set up and the shipping rate was SPOT ON. I am stoked to finally have confidence that my shipping rates are accurate and I won’t be losing money on that part of the transaction! Plus I contacted the freight company you mentioned above and am now working with them – they have been fabulous! Many thanks again – this was a great share!
So great to hear that your hard work is paying off Anne 🙂 Congrats on the sale, too!
Hi Matt, this is awesome, thanks so much it was very helpful! I have my site set up for wholesale and therefore have discounted prices. Do you know how to manage to get it working with the discounted price and not the original price please?
I’ve added in free shipping over $300 but it draws it from the original price (non discounted price) and therefor doesn’t give correct results?!?!
Thanks Dean.
Hey Dean. Glad you liked the article 🙂
Without looking at your store it’s hard to know what needs to be changed. I’d suggest reaching out to Zann who developed the Postcode Shipping Extension app and also perhaps your theme developers. Best of luck!
Hi Matt,
I configured zones and rates according to your article but upon checkout it shows all the rates.
Did I configure it correctly?
How can I share screenshot here?
Hi Matt,
I followed your post to create zone and ranges but checkout quote shows more than one quote.
Is it the expected behaviour or did I miss something?
How can I share the screenshot of my Shopify checkout page with you?
Hey Mani, it can be a bit tricky to set up for sure. If you’re having trouble with setting up zones I suggest reaching out to the app developer Zann who will be able to point you in the right direction. Good luck!
Wow Matt that is some epic post filled with so much value, I’m so glad I’ve fallen upon it on day one of my finding a shipping option journey, I think it’s gonna save me so much time, i’m truly grateful.
One question that has been burning me all day is more around working out shipping based on different pick up points, eg. different supplier locations. For example my supplier is in Perth and my customer is in Brisbane, a metro location delivery, however thats one long road haul.
What is the work around for this, I didn’t quite pick that piece up within the post? Cheers
Hey Brian. Glad the post helped you out and great question.
For this, there is no good solution. You just have to ‘average’ out the shipping costs. I’d assume most of your suppliers are located on the east coast of Australia in metro cities. Rates from a Melbourne supplier to metro Sydney customer are quite similar to rates from a Sydney supplier to a metro Melbourne customer. You see what I’m getting at?
You’ll never have rates line up perfectly with your true cost. There are way too many variables at play; location, package size, courier, tailgate delivery, ATL etc. Our rule of thumb is that if the actual shipping cost is +/- 20% of the charged shipping cost it’s okay. Anything outside of that we either need to A. Change the zone (eg. Metro to Inner Regional) or B. Change the nominated product weight.
Hi Matt,
Your post is much appreciated and I am sincerely grateful for your information. Thank you.
Regards
Abraham
Glad to help Abraham!