How to set up a Magento store for Australia
29 Oct 2009, by Chris Norton
28 Comments · Posted in Magento

    First, the basic information for the store must be configured for Australia:

    System → Configuration → General
    Countries options
    • Default country = Australia
    • Allow countries = ensure Australia is selected
    Locale options
    • Timezone = AUS Eastern Standard Time (Australia/Sydney) (as appropriate)
    • Locale = English (Australia)

    Next, the currency must be configured for Australian Dollars:

    System → Configuration → Currency Setup
    Currency Options
    • Base currency = Australian Dollar
    • Default display currency = Australian Dollar
    • Allowed currencies = ensure Australian Dollar is selected

    Shipping settings are important for shipping, and also for tax calculation. You should enter information appropriate for your shipping location, which must be in Australia for shipping and tax calculations to work correctly.

    System → Configuration → Shipping Settings
    • Country = Australia

    To set tax correctly for Australia (prices shown include GST) and to apply discounts correctly, the following should be set:

    System → Configuration → Tax
    Tax Classes
    • Tax Class for Shipping = Shipping
    Calculation Settings
    • Tax Based On = Shipping Address
    • Catalog prices include tax = Yes
    • Shipping prices include tax = Yes
    • Apply Tax After Discount = Yes
    • Apply Discount On Prices Including Tax = Yes
    • Apply Tax On = Custom price if available
    Default Tax Destination Calculation
    • Default Country = Australia
    • Display Cart/Order Prices = Including tax
    • Display full tax summary = No
    • Display Shipping Prices = Including tax
    • Display Product Prices = Including tax

    These settings will instruct Magento that all prices entered into the system already include GST (which is most common for Australian retailers) and that prices displayed to the customer should be displayed including tax. You may need to adjust the settings for shipping appropriately, depending on whether your chosen shipping method should include GST or not.

    Please note that the upcoming release has some changes to these settings. For Community Edition 1.4 (and Enterprise Edition 1.6), use the following instead:

    System → Configuration → Tax
    Tax Classes
    • Tax Class for Shipping = Shipping
    Calculation Settings
    • Tax Calculation Method Based On = Total
    • Tax Calculation Based On = Shipping Address
    • Catalog prices = Including tax
    • Shipping prices = Including tax
    • Apply Customer Tax = After Discount
    • Apply Discount On Prices = Including tax
    • Apply Tax On = Custom price if available
    Default Tax Destination Calculation
    • Default Country = Australia
    Price Display Settings
    • Display Product Prices In Catalog = Including tax
    Shopping Cart Display Settings
    • Display Prices = Including tax
    • Display Subtotal = Including tax
    • Display Shipping Amount = Including tax
    • Include Tax in Grand Total = No
    Order, Invoices, Creditmemos Display Settings
    • Display Prices = Including tax
    • Display Subtotal = Including tax
    • Display Shipping Amount = Including tax
    • Include Tax in Grand Total = No

    The easiest way to meet the ATO requirements for ABN and contact number on invoices is to add these details to your address information:

    System → Configuration → Sales
    Invoice and Packing Slip Design
    • Address = your address + ABN and phone number

    You might also choose to add this information to the transactional email template for invoices. If you want to use the PDF invoices however you will need to alter the address above or modify the PDF rendering, which we may cover in another post.

    To set up the 10% GST to be applied on products and shipping, Magento requires the addition of an appropriate tax rate and rule:

    Sales → Tax → Manage Tax Zones & Rates

    Here we add a tax rate for GST so that Magento will know how much tax to calculate.

    To add a rate, click Add New Tax Rate in the top right and fill out the following information:

    • Tax Identifier = GST
    • Country = Australia
    • State = *
    • Zip/Post Code = *
    • Rate = 10.00

    Save the rate and proceed to set up a rule for GST.

    Sales → Tax → Manage Tax Rules

    Tax rules determines when rates should be applied. In this case we want to set it up to apply GST anywhere in Australia.

    Click Add New Tax Rule in the top right and fill out the following information:

    • Name = GST
    • Customer Tax Class = Retail Customer
    • Product Tax Class = Taxable Goods | Shipping
    • Tax Rate = GST

    Save the rule and GST will be completely set up. It's a good idea to remove any other tax rules that are present by default, unless they will also be relevant for you.

    Rename Tax to GST

    Something that is often overlooked is that you must include a line in your invoices specifically indicating the amount of GST that has been applied. This can be done in a few ways but a simple method is to use the translation files included as part of the locale. This allows for easy replication across websites by copying the files from one site to another.

    To modify the translation, creating an app/locale/en_AU directory and copy the Mage_Sales.csv file from the en_US locale into it. Open this file as a spreadsheet (such as in Excel or and find the line with the word "Tax". Modify the value in the right column to be "GST". This will appropriately change the text that is displayed to the customer.

    Rename Invoice to Tax Invoice

    Similar to the above, you can edit the translation files to change the text "Invoice" to "Tax Invoice". This is left as an exercise for the reader.

    After applying all of these changes you'll have addressed the essentials for running a Magento store in Australia. We recommend also installing our Magento Australian extension, which adds Australian regions, Australia Post shipping, direct deposit and BPAY payment methods. Also be sure to watch out for Magento Community Edition 1.4 as it includes several key improvements to the tax system to make working with discounts easier.



    Thanks to you, my management of my (basic) Magento store is under control!


    Comment by Paul - 30 Oct 2009 6:08:23 PM
    Thanks for these tips. Makes life a little easier for us trying to develop Magento sites for Australian customers. Nice one Chris.
    Comment by Ara - 10 Dec 2009 10:28:59 AM
    Hi Chris,
    Thank you for the above. The ATO requires the date of issue to be displayed on the Tax Invoice according to <a href="" rel="nofollow"></a>. Also is it possible to have the products laid out like example 2 in <a href="" rel="nofollow"></a> . Current the invoice email only has Item Sku Qty Subtotal. To be ATO compliant will need to be Item - Sku - Qty - Unit Price(Ex GST) - Subtotal(Ex GST) - GST Amount - Amount Payable (incl GST) for each product. I think the email templates need to be changed. I am not sure how to do this, any help would be much appreciated.
    Comment by Tim Lester - 19 Dec 2009 3:17:00 PM
    Thanks for the useful info.

    In regard to the section "Rename Tax to GST" I followed you instructions but in my Checkout page Tax is still called Tax. Should I be copying all the contents of the en_US folder over to my new en_AU folder.

    Or is there is setting that directs Magento to now look in the en_AU when referring to tax?

    thanks for any advice you can offer?
    Comment by Nick - 24 Dec 2009 9:48:00 AM
    I have 3 simple words for you......

    Love your work.

    Thanks for making my life easier.


    Comment by Blugreen - 9 Jan 2010 1:56:06 PM

    Love the post, love the extension.

    As far as making my store ATO compliant, I am wondering how people have gotten around the "order date" instead of "invoice date" on the invoice. This is really the only thing left as I can see to make the store compliant in AU. I believe the post from Tim Lester pointed this out as well.
    As far as changing text like "invoice" into "tax invoice" etc. modify the locale translation file (as you have specified above), or using inline translation, or actually modify the email template seem to do the trick.

    However adding a new field which I can't see present by the time the email is created seems, somewhat harder. The actual fields available at the email template level don't seem to have invoice date, refer here for exact list:
    <a href="" rel="nofollow"></a>

    The only way I see to achieve this is to modify some core files, to include an invoice date variable. I was trying to avoid having to unravel the web of magneto core files to find out where to insert probably a few lines of codes (as functions no doubt have already been written to get the invoice date - as is used in the admin section.) Has anyone already gone to this effort? Besides those who want to charge money for a simple extension; just to add the invoice date.

    If anyone has already written some code to do this, it would be appreciated if they could share. Once I get a solution I will post it here, even if I have to end up writing it myself.
    Comment by Sim - 27 Jan 2010 1:42:00 PM
    Thanks Chris,

    This is great!
    In fact helped correct a problem i had with price rounding errors due to the fact that I had the setting "Catalog prices include tax" set to 'no' instead of 'yes' as you have advised above. All good now.

    I do have a question though. You advise using the setting "Tax Based on = Billing Address". I spoke with the ATO on the phone a few months back and they advised me that GST is due on a product if its intended use or the intended users reside in Australia, hence products shipped out of Australia are exempt of GST. Therefore unless I am mistaken the Tax calculation should be based on the Shipping Address.
    An exampe could be an Australian here who wants to send a gift to an overseas friend, so the product is free of GST even though the billing address is in Australia because the shipping address is not.

    Perhaps someone can enlighten me, if I got the wrong interpretation from the ATO.

    Richard Walsh
    Comment by Richard Walsh - 1 Feb 2010 2:56:02 PM
    Add Invoice Date onto the various invoices in magento.
    Based on Magento ver.

    The only way I found i could add the invoice date onto invoices was to modify the core magento code.
    Before you modify any core magento files please make sure you duplicated the core file (including path) from “app\code\core” to “app\code\local”. Otherwise your future upgraded path will be limited.
    I found there were 4 different (code paths) that a user could end up with an invoice:

    1)New Invoice email
    2)Update invoice email
    3)User Account – Print Html
    4)Pdf – though admin, or an extension that attaches to invoice emails.
    1) New Invoice email

    ---Info: This will make a new variable available to use on the invoice template ("invoiced_date").

    ---Core File: \app\code\core\Mage\Sales\Model\Order\Invoice.php

    ---Inside Function: sendEmail($notifyCustomer=true, $comment='')

    -- What to do:

    foreach ($sendTo as $recipient) {
    $mailTemplate->setDesignConfig(array('area'=>'frontend', 'store'=>$order->getStoreId()))
    Mage::getStoreConfig(self::XML_PATH_EMAIL_IDENTITY, $order->getStoreId()),
    'order' => $order,
    'invoice' => $this,
    'comment' => $comment,
    'billing' => $order->getBillingAddress(),
    'payment_html'=> $paymentBlock->toHtml()
    Replace with
    foreach ($sendTo as $recipient) {
    $mailTemplate->setDesignConfig(array('area'=>'frontend', 'store'=>$order->getStoreId()))
    Mage::getStoreConfig(self::XML_PATH_EMAIL_IDENTITY, $order->getStoreId()),
    'order' => $order,
    'invoice' => $this,
    'comment' => $comment,
    'billing' => $order->getBillingAddress(),
    'payment_html'=> $paymentBlock->toHtml(),
    'invoiced_date' => Mage::helper('core')->formatDate($this->getCreatedAt(), 'medium', false)
    Add this to your invoice templates

    {{var invoiced_date}}
    2) Update invoice email

    Same as New Invoice email, except you do it inside the fucntion sendUpdateEmail, instead of sendEmail
    4) User Account – Print Html

    ---Info: This will simply add the invoice date to the html printable invoice from within a web users login.

    ---File: app\design\frontend\default\default\template\sales\order\print\invoice.phtml (not this is not a core file, but under a template, if this file is not in your active template copy it into it first).

    ---What to do:

    [php]<?php echo $this->__('Invoice #%s', $_invoice->getIncrementId()) ?>[/php]

    Insert the below somewhere after (you may need add some inline styling to postion how you want it).

    [php]<?php echo $this->__('Invoice Date: %s', $this->formatDate($_invoice->getCreatedAt(), 'long')) ?>[/php]

    4) Add Invoice Date to PDF

    ---Info: This will simply add the invoice date only on the same line as invoice #.

    ---Core File: \app\code\core\Mage\Sales\Model\Order\Pdf\Invoice.php

    ---Inside Function: getPdf($invoices = array())

    -- What to do:

    Find on line 68
    [php]$page->drawText(Mage::helper('sales')->__('Invoice # ') . $invoice->getIncrementId(), 35, 780, 'UTF-8');[/php]
    Insert this after the line above
    [php]$page->drawText(Mage::helper('sales')->__('Invoice Date: ') . Mage::helper('core')->formatDate($invoice->getCreatedAt(), 'medium', false), 285, 780, 'UTF-8');[/php]

    This is only a basic guide and only adds the invoice date. Once I worked out how to do this I also procedeed to add/alter other information, like adding "TAX INVOICE" in large letters to right corners of invoices.

    One thing to note about Magento's PDF's, magento first draws the order to the page, then draws the extra invoice information to the page, so if you want to change the postion of something on the order, like the order date position, you can find the code for this: \app\code\core\Mage\Sales\Model\Order\Pdf\Abstract.php, function “insertOrder(&$page, $order, $putOrderId = true)”. So as to only change the invoice and not all orders, I copied this function to the \app\code\core\Mage\Sales\Model\Order\Pdf\Invoice.php file and renamed it “insertInvoiceOrder(&$page, $order, $putOrderId = true)”, and from within the function “getPdf($invoices = array())” on \app\code\core\Mage\Sales\Model\Order\Pdf\Invoice.php, change the reference to the new function. You are then free to change what you want without changing how orders will show.

    How this helps others..


    Comment by Sim - 1 Feb 2010 4:32:00 PM
    I can't see any problems with your interpretation of the feedback you got from the ATO - it looks like setting tax to be based on <b>shipping address</b> is the correct setting. I've updated the post accordingly.

    Thanks for picking this up!
    Comment by Chris Norton - 15 Feb 2010 11:29:27 AM

    I have just installed v1.4.0.0 and have followed the precise settings outlined to setup for an Australian company. It appears that the GST is NOT calculating correcty in either the shopping cart or checkout.

    For example a test item is $110.00 displays as the following:

    Test 100.10 1 $100.10

    Subtotal $100.01
    GST $0.10
    Grand Total $100.10

    Have you heard whether anything is wrong with this release of Magento???
    Comment by msmith - 21 Feb 2010 3:46:33 PM
    It seems like there are a few quirks in the tax calculator in the latest 1.4 releases. The value for <i>Tax Calculation Method Based On</i> should actually be set to "Total", otherwise the tax will be calculated incorrectly. Previously I had this value as "Unit price" in the post, which was based on earlier pre-releases of 1.4.

    Trying changing this setting and see if it works for you.
    Comment by Chris Norton - 21 Feb 2010 11:26:00 PM

    Thanks mate - that fixes the problem properly! I ended up going into the Tax/Calculation.php module and forcing the taxRate in calcTaxAmount to .10. It appears to divise more than once from what we gather.

    Anyway, thank you for your assistance - much appreciated!
    Comment by msmith - 22 Feb 2010 9:44:37 AM
    Don't forget to create special tax rules for Australian external territories - it seems they are GST exempt.
    Comment by benz001 - 22 Feb 2010 10:15:36 AM
    This is a great post. Unfortunately I think there's a bug in v, but I'm hoping that I'm wrong.

    I've used the settings that you specify above, which make good sense to me, but I can't get the store to treat the price entered by admin as tax inclusive. Regardless of whether I choose 'Calculation Settings' -> 'Catalog Prices' = 'Excluding Tax' / 'Including Tax' the system always adds the 10% GST to the price I've entered.

    Eg. If Calculation Settings -> Catalog Prices = 'Excluding Tax'
    Entered Price = $15.00
    Catalog Shows $16.50
    Final checkout price = $16.50 ($1.50 tax)

    This is correct, however if I set Calculation Settings -> Catalog Prices = 'Including Tax' then

    Entered Price = $15.00
    Catalog still Shows $16.50
    Final checkout price = $16.50 ($1.50 tax)

    This is wrong. The catalog price should be $15.00, and the tax should be $1.36

    Does anyone know if there's a way to fix this problem, or if there's something I'm doing wrong? I'm pretty certain that it's a bug at this point, but hopefully someone can prove me wrong.

    Comment by James - 11 Mar 2010 6:47:11 PM
    Hey Chris,

    I think the definition of 'Total' is not quite right for the option Tax Calculation Method Based On.

    I'm finding that in some cases my Grand Totals are having 1 cent added to them.

    So instead of Magento combining the total cost of items and shipping and then calculating the GST, its calculating the GST on each on them, and after rounding both GST amounts, I get the extra 1 cent.

    I'm surprised nobody has mentioned this.

    I'm trying to find a solution for this, but if anyone knows a way to solve this it would be great to hear it.

    Comment by Tom - 20 Mar 2010 6:09:11 PM
    This is an ongoing issue with core Magento behaviour which we are also aware of. We are continuing to look into the matter and we will share any conclusive findings.
    Comment by Denis Margetic - 22 Mar 2010 11:38:00 AM
    This post may help


    I have a workaround to this issue that I applied to my store and so far so good.

    What I did was remove the round process when calculating the tax per each item on the shopping cart.

    So at the end it will sum all taxes from each items with no rounding, and at the end it will round the total tax, but no rounding on individual taxes per items.

    I did some testings and compare with a spreadsheet and everything so far so good.

    The change I made was on:


    in function calcTaxAmount() :

    I modified the following lines:

    $this->setTaxAmount($store->roundPrice($rowTotal * $taxPercent));
    $this->setBaseTaxAmount($store->roundPrice($rowBaseTotal * $taxPercent));


    $this->setTaxAmount($rowTotal * $taxPercent);
    $this->setBaseTaxAmount($rowBaseTotal * $taxPercent);

    Let me know your comments, so far I haven’t had any unexpected negative impact anywhere else, but any feedback is well appreciated.
    Comment by LittleMAster - 25 Mar 2010 2:43:16 AM
    As I understand the application of GST we may export goods ex-gst but the shipping cost, as a service largely consumed in Australia, is still subject to GST. Magento does not seem to provide for this with both the product and shipping either excluding or including GST based on Shipping Address as per advised set-up herein. Effectively, I believe a store selling locally and/or exporting from Australia needs to be able apply GST on shipping on every sale regardles of Shipping Address. It wouldn't be the first time I've missed the simple way of solving a problem but the only way I've found so far is to set-up individual tax rates/zones so that GST can be applied to the shipping cost to that destination. Seems to work on an initial test but a bit laborious to set-up. Any thoughts welcome.

    And a big thanks and cheers for a terrific service.

    Comment by David - 1 May 2010 4:27:53 PM
    I'm having the same problem in 1.4.01

    anyone know if this is a bug or a setting that isn't right?

    Comment by mike - 15 May 2010 8:07:19 PM
    Hi Chris,

    Thanks for this. According to my testing, Apply Tax After Discount should be set to Yes. Am I missing something? Otherwise the discount is applied to the pre-tax amount...


    P.S. Also love your extensions, thanks for the contributions to the community
    Comment by Jonathan Day - 19 Jul 2010 12:24:40 PM
    Hi Jonathan,

    Thanks for spotting that one - I've updated the post to reflect this change.

    Glad to hear the extensions are working well for you. It's always great to hear success stories!

    Comment by Chris Norton - 19 Jul 2010 1:10:36 PM
    The GST calculation as described by you above is based on shipping. i.e.
    System ? Configuration ? Tax
    Tax Classes

    * Tax Class for Shipping = Shipping

    Calculation Settings

    * Tax Based On = Shipping Address
    * Catalog prices include tax = Yes
    * Shipping prices include tax = Yes
    * Apply Tax After Discount = Yes

    There is no option in the magento Calculation Settings to calculate GST based on the product price.
    I would like the GST to be calculated on the product price. How can this be done? Please advise.
    Comment by Subhadeep - 26 Jul 2010 2:26:13 PM
    To modify the translation, creating an app/locale/en_AU directory and copy the Mage_Sales.csv file from the en_US locale into it. Open this file as a spreadsheet (such as in Excel or and find the line with the word "Tax". Modify the value in the right column to be "GST". This will appropriately change the text that is displayed to the customer.

    does this just change "Tax" in reports and things like that? I did it and in the view cart part of the site it still says "Grand Total Incl Tax" and "Grand Total Excl Tax". I have scoured the xml and phtml maze and its led me to a dead end.

    How does magento know that en_AU is being used is there a setting somewhere to turn it on?
    Comment by Eric - 3 Dec 2010 9:23:41 AM
    This will only change the exact phrase "Tax" in the Sales module. You will need to search for and replace any other appropriate phrases with Tax in the text in any other modules where you want it changed to "GST", such as Mage_Reports.csv, Mage_Checkout.csv, etc.

    Magento knows which locale to use based on the setting in System -> Configuration -> General -> Locale Options. The "Locale" setting should be set to "English (Australia)".
    Comment by Chris Norton - 3 Dec 2010 12:00:26 PM
    Australia Post, and couriers such as TNT, don't charge you GST on international shipments. So your shipping costs are not subject to GST. As such, you shouldn't charge your international customers GST on shipping.
    Comment by Steven - 6 Jan 2011 7:19:20 AM
    Excellent extension!

    I wonder if anyone has a GST solution for selling downloadable products? Downloadable products don't require a shipping address, so Magento doesn't add GST to Australian customers (as the GST is calculated based on shipping address). But Australian customers buying downloadable goods should be charged GST (and international customers shouldn't). Is there any way to get Magento to base GST on billing address whenever they are buying downloadable products?
    Comment by Steven - 6 Jan 2011 7:30:38 AM
    Ok mage has tax calculation issues, here's what worked for me to get GST to display properly and not apply to shipping costs and extra 1c:

    see for more info
    in file app\code\core\Mage\Tax\Model\Sales\Total\Quote\Subtotal.php(line 211):

    $address->setTotalAmount(’shipping’, $this->_calculator->roundUp($shippingAmount));
    $address->setBaseTotalAmount('shipping', $this->_calculator->round($baseShippingAmount));
    changed to
    $address->setTotalAmount(’shipping’, $this->_calculator->round($shippingAmount));
    $address->setBaseTotalAmount('shipping', $this->_calculator->round($baseShippingAmount));
    or alternatively this may work for you as well with the second fix below:
    $address->setTotalAmount(’shipping’, $shippingAmount);
    $address->setBaseTotalAmount('shipping', $baseShippingAmount);

    and then also
    see <a href="" rel="nofollow"></a> for more info
    i downloaded this .rar file use winZip or WinRAR to open
    <a href="" rel="nofollow"></a>
    and place the files/folders in the correct location within you magento site
    Comment by SingleStructure - 12 Jan 2011 4:22:00 PM
    For displaying ABN in email templates try
    {{config path='fontis_australia/business/abn'}}
    Comment by Firat - 21 Jan 2011 11:57:32 AM
    Comments are closed for this post