Broad extension that provides essential functionality for Australian stores.
This extension is intended to provide most of the functionality needed to run a Magento store in Australia. This includes all essential payment and shipping methods as well as small enhancements.
Currently available are:
- ABN support
- Australia Post shipping
- Direct Deposit payment
- BPAY payment
- Adds in Australian states and territories to the regions directory
- Adds in address autocomplete based on Australian localities and postcodes
- Shopping comparison feed generators for Getprice, MyShopping and Shopbot
- Version Compatibility: Magento CE1.4.x, CE1.5.x, CE1.6.x, CE1.7.x, EE1.6.x, EE1.7.x, EE1.8.x, EE1.9.x, EE1.10.x, EE1.11.x, EE1.12.x, MagePlus 1.0.x
Developer Not Included
Please ensure this extension is installed by an experienced Magento developer to avoid problems. Always test on a development copy of your website first and backup your website before installing.
There is an ABN field available under System → Configuration → General.
Note that this field is not currently used anywhere in the system and is provided for use by developers only. To access the ABN value, use the following PHP code:
For information on how to easily add your ABN and contact details to invoices, refer to our blog post How to set up a Magento store for Australia.
When using the Australia Post shipping module please keep in mind the following:
- Remember to set the product weight unit accordingly.
- Shipping is limited to items under 20kg. This is a limitation of the Australia Post service itself.
- The shipping origin must be in Australia.
Otherwise shipping won't turn up on the frontend during checkout.
Please note that the eParcel system only allows for rate calculations using the uploaded rates and does not provide any integration with eParcel itself.
To set up the eParcel shipping method, you will first need to create a comma-separated value (CSV) file containing your eParcel postcodes, weights and rates. The format of this file should be:
"Country", "Region/State", "Postcodes", "Weight from", "Weight to", "Parcel Cost", "Cost Per Kg", "Delivery Type" "AUS", "QLD", "4210-4229,2485", 0, 0.6, 5, 0, "eParcel Standard" "AUS", "QLD", "4300-4307", 0, 0.6, 4.2, 0.7, "eParcel Standard" "AUS", "NSW", "2250", 0.6, 20, 8.25, 0.58, "eParcel Standard" "AUS", "ACT", "0200,2600,2620", 0.6, 20, 7, 0.62, "eParcel Standard" "AUS", "*", "*", 0, 0.6, 4.75, 0, "eParcel Standard" "AUS", "VIC", "3214-3220", 0.6, 20, 8.13, 4.4, "eParcel Express Post" "AUS", "VIC", "3350,3353-3356", 0.6, 20, 10.05, 3.5, "eParcel Express Post" "AUS", "*", "4230,4449", 0.6, 20, 6.96, 0.3, "eParcel Express Post" "AUS", "ACT", "0200,2600", 0.6, 20, 12, 1.83, "eParcel Express Post" ...
Each row specifies a shipping rate rule for a country, state, postcode and weight range combination. 'Any state' or 'any postcode' can be represented by an asterisk, as shown above. Postcodes are entered as a comma-separated list of individual postcodes and/or postcode ranges (two postcodes separated by a dash). As shown above, all column values except for those in the weight and cost columns must be enclosed in double quotes.
When a customer gets to the shipping step in the checkout, their order's weight and the country, state and postcode they have entered at the address step are checked against the table. The more specific rules are checked before the less specific ones (so rows without asterisks will be used in preference to ones with asterisks). If there are multiple rows that match at the same level of specificity and they differ in the 'Delivery Type' column, all matching rows will be added. For example, going from the table above, if a customer enters 'ACT' as their state and '2600' as their postcode, both of the 'ACT' rows above will match, so both 'eParcel Standard' and 'eParcel Express Post' will be shown as shipping options.
Once you have created this CSV file (based on your eParcel rates information), you can upload it from the backend by going to System → Configuration → Shipping Methods and selecting a specific website (such as 'Main Website') from the 'Current Configuration Scope' dropdown. The 'Import' file upload field under the 'Australia Post eParcel' section can be used to upload the CSV. Once this is done and the shipping method is enabled, customers that enter an address that matches one of the rules will be shown eParcel as a shipping option.
Most of the other eParcel configuration options are self-explanatory. 'Insurance Step' and 'Insurance Cost Per Step' control how expensive insurance will be (this will be shown as a separate shipping option, if it applies). The order's price is divided by the 'Insurance Step' and rounded up; this value is then multiplied by the 'Insurance Cost Per Step' to find the insurance cost. For example, if 'Insurance Step' is set to 50 and 'Insurance Cost Per Step' is set to 1.25, a $130 order will be charged $3.75 for insurance ($130 divided by $50 is 2.6, which rounds up to 3, multiplied by 1.25 gives $3.75).
Three shopping comparison feed generators are available:
Each feed is generated in XML format, according to the specifications of the feed providers. All mandatory attributes have been included and some optional or recommended attributes of products have been included. The MyShopping and Shopbot feeds include an interface in the Magento backend for customising exactly which attributes are included in their feeds.
The feeds can be individually enabled and will run at midnight via the Magento cron job. Each feed's output directory can be set. The defaults are 'getprice-feeds/', 'myshopping-feeds/' and 'shopbot-feeds/'. For a given Magento environment the feeds will be outputted to 'magento/getprice-feeds/', the path is hence relative to the Magento installation directory. If the path begins with a forward-slash then the path given is used by the extension as an absolute path.
The generation process is performed for each store in the Magento installation. The XML files generated are thus based on the domain of the store. For example, the Magento store at '
<your domain>' with output directory 'myshopping-feeds/' would be written to:
The above feed file would be available to MyShopping at:
<your domain>/myshopping-feeds/<your domain>-products.xml
Each feed may have a default category specified, this category is assigned to products that do not appear in any particular categories. The Getprice feed allows the featuring of the manufacturer of the products to be enabled or disabled, as shown below:
In MyShopping and Shopbot this is achieved via a flexible mapping system:
The Shopbot feed, as configured above, has 4 product attributes featured in the feed: manufacturer, description, product category and product image link. These attributes are selectable through a drop-down list on the left column "Magento product attribute"; the right-hand column allows a label to be given to these attributes as included in the feed. For example, the attribute 'manufacturer' and tag 'brand' will result in the feed generated including '<brand>Sony</brand>' for a Sony manufactured product in Magento. Clicking 'Add linked attribute' allows for more attributes to be mapped to the generated feed.
Each shopping feed includes an option to cause products being considered for inclusion in the feed generation to be either 'included by default' or 'excluded by default' through the Magento backend. In the majority of situations products will want to be included by default and only excluded for special circumstances. To achieve this the feed should be marked as 'Yes' for the option 'Include products by default'. A new Magento attribute can be created to accompany this functionality, e.g. "Hide In Feeds", as a Yes/No attribute. Once this attribute is added to the 'default' attribute set and the appropriate products are marked as 'Yes' to be excluded, we can select this attribute in the backend via the 'Override individual products with attribute' option.
The alternative approach is to exclude all products by default. In this case products are only included in the feeds when the attribute associated to that feed is considered true for that product. In the example of a Yes/No attribute this would be most aptly named "Show In Feeds".
Comparison Feed Checklist
The following are details of the comparison feeds generator that have caught out some users in the past. If you are having difficulties generating feeds ensure you check the following:
- The feeds are marked as disabled to begin with. You can enable the feeds individually via the System → Config → Feeds Generator in the Magento backend.
- Be patient. The feeds generation is set to run overnight at midnight. Installing the extension does not trigger a run of the script.
- Check the Magento Cron Job is running. The feeds generation is triggered by the general Magento cron job which is located under the Magento environment: /path/to/magento/cron.php This cron job should be set up to run every 5 minutes on your server.
- Check permissions. If the feeds do not generate overnight you may wish to check the permissions of the Magento environment or create the feed directories manually. The paths to the feeds directories are configurable via the Magento backend, by default the getprice directory would be: /path/to/magento/getprice-feeds/ Create this directory and make it world-writable.
- Check PHP command-line can be executed. Access to the PHP command-line interpreter is required for this extension to handle vast product catalogs. Ensure the command-line interpreter can be run successfully on your server via a shell prompt. Start by testing the Magento cron script: "php /path/to/magento/cron.php"
- Check your logs. The extension has some logging calls available. Enabling the Magento log and reviewing the output may help diagnose the problem.
Development and Testing Script
The following is a short PHP script we have used in the development of the extension. It is used to trigger the feed generation segment of the Australia Extension without having to wait for the Magento cron job to kick-off. To aid any developers having difficulty debugging the feeds generation we decided to share this code:
<?php // Define path to Magento define("MAGE_BASE_DIR", '/path/to/magento'); // Kick-start the Magento stack require_once MAGE_BASE_DIR . '/app/Mage.php'; Mage::app(); // Initialise and trigger the MyShopping feed $model = Mage::getModel('australia/myshopping_cron'); $model->nonstatic(); // Initialise and trigger the GetPrice feed $model = Mage::getModel('australia/getprice_cron'); $model->nonstatic(); // Initialise and trigger the Shopbot feed $model = Mage::getModel('australia/shopbot_cron'); $model->nonstatic();
Note: The time taken to generate the feeds has been improved considerably in the latest release. Generating feeds for two to three stores with approximately 10,000 products each should now take less than an hour.
- 2.2.5 - 16/09/2013
- Bugfixes for postcode installation.
- Updates to eParcel code.
Thanks to Lucas van Staden for his contributions to this release.
- 2.2.4 - 07/05/2013
- Improvements to postcode installation for performance and reliability.
- Include DH Media eParcel extension.
- Fix for address autocomplete.
- Removed deprecated PHP code.
- 2.2.1 - 1/10/2012
- Reworked the Australia Post shipping method to be more flexible.
- Improvements to shopping feed code.
- Changed the way postcodes are imported to improve performance of new installs.
- 2.0.7 - 17/6/2010
- Added new inclusion and exclusion controls to each shopping feed.
- Updated the PHP function used to initialise sub-processes in the shopping feed generation from 'exec' to 'shell_exec'.
- Added more thorough and consistent logging messages across all the shopping feeds.
- 2.0.4 - 16/4/2010
- Improved speed at which shopping feeds are generated.
- Fixed various shopping feed issues.
- 2.0.3 - 7/4/2010
- Removed superfluous GST tax model.
- Registered Post no longer displays "with Extra Cover" option for orders under $100.
- Fixed bug with whitespace in post codes.
- Fixed bug with Extra Cover methods having the same method code as standard methods.
- 2.0.2 - 8/3/2010
- Fixed minor issue with PHP tags which could cause problems on some PHP setups.
- 2.0.1 - 1/3/2010
- Fixed issue with BPAY and Direct Deposit always being active during checkout.
- Checked compatibility with Magento 22.214.171.124 - 126.96.36.199.
- 2.0 - 26/1/2010
- Improvements to BPAY CRN calculations.
- Addition of comparison shopping site feeds.
- 1.2.6 - 28/9/2009
- Minor fix to database update script to solve issues when using table prefixes.
- 1.2.5 - 16/9/2009
- Fixes to Direct Deposit and BPAY templates.
- All shipping and payment methods are disabled by default.
- 1.2.4 - 1/9/2009
- Minor update to add more robust response parsing from Australia Post DRC.
- 1.2.3 - 24/8/2009
- Code clean up and minor improvements for eParcel module.
- 1.2.2 - 28/7/2009
- Fixed issue with eParcel rates database.
- 1.2.1 - 24/7/2009
- Fixed issue with eParcel shipping method in Magento 1.3.x.
- Added a more robust connection method to Australia Post DRC server.
- Added Registered Post shipping options to Australia Post.
- Added Australia Post eParcel support (ALPHA) (rate calculation based on AuctionMaid MatrixRate)
- Updated for Magento 1.2.
- Added address autocomplete.
- Updated for compatibility with Magento 1.1.
- Direct deposit info block in the checkout sidebar does not display bank information.