Filter nach Attribut in Kategorie - Dropdown

Hallo,

ich habe ein Problem mit dem Attributs-Filter in Kategorien:

Scheint so, als ob das Dropdown für die Filter, bei ausgewähltem Attribut, falsch rum funktioniert. Es sollte alle Attribute AUßER des ausgewählten zeigen, es zeigt aber NUR das aktuelle.

Im OXID-Demoshop, habe ich es ausprobiert indem ich im Admin unter “Attribute” das Attribut “Farbe” auf die Kategorie “Uhren” angewendet habe. Die Artikel haben bereits Werte für Farbe…

Dann bekommt man im Shop unter Uhren das Dropdown zur Selektion:

Auswahl erst vollständig:

Dann wenn man etwas ausgewählt hat, nur noch das Ausgewählte

Jemand ne Idee?

Gruß aus Berlin
stoa

Hallo,

wenn man nach “Rot” filtert werden die Produkte rausgesucht, die diese Eigenschaft haben. Das ist der Hintergrundgedanke von dem Filter im Shop und nach meinem Verständnis auch die Funktion des Filterns :slight_smile:

Filter alles gelbe -> Zeige gelb

Ja aber, wenn man nach “Rot” gefiltert hat, und dann auf den Filter mit “Gelb” umschalten will, fehlen die Einträge im Dropdownmenue (S.Screenshots).
Dadurch muss man erst über “Bitte wählen” die Filter zurücksetzen, und kann dann einen Anderen Filter aussuchen …

Im Forum wurde mir gesagt, das dieses Dropdown schon mal “richtig” funktioniert hat. Ich habe auch schon PEs gesehen, aber die waren glaube ich älterer Version.

Hilfe ! das muss doch allen aktuellen OXID CE 4.x so gehen - oder drückt Ihr Euch alle um die Anwendung von Attributen als Kategorie-Filter ?

Gruß und schönes WE
stoa

Nöö, wir drücken uns da nicht drum, sondern nutzen die Attribute ziemlich intensiv.

So wie Du es Dir vorstellst, hat es mal in der PE 3 funktioniert, wenn ich mich recht erinnere.

Warum es umgestellt wurde, kann ich Dir nicht genau sagen, da ich zu wenig Techniker bin.
Ich denke, es hatte damit zu tun, dass in der PE 3, bei der Nutzung von verschiedenen Filtern so wie Du es Dir vorstellst, am Ende eine leere Seite angezeigt wurde.
Das ist jetzt nicht mehr der Fall.

Ich würde mir da auch nicht so den Kopf drum machen.
Nutze mal die Filterfunktion bei den großen Shops wie amazon, ebay usw…
Da funktioniert es genauso wie im Oxid. Das gewählte Attribut wird angezeigt, die anderen ausgeblendet. Der User ist es also gewohnt.

Jupp, das sehe ich ähnlich. Ich nutze das auch in etlichen Warengruppen und mag z. B. Möglichkeit meine Produkte schnell selemtieren zu können. So kann ich bei Kundengesprächen auch mal schnell den Artikel raussuchen.

Gibt es ne Möglichkeit das Verhalten von OXID PE3 zu simulieren ohne gleich einen riesen Aufwand zu betreiben?

Das Problem ist, dass ich die Dropdown Box in Radiobuttons verwandeln will, damit der Kunde auf einen Blick sieht was es gibt, samt kl. Grafik dazu… (geht nur um wenige Attribute wie m/w oder Sommer/Winter)

Aber wenn mir der Shop nur das aktuelle Attribut gibt wird das schwer…

Ich suche nach einer Liste/Array was alle Attribute einer Kategorie bietet. Die bei den Radiobuttons inaktiv/ausgegraut dar zu stellen, bekomme ich dann hin.
Also noch mal konkret, ich suche die Variable, die die Liste aller Attribute einer Kategorie liefert. Die Variable die das aktuell ausgewählte Attribut bekomme ich ja in der Variable, die im Dropdown verwendet wird.

Ich teile Eure Meinung leider nicht, dass die Kunden an solche Filter-Navigation gewöhnt sind (Amazone etc.) und das daher ok ist ;(
Ich habe ein zusätzliches Problem mit den Filtern, so wie sie jetzt funktionieren, da ich den Fall hatte, das man aus der gefilterten Kategorie wo anders hin navigiert. Wenn man dann in die Kategorie zurückkehrt, ist der Filter in manchen Situationen noch aktiv und Kunden verstehen nicht, dass es noch viel mehr Artikel gibt…
Aber das ist nur meine Meinung dazu.

Gibt es denn da schon einen fleißigen Modulbauer oder ist das seit CE/PE GPL nicht mehr so einfach?

Gruß
stoa

Edit: Ich habe das im eng. Teil der Community gefunden: http://www.oxid-esales.com/forum/showthread.php?t=792#post4825 und hoffe damit weiter zu kommen (;

Habe mir das mal angesehen, da ich das auch ziemlich lästig finde:

Ist im Grunde ziemlich simpel zu lösen:

in “[B]core/oxcategory.php[/B]”, “[B]function getAttributes()[/B]”

werden die Attribute mit dem SQL-Befehl

            $sSelect = "SELECT DISTINCT att.oxid, att.oxtitle{$sLngSuf}, o2a.oxvalue{$sLngSuf} ".
                       "FROM $sAttTbl as att, $sO2ATbl as o2a ,$sC2ATbl as c2a ".
                       "WHERE att.oxid = o2a.oxattrid AND c2a.oxobjectid = $sActCatQuoted AND c2a.oxattrid = att.oxid AND o2a.oxvalue{$sLngSuf} !='' AND o2a.oxobjectid IN ($sArtIds) ".
                       "ORDER BY c2a.oxsort , att.oxpos, att.oxtitle{$sLngSuf}, o2a.oxvalue{$sLngSuf}";

ausgewählt.

Wenn man den ersetzt mit

            $sSelect = "SELECT DISTINCT att.oxid, att.oxtitle{$sLngSuf}, o2a.oxvalue{$sLngSuf} ".
                       "FROM $sAttTbl as att, $sO2ATbl as o2a ,$sC2ATbl as c2a ".
                       "WHERE att.oxid = o2a.oxattrid AND c2a.oxobjectid = $sActCatQuoted AND c2a.oxattrid = att.oxid AND o2a.oxvalue{$sLngSuf} !='' ".
                       "ORDER BY c2a.oxsort , att.oxpos, att.oxtitle{$sLngSuf}, o2a.oxvalue{$sLngSuf}";

dann werden auch [B]nach [/B]einer Auswahl [B]alle [/B]Attributoptionen in den Selectboxen angezeigt, so dass man bequem direkt andere Attribute auswählen kann…

Da “[B]$sArtIds[/B]” jetzt nicht mehr gebraucht wird, kann man gleich noch den folgenden Code löschen/auskommentieren.

            $sArtIds = '';
            foreach (array_keys($oArtList->getArray()) as $sId ) {
                if ($sArtIds) {
                    $sArtIds .= ',';
                }
                $sArtIds .= $oDb->quote($sId);
            }

Besser wäre es natürlich, “[B]function getAttributes()[/B]” in ein Modul auszulagern, und das dort zu ändern…

Hi Avenger,

das habe ich bisher auch zum Testen so “reingehackt” - Probleme treten dann bei den Suchergebnissen bei mehreren Attribut-Gruppen auf. Also Kunde will nach Attribut1:Geschlecht=weiblich & Attribut2:Farbe=rot suchen. Wenn es für die Attributskombination keine Treffer gibt, bekommt er alle Artikel der Kategorie.
Man bräuchte wenigstens ne Möglichkeit dem Kunden mit zu teilen das es so ist, sonst denkt er u.U. das die Filter gewirkt haben, und geht davon aus, dass er nun entsprechende Artikel sieht…

Da der Shop in seiner Originalfunktionalität ja die Frage nach einem Attribut2, was keines der Artikel mit Attribut1 hat, gar nicht zulässt (Dropdown hat den Eintrag nicht) und dann folgerichtig neu initialisiert und alles anzeigt. Ich glaube das wird doch mehr Arbeit…

Und dann muss das natürlich in ein Modul, da arbeite ich mich gerade rein…

Gruß

@Avenger: Ich bin auf der suche nach einer erklaerung fuer das oxsort feld in dem oxcategories table. Scheinbar gibt es einen zusammenhang mit dem root von einer category group ? Vielleicht kannst du mir weiter helfen ?

Danke

CPJ

hej stoa,

hast du nun schon eine lösung für dieses problem gefunden?!

liebe grüße
nettue

ich würde gerne dieses Thema hier nochmals aufgreifen, da die obige SQL Abfrage nicht in oxid 4.5.x funktioniert, denn dort ist die SQL Abfrage auch in oxattributelist.php und leider fehlt mir hier genügend background um das anzupassen.

Wir haben nämlich ständig im Shop rückmeldungen der Kunden das die nicht mit dem Filtern klar kommen. Deshalb wollen/müssen wir das unbedingt ändern!

Folgende Rückmeldungen erhalten wir, für die wir eine Lösung brauchen.

  1. [B]Ich kann nicht mehr Filtern, es steht nur noch “Bitte wählen” und mein vorige Auswahl in dem Feld.[/B]
    Die Kunden verstehen also nicht, dass sie wieder auf “Bitte wählen” klicken müssen um den Filter aufzuheben. Wäre schon toll oder ein Anfang wenn anstelle von “Bitte wählen” nach einer Auswahl dann “Auswahl aufheben” dort stehen würde.

  2. [B]Wenn ich eine Auswahl getroffen habe und auf zurück klicke (<-Browser) bricht ihr Shop zusammen. [/B]
    Das ist natürlich nicht so, sondern der Browser meldet das das Dokument erloschen ist und ob es mit den gleichen Daten neu geladen werden soll. Das das so von Oxid her gelöst wurde ist absolut kundenunfreundlich! Kein otto normalverbraucher versteht das und wird dies immer wieder für einen Fehler halten!!!

Laut Google Analytics haben wir hier auch die meisten Ausstiege, weshalb uns bestimmt schon einiges an Umsatz verloren gegangen ist.

Was wir gerne hätten ist:

zu 1 das immer alle Attribute eines Feldes angezeigt werden, auch nach einer Auswahl

zu 2. das irgendwie abschalten zu können