On August 31, 2007 the first public version of Magento was introduced. Soon the SouceForge Community called it “The best new open source product”. In a few years Magento became one of the most popular ecommerce platforms. In this article we will tell you about Magento, why the number of developers and merchants who chose it increases, and what are the differences between the various releases. After reading this article you will be able to decide if it fits your business needs.
Table of contents:
Before we begin
We decided to write an article after numerous inquiries from our clients, who could not make a decision or “have heard something about Magento, but still do not understand what its peculiarities are”. Experienced merchants and developers are likely to know this information. We have plenty of other interesting materials on marketing, design and Magento 2 certification topics for them.
So what is Magento?
CMS or …?
Magento is typically considered to be an ecommerce CMS. An administrator manages the catalog of products, edits landing pages and creates various marketing programs. This part is usually referred to as a “content management system”. Management of buyers, processing of orders and payment acceptance are ecommerce components and every contemporary CMS has them.
Various integrations with ERP, analytics, multi-warehouse inventory, product information management (pim), advanced segmentation of customers and omnichannel tools are not the only functions available in Magento. Usually a typical online shop is built into the large working system. However it is only one of the possible ways to conduct business. With Magento you can create all business for yourself.
It is impossible to create a platform that satisfies all needs of the market. You can only provide business and developers with the possibility to edit and enhance the application easily. The major principle of modern systems is modularity. You can easily add the functions you need and turn off all the unnecessary functions. Thousands of modules written by the community and professional vendors are available now.
Magento is something more than just a CMS. It can be related to the ecommerce content management framework (CMF) because of the wide range of functions, flexibility and depth of integration into business processes. Each store becomes a unique solution designed to solve the problems of specific business.
How popular is Magento?
According to the research, Magento is ranked in the top 3 popular platforms among the first million of ecommerce platforms on the Internet. Magento is used to create 8 out of 100 most well-known shops.
Plenty of famous brands chose Magento for their business: Nike, Samsung, Ford, Monin, Coca-Cola, Helly Hansen, Mason Jars, HP, etc.
Recently our colleagues analyzed the popularity of Magento based on Google Trends and determined that for a certain period of time the inquiries about Magento were even more popular than the inquiries about “ecommerce”.
Magento is not the most popular platform for starting the business online in 2020 anymore because it is a large and complex system. WooCommerce and Shopify are more user-friendly and easy. They allow you to create a proof of concept or MVP quickly and begin selling immediately.
According to CloudWays and BuildWith statistics when the number of orders increases, the basic triad “add to cart – pay – deliver” is not sufficient anymore. In this case, Magento is the prime choice.
And what’s about history?
Everything started with a small company Varien. Roy Rubin and Yoav Kuther planned to develop Internet shops with osCommerce CMS. Soon it became obvious that the chosen CMS could not satisfy all the needs of the expanding businesses. It was the moment when the idea of creating their own app was generated. It was the idea of a more flexible application which has more extensions and is aimed at the ecommerce problems.
On August 31, 2007 the first public beta release of a new Bento CMS was introduced. Later the name was changed to Magento, and the first version of a logo was made in the color of magenta.
On March 31, 2008 Magento Community Edition 1.0. was released. This version was totally free and everybody could download and study it, but not all functions were available. Fundamental principles of modularity and extensibility were ingrained into application architecture from the very start. A lot of developers trusted the new CMS and chose it as the basis for their new projects.
We will not describe the innovations that were introduced in each version of Magento and will focus only on the major development milestones.
In 2009 Magento triumphed over its predecessor osCommerce. The term “Magento” was googled more often than “e-commerce”. During the increase in popularity Magento Enterprise Edition was released. It is the solution for large businesses. Thereafter 2 possible options were available for merchants: Magento Open Source (Community Edition) and Magento Commerce (Enterprise Edition).
In 2010, eBay made an investment in Magento and bought 100% of its shares in 2011. The very fact of buying deserves attention, but the main thing is the addition of native integration with PayPal that belongs to eBay as well.
Magento was very productive throughout the whole year of 2011: the first conference Magento Imagine took place, a lot of certifications were introduced for developers and the start of Magento 2 development was announced in November.
The support of eBay in 2011-2015 gave a significant impetus to the Magento development. Versions 1.x and 2.0. were developed simultaneously. It was the moment when the decision that influenced the future principles of project development was made. Beta release of Magento 2 was posted on github and all the community was invited to take part in the discussion and development. Thanks to this decision, Magento 2 is written not only by the Magento core team, but also by the independent developers.
On November 18, 2015 Magento 2.0.0. was released. Like the first version, Magento 2.0 offered only a basic set of functions. The possibilities for development were limitless. From this time forth active development of Magento 1 was completed. The following updates contained mainly critical security fixes. It was recommended for all merchants to update to Magento 2. The transition period started.
In 2015 the global investment firm Permira became the owner of Magento.
In the years of development Magento 2 came a long way from the improved updated version of Magento 1 to a totally new platform based on modern architecture approaches and methods of conducting business. Active Magento community played a crucial role in it.
In 2017 Magento received the Global Ecommerce Platforms Product Line Strategy Leadership Award from Frost & Sullivan.
In May 2018 Magento was acquired by Adobe. Henceforth the work on the integration of Magento CMS into Adobe Experience Cloud and Enterprise CMS platform began.
The date of termination of the first version support was rescheduled several times. Official updates and security patches have no longer been released since July 1, 2020. The store owners at Magento 1 who didn’t manage to update during the transition period were advised to update to Magento 2 as soon as possible.
For more than 10 years Magento 1 became so popular that it was decided to allow merchants to continue working on Magento 1 until they are ready to update.
Tech stack or what we got into
Magento 2 survived a few development phases, during which new features were introduced.
Magento was based on PHP 5 for a pretty long period of time. New patches made it more compatible with the newer versions of PHP 7.
APHP Group stopped support of PHP 5 and developers got a clear roadmap how to release new versions of PHP 7.x. They planned the release of new Magento versions based on the latest versions of PHP. For example, Magento 2.3 is compatible with PHP 7.2 and the future release of Magento 2.4 will be with PHP 7.3 and 7.4.
Composer (dependency management package for PHP) is the basis for the modular Magento system. It allows the addition of necessary libraries and the centralised control of modules and their dependencies.
The basis of Magento is Magento Framework. It controls the interaction of the application components, including request flow, routing, indexation, caching and exception handling.
Magento Framework is based on Zend Framework and Symphony. But it doesn’t mean that Magento is a Zend – or Symphony-based application. Developers work with the intermediate interfaces and adapters that pass the inquiries to the lower level.
In order to transfer the final page from application to the customer’s browser we use web-server software. It is responsible for url-management and interaction between the browser and different parts of the remote server and caching.
Magento, like any PHP-based application, works with Apache web server. It is the most widespread and reliable web server. It is available at all hosters by default. The control interface and Apache fine tuning was integrated into the majority of control panels long ago.
The main drawback of using Apache as a web server is its speed and the intensity of server resources. Speed is of utmost importance for ecommerce projects as nobody is eager to wait for a long time for the product page to load. Moreover, in the search results quicker websites are ranked higher by Google.
NGINX can be used as a separate web server and as a reverse proxy for Apache.
As for the drawbacks, its configuration is more complex in comparison with Apache, so it is better to contact professionals for the best results.
What about Lighttpd, Google web server, LiteSpeed and others?
Any web server that can work with PHP-FPM will be suitable for Magento. You can use any web server that is convenient for you. Nevertheless Apache and NGINX are the most widespread ones and the majority of potential problems with their configuration have been already solved by the community.
The primary database of Magento is MySQL. All information about products, categories, customers and their orders is stored in MySQL. The speed at which your database is able to provide and keep information defines how quick your ecommerce application will be.
Often during the initial audit of the clients’ stores we notice that the previous developers used the default configurations of MySQL or added excessive unoptimized inquiries to the database. The client ordered a more powerful server, replaced the companion software, but Magento 2 worked slower than it could just the same. You have to check MySQL first of all when you want to make your site quicker.
Magento works flawlessly not only with the original MySQL, but also with its frameworks MariaDB and Percona.
Before version 2.4 Magento used MySQL as a major search engine for the shop. The search was slow and not always relevant. For example, together with a “green umbrella” you can receive a “green carpet” or even a “green elephant”.
You can use integration modules with Apache Solr, Sphinx, Elasticsearch and external cloud solutions as an alternative.
Elasticsearch completely replaced MySQL for catalog search after version 2.4 and now it is available by default.
For each customer the set of available products, discounts and categories is different. Magento 2 works continuously with large amounts of data because of that. It would take too much time to request it from the database every single moment and too many server resources would be wasted on it. This is why Magento keeps in the system cache a lot of information that is used often but edited rarely.
By default Magento uses file cache. All the data is recorded into files and stored on disks. This solution is quite functional and efficient till the specific number of active users is reached.
Redis is an alternative cache storage. Data is stored in the server memory, the speed of data access is higher and the system is more reliable. Redis easily handles the situation when 2 different clients try to update the same data simultaneously thanks to its architecture. File storage in this case lines up the inquiries in a queue and the productivity becomes lower.
Redis can work on a separate server or it can become a distributed server system and increase safety of the whole application.
Another objective of using Redis in Magento 2 is to store user sessions. The history of activity in the shop, previously viewed goods and other information is stored in the sessions. The quicker and more reliable they work the better.
Besides separate data Magento 2 can cache entire pages as well, separately updating unique blocks for each user. Full page caching (FPC) is one of the compulsory points to check before the live release of your store.
FPC can be stored in the file system like typical cache. Nevertheless, more productivity and flexibility can be achieved with the proxy accelerator Varnish. It works before the web server as a rule, analyzes the user’s inquiry and refers to Magento only if it hasn’t cached the necessary data already.
In the modern web application a lot of processes undergo in the background. Export of products, stocks updates, data inquiry from the external API can work asynchronously. So the user does not have to wait for the end of these inquiries to start a new task.
Earlier a synchronicity was imitated with the help of cron-tasks. The script checked if there is any work to be done. The script ran when it received the relevant command. 90% of the time scripts just checked if there was a specific flag posted and if it was time to start working.
With RabbitMQ the task queue became filled only at the necessary moment. After the task is completed resources are released and then they wait till there is need for them again.
HTML5 and CSS3
This union became canonical in web development. Everything that the application displays in the browser is structured into various blocks. The location of these blocks on the page depends on the screen size and the device type.
HTML5 and CSS3 allowed standardization of many elements, some functions from the libraries were moved directly to the browser. The creation of responsive web applications became easier.
LESS together with Grunt is used as a preprocessor by default. But there are plenty of projects that are built on SASS and Gulp. Magento 2 is flexible enough and choice of the instruments depends on the developer’s tastes.
jQuery and jQuery UI
Progressive Web Application is a technology that forces the Magento frontend to behave like a regular mobile application in the browser. It is an alternative to different mobile and responsive themes. The distinctive features of PWA are fast response time, simplified page design, the possibility to work offline, security, behavior similar to the native mobile applications.
Magento 2 team together with the community are developing their own concept of Magento PWA with React JS and GraphQL now.
A few vendors have presented their PWA solutions based on ReactJS and Vue.js already and promote them actively.
Magento 1 vs Magento 2
Hardly anyone asks a question today “Which is better to create a new website: Magento 1 or Magento 2?”. However, we encounter this question every once in a while. More simplified server architecture, lesser demand for resources, plenty of ready-made plugins and high development speed are often mentioned as the arguments for Magento 1.
Let’s figure it out
Do not forget that Magento 1 was released in 2008. The further releases of Magento 1 were more stable, better optimised and safer than the previous v1.0. Nevertheless, there was nothing brand new in them. Do you need a CMS that lags behind its equivalents for more than 10 years?
On July 1, 2020 Magento 1 support was completely terminated. There were no updates and security patches anymore. The development of the project is frozen. A few hosters and developers continue the support of Magento 1 for active stores and the people who didn’t manage to switch to Magento 2.
Varnish, NGINX, Redis, MySQL were initially used together not in Magento 2, but earlier. The server was configured in a similar way for acceleration and stabilization of Magento 1. Previously all configurations were made separately and the same goal was achieved with different possible sets of modules that every developer chose according to their tastes. Everything is included in Magento 2 by default now. It is standardized and has been tested on thousands of shops.
At the moment when Magento 2 was released developers and merchants had doubts whether they should upgrade. There were not enough modules on the market to duplicate the Magento 1 functions. The development of a new store was prolonged because a lot of modules had to be written from scratch based on their performance in Magento 1.
All large vendors added Magento 2 support to their modules. The current plugins are being improved constantly. They offer more possibilities than their previous Magento 1 equivalents.
So what is the conclusion?
There is absolutely no sense in the development on Magento 1 today and you shouldn’t count on your Magento 1 store anymore. It can be really troublesome and requires way more efforts.
Magento 2 is the only appropriate alternative to Magento 1 now. It is a flexible, reliable and modern ecommerce platform. Native integrations with popular payment providers like Braintree and Paypal, a ready-made B2B system, Amazon Sales Channel and a large active community leave no more room for doubts.
In 2009 a separate Magento Enterprise Edition was released. Later it was renamed as Magento Commerce. It became a new milestone in the development of Magento.
Initially Magento was aimed at small and medium businesses and later it was ready to work with large enterprises, plenty of customers and their orders. Marketing and B2B instruments were completely transformed according to the demands of large companies.
Page builder and Content staging
Wysiwyg was updated and rebuilt completely. It can add not only text and pictures on the pages, but also different widgets, sliders and dynamic blocks. The changes are published according to the schedule, the design is switched over depending on the date.
Content, products, banners and discounts are automatically personalised for each buyer based on their state, viewed products and order history.
Dynamic rule-based product relations
Up-sells, cross-sells and related products are displayed according to the rules based on the actions of a specific user.
The checkout and payment interface is simplified. You can save and use the same payment and shipping details more than once.
The products are distributed into categories automatically based on such attributes as brands, price, date of addition, etc. The convenient drag-n-drop interface allows you to identify the product state in the category easily.
Additional reports allow you to control Return On Investment (ROI), Customer Retention Rate (СRR), conversion and other business development indicators.
It is possible to create a lot of catalogs, separate accounts for companies and customers, loyalty programs and flexible price management.
Advanced inventory management
You can avoid the depletion of warehouses and optimize your shipping expenses with such instruments as the effective residue check interface, tracking of the products that were sent and management of several warehouses.
Magento Commerce Cloud
Initially Magento was created as a self-hosted platform. You had to buy a hosting, download Magento and modify it to start your business. Server management, its security and updates were the responsibility of merchants and their IT teams.
Magento Commerce cloud is a ready-made environment with the pre-installed Magento Commerce. It has a fully configured deployment process. Support and updating of the platform is the responsibility of high-profile professionals from the Magento team. Merchants could focus entirely on business development and not on the technical side of Magento.
Wrapping it up: will Magento fit me?
Magento is only one of a myriad existing platforms. Everyone specifies immediate goals and development perspectives on their own. This principle works in the choice of CMS as well. It is important to bear in mind that the wrong choice could be critical for business.
I think that small companies that need to launch as quickly as possible should not choose Magento 2. A simple theme, 1-2 payment and 2 shipping methods are sufficient for them. They will not require elaborate catalog and marketing programs as well. In this case Shopify is the best choice. This solution is located in the cloud and it is possible to perform the majority of modifications directly in the control panel.
WooCommerce and PrestaShop will fit small companies that stick to a tight budget. With these self-hosted solutions you will control your store completely and have far more possibilities for customization. Nevertheless these systems are not always reliable and are dependent on the set modules, the quality of which are not always regulated by creators and platforms.
Magento is strongly advised for medium and large companies. The major instruments such as thoroughly elaborated processes, constant improvements of marketing instruments, native integrations facilitate business support and expansion. Cloud and self-hosted options will fit any vision of IT department development. A multi-step program of module quality control guarantees stability, quality and safety of your services.