Kategorien alphabetisch sortieren

Hallo, ich habe schon gesucht, aber noch keine Lösung gefunden. Allerdings kann ich nicht glauben, dass Shopware nicht in der Lage ist, die Kategorien nach verschiedenen Kriterien sortieren kann. Wahrscheinlich finde ich nur den Button nicht. Die alphabetische Sortierung würde mir ja schon reichen. Gruß Mario

Hallo, hast du mal ins Performance-Modul geschaut? Einstellungen > Caches-Performance anklicken und dann im neuen Fenster auf Einstellung > Kategorien wechseln, dort gibt es die Standardsortierung, wo du „Artikelbezeichnung“ einstellen kannst. Wenn du das pro Kategorie definieren willst, gibt es ein kostenloses Plugin: http://store.shopware.com/swag406601374798/kategorien-individuell-sortieren.html Viele Grüße Moritz

Hallo, das hatte ich als erstes probiert. Auf Artikelbezeichnung gestellt, Kategoriebaum neu erstellt, Cache gelöscht, Themecache neu aufgebaut. Sortierung stimmt trotzdem nicht. Was mache ich falsch? Gruß Mario PS: anzuschauen unter printer-reset.com

Hallo, also du möchtest nicht die Artikel in den Kategorien sortieren, sondern die Kategorien selber von der Anordnung? Das geht nicht automatisch. Die Kategorien müsstest du dann schon per Drag&Drop durchsortieren, wenn die Reihenfolge z.B. nicht direkt beim Importieren gegeben war. Sebastian

Das ist aber sehr merkwürdig. Das kann ja sogar XTmodified. Dort waren die Kategorien beim Migrieren auch sortiert. Leider sind sie aber nicht sortiert angekommen in Shopware. Könnte man den Kategorienbaum irgendwie exportieren, sortieren und wieder einlesen? Drag&Drop ist bei zig tausend Kategorien irgendwie nicht sehr praktisch, ausser man sucht ein langfristiges Hobby. Gruß Mario

Hallo! [quote=“Sebastian Klöpper”] Das geht nicht automatisch. [/quote] Da gibt es doch bestimmt einen Ansatzpunkt für ein Lösung via kleinem Plugin. Doctrine kennt ja z.b. addOrderBy - kann man das nicht irgendwie so lösen? Ein Denkanstoß wäre super! Offentbar sind ja einige Leute daran interessiert. Und wenn der Kategoriebaum mehrere 1000 Kategorien umfasst, ist händisches sortieren im Backend nicht wirklich möglich. Grüße! DeTi

Hallo, ich hatte dieses Problem auch und bei über 3000 Kategorien ist die Sortierung per Drag & Drop doch schon sehr aufwendig. Wer sich mit SQL auskennt und Zugriff auf seine Datenbank hat, kann mit Hilfe des folgendem Script die alphabetische Sortierung herstellen. set @num = 0; set @parent = ''; create table tmp\_cat\_position select id, parent, description, position, @num := if(@parent = parent, @num + 1, 0) as row\_number, @parent := parent as dummy from s\_categories order by parent, description; update s\_categories set s\_categories.position = (select tmp\_cat\_position.row\_number from tmp\_cat\_position where s\_categories.id = tmp\_cat\_position.id); drop table tmp\_cat\_position; Für Fehler wird keine Haftung übernommen. Bitte führen Sie vorab das folgende SELECT aus um zu überprüfen, ob die Sortierung für Sie passend ist. In der Spalte position wird die aktuelle Position angezeigt, die Spalte row_number zeigt die neue Position nach Ausführung des o.g. Scripts. set @num = 0; set @parent = 0; select id, parent, description, position, @num := if(@parent = parent, @num + 1, 0) as row\_number, @parent := parent as dummy from s\_categories order by parent, description;

1 „Gefällt mir“

@sfquadrat‍ Ich habe das SELECT durchgeführt und hätte meine Kategorien gerne exakt so sortiert, wie es dann ausgegeben wird. Aber in dem oberen Script muss ein Fehler sein, das führt er so bei mir leider nicht aus. Kannst Du da ggf. nochmal drüberschauen? Das wäre mir eine große Hilfe.

Danke schonmal,

Nicole

PS: Nachträglich kann man einzelne Kategorien noch anders sortieren, oder?

Hallo Nicole,

nachdem Du das Update-Skrift ausgeführt hast, kannst Du jederzeit im Backend die Sortierung der Kategorien auch ändern. Jedoch bedenke, dass bei jedem ausführen des o.g. Update-Skrift diese Sortierung wieder weg ist. Wenn es immer die gleichen Kategorien sind, welche von der Sortierung ausgenommen werden sollen, dann kannst Du auch durch eine WHERE-Klausel die Kategorien bei dem o.g. Skript ausklammern. Dann werden diese nicht jedesmal mit sortiert. Ich z.B. klammere die Kategorien parent 1 und 3 aus, da ich hierfür eine manuelle Sortierung bevorzuge.

  1. Mit welchem Programm führst Du das Skript aus?
  2. Gibt es eine Fehlermeldung?
  3. Welche Datenbankversion hast Du?

Viele Grüße
Sebastian

Hallo Sebastian!

Danke für Deine Antwort. Also, ich mache das in phpMyAdmin. Schon, wenn ich Deinen Code nur in das SQL Fenster kopiere, bekomme ich da zwei rote Punkte angezeigt, dass da Fehler drin sein sollen, und zwar:

bei Zeile 3:
Mindestens eine Felddefinition wurde erwartet. (bei )

bei Zeile 4:
Eine öffnende Klammer wurde erwartet. (bei select)
Unerwarteter Statement-Anfang. (bei @parent)
Unerwarteter Statement-Anfang. (bei parent)
Unerwarteter Statement-Anfang. (bei @num)
Unerwarteter Statement-Anfang. (bei 1)
Unerwarteter Statement-Anfang. (bei 0)
Unerwarteter Statement-Typ. (bei as)

Wenn ich es dann trotzdem ausführe, läuft sich das Script tot und reagiert nicht mehr. Hab danach die Sicherung wieder eingespielt, weil phpMyAdmin nicht mehr reagiert hat.

Die Datenbankversion ist 5.6.28

Wäre super, wenn Du mir da helfen könntest.

LG,

Nicole

PS: Hab jetzt mal 'ne ganz dumme Frage: Wenn ich das untere schon gemacht habe, das ja identisch ist mit dem ersten Teil des oberen, muss ich dann nur noch das untere ausführen? 

@sfquadrat‍ Okay, das war Quatsch, habe ich jetzt auch rausgefunden. Aber ich finde den Fehler trotzdem nicht. Kannst Du da eventuell nochmal schauen? Das wääre echt wichtig. Wir haben echt viele Kategorien. Wenn ich die alle manuell sortieren muss, wird das mit dem Realease nie was. :confused:

Hat sich erledigt. Hab es jetzt anders gelöst. War zwar etwas mehr Aufwand, ging aber doch relativ schnell.

Ich führe das Skript mit „MySQL Workbench 6.3 CE“ aus. PhpMyAdmin zeigt bei mir auch die von Dir beschriebenen Fehler an, jedoch läuft das Skript dennoch ohne Fehlermeldung durch. Kann da Adhoc auch keinen Fehler erkennen. Vielleicht unterstützt phpMyAdmin keine Variablen-Festlegung. Aber dennoch läuft es ohne Probleme durch.