Magento – An Introduction
Here at Zion & Zion, we do a lot of Magento development, which has led me to write the post. Since its first public release in 2007, Magento has become a giant when it comes to eCommerce solutions. Magento has two editions: the /Enterprise Editionand the Community Edition.By having the two editions, Magento can cater to large-scale companies that have a lot of resources, as well as to those who are just entering the eCommerce realm with limited resources. This has really helped Magento grow as a business and lead the industry in eCommerce solutions.
However, Magento’s eCommerce growth can be attributed to a few factors; it is open source, free, and has a rich feature set out of the box. Not many solutions can boast that they offer that as clean and efficiently as Magento does, but there is a downside. The software is free, but free can be very subjective. As I said previously, Magento is literally a giant; with its huge file system, massive database, and intense system resource requirements, you should expect to be investing in the setup of Magento. But to really decide if Magento is right for you, let’s talk about some of the pros and cons to determine which one outweighs the other for your business.
Magento is big, and with big comes lots of pieces. Some pieces are obviously going to be better than others, but let’s first talk about the good ones that make Magento worth it. It’s free, open source, feature rich out of the box, reliable, and has a relatively large following in the public.
Pros of Magento
Pro: It’s Free!
The community edition is 100% free for download. It’s built off the same core that the enterprise edition uses; however, that means you’re left to the community when looking to troubleshoot issues. The enterprise edition comes with full support from the Magento team, which is obviously very familiar with the core of the software.
One major advantage with the community edition is by far the community itself. Many have developed extensions that can be easily installed through the Magento Connect Manager, which is built into the admin. From here you purchase extensions from developers on /Magento Connect, which is an easy way to add custom functionality to your site, or even find free ones that good Samaritans have released to the public.
Pro: Open Source
Open source is one of those controversial things that people are either for or against. From a business perspective, people want to keep their hard work secret and not reveal it to the public. A great example of this is Microsoft, which obviously is one of the most successful companies in the world, however it often falls under great scrutiny because of products that often fall below the mark, such as Internet Explorer.
Magento being open source has helped it evolve into what it is today, all because it’s open to the community to modify and improve on the previous generation of code to help release a better product. By having more people involved, development of patches can be released more quickly, bugs are found faster, and quality of product increases. In addition, every part of Magento is open to being customized by the developer, which is a feature that is definitely hard to come by.
Pro: Feature Rich Out of the Box
When thinking of features, Magento’s admin area is second to none. Out of the box it comes ready to go, with full feature sets ready to be enabled by the click of a button. As soon as you log in, you are shown a dashboard with analytical information on your daily transactions, what item is most popular, and so forth. It gives you the ability to quickly look at how your website is performing and see real time information so you can take action immediately.
The important part about this admin is that it is the brain of your entire site. From here you’re able to add plugins developed by 3rd parties from the connect manager. You can import products from spreadsheets, manage newsletter systems and subscribers, modify account information, and even start-to-finish manage an order of a customer. The best part is all of these capabilities are given to you simply by installing Magento.
Pro: Reliable and Large Public Following
Magento has been around for roughly 17 years now, and for any type of Tech Company to last that long, they must be doing something right. Over time, they have consistently improved their code, provided ample documentation, and been upfront with changes they plan to make. Magento has established a large foothold in the eCommerce industry, and I don’t see that changing for the foreseeable future. This gives the user a confidence boost to use their product, promise that they will be around in the future, and continue to improve on the product.
In addition to the Magento team, there is a large following for Magento. From developers to designers, the spectrum of those who contribute and provide to support community growth is always evolving. Magento wouldn’t be as successful as it is now if it wasn’t for the large community. The /Magento Forums are great for people to collaborate and help everyone out in troubleshooting bugs or coming up with new ideas. Take advantage of the Magento community and you’ll reap the benefits of all that this software has to offer.
Cons of Magento
So we now know a lot of the good pieces of Magento, but what about the bad ones?
Magento has a huge file structure, massive database, resource intensive, and can be rather slow*. Thus when deciding if Magento is right for you, you have to prepare much more in advance to determine if you can accommodate the resources Magento takes to function smoothly. Do you have an experienced team who can navigate the large system, and are you ready to take on this new system?
Con: File Structure
The file structure Magento uses is crazy. I hate to be so blunt, but when you have to open 11 directories to get to the file you want to edit, it’s over kill. There is a reason to the madness however, and that’s the modular structure Magento uses. When you want to modify a class, the structure typically will match the path you take to get to the file. However, as someone who has developed multiple Magento sites, I find this feature set to be one of the most annoying, especially when trying to explain to another developer what file to look at.
Con: Massive Database
Often times when troubleshooting a bug or trying to simply understand a feature more clearly, you may open up a tool such as phpMyAdmin to take a look at the database and see what’s actually being done. You may be used to 10-15 tables and that’s ok, but with Magento, there are over 250 tables. All I can say is that you haven’t lived ‘till you have had to track down some data in the database and you’ve gone through a Magento relationship string to find the end point with the table that has the data you want. In addition, making a SQL query to get a set of data typically takes a heavy SQL script with many joins.
Con: Resource Intensive
Magento is a hog when it comes to resources and if you don’t have the right server, it could bring it down. It is highly recommended to avoid basic shared hosting environments at places like GoDaddy or Host Gator. You really need a large private instance or dedicated server to keep up with the resources and disk space. This is where Magento can become pricey as setting up the proper environment can be costly, so this is a huge thing to take into consideration when choosing your eCommerce software.
Con: Slow*
There is an asterisk next to “slow” because Magento out of the box is usually slow. This is where knowledge of proper configuration, caching, and server come into play. If you were to put Magento on a simple shared hosting environment, it would more than likely crash the server instance or be slow as a snail. Having those additional resources really shows when you’re dealing with Magento. In addition, caching is a necessity when developing for Magento. In fact, it was the main solution by developers who were tasked with improving performance. So the asterisk remains. Magento by default is slow, but with the proper configurations, it can be fast!
Summary
Overall, Magento is a great product for being free. It provides you with the opportunity to turn it into something great, as long as you put some time and resources into it. It has its pitfalls and areas where it could still improve on, but that’s what is great about Magento. It is constantly evolving. In the future, I would hope the file structure is minified, the database is consolidated, and the resource intensity is reduced to allow for more cost efficient hosting methods. But I think the pros definitely outweigh the cons, and depending on where your business is at, you can decide if you agree.