Extending Shopware 6 and Magento 2 functionalities differences. Developer point of view

Author:
Published:
20.7.2020
O

f course, it is a little bit unfair to compare functionalities of a brand-new platform that just came out of early access to a fully developed e-commerce platform that was released almost five years ago. So what we want to write about is the differences in developing these platforms.

shopware

When we want to create a plugin to either Shopware or Magento, we usually start by designing the database architecture and entities first. In the case of the recently released Magento version 2.3.X, we can finally use XML schema files. During the execution of the database upgrade command, Magento will interpret and convert the XML to database queries for creating and altering tables. Thus, developers don't need to write SQL queries themselves. However, it is worth mentioning that previous versions below 2.3.X required developers to write database queries on their own in the install method in a PHP file.Shopware uses standard Symfony migration files, which are also PHP files containing MySQL queries. Still, you can generate these files via a console command, which makes this a lot easier. It also lowers the chance of typos in the queries. Furthermore, what we like very much about creating entities in Shopware is how developer-friendly the DAL (Data Abstraction Layer) is, compared to Magento in this area. It is way more comfortable and faster to create entity associations in Shopware than it is in Magento. Of course, the whole process could be even quicker if there was a command for Shopware's Data Abstraction Layer similar to Doctrine ORM's "entity:make".

But we are sure sooner or later that command will be created either by the Shopware Team or the Shopware community. In this area, Magento 2 is more complicated, and many more classes have to be written by developers. This increases the chance of making mistakes. However, it is a well-known fact that Magento 2 developers usually generate their modules by using online tools or implementing custom solutions to save some time.

shopware vs magento

Another thing worth mentioning is the way Shopware 6 and Magento handle their entity IDs in the Database. Magento uses an old-fashioned autoincrement with integer IDs. Shopware, on the other hand, recommends using UUIDs, which provide a lot of advantages such as protecting data growth rate or allowing importing and export data from other systems without the risk of overlapped IDs.

Creating simple modules (or plugins, in the context of Shopware) is easily doable in Magento and Shopware. But what happens if one wants to create a complex module with a lot of functionality, using multiple classes and with code that is reusable in the future? The most straightforward idea is to divide the module into smaller, separate modules with fewer responsibilities and customize only some parts, leaving others unchanged. In this way, we have to take care of smaller modules being dependent on each other. Magento 2 handles this pretty well with sequencing module installations. That means that our new module will be installed after all modules it requires, by creating something like a queue. Unfortunately, in Shopware, it is not possible to do dependent plugin installations, or we could not figure it out yet. Plugins composer-requirable, but if we try to install plugins that use classes from another plugin that has not yet been installed as well, then the installation fails.

It is hard and time-consuming to extend any existing code without documentation and StackOverflow-like communities. In this area, Magento 2 is unarguably better. It is hard to think of something that has not been already mentioned somewhere on the first google result page, and it doesn't matter if it is a problem or customization. The Shopware 6 documentation is easy to understand, contains examples, and covers basics for writing simple plugins, but advanced platform changes require digging deep in the vendor code. We also had some difficulties finding suggestions or solutions using a search engine; however, it is understandable for such a new platform to lack a broad community.

Summary

For a person who used to develop Magento 2 functionalities for a couple of years and recently started to create Shopware 6 plugins, I find Shopware 6 to be easier to learn, and it is more fun developing for it. Magento 2, on the other hand, is more complex and requires quite a lot of experience and patience to master. Surprisingly, creating modules that expand vendor functionality or debugging existing code of  Magento 2 is more satisfying, in my opinion. For other developers, not necessarily. It all depends on your preferences.

Author

Piotr Kozioł - Magento & Shopware Certified Developer at Strix with a wide range of experience in software development. As a leading architect and programmer, he has been working for many years on large e-commerce projects, particularly interested in the subject of performance.

Similar posts

see all
E-commerce
20.9.2023

Without middlemen, or what is the D2C model

T‍he D2C, or direct-to-customer, model is gaining popularity in online sales. In 2019, the percentage of consumers making regular D2C purchases was 49%, while in 2022 it will already be 64%. What is the direct sales phenomenon and how can we tap into its potential? Read the article and find out!
E-commerce
15.9.2023

‍How to plan an e-commerce customer segmentation strategy?

Market segmentation is today a prerequisite for success in modern marketing communication. Done well, it results in increased customer engagement and a higher conversion rate. In this article, we will discuss how to plan a segmentation strategy and put it into practice.
E-commerce
7.9.2023

UX Master Certified by Baymard – Interview with Sławomir Majchrzycki

Baymard Institute is the most important institution that studies user experience in the e-commerce sector, so we are proud to announce that our Product Designer Sławomir Majchrzycki is one of 3 professionals in the world to have earned the highest certification "UX Master Certified by Baymard"!
Tech
6.9.2023

E-commerce implementation from a Project Manager's perspective. Checklist before go-live

Implementing e-commerce is a complex process in which many things can go wrong. How to prepare for it, what mistakes to avoid and what should the checked before go-live? Paula Wasiluk – Project Manager at Strix – answered these questions.
News
1.9.2023

Shopware Training for developers

How can you start creating online stores in Shopware? The best way is to get knowledge from experts! With this intention, we launched Shopware Training - a month-long comprehensive course for developers.

Let's work together

If you want to move your sales to the online world, are looking for new ideas for strategy or innovative e-commerce technologies - write to us! We will be happy to talk about the best solutions for your business.

Contact