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.
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.
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.
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:
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?
Well,
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:
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.
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.
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+!
The Best Small Business Web Designs by DesignRush
/Create Modern Vue Apps Using Create-Vue and Vite
/How to Fix the “There Has Been a Critical Error in Your Website” Error in WordPress
How To Fix The “There Has Been A Critical Error in Your Website” Error in WordPress
/How Long Does It Take to Learn JavaScript?
/The Best Way to Deep Copy an Object in JavaScript
/Adding and Removing Elements From Arrays in JavaScript
/Create a JavaScript AJAX Post Request: With and Without jQuery
/5 Real-Life Uses for the JavaScript reduce() Method
/How to Enable or Disable a Button With JavaScript: jQuery vs. Vanilla
/How to Enable or Disable a Button With JavaScript: jQuery vs Vanilla
/Confirm Yes or No With JavaScript
/How to Change the URL in JavaScript: Redirecting
/15+ Best WordPress Twitter Widgets
/27 Best Tab and Accordion Widget Plugins for WordPress (Free & Premium)
/21 Best Tab and Accordion Widget Plugins for WordPress (Free & Premium)
/30 HTML Best Practices for Beginners
/31 Best WordPress Calendar Plugins and Widgets (With 5 Free Plugins)
/25 Ridiculously Impressive HTML5 Canvas Experiments
/How to Implement Email Verification for New Members
/How to Create a Simple Web-Based Chat Application
/30 Popular WordPress User Interface Elements
/Top 18 Best Practices for Writing Super Readable Code
/Best Affiliate WooCommerce Plugins Compared
/18 Best WordPress Star Rating Plugins
/10+ Best WordPress Twitter Widgets
/20+ Best WordPress Booking and Reservation Plugins
/Working With Tables in React: Part Two
/Best CSS Animations and Effects on CodeCanyon
/30 CSS Best Practices for Beginners
/How to Create a Custom WordPress Plugin From Scratch
/10 Best Responsive HTML5 Sliders for Images and Text… and 3 Free Options
/16 Best Tab and Accordion Widget Plugins for WordPress
/18 Best WordPress Membership Plugins and 5 Free Plugins
/25 Best WooCommerce Plugins for Products, Pricing, Payments and More
/10 Best WordPress Twitter Widgets
1 /12 Best Contact Form PHP Scripts for 2020
/20 Popular WordPress User Interface Elements
/10 Best WordPress Star Rating Plugins
/12 Best CSS Animations on CodeCanyon
/12 Best WordPress Booking and Reservation Plugins
/12 Elegant CSS Pricing Tables for Your Latest Web Project
/24 Best WordPress Form Plugins for 2020
/14 Best PHP Event Calendar and Booking Scripts
/Create a Blog for Each Category or Department in Your WooCommerce Store
/8 Best WordPress Booking and Reservation Plugins
/Best Exit Popups for WordPress Compared
/Best Exit Popups for WordPress Compared
/11 Best Tab & Accordion WordPress Widgets & Plugins
/12 Best Tab & Accordion WordPress Widgets & Plugins
1New Course: Practical React Fundamentals
/Preview Our New Course on Angular Material
/Build Your Own CAPTCHA and Contact Form in PHP
/Object-Oriented PHP With Classes and Objects
/Best Practices for ARIA Implementation
/Accessible Apps: Barriers to Access and Getting Started With Accessibility
/Dramatically Speed Up Your React Front-End App Using Lazy Loading
/15 Best Modern JavaScript Admin Templates for React, Angular, and Vue.js
/15 Best Modern JavaScript Admin Templates for React, Angular and Vue.js
/19 Best JavaScript Admin Templates for React, Angular, and Vue.js
/New Course: Build an App With JavaScript and the MEAN Stack
/Hands-on With ARIA: Accessibility Recipes for Web Apps
/10 Best WordPress Facebook Widgets
13 /Hands-on With ARIA: Accessibility for eCommerce
/New eBooks Available for Subscribers
/Hands-on With ARIA: Homepage Elements and Standard Navigation
/Site Accessibility: Getting Started With ARIA
/How Secure Are Your JavaScript Open-Source Dependencies?
/New Course: Secure Your WordPress Site With SSL
/Testing Components in React Using Jest and Enzyme
/Testing Components in React Using Jest: The Basics
/15 Best PHP Event Calendar and Booking Scripts
/Create Interactive Gradient Animations Using Granim.js
/How to Build Complex, Large-Scale Vue.js Apps With Vuex
1 /Examples of Dependency Injection in PHP With Symfony Components
/Set Up Routing in PHP Applications Using the Symfony Routing Component
1 /A Beginner’s Guide to Regular Expressions in JavaScript
/Introduction to Popmotion: Custom Animation Scrubber
/Introduction to Popmotion: Pointers and Physics
/New Course: Connect to a Database With Laravel’s Eloquent ORM
/How to Create a Custom Settings Panel in WooCommerce
/Building the DOM faster: speculative parsing, async, defer and preload
1 /20 Useful PHP Scripts Available on CodeCanyon
3 /How to Find and Fix Poor Page Load Times With Raygun
/Introduction to the Stimulus Framework
/Single-Page React Applications With the React-Router and React-Transition-Group Modules
12 Best Contact Form PHP Scripts
1 /Getting Started With the Mojs Animation Library: The ShapeSwirl and Stagger Modules
/Getting Started With the Mojs Animation Library: The Shape Module
/Getting Started With the Mojs Animation Library: The HTML Module
/Project Management Considerations for Your WordPress Project
/8 Things That Make Jest the Best React Testing Framework
/Creating an Image Editor Using CamanJS: Layers, Blend Modes, and Events
/New Short Course: Code a Front-End App With GraphQL and React
/Creating an Image Editor Using CamanJS: Applying Basic Filters
/Creating an Image Editor Using CamanJS: Creating Custom Filters and Blend Modes
/Modern Web Scraping With BeautifulSoup and Selenium
/Challenge: Create a To-Do List in React
1Deploy PHP Web Applications Using Laravel Forge
/Getting Started With the Mojs Animation Library: The Burst Module
/10 Things Men Can Do to Support Women in Tech
/A Gentle Introduction to Higher-Order Components in React: Best Practices
/Challenge: Build a React Component
/A Gentle Introduction to HOC in React: Learn by Example
/A Gentle Introduction to Higher-Order Components in React
/Creating Pretty Popup Messages Using SweetAlert2
/Creating Stylish and Responsive Progress Bars Using ProgressBar.js
/18 Best Contact Form PHP Scripts for 2022
/How to Make a Real-Time Sports Application Using Node.js
/Creating a Blogging App Using Angular & MongoDB: Delete Post
/Set Up an OAuth2 Server Using Passport in Laravel
/Creating a Blogging App Using Angular & MongoDB: Edit Post
/Creating a Blogging App Using Angular & MongoDB: Add Post
/Introduction to Mocking in Python
/Creating a Blogging App Using Angular & MongoDB: Show Post
/Creating a Blogging App Using Angular & MongoDB: Home
/Creating a Blogging App Using Angular & MongoDB: Login
/Creating Your First Angular App: Implement Routing
/Persisted WordPress Admin Notices: Part 4
/Creating Your First Angular App: Components, Part 2
/Persisted WordPress Admin Notices: Part 3
/Creating Your First Angular App: Components, Part 1
/How Laravel Broadcasting Works
/Persisted WordPress Admin Notices: Part 2
/Create Your First Angular App: Storing and Accessing Data
/Persisted WordPress Admin Notices: Part 1
/Error and Performance Monitoring for Web & Mobile Apps Using Raygun
/Using Luxon for Date and Time in JavaScript
7 /How to Create an Audio Oscillator With the Web Audio API
/How to Cache Using Redis in Django Applications
/20 Essential WordPress Utilities to Manage Your Site
/Introduction to API Calls With React and Axios
/Beginner’s Guide to Angular 4: HTTP
/Rapid Web Deployment for Laravel With GitHub, Linode, and RunCloud.io
/Beginners Guide to Angular 4: Routing
/Beginner’s Guide to Angular 4: Services
/Beginner’s Guide to Angular 4: Components
/Creating a Drop-Down Menu for Mobile Pages
/Introduction to Forms in Angular 4: Writing Custom Form Validators
/10 Best WordPress Booking & Reservation Plugins
/Getting Started With Redux: Connecting Redux With React
/Getting Started With Redux: Learn by Example
/Getting Started With Redux: Why Redux?
/How to Auto Update WordPress Salts
/How to Download Files in Python
/Eloquent Mutators and Accessors in Laravel
1 /10 Best HTML5 Sliders for Images and Text
/Site Authentication in Node.js: User Signup
/Creating a Task Manager App Using Ionic: Part 2
/Creating a Task Manager App Using Ionic: Part 1
/Introduction to Forms in Angular 4: Reactive Forms
/Introduction to Forms in Angular 4: Template-Driven Forms
/24 Essential WordPress Utilities to Manage Your Site
/25 Essential WordPress Utilities to Manage Your Site
/Get Rid of Bugs Quickly Using BugReplay
1 /Manipulating HTML5 Canvas Using Konva: Part 1, Getting Started
/10 Must-See Easy Digital Downloads Extensions for Your WordPress Site
/22 Best WordPress Booking and Reservation Plugins
/Understanding ExpressJS Routing
/15 Best WordPress Star Rating Plugins
/Creating Your First Angular App: Basics
/Inheritance and Extending Objects With JavaScript
/Introduction to the CSS Grid Layout With Examples
1Performant Animations Using KUTE.js: Part 5, Easing Functions and Attributes
Performant Animations Using KUTE.js: Part 4, Animating Text
/Performant Animations Using KUTE.js: Part 3, Animating SVG
/New Course: Code a Quiz App With Vue.js
/Performant Animations Using KUTE.js: Part 2, Animating CSS Properties
Performant Animations Using KUTE.js: Part 1, Getting Started
/10 Best Responsive HTML5 Sliders for Images and Text (Plus 3 Free Options)
/Single-Page Applications With ngRoute and ngAnimate in AngularJS
/Deferring Tasks in Laravel Using Queues
/Site Authentication in Node.js: User Signup and Login
/Working With Tables in React, Part Two
/Working With Tables in React, Part One
/How to Set Up a Scalable, E-Commerce-Ready WordPress Site Using ClusterCS
/New Course on WordPress Conditional Tags
/TypeScript for Beginners, Part 5: Generics
/Building With Vue.js 2 and Firebase
6 /Best Unique Bootstrap JavaScript Plugins
/Essential JavaScript Libraries and Frameworks You Should Know About
/Vue.js Crash Course: Create a Simple Blog Using Vue.js
/Build a React App With a Laravel RESTful Back End: Part 1, Laravel 5.5 API
/API Authentication With Node.js
/Beginner’s Guide to Angular: HTTP
/Beginner’s Guide to Angular: Routing
/Beginners Guide to Angular: Routing
/Beginner’s Guide to Angular: Services
/Beginner’s Guide to Angular: Components
/How to Create a Custom Authentication Guard in Laravel
/Learn Computer Science With JavaScript: Part 3, Loops
/Build Web Applications Using Node.js
/Learn Computer Science With JavaScript: Part 4, Functions
/Learn Computer Science With JavaScript: Part 2, Conditionals
/Create Interactive Charts Using Plotly.js, Part 5: Pie and Gauge Charts
/Create Interactive Charts Using Plotly.js, Part 4: Bubble and Dot Charts
Create Interactive Charts Using Plotly.js, Part 3: Bar Charts
/Awesome JavaScript Libraries and Frameworks You Should Know About
/Create Interactive Charts Using Plotly.js, Part 2: Line Charts
/Bulk Import a CSV File Into MongoDB Using Mongoose With Node.js
/Build a To-Do API With Node, Express, and MongoDB
/Getting Started With End-to-End Testing in Angular Using Protractor
/TypeScript for Beginners, Part 4: Classes
/Object-Oriented Programming With JavaScript
/10 Best Affiliate WooCommerce Plugins Compared
/Stateful vs. Stateless Functional Components in React
/Make Your JavaScript Code Robust With Flow
/Build a To-Do API With Node and Restify
/Testing Components in Angular Using Jasmine: Part 2, Services
/Testing Components in Angular Using Jasmine: Part 1
/Creating a Blogging App Using React, Part 6: Tags
/React Crash Course for Beginners, Part 3
/React Crash Course for Beginners, Part 2
/React Crash Course for Beginners, Part 1
/Set Up a React Environment, Part 4
1 /Set Up a React Environment, Part 3
/New Course: Get Started With Phoenix
/Set Up a React Environment, Part 2
/Set Up a React Environment, Part 1
/Command Line Basics and Useful Tricks With the Terminal
/How to Create a Real-Time Feed Using Phoenix and React
/Build a React App With a Laravel Back End: Part 2, React
/Build a React App With a Laravel RESTful Back End: Part 1, Laravel 9 API
/Creating a Blogging App Using React, Part 5: Profile Page
/Pagination in CodeIgniter: The Complete Guide
/JavaScript-Based Animations Using Anime.js, Part 4: Callbacks, Easings, and SVG
/JavaScript-Based Animations Using Anime.js, Part 3: Values, Timeline, and Playback
/Learn to Code With JavaScript: Part 1, The Basics
/10 Elegant CSS Pricing Tables for Your Latest Web Project
/Getting Started With the Flux Architecture in React
/Getting Started With Matter.js: The Composites and Composite Modules
Getting Started With Matter.js: The Engine and World Modules
/10 More Popular HTML5 Projects for You to Use and Study
/Understand the Basics of Laravel Middleware
/Iterating Fast With Django & Heroku
/Creating a Blogging App Using React, Part 4: Update & Delete Posts
/Creating a jQuery Plugin for Long Shadow Design
/How to Register & Use Laravel Service Providers
2 /Unit Testing in React: Shallow vs. Static Testing
/Creating a Blogging App Using React, Part 3: Add & Display Post
/Creating a Blogging App Using React, Part 2: User Sign-Up
20 /Creating a Blogging App Using React, Part 1: User Sign-In
/Creating a Grocery List Manager Using Angular, Part 2: Managing Items
/9 Elegant CSS Pricing Tables for Your Latest Web Project
/Dynamic Page Templates in WordPress, Part 3
/Angular vs. React: 7 Key Features Compared
/Creating a Grocery List Manager Using Angular, Part 1: Add & Display Items
New eBooks Available for Subscribers in June 2017
/Create Interactive Charts Using Plotly.js, Part 1: Getting Started
/The 5 Best IDEs for WordPress Development (And Why)
/33 Popular WordPress User Interface Elements
/New Course: How to Hack Your Own App
/How to Install Yii on Windows or a Mac
/What Is a JavaScript Operator?
/How to Register and Use Laravel Service Providers
/
waly Good blog post. I absolutely love this…