It’s been about 3 weeks so far of learning Magento… great system, love it heaps! Chris’s patches have helped out a huge deal. Thanks Chris!
However, there are a number of issues I’ve run into for us Australian developers.
1. There isn’t an easy/upgradable way to have tax invoices formatted the way the ATO legally requires us to!
Problems:… The issues are: 1. No ABN or Organisation Name in invoices, 2. The words “Invoice” instead of “TAX INVOICE”, 3. “Tax” with a plus symbol appearing next to it to show the GST component rather than just showing GST and nothing else. 4. No invoice date set in invoice emails (ATO requires an invoice date). 5. No invoice date in Tax Invoice printout (ATO requires a tax invoice date, not an order date). 6. The system by default sends out only a new order email, when it should send both the new order and tax invoice emails out (or at least the tax invoice email). 7. The link to print invoice should say “print tax invoice”, as for any other area where it meets the criteria. 8. Tax invoice columns need to have an option to show the GST component per item, and the heading to be GST and not tax if that is the case. 9. Recording of ABN numbers in the customer account is available if you use the Tax/VAT field built into magento, they should change this to Tax/VAT/ABN field instead (so its not just for the UK, but also Australia and all other countries)… possibly this field should be locale specific. If the Tax/VAT field is populated, it should appear in the TAX INVOICES sent out. 10. The email html templates don’t exist for the Australian Locale, have had to modify the US ones. 11. The words “Grand Total” and “Sub Total” should say “Total (Inc. GST) or Total (Ex. GST)” and “Sub Total ex GST"… these words will also need to be dependent on the invoice being GST inclusive or GST exclusive (eg, FRE).
Solutions: .... There is no easy way for us to fix this. If we modify the en_AU locale files and an update happens, the new words may not be picked up or get changed. Also, if we modify the code directly (like I had to do), then we can’t upgrade our version of Magento without doing a universal diff and patch on the entire sourcecode each time we upgrade. For now, we have to manually edit all the source files (I would rather do that than hack up things like “Grand Total”, “Total (Inc. GST)” in the en_AU locale csv files… that could lead to problems of new code (or other code) that uses that string and then populates its area with your replacement when it shouldn’t… Actually when I think about it.. theres no solution except for biting the dust on this one and hope that one day, magento will meet our LEGAL requirements… otherwise the product will suffer a lot in this country because no developer is going to want to patch it each time a new version is released.
2. I wrote a magento payment gateway for Westpac’s PayWay Net and based it on the PayPal Standard checkout code (already in magento). However, I don’t know if I can release this code as it includes the skeleton PHP files that westpac provide (and they hold the copyright to it). But I’m happy to answer questions about how to get it to work if anyone wants to know. The payment gateway seems to be one of the easier things to write.
3. I hate how magento doesn’t have the option to remove “compare products” and newsletter subscriptions from ALL parts of the system. We use vision6 for our newsletters and don’t want to use the built in newsletter code to do this.. the display code needs to be more modular for components like wishlist, newslettters, compare products, etc etc. anything that just generally isn’t “core” to a shopping cart system.
4. The XML layouts are spagetti. Grep is the only way to figure out how stuff appears throughout the site… EG. you can have newsletter sidebars appearing in 3 different layout files, but you wouldn’t know that if you didn’t grep the xml. There needs to be some kind of interface to manipulate these XML files and view the layers. One of the things i did was to echo the names being called for each block in List.php… this helped heaps in the grep process!
5. Theres no way to purge existing data in the system from the admin panel, eg, orders (especially ones that were done for test purposes), or any way to flush out the whole system without reinstalling the databases (and losing your settings). I found a few answers on other forums ... but the db schema changes often.
6. Virtual product support sucks! This is the most essential component that we need for our products. We don’t sell anything that ships.. we sell courses online and this requires a task to run on the order “processing” status to turn that order that contains tasks that require an action (eg, create course users) and then set the order as “complete” once this is done. Secondly, there is no way to sell any pdf files etc online, nor serial numbers which we also require to sell online.
7. The outdated documentation isn’t a great “starting point” and is too complex.. it took me a while and a few forums to figure out how it all “hung together” when I first learnt about the code. There needs to be some kind of “quick start” guide to everything, that is FAR less complicated and more to the point rather than discussing the philosophy of why things were done a certain way. Some more pages on basic grid views and how to implement a basic site (maybe a screencast) would be good too! I mean they don’t even talk about how to theme the front page in a decent way.. you gotta dig around to figure that one out. I know you can edit the static pages, but it would be nice to have a list of blocks and resources that people can generally “plug in”.. and this comes back to the whole ugly XML interface thing… (but they are probably working on an elaborate solution for this anyway).
Anyway, that’s my rant. Great system, lots of potential.. but im on that cusp of wondering if “its worth it” or if something else would be more simple (but everything else on the market looks crap anyway, so what else can you do?).