Shopware: How does the Category-Route work?
Fabian Blechschmidt
I wanted to write a blog post about the stack of the category and navigation route, but this draft is now laying around for months and I just looked it up, so to at least help you a little bit, here is the stack and the ProductListingLoader is where the products are loaded 🙂
\Shopware\Storefront\Controller\NavigationController
\Shopware\Storefront\Page\Navigation\NavigationPageLoader::load
\Shopware\Core\Content\Category\SalesChannel\CategoryRoute::load
\Shopware\Core\Content\Cms\SalesChannel\SalesChannelCmsPageLoader::load
\Shopware\Core\Content\Cms\DataResolver\CmsSlotsDataResolver::resolve
\Shopware\Core\Content\Product\Cms\ProductListingCmsElementResolver::enrich
\Shopware\Core\Content\Product\SalesChannel\Listing\ProductListingRoute::load
\Shopware\Core\Content\Product\SalesChannel\Listing\ProductListingLoader::load
Other articles from this category
Shopware 6 Hidden Gems #16: CloneBehavior — entity duplication with overrides, one call
You know the admin’s „duplicate“ button on products. Now the ticket says: „We need that, but from code — duplicate a product per sales channel, with adjusted name and its own product number.“ Or: „Campaign landing pages: clone this CMS page 20 times with different headlines.“ I’ve watched this get implemented as: load entity with […]
Shopware 6 Hidden Gems #15: ChangeSet — before/after values for every write, no second query
The requirement sounds harmless every time: „Log when a product price changes, with old and new value.“ Or: „When an order’s email changes, notify the old address.“ Or the audit-trail classic: „Who changed what, from what, to what?“ And every time, the naive implementation is the same sad shape: subscribe to product.written, load the entity […]
Shopware 6 Hidden Gems #14: WriteProtected & ApiAware — field-level security without a single subscriber
A code review scenario. A plugin adds a purchasePrice-style field to a custom entity — internal margin data. The review question: „Can the Store API read this?“ Followed by: „Can the Admin API write that computed field you recalculate in a subscriber?“ The answers, in the plugin at hand, were „yes“ and „yes, and then […]