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

Author:
Paulina Jóźwik
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
Culture
11.7.2021

Family picnic 2021

Chillout, endless barbecue conversations, and lots of laughs - that's how it was at our last family picnic!
E-commerce
18.3.2021

Personalization of the online store with machine learning

A unique shopping experience is a value that every online store manager should bear in mind to keep customers and constantly increase conversions. Various forms of personalization are used in many industries for numerous purposes: starting from marketing through streaming services to eCommerce.
News
5.2.2021

Free webinar: machine learning for e-commerce

On January 13th, 2021 a free webinar will be held as part of a series of Commerce Space Online meetings. Together with Recostream company, we will talk about machine learning in e-commerce. We invite all those who are interested in selling online and using new technologies in business.
News
1.2.2021

Why is a PIM system a must-have for e-commerce in 2021? Free webinar

Join the free webinar as part of the Commerce Space Online meeting series on February 24, 2021, at 11:00 am. During the event, Marcin Piwowarczyk from Ergonode will talk about why the PIM system is a must-have for e-commerce in 2021. To the meeting, we invite online store owners and all people interested in e-commerce.
Culture
1.1.2021

What is it like to work as a Symfony Developer at Strix? Q&A with Piotr Kreft

Meet Piotr Kreft - Technical Team Leader & Symfony Developer at Strix. We asked Piotr how he finds working in our company. Read what he told us!

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