Ich hatte ja schon erwähnt, dass wir im Rahmen von Projekten die [B]attributbasierte Suche [/B]des OXID-Shops stark erweitert haben.
Diese hat gegenüber den Standardmöglichkeiten von OXID eine ganze Reihe von Verbesserungenn:
[ol]
[li]Es werden auch die Produkte in [B]Unterkategorien [/B]der aktiven Kategorie berücksichtigt. (OXID berücksichtigt hier standardmäßig nur die aktive Kategorie.)[/li][li][B]Alle [/B]gewünschten Optionen können vor Start der Suche angewählt werden. (OXID erlaubt hier standardmäßig nur, eine Option nach der anderen auszuwählen.)[/li][li]Auch nach einer Attributauswahl werden wieder [B]alle [/B]Attribut-Optionen zur Auswahl angeboten. (OXID zeigt hier standardmäßig nur noch die [B]ausgewählten [/B]Optionen an! Um eine neue Option zu wählen, muss man deshalb dort überflüssiger Weise und umständlich erst mal die Option “Alle” auswählen.)[/li][li]Mehrere Attribute werden bei der Auswahl so verknüpft, dass nur noch [B]die[/B] Produkte ermittelt werden, die [B]alle gewählten Kriterien[/B] enthalten. (OXID verwendet hier standardmäßig eine “ODER”-Verknüpfung, was [B]alle [/B]Produkte mit [B]irgendeinem [/B]der angegebenen Attribute liefert…)[/li][li]Es werden noch [B]Hersteller und Preisgruppen [/B]als zusätzliche Auswahloptionen angeboten.[/li][/ol]
Hersteller und Preisgruppen werden dabei [B]automatisch [/B]aufgrund der in den beteiligten Kategorien vorhandenen Produkte ermittelt, und müssen [B]nicht [/B]händisch den Produkten zugeordnet werden!
(Es werden also [B]nicht [/B]alle im Shop definierten Hersteller, sondern nur die [B]produktrelevanten [/B]Hersteller dieser Produktgruppe; und [B]nicht [/B]festgelegte Preisgruppen, sondern [B]dynamische Preisgruppen[/B], basierend auf den Preisen der beteiligten Produkte angezeigt).
Der erste Kunde hat diese Erweiterung jetzt in den aktiven Einsatz übernommen.
Im Shop oben links ist eine Grafik “Einkaufsberater” zu sehen.
Ein Klick darauf führt weiter zu einer Anzeige der Produktgruppe, für die diese Auswahl möglich ist.
Nach einem Klick auf die gewünschte Produktgruppe erscheint dann die Auswahlmaske für die attributbasierte Suche.
So kann der Besucher sehr zielgenau die Produkte auswählen, die die von ihm gewünschten Eigenschaften haben.
Unser Kunde wird im Laufe der Zeit sicher noch weitere Produktgruppen in den “Finder” einbinden, aber dazu müssen ja erst mal alle Attribute und Zuordnungen für Kategorien und Produkte definiert werden, was einfach viel Zeit kostet, und eine Menge Arbeit ist…
[B]P.S.:[/B]
Nachtrag zur Attribut-Auswahl (Punkt 4. der obigen Aufzählung)
Die von OXID hierbei standardmäßig verwendete “ODER”-Verknüpfung mehrerer Attributwerte ist m.E. ziemlich falsch…
Denn wenn ich z.B bei Schuhen die Optionen “[B]Größe[/B]: 38” und “[B]Farbe[/B]: schwarz” auswähle, erwarte ich, eine Liste aller schwarzen Schuhe in Größe 38 zu sehen (“UND”-Verknüpfung aller Attribute).
Und nicht eine Liste aller Schuhe der Größe 38 (unabhängig von der Farbe) und aller Schuhe der Farbe schwarz (unabhängig von der Größe), was die verwendete “ODER”-Verknüpfung ja liefert.
Mein ursprünglicher (naiver) Ansatz, bei der Produkt-Auswahl das bei der Attribut-Bedingung verwendete “OR” einfach durch ein “AND” zu ersetzen, hat sich übrigens als nicht machbar herausgestellt, da muss man doch ein wesentlich komplexeres SQL-Konstrukt verwenden…
Der Grund dafür liegt in der Struktur der Attributverwaltung:
Die Zuordnung der Attribute zu den Artikeln erfolgt in der Tabelle “[B]oxobject2attribute[/B]”, in der es für jede Kombination von Attribut/Produkt [B]einen [/B]Eintrag gibt.
Daraus kann man durch eine einfache “OR”-Vernüpfung der Atrribute alle Attribut/Produkt-Kombinationen ermitteln, die wenigstens eines der verknüpften Attribute enthalten (so wie OXID das derzeit macht)…
Die einfache “AND”-Verknüpfung [B]kann [/B]aber gar kein Ergebnis liefern, da es [B]keinen [/B]einzelnen Eintrag in der Tabelle gibt, für den Attribut1 den Wert 1 [B]und [/B]Attribut2 den Wert 2 usw. hat.
Da bekommt man [B]immer [/B]eine leere Ergebnismenge.