This introductory article for Magento is aimed at providing essential information to newbie webmasters and web developers. It is part of a series of Envato Tuts+ introduction articles on different CMSs, in which we’ll explain the CMS from a beginner's point of view and examine why and how this particular CMS is a good fit for your projects. You’ll see Joomla, Drupal, Prestashop and other CMSs explained in some upcoming articles.
The scope of this particular article is to give you a brief and non-technical introduction to what Magento is, for what kind of projects Magento is a good fit, a quick and fast way to install Magento, how you can start your journey of learning Magento and exploring this great CMS in detail, and what are some good resources for finding Magento themes, extensions, etc. And lastly, if you think Magento isn’t a good fit for your web projects, what are some of the other alternatives available in the market that you can consider.
What Is Magento?
Magento, in short, is a robust eCommerce CMS. I think explaining these three terms: ‘robust’, ‘eCommerce’, and ‘CMS’ would amply explain to you what Magento is.
Starting with CMS, it is an acronym for Content Management System. To understand what a Content Management System is, let me give you a brief overview of its historical development, which will give you clear idea of what it is and why it is used. When website development emerged, people used to create websites from scratch as per clients’ requirements, building a font-end using HTML/CSS/JS etc, a back-end in different back-end languages like PHP, .NET etc, setting up databases, and configuring everything.
But this approach had two problems. First, as clients didn’t know any programming, every time they needed to edit their website or add/modify content, they had to call the web company, and that used to cost them money and time. The second problem was that it was a lot of work to create websites from scratch every time.
As a solution to the first problem, developers started developing some user-friendly admin panels for their websites, where non-technical web managers could easily add/modify content without messing around with the code.
And for the second problem, they realized that most of the websites they developed had many things in common, so instead of creating websites from scratch, they could develop some good starting points, which provided all the functionality, and then users could modify them as per their needs.
The combination of these two solutions is a Content Management System. Now the concept is quite popular, and a constant struggle between different CMSs has made them over time more user-friendly and easy to install, and there are tons of extensions/plugins available, which can enhance your CMS’s functionality.
The second term, eCommerce, is sort of self-explanatory. It is related to online shopping. So the reason Magento is different from other non-eCommerce CMSs like WordPress, Drupal, Joomla, etc., is that unlike them, it is a dedicated eCommerce CMS, whose prime purpose is to provide an online store, where you can sell digital and physical products. And as it is exclusively an eCommerce CMS, it has far more eCommerce features than the eCommerce plugins of non-eCommerce CMSs.
There are tons of eCommerce CMSs around the web. Everyone with some knowledge of web development can create their own, and here the third term robust distinguishes Magento from them. Robust means something strong and healthy. Unlike some other eCommerce CMSs that are badly written and full of bugs, Magento is a vigorous CMS, which is quite sturdy in its construction, and has a strong community backing it.
Proof of its robustness is that it is used by many large-scale eCommerce enterprises with millions of dollars in revenues like Nordstrom, Adidas and North Face. In fact, Magento Enterprise Edition can support more than 350 million catalog views and 487,000 orders per day.
Hopefully now you’ll fully realize what I mean when I say Magento is a robust eCommerce CMS. That was a very long introduction to what Magento is. Now let’s see for what kind of projects Magento is a good fit.
Who Is Magento Aimed At?
As explained above, Magento is a very robust and powerful CMS, and it's used by many popular and heavy-traffic online stores. That implies it is definitely a good fit for large-scale eCommerce websites, but now the question arises, is it a good fit for small-scale online stores? The answer to that isn’t quite so simple.
Let’s admit, prior to Magento 2.0, Magento wasn’t very user-friendly, and definitely not very easy to install. It isn’t that installation requires lot of steps, it’s just that unless you have installed it many times before, you are sure to come across different issues/errors while installing it. The Magento admin panel also wasn’t very user-friendly and intuitive. Another big issue with Magento was that it is a huge CMS with tons of files, and that caused slow performance on web sites.
Almost all of these issues have been well-addressed in the release of version 2.0, but still it’s not a CMS I would recommend for a five-item store, where you know you won’t be expanding your store in future as well. However, if you plan on expanding your online store in future, I would recommend starting with Magento, as it is a CMS with proven performance to support large stores, and it’s definitely worth the effort of installing it in the first place instead of switching to Magento at a later stage, which is quite a hassle.
How Can I Install Magento?
As just said, Magento installation isn’t straightforward, though it might look like it. So, instead of explaining all the Magento installation procedures here with all the best practice advice and solutions to the problems you might come across, I’ll leave all that to the extensively written Magento installation guides on the Magento website, as it has addressed all these issues.
However, I’ll give you a bird’s-eye view of the steps of Magento installation. It’ll give you a basic idea of the steps involved. To install Magento, you need to go through these few steps:
- Choose the Magento version you need to install: Magento 1 or Magento 2. The preferred choice for new Magento installs should be Magento 2.
- Make sure your server has the right versions of PHP, MySQL and Apache to support Magento.
- Upload the Magento files on your server, and run the installation wizard.
- Optional: Install dummy data during installation, if needed.
- Verify the install, and make sure the admin panel and front-end are working properly.
How Can I Get Started Developing for Magento?
Let me give you this point blank: Magento is hard to learn. I have worked with over a dozen CMSs during my web development career, and I don’t want to sugar-coat this fact: Magento is the hardest to learn of the CMSs I’ve come across.
In Magento, if something goes wrong, you keep wondering whether it was because you did something wrong in the totally counter-intuitive admin panel, or you messed with some PHP or JS code, or maybe there was some problem with the XML files.
There are so many files to look for and manage, some of them miles apart (in terms of folder structure traversal time, thanks to its extremely deep folder structure), and the official documentation in earlier versions was very poor, and there was a complete lack of an official API. Many of these issues have improved over time, but Magento is still not easy to grasp.
So, the question arises, is it worth the time to learn Magento, when it is still difficult. Let me share my personal story on that. I used to work on different CMSs like WordPress and Joomla, but then I came across Magento for a project, and I found it obnoxiously difficult. But instead of running away from it, I saw a good opportunity in it, as despite being the number one eCommerce CMS in terms of performance, it had quite a shortage of developers. So I started exploring it, and within months I started developing some grip over it.
I developed some Magento themes for Envato Market, and there wasn’t much competition in that too (back then at least). I started writing about it and got many freelance projects on Magento. All of that wouldn’t have been that much easier if I was working in a highly competitive niche like WordPress. So Magento is hard, and it’s being hard that makes it great.
Image Source: https://www.pinterest.com/pin/112378953175248482/
You might be thinking that what I just said might be true if you opt for Magento learning as a career, but what if you just want to build one website using it? Should you go through all the suffering of learning it?
the good news is, you don’t need to. You really don’t need to understand what’s
going on ‘under the hood’, if you just want to make a website out of Magento.
All you need to do is install Magento on your server, find some good themes and
extensions for it from the resources I’ll mention next in this article, and
you’re pretty much all set! Then you’ll be just dealing with the admin panel, and
for that you don’t need any technical knowledge.
If you are just creating one project, go through the Magento installation documentation (mentioned above), and explore some resources to find good themes and extensions (I’ll mention some below), and if you come across some issues, search for answers online. That’s all you would need.
However, if you are opting for it as a professional career, you need much more than that. You need to develop a good grasp over PHP, MySQL, HTML, CSS, JS, and XML. Then you need to develop some understanding of the PHP Zend Framework, on which Magento is built.
Once you do that, you have done some good ground work, and now you can start learning Magento directly. For that, four main resources which I would recommend are:
- The Magento official devdocs (they are drastically improved with Magento 2)
- Alan Storm's blog on Magento
- Inchoo blog
- Envato Tuts+ articles on Magento
Here at Envato Tuts+ we have gathered a good collection of Magento articles over time, including articles on creating Magento extensions and my 10-article extensive series on creating a Magento theme from scratch. Also, I would very strongly recommend Milan Stojanov's video course on Magento development.
Where Can I Find Themes and Extensions for Magento?
When it comes to finding good quality Magento themes and templates, your go-to resource should be Envato Market (ThemeForest). It's the number one resource, with most high-quality themes there. I’ve been both a seller and buyer of Magento themes from Envato Market, and I can vouch for their high quality standards.
However, if you are looking for free themes, you’ll find some good ones on the Magento Connect site. The quality of these themes isn’t very good, and support is totally absent, but it is a good fit if you are just testing your store or have a small store to run.
For finding extensions, the only resource you need to know is Magento Connect. You’ll find almost all your required extensions there. You can check user reviews, screenshots, etc., to choose the right extension. Some extensions are free, but for some you need to pay.
What Alternatives Are There?
Magento would not be a good fit for your store in two cases. Firstly, if you are already using some other CMS for your non-eCommerce site (like WordPress, Drupal etc), and you just want to add a small store to it to sell some products. Secondly, if you only have a few products to sell, and don’t want to complicate your life with some hi-fi eCommerce CMS.
For the first case, I would recommend finding good eCommerce plugins for your CMS, instead of adding a stand-alone eCommerce CMS like Magento. For WordPress, a good and popular eCommerce plugin is WooCommerce, and for Drupal, DrupalCommerce is a really good eCommerce module.
For the second case, my suggestion would be to stick with an online eCommerce store that will manage everything for you and for which you only need to pay few bucks a month, in lieu of all the headache of setting up and managing a website. Some good online eCommerce store providers are Shopify and BigCommerce.
I hope this article has given you a basic understanding of what Magento is all about, whether you should consider it for your project, and whether learning Magento could be a good career choice for you or not.
I’ve also pointed out some resources where you can learn Magento and find other Magento resources like themes and extensions. And lastly, I've looked at some good alternatives to consider, if you don’t think Magento is a good match for your project.
As you can see, Magento is a powerful eCommerce solution and it keeps getting stronger with each version. Whether or not you're just getting started or you're starting with the next version, don't forget to check out the extensions we have available for you, as well.
So are you interested in learning more about Magento? Stay tuned for more Magento articles here on Envato Tuts+!