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

Paulina Jóźwik

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.


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.


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.


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

Sharing knowledge is in our DNA. Our activities in 2021

At Strix, we believe that knowledge has power, and the saying sharing is caring applies in the professional realm as well.

Merry Christmas! Christmas Party 2021

We had a wonderful time at the Christmas Party. There were gifts, long conversations punctuated by bursts of laughter, and tables overflowing with delicious treats.

Working with Magento for PHP developers. Hot or not? 

Why is it worth working with Magento? Does working with Magento have a future? We write about the benefits of working with this system for PHP developers.

Ho, ho, ho! Santa Claus in Strix!

Last week our office in Krakow was visited by Santa Claus and his elves. For our employees' children, we prepared games with animators, refreshments and of course gifts.

Integration trip 2021

We love integration trips! This year we spent a wonderful time in the beautiful natural surroundings of Jura Krakowsko-Częstochowska.

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.