While we love Magento and highly recommend it to anyone who wants to open an online store, Magento has some drawback as well.To be honest and educate visitors of our website we have put together this list of ten things where Magento Community has opporunity for improvement. Here it goes:
Full Page Caching
What Magento needs desperately but is only available in the premium version of Magento, which costs over $14,000 / year, is the ability to offer full page caching. Full page caching would allow your website to serve a product list page as an html page, which would save load time dramatically, as well as server resources, instead of dynamically calling the database and every important file necessary to delivery a magneto product page.
Full page caching would come in handy if you have a lot of visitors and you want to avoid hitting your database with each request. This would save bandwidth and memory in addition to causing less strain on your database which will ensure your website runs smoothly without downtime.
Built In Affiliate Program
An affiliate program allows you to have your customers recommend products on your behalf by emailing or advertising a unique store url that is assigned to each affiliate that allows Magento to track a percentage of each sale. So imagine you are selling a book for $30 and your affiliates are entitled to 50% of each sale.
The affiliate can log into their account, notice a url generated for them automatically and every time they show somebody that special affiliate url, any sale that comes from it is credited to them. At the end of the month, the store owner can export a list of those affiliates and pay them via paypal mass pay or simply cut them checks. An affiliate program is one of the most effective forms of free advertising and sales generation and it would be a tremendous asset to a user to have this built into Magento out of the box.
Attribute Sales Reports
If you are adding products to your store you may notice you can add attributes such as ‘size’ or ‘country of origin’. These are values you can add to a product that are not part of the default ‘add product/edit product’ form. When you add them, you can display these on the product page but the sales reports, in the back end, will not allow you to automatically view sales by attributes.
For instance, imagine you sell tshirts and you want to see how many sales you receive from the large size shirts compared to small. That would be a feature that would come in handy but, for now, it must be custom built or can be provided by a third party module.
Built In Hyphenated Url Control
This is more of a ‘technical’ issue but when you create your own controller, which basically means set of functions to add to Magento’s functionality, you can control the path of the url. For instance, if your website is titled:
and you want a custom product search that only searches by a unique attribute, such as tshirt size, you can control the name of the path of the url such as:
While Magento gives category pages a url with hyphens, or the opportunity to add them, any page within a custom controller, which follows the /search-by-size path, will not allow you to add hyphens to the name by default. So instead of being able to have a ‘sub section’ of the ‘search by size’ function, where the url would be listed as:
you would be forced to customize the controller to allow that url to load. Or you would have to edit an .htaccess file or use underscores. The inability to have full control over the pages that follow the path of the ‘front end name’ of a controller (search-by-size) can make it hard to customize urls that are ‘search engine friendly’.
While this may not seem like a big deal to most users, because they can just create category search pages which come with the ability to add hyphens in the name, when adding something unique to Magento, it would be nice to have that kind of control over the url as a hyphenated name looks nicer than a url with underscores or words bunched together.
In Depth Documentation
Magento has a great wiki but a lot of it is either outdated or not in depth enough to take you to the next level. I have found, as a developer, that I have learned more from programmer websites and blogs than I have from Magento’s website.
I would like to see more focus on real world issues, such as the issue I addressed above (hyphenated urls in custom controllers) and more emphasize on teaching people how to develop event listeners (Functions that perform a task when an action takes place, such as adding a product, saving a product, capturing a sale etc).
Reliable Free Support
Well, I cannot expect this to be the case for the free Magento Community users but I have noticed that it is hard to get good answers on the main support board. I cannot blame them for this being the case but, if I am going to create a list of 10 things Magento is missing, why not be greedy?
Advanced Gift Giving System
Magento Community, the free edition, comes pre-built with a solution to allow you to offer a gift message but it does not come with a built in feature to control gift cards/gift wrapping. Adding this to this built in ‘gift message’ feature would be tremendous but it is understandable that the free version would be limited. So if you are new to Magento and are used to such functionality you will have to invest in 3rd party modules to simulate these actions.
Magento, by default, only supported Mysql databases. Mysql is a free database solution that comes pre-installed with just about any hosting package on a Linux or Unix server. Mysql is the default standard for most PHP websites so it made sense, when Magento first rolled out, to work with a database most people were familiar with.
As time went on, though, and sites grew in complexity, there was a need for more database types such as Oracle, used for very large websites and complicated transactions, and Postgres, a nice ‘in between’ solution for those not ready to invest in Oracle but what more advanced functionality than is available with Mysql.
While this might not matter to most website owners, from a development standpoint I cannot emphasize how important it is to increase as many options as possible when it comes to handling your data and serving your pages efficiently.
Quoting Magento in regards to what will be possible with Magento 2.0:
“The purpose of automated tests in Magento is to help developers avoid errors when developing new or modifying existing functionality. Requirements, posted in the guides below, have been adopted by the Magento core team.
All 3rd-party developers are encouraged to conform to these guidelines in order to provide Magento-related products with similar quality.” This functionality was not available in the first phase of Magento which is what 99% of the websites today are running on. A stable version of Magento 2.0 will arrive next year.
While it is safe to say that a free edition of Magento does not need to include these features it is important, for a potential customer and future developers to know where it stands in terms of usability and where it potentially falls short. Magento is a powerful e-commerce solution and it can be an embarrassment of riches when you consider that it is open source but it is also important to be realistic when creating a new site with it.
Take the time to do the research on which web hosts and modules work best with Magento because the difference between being prepared and being unprepared can be months of development and thousands of dollars.