Hallo Shopware-Community,
folgende Aufgabe gibt es:
- beim Aufruf einer Category soll der Content einer Category ausgegeben werden
- die Url soll sich dabei nicht ändern, also kein redirect stattfinden
Folgende Idee zur Umsetzung habe ich probiert:
- das Event ‚BeforeSendResponseEvent‘ benutzen um den Request abzufangen
- CategoryId ermitteln per DAL
- über die Class AbstractCategoryRoute per load() die Category laden
$request = $event->getRequest();
// generiert über eigenen Service
$salesChannelContext = $this->salesChannelService->createDefaultSalesChannelContext();
$category = $this->categoryRoute->load($categoryId, $request, $salesChannelContext)->getCategory();
- per eigenem Storefrontcontroller die page rendern und als response speichern:
$template = '@Storefront/storefront/page/content/detail.html.twig';
// ruft StorefrontController::renderStorefront mit template und category page auf
$response = $this->customStorefrontController->renderPage($template, $category->getCmsPage());
- response setzen:
$event->setResponse($response)
Leider klappt es so nicht, ich erhalte folgenden Fehler:
Call to a member function get() on null
AbstractController->get(‚request_stack‘)in platform/src/Storefront/Controller/ StorefrontController.php (line 39) :
$request = $this->get(‚request_stack‘)->getCurrentRequest();
Muss ich meinen Request noch mitteilen, verfolge ich einen falschen Ansatz? Freue mich über Antworten.
Viele Grüße
Henning