Die Kategorien-Navigation von xt:Commerce ist nicht sonderlich flexibel. Probleme, über die ich immer wieder gestolpert bin: Es gibt keine Möglichkeit zu bestimmen, wie “weit” die Kategorien-Navigation “ausgeklappt” sein soll, es gibt keine Möglichkeit, leere Shop-Kategorien automatisch auszublenden, die HTML-Ausgabe ist ebenfalls eher scheußlich …

Insgesamt gibt’s also so einige Funktionen (besser: “fehlen so einige Funktionen), die sicherlich auch viele andere xt:Commerce User genau so schmerzlich vermisst haben wie ich. Ein paar dieser Probleme dürften mit meiner Lösung behoben sein:

 

“gunnART Advanced Show Category”

Dateien-Set für xt:Commerce 3.04 SP1 und SP2.2 zum » kostenlosen Download

Vorliegend als reine Template-Lösung für eine flexiblere Shop-Gestaltung mit einer verbesserten Kategorien-Navigation.

  1. Leere Kategorien können auf Wunsch versteckt werden
  2. Man kann bestimmen, wie weit der “Kategorien-Baum” von Anfang an “ausgeklappt” sein soll
  3. Man kann einstellen, ob sich der Kategorien-Baum trotz eventuell festgelegter “Beschränkungen” unterhalb von aktiven Kategorien weiter ausklappen darf oder nicht
  4. HTML-Ausgabe als hierarchische Liste, besonders für CSS-Design und standardkonforme Shop-Layouts geeignet

 

1) Problem gelöst:
Kategorien-Navigation als hierarchische Liste

Kurzinfo

  • Wie man seine Shop-Kategorien als eine für CSS-Design taugliche Liste ausgeben kann, habe ich vor einiger Zeit in diesem Artikel beschrieben.


Eine “hierarchische” Variante kam bald darauf von Matt Slovig - Und auch Björn Teßmann der u.a. das YAML-Framework für xt:Commerce umgesetzt hat, hat eine “xtc_show_category.inc.php” entwickelt, die eine saubere HTML-Ausgabe in Form einer “echten” Liste (mit “Unterlistenpunkten”) ermöglicht.

An dieser Stelle nochmals vielen Dank an Björn für die Datei und die nette E-Mail. Wegen der im Folgenden beschriebenen erweiterten Funktionen konnte ich sie zwar nicht als “Spickzettel” benutzen, aber ich freue mich immer über Tipps und Anregungen.

Wie dem auch sei: Auf vielfachen Wunsch hin hab ich jetzt ebenfalls eine hierarchische Liste zurechtgebastelt. Sogar mit ordentlich eingerücktem Quellcode.

:-)

Aktive Kategorien bekommen (in Anlehnung an WordPress) die Klasse “Current” - und ihre Oberkategorien heißen “CurrentParent”. Kategorien, die weitere Unterkategorien enthalten, werden mit der zusätzlichen Klasse “SubMenue” markiert. Was geblieben ist, sind die Ebenen abhängigen Klassen “CatLevel1″ bis “CatLevel5″.

» Damit dürfte eine ansprechende Gestaltung per CSS deutlich einfacher geworden sein.

 

2) Problem gelöst:
Nicht aktive Kategorien anzeigen

Kurzinfo

  • Einstellbar über die Variable $MaxLevel
  • Mögliche Werte: Bei false werden alle Kategorien angezeigt. Wird eine Zahl (beispielsweise 3) angegeben, ist die Navigation nur bis zur dritten Ebene ausgeklappt.


xt:Commerce zeigt standardmäßig nur die Unterkategorien gewählter Kategorien an. Auf der Startseite wird entsprechend auch nur die “gröbste” Unterteilung ausgegeben. Manche Shops haben tatsächlich nur drei oder vier Hauptkategorien. Und so werden auf der Startseite auch nur drei oder vier Links zu Artikelübersichten gezeigt.

Natürlich sollte man sein Menü nicht “überfrachten” - und eine ewig lange Navigation wird auch allzu leicht unübersichtlich. Aber was auf der Startseite nicht gleich als Link existiert, wird von Suchmaschinen oftmals nicht so gut “verfolgt”.

Das ist natürlich schade, weil ja insbesondere die Kategorien-Links zu vielen “kaufbaren” Produkten verweisen … Da darf man den Suchmaschinen ruhig ein bisschen mehr zu lesen geben.

Um deshalb also auch die Unterkategorien “nicht aktiver” Artikelgruppen auflisten zu können, habe ich die xt:Commerce “xtc_show_category.inc.php” erneut bearbeitet. Mit OpenCats für xt:Commerce werden alle im Shop vorhandenen Kategorien angezeigt. Für den Fall, dass die Navigation dadurch zu lang wird, kann man die “Ebenen-Tiefe” mit einigen in der Anleitung näher beschrieben Änderungen recht leicht beschränken.

» Diese Funktion liegt jetzt in verbesserter Form vor.

 

3) Problem gelöst:
Kategorien ab einer bestimmten Ebene bei Bedarf “weiter ausklappen”

Kurzinfo

  • Einstellbar über die Variable $ShowAktSub
  • Mögliche Werte: true oder false


Ein Problem kann auftauchen, wenn man (siehe 2) eine “maximale Ebenen-Tiefe” festgelegt hat. Denn zeigt man z.B. alles bis zur Ebene 3, gelangt man - zumindest “über die linke Spalte” nicht mehr “tiefer” in den Shop.

Das kann durchaus gewünscht sein. Aktuell arbeite ich an einem Shop mit drei Kategorien-Ebenen, die ersten beiden werden über die linke Spalte angewählt, alle “tieferen” sind dann über den Content-Bereich zugänglich. Mit schönen Category-Images und einer solchen Bedienerführung kann man sicherlich den ein oder anderen Besucher, der sonst nur “zack-zack” durchgeklickt hätte, “zum Stöbern” bringen.

Aber gut - Jeder Shop ist anders und jeder Shop hat eine andere Zielgruppe.

Mit “gunnART Advanced Show Category” kann jetzt beispielsweise auch festgelegt werden, immer die ersten beiden Ebenen anzuzeigen - und weitere Ebenen werden erst dann aufgeklappt, wenn eine “Unter-Kategorie” gewählt wurde.

» So kann man “festgelegtes” und “automatisches Aufklappen” ganz nach Wunsch miteinander kombinieren.

 

4) Problem gelöst:
Leere Kategorien automatisch ausblenden

Kurzinfo

  • Einstellbar über die Variable $HideEmpty
  • Mögliche Werte: true bzw. false


Weder Shops noch andere Websites sammeln Pluspunkte mit Verlinkungen, die ins Leere führen. Und da xt:Commerce auch Kategorien ohne Artikel anzeigt, passiert es leider in vielen Shops, dass man freudig auf eine interessante Produktgruppe klickt - und mit einer “nicht gefunden”-Meldung verärgert wird: Ich habe schon einige Online-Shops wieder weggeklickt, weil mir die ganzen “Fehlversuche” einfach zu blöd waren.

Man kann seinen Besuchern zwar gleich anzeigen, “wo es nichts zu holen gibt”, indem man die Anzahl der in jeder Kategorie enthaltenen Produkte neben dem Link ausgibt. Aber gleich gar kein Link anstatt einer Null in Klammern wäre deutlich eleganter.

Außerdem kann ich mir vorstellen, dass sich einige Suchmaschinen auch nicht so sehr darüber freuen, eine Shop mit zig Links durchzuspidern, die allesamt auf ein und dieselbe “nicht gefunden”-Seite verweisen.

Andererseits - Ansichtssache: Wenn man beispielsweise hauptsächlich Blumentöpfe verkauft - und momentan nur noch Wischmops im Lager sind … wäre es unter Umständen gar nicht verkehrt, seine “leergekaufte” Kategorie weiterhin anzuzeigen. Denn die “Blumentopf-Interessenten” finden zwar keine Blumentöpfe, wissen aber wenigstens bescheid, dass es hier normalerweise welche zu kaufen gibt.

“Ausverkaufte” Produkte müssen übrigens nicht zwangsläufig aus dem Shop verschwinden, sondern können mit einem entsprechenden Hinweis weiterhin angezeigt werden. Dann gibt’s auch keine Probleme mit leeren Kategorien …

» Mit gunnART Advanced Show Category” kann man die Anzeige leerer Kategorien jederzeit ein- oder ausschalten.

 

Download und Installation

  1. Dieses Zip-Archiv herunterladen und entpacken:
    » xtc_ShowCategory_Advanced_01.zip
    » xtc_ShowCategory_Advanced_02.zip - BugFix!
    » xtc_ShowCategory_Advanced_03.zip - BugFix!
  2. Die nötige Ordner-Struktur (ausgehend vom jeweils aktiven Template) ist im Archiv enthalten, überschreiben Sie ihre Datei “categories.php” (Ordner “source/boxes”) sowie die Datei “xtc_show_category.inc.php” (Ordner “source/inc”) und wie immer: Sicherheitskopie
  3. Anpassung / Konfiguration: Ändern Sie in der Datei xtc_show_category.inc.php” die Werte in den Zeilen 96 bis 98 (Angaben für Version 0.1 Beta). Ein kleiner Erklärungstext steht auch noch mal im Kommentar-Bereich dieser Datei
  4. Beta-Version Daher wie immer der Hinweis, dass diese beiden Dateien nicht sofort in einem öffentlich zugänglichen Shop ausprobiert werden sollten. Wer testen möchte, ist natürlich herzlich eingeladen
  5. Bis jetzt hab ich die Dateien auf zwei Projektbaustellen im Einsatz, aber je mehr Tester desto besser. (Siehe z.B. die » Staffelpreis-Geschichte)

Okay. Ich wünsche wieder viel Spaß beim Ein-, Aus- und Umbau. Weitere Vorschläge und Feedback sind immer willkommen.

 

Nachtrag - Normale Kategorien-Navigation

Auf eine Nachfage per E-Mail: Mit Show Category Advanced kann man selbstverständlich auch die “normale Verhaltensweise” der xt:Commerce Kategorien-Navigation wieder herstellen. Die Einstellung hierfür ist folgende:

  • $MaxLevel = 1
    Dadurch wird die Anzeige der Kategorien auf die erste Ebene beschränkt
  • $ShowAktSub = true
    Die Kategorien unterhalb der aktiven Kategorie werden trotz der Beschränkung “aufgeklappt”
  • $HideEmpty = false
    Das Verstecken leerer Kategorien wird aufgehoben

 

BugFix

24. Juni 2007:

In der Detail-Ansicht von Produkten war der “aktive Kategorien-Pfad” nicht bekannt - so dass sich die Navigation (je nach Einstellung) dann wieder “eingeklappt” hat. Ursache war, dass sich Funktion den “Kategorien-Pfad” aus $HTTP_GET_VARS['cPath'] und nicht aus $GLOBALS['cPath'] geholt hat. Die GET-Variablen geben nur einen Pfad zurück, wenn man sich in einer Kategorien-Übersicht befindet. Die GLOBALS hingegen “wissen” den aktuellen Pfad auch noch in den Produktdetails.

Vielen Dank an Sandi für den Hinweis

 

BugFix 2

12. Juli 2007:

Die “Blättern”-Links in den Produkt-Auflistungen führen wieder zur Startseite - Jedenfalls, sofern die ShopStat-Erweiterung nicht installiert ist. Kürzlich konnte ich an einem nicht modifizierten System testen - und da bin ich ebenfalls über diesen Fehler gestolpert. Mit der Version 0.3 sollte alles wie gewohnt funktionieren.

Vielen Dank an Krischan für den Hinweis

 

Neue Version online

1. Mai 2008:

Beschreibung, Anleitung und Download-Link finden Sie
» in diesem Beitrag

 

 

Das angebotene Dateien-Set ist mit xt:Commerce 3.04 SP1 und SP2.1 getestet. Sollten Sie eine andere Version des Shops installiert haben, rate ich von einem Einsatz ab.

Bitte beachten Sie auch unbedingt die allgemeinen Hinweise zur Verwendung hier veröffentlichter Code-Beispiele!