Eigenen Product Listing Block erstellen

Moin,

ich habe mir mein eigenes Produkt Listing gebaut, weil ich eines brauche, dass die Produkte in zwei Spalten statt drei anzeigt.
Das hat soweit auch gut funktioniert nur stehe ich jetzt vor dem Problem, dass ich keine Kategorieseite erstellen kann, da mein eigener Produkt Listing Block nicht als Productlisting-Block anerkannt wird und mir beim Speichern der Fehler „Diese Kategorieseite enthält keinen Produktlisting-Block.“ angezeigt wird.

Wie kann ich shopware davon überzeugen, dass mein eigener Productlisting-Block auch ein Produktlisting-Block ist?

Moin,

du hast also ein eigenes CMS-Element erstellt? Wie bist du dabei vorgegangen? Ich habe das auch mal probiert und habe mich dabei an diese Anleitung gehalten: GitHub - NinjaArmy/shopware-real-world-cms leider kann es beim Einfügen des Blocks im Backend immer wieder zu Fehlern.

Um das Produkt Listing von 3 auf 2 Spalten umzustellen müssten doch auch eigentlich einfache Änderungen am Template, bzw. sogar CSS anpassungen reichen oder?

Viele Grüße
Tom

1 Like

Nein ich habe kein eigenes CMS-Element erstellt sondern einen eigenen CMS-Block.
Ich habe dafür die offizielle shopware-Dokumentation benutzt. https://developer.shopware.com/docs/guides/plugins/plugins/content/cms/add-cms-block
Die shopware-Dokumentation sagt nur leider nichts dazu, dass die Kategorieseiten besonders geschützt sind und ein Produkt-Listing verlangen und wie man ein eigenes Product-Listing erstellt. :frowning:

Ich kann meinen eigenen CMS-Block problemlos in eine Shopseite einfügen, das funktioniert alles prima und auch im frontend wird alles richtig angezeigt. Ich möchte mein Product-Listing nur gerne auch in einer Kategorieseite nutzen können…

Natürlich kannst du das Produkt Listing auch am Template bzw. per CSS ändern. Nur dann ist es global geändert, Ziel ist es aber eine Zweite Option zu haben also die Möglichkeit ein Kategorielayout mit drei Spalten und eins mit zwei Spalten anlegen zu können.

Sieht so aus als ob ich die Antwort gefunden habe: „Computer sagt Nein!!!“

Um die Prüfung auf das Vorhandensein zu umgehen muss in der .registerCmsBlock Funktion der name auf product-listing gesetzt sein, denn danach wird geprüft.
Der Name des Blocks ist aber entscheidend für das Frontend-Template. Der Name für das Frontend-Template leitet sich vom Namen des Blocks ab. Jetzt überschreibt mein eigenes Template das Standard shopware Product-Listing Template, ich habe also global immer ein Product-Listing mit 2 Spalten.

Keine Ahnung wer sich diesen Quatsch bei shopware ausgedacht hat eine Prüfung auf den Namen zu machen…

Hallo hast du zufällig Shopware 6.5 benutzt?
Mir ist ein kleiner Fehler bei der Entwicklung unterlaufen, ich habe den Namen nicht richtig gesetzt.

Lustigerweise wurde der Fehler bei Shopware 6.4.x ignoriert. Ich fixe den Code gerade, damit alles funktioniert. Vielleicht hilft dir das ja :slight_smile:

Moin,

ja genau, war in 6.5. Ich habe die Lösung schon in dem anderen Ticket gesehen, aber du hast ja auch den Code auf GitHub angepasst. Werde ich auf jeden Fall mal ausprobieren, danke!