AI made code cheap. Trust is not. The old review ritual still pretends a careful human can keep up by reading harder. Then a green test suite lies to you, a 32k-line PR asks for a blessing, and a professional-looking diff hides the real risk. Quality was never living in the scroll bar. The real question is why the system should trust the change at all when attention runs out.
Running multiple Shopware message workers during indexing causes deadlocks on the product table. This guide explains why, walks through the pitfalls of Symfony Messenger routing, and shows how to configure a dedicated indexer transport consumed by a single worker.
Shopware 6.7 moved caching from the Store-API route layer to the HTTP layer. The old CacheTagsEvent events are deprecated. This guide covers what changed, how to add and invalidate cache tags the new way, how to handle dynamic content via AJAX, and what pitfalls to avoid.
A practical, code-referenced and slightly opinionated guide to Shopware’s SEO URL system. We walk through Admin configuration, the internals (Twig placeholders, generation, persistence), and common pitfalls at scale — with pragmatic fixes.
This article covers more than just common performance issues you might encounter during a project’s lifecycle. It also describes a workflow that can make your life easier for future projects by building performance optimization into your development process from day one.
This is a collection of insights and things we've seen during plugin reviews, app reviews and projects for Shopware 6. We hope this is helpful for anyone who wants to make their app, plugin or project headless-ready and API aware. Many thanks to the awesome Maciek Kucmus who did all the hard work to put this together. I only revised and extended some parts. Also feel free to comment or ping me if we forgot something or you want to add more important points to this checklist.
It feels wrong if you know ecommerce systems and then use Shopware's variants for the first time. You click on a variant, and the entire storefront page is reloaded. This is very helpful (and good for SEO) if your variants differ in text and images. But it isn't delightful if the server is not very fast. Also, if you have many similar options in text and pictures. There is also the use case where you want to show all possible options on the product listing page (category). So you may ask yourself if you need to invent the wheel for a more configurable approach to the Variants Selection. Or how could you improve this in a simple, fast, composable, and headless frontend?