If you ask me, there are two important things that make Magento so attractive. First, its free and open source. Until month ago Magento was fully free, now they have Community and Enterprise editions. But make no mistake, when it comes to out of the box feature list, Community edition will most likely beat any open source cart out there. Rich “out of the box” features are the second thing that make it so attractive.
However, after a year of development with Magento, one catches most of its quirks.
- Complete lack of official API (or SDK, or whatever you like to call it) documentation
- Extremely deep folder structure that is fully inadequate in design process
- Error handling functions that most of the time die quietly, especially with xml (config, layout) related issues
- Large number of files in system which makes it fully impractical to do installations and backup by transferring files over FTP
- Performance issues in shops with large number of products (20 000, 30 000 and more)
There are more to add to the list, but these are the ones that caught my attention for most of the time. We do every day Magento development, and believe me its quite hard to explain your client that sometimes it takes you 2-4 times more to develop a feature for Magento than for some other system out there.