background

May 18, 2024

The opportunity of Shopware - fewer features

Yireo Blog Post

When comparing Shopware to Magento, it sometimes strikes that certain Magento features are missing in Shopware. However, I would argue that this is a bonus, not a down-side. Here is why.

Naming some missing features, according to Magento folks

Magento has been building a lot of different features on top of its e-commerce core for years. This has made it a very feature-rich application. When people migrate from Magento to Shopware, they often expect that same multitude of features, but then sitting within a much simpler application. The reality check is - however - that Shopware is indeed a lot simpler, but exactly because a lot of those other features are missing.

For instance, Magento has a rich API: REST, SOAP and even GraphQL. Shopware mostly adds its own specific form of API. Magento has MSI for free, Shopware only has a multi-inventory in its Beyond package and even that solution is a lot more simple than the Magento equivalent. Magento has numerous B2B features, Shopware has only scratched the surface there. And on a more granular developer level, it's simple things that are lacking, like extending checkout-pages, reordering steps, simpler entity extensions aka extension attributes.

It's a bonus, not a down-side

That being said: Whenever Shopware is missing out on something, those features are a lot simpler to develop compared to Magento. The combination of Symfony, Twig and dead-simple JS plugins allows for a quicker setup of functionality and still the system is powerful enough to inject whatever needs to be injected in the right place: Twig extensions, JS plugin overrides extending upon the old system, Shopware decorators.

For instance, take the B2B suite or MSI: Even though there is a magnitude of features, most shops only need a few. And that's where a lot of work needs to be spent on removing features that were not needed in the first place: Disabling modules does not always work (DI compilation errors, JS errors, etc) and composer replacements are just a hack to hide the fact that bundling all features together as one product is a wrong decision.

With Shopware, the monolith is there but it has not grown cloggy, it contains the essentials and additional features can be added via plugins but things work fine without as well. Third party extensions to the rescue. And new lean & mean plugins could be developed where needed.

Until a certain point is reached

Perhaps, naming customization a feature is somewhere a bit hilarious. The lack of features is not a bonus, it is still a lack. However, with Magento, we have also seen that, when the complexity goes up, the number of bugs go up as well, leading to an overly complex system. With Shopware, things are complex but not overly complex.

And you can add things where needed. That was my argument as well. However, sometimes, the existing architecture simply lacks extensibility. I have come across this recently when trying to add custom data to the root of the cart object in the checkout - there was no decent way to do this, the cart object itself was not made extensible. Another example is adding a custom value to an entity. The clean way is to add an entity extension with its own custom table. However, sometimes it would be easier to simply add a new column and extend the entity to use it. Unfortunately, that's not possible.

While extension points are abundant in Magento, they often are missing in Shopware.

The opportunity of Shopware: More extension points

It seems that Shopware takes a stand that they only want custom code to be added in those places where they assign the extension points. But this leads to fewer extension points where features are missing and, because of this, many Magento agencies that adopted Shopware are lead back to Magento.

To my personal vision, this is the biggest opportunity of Shopware: Make anything possible by turning all the architectural parts into hugely extensible areas. This avoids that Shopware needs to build all features themselves, preventing the system from being cloggy. And possibly leading to a much stronger community with bright new ideas.

Posted on May 18, 2024

About the author

Author Jisse Reitsma

Jisse Reitsma is the founder of Yireo, extension developer, developer trainer and 3x Magento Master. His passion is for technology and open source. And he loves talking as well.

Sponsor Yireo

Looking for a training in-house?

Let's get to it!

We don't write too commercial stuff, we focus on the technology (which we love) and we regularly come up with innovative solutions. Via our newsletter, you can keep yourself up to date on all of this coolness. Subscribing only takes seconds.

Do not miss out on what we say

This will be the most interesting spam you have ever read

We don't write too commercial stuff, we focus on the technology (which we love) and we regularly come up with innovative solutions. Via our newsletter, you can keep yourself up to date on all of this coolness. Subscribing only takes seconds.