[Workaround] Navigation / Kategorien aufrufen- category not found

Moin,

Ich versuche mir per NavigationRoute einen neu angelegten Kategoriebaum (nennen wir ihn „Rechtliches“) zu holen.

        $categories = $this->navigationRoute
            ->load(
                $footer_lawLinksTree_entryCategoryID, 
                $footer_lawLinksTree_entryCategoryID, 
                $event->getRequest(), 
                $salesChannelContext, 
                $criteria)
            ->getCategories();

doch mir wird immer eine CategoryNotFoundException zurückgegeben.
wenn ich versuche die kategorie (oder eine kind-kategorie) im browser aufzurufen (shop.de/navigaion/{navigationID}, wird mir ebenfalls ein CategoryNotFoundException zurückgegeben.
Die Kategorie-IDs existieren aber in der Datenbank.

nutze das development template in der v6.3.4.1 und bin/console dal:refresh:index habe ich erfolglos versucht.
hat sonst noch jemand eine idee?

Edit: Wenn ich den Kategoriebaum „Rechtliches“ Testhalber im Saleschannel unter „Einstiegspunkt für die Footer-Navigation“ zuweise, dann bekomme ich den Kategoriebaum per navigationRoute als array und ganz ohne CategoryNotFoundException zurück… jungs ganz ehrlich, was habt ihr da wieder gebaut…

Rant: ok, es scheint so als dass ihr diese drei Stellen (Einstiegspunkt für die Haupt-Navigation, Einstiegspunkt für die Footer-Navigation, Einstiegspunkt für die Service-Navigation) so tief im system integriert habt, dass man nicht ohne weiteres einen neuen Einstiegspunkt für einen Kategoriebaum hinzufügen kann… ihr werft mit Begriffen wie Headless und Erweiterbarkeit um euch und dann sowas? Ich bin raus… komme wieder wenn eure software architekten endlich aufgewacht sind.

Workaround

Durch die validate() Methode in platform/NavigationRoute.php at d6d1d203c9ad9b5a5102f6911176e558223a2cae · shopware/platform · GitHub
Ist es nicht Möglich im Shopware 6 Frontend Kategorien aufzurufen, welche nicht in einen der SalesChannel Einstiegspunkte verknüpft sind.

Wer dennoch Kategorien verfügbar machen möchte, welche dort nicht verknüpft sind (z.b. für losgelöste Inhaltsseiten oder Landingpages) muss zum aktuellen Zeitpunkt die NavigationRoute Klasse per decoration “nachbauen” und die validate() Methode entfernen.

Ich habe dazu hier ein Gist erstellt
NavigationRoute Decorator · GitHub
welches so erstmal funktioniert.

Verbesserungsvorschläge oder andere Lösungsansätze sind gern gesehen.

Hallo @robjke1, vielen Dank für Deinen Beitrag bzw. auch die geposteten Daten. Aber wie bekomme ich denn nun den Kategriebaum (in Deinem Fall »Rechtliches«) im Frontend ausgegeben?

Ich habe Deine Daten aus Gist bei mir eingebunden, und dann?? Ein dump() zeigt keinen weiteren Kategoriebaum. Eine twig.extension ist es ja auch nicht.

Oder verstehe ich Dich falsch? Ich möchte eigentlich einen weiteren Einstiegspunkt. Bzw. Der Redakteur, legt einen Kategoriebaum an, diesen hinterlege ich dann im Template, so dass der Redakteur aktiv die Navigation beeinflussen kann, ohne daß ich an das Template ran muß. Geht das mit Deinem Workaround?

Grüße und Dank im voraus.
Daniel