Varianten und Auswahllisten

Hallo,
ich bin neu hier und würde gern eine Frage loswerden, auf die ich hier im Forum bislang keine Lösung gefunden habe. Ich hoffe mal, daß ich sie nicht schlicht übersehen habe.
Wenn ich (im Demo Shop) einen Artikel erstelle und ihn einer Kategorie zuweise, wird er in der Listung innerhalb der Kategorien korrekt angezeigt. Weise ich diesem Artikel nun Varianten zu, ist er daraufhin in der Kategorienliste nicht mehr enthalten. Er wird aber trotzdem in der Anzahl der Artikel in der Kategorie berücksichtigt.
Eine Suche nach diesem Artikel zeigt ihn an. Danach wird er richtig (auch mit Varainaten) unter “Zuletzt angesehene Artikel” gelistet.
Die einzige Möglichkeit, die ich bisher entdeckt habe, ihn anzeigen zu lassen, ist den Vaterartikel kaufbar zu machen. Dadurch würde aber die Möglichkeit entstehen, daß der Artikel z,B. ohne Größenangabe in den Warenkorb gelegt wird.
Mit den im Demo Shop eingestellten Produkten “Tischlampe SPHERE und Blinkende Eiswürfel FLASH” verhält es sich übrigens ebenso.
Habe ich irgendetwas an dem Konzept nicht verstanden, oder etwas übersehen?
Auswahllisten funktionieren dagegen, wobei allerdings das Design bei 2 Auswahllisten zerschossen wird.
Für eine erklärende Antwort wäre ich sehr dankbar.

[QUOTE=Toto;18469]Weise ich diesem Artikel nun Varianten zu, ist er daraufhin in der Kategorienliste nicht mehr enthalten

Mit den im Demo Shop eingestellten Produkten “Tischlampe SPHERE und Blinkende Eiswürfel FLASH” verhält es sich übrigens ebenso[/QUOTE]
Falls du diesen Demoshop meinst: http://demoshop.oxid-esales.com/professional-edition/

Tischlampe Sphere hat doch Varianten, Vater ist nicht kaufbar und trotzdem in der Kategorienübersicht sichtbar?

Das ist schon merkwürdig, Bei mir (OXID_ESHOP_CE_4.1.6_22740) gibt es die Tischlampe wie beschrieben nach der Installation auch. Ebenfalls mit Varianten. Die Kategorie Wohnen enthält in der Darstellung laut Angabe 4 Produkte, es werden aber nur 3 gezeigt, die Tischlampe finde ich hier nur über die Suche. Beim Bar-Equipment ist es ähnlich, 13 Produkte aber nur 12 werden angezeigt, Die Flashwürfel (ebenfalls mit Varianten) fehlen.
Deinen Link habe ich benutzt, dort sehe ich auch besagte Lampe.
Bei mir läuft der Demo Shop auf einem Mac unter 10.4, innerhalb von MAMP Version 1.7.2. Bei der Installation des Shops sind alle Systemvoraussetzungen erfülllt, Woran kann es liegen?

Weiß nicht woran das liegen könnte, aber es ist auf jeden Fall nicht OK. Es sollte so aussehen wie im Demoshop auf der Oxid-Website. Um herauszufinden was da falsch läuft müsste man jetzt per debuggen den Fehler suchen.

Danke erst mal soweit. Ich habe nun leider von PHP nur ein wenig Ahnung, von MySQL etwas weniger und von Smarty gkeich keinen Schimmer. Ich habe mich trotzdem mal auf die Suche begeben und kam bis: loadCategoryArticles in oxarticlelist. Die Abfrage von $sSelect im unveränderten Demo Shop ist hier folgende:

SELECT oxarticles.oxid, oxarticles.oxparentid, oxarticles.oxvarcount, oxarticles.oxvarstock, oxarticles.oxicon, oxarticles.oxstock, oxarticles.oxstockflag, oxarticles.oxprice, oxarticles.oxvat, oxarticles.oxskipdiscounts, oxarticles.oxunitquantity, oxarticles.oxshopid, oxarticles.oxunitname, oxarticles.oxtitle, oxarticles.oxvarselect, oxarticles.oxartnum, oxarticles.oxthumb, oxarticles.oxtprice FROM oxobject2category as oc left join oxarticles ON oxarticles.oxid = oc.oxobjectid WHERE ( oxarticles.oxactive = 1 and ( oxarticles.oxstockflag != 2 or ( oxarticles.oxstock + oxarticles.oxvarstock ) > 0 ) and IF( oxarticles.oxvarcount = 0, 1, ( select 1 from oxarticles as art where art.oxparentid=oxarticles.oxid and ( art.oxactive = 1 ) and ( art.oxstockflag != 2 or art.oxstock > 0 ) limit 1 ) ) ) and oxarticles.oxparentid = ‘’ and oc.oxcatnid = ‘8a142c3e44ea4e714.31136811’ GROUP BY oc.oxcatnid, oc.oxobjectid ORDER BY oc.oxpos, oc.oxobjectid

Dadurch werden 3 Produkte in Wohnen gefunden, die Tischlampe wie gesagt fehlt. Wenn ich das nun richtig deute ist das Problem dieser Teil:

IF( oxarticles.oxvarcount = 0, 1, ( select 1 from oxarticles as art where art.oxparentid=oxarticles.oxid
Die Tischlampe hat bei oxvarcount in der Datenbank korrekt den Wert 3, oxparentid jedoch ist leer, kann daher also nicht gleich dem Wert von oxid (2077) sein. Die Lampe wird entsprechend nicht gefunden. Wenn ich diesen Teil streiche:art.oxparentid=oxarticles.oxid funktioniert es dagegen. Liegt mein Problem tatsächlich hier? Weiß jemand Bescheid mit dem Parentid-Eintrag? Wie schon anfangs erwähnt, besteht das gleiche Problem auch wenn ich eigene Produkte einzustellen versuche. An der Demo-Datenbank kann es dann ja wohl nicht liegen. Ich bin hier etwas ratlos.

Bist ja schon weit gekommen! Wenn ich das SQL-Statement aus deinem Post in PHPmyadmin einfüge, bekomme ich 4 Datensätze incl. Shpere.

[QUOTE=Toto;18732] Wenn ich das nun richtig deute ist das Problem dieser Teil: Die Tischlampe hat bei oxvarcount in der Datenbank korrekt den Wert 3, oxparentid jedoch ist leer, kann daher also nicht gleich dem Wert von oxid (2077) sein.[/QUOTE]
Bei Sphere ist oxparentid leer, mit dem Statement sollen aber die Varianten gefunden werden.

Also in Worten: Wenn der Artikel Varianten hat (oxvarcount != 0) dann wird in der Artikeldatenbank eine neue Suche gestartet (select 1 from oxarticles as art) nach Kindern des Variantenvaters (where art.oxparentid=oxarticles.oxid). Diese Kinder (Varianten) müssen aktiv sein ( and ( art.oxactive = 1 )) und entweder immer kaufbar (and ( art.oxstockflag != 2 ) oder auf Lager (or art.oxstock > 0 ) sein.

oxarticles.oxid ist die id des Variantenvaters, Sphere hat oxid 2077, also wäre der Teilstring:

 select 1 from oxarticles as art where art.oxparentid='2077' and ( art.oxactive = 1 ) and ( art.oxstockflag != 2 or art.oxstock > 0 ) limit 1

und da wird auch ein Datensatz zurückgeliefert. Bei dir auch?

Vielen Dank für Deine Mühe. Ich habe zwischenzeitlich den Demo Shop mal auf einen Server gespielt, dort läuft er ohne Probleme, genau wie in Deinem Link. Wie gesagt habe ich von MySql nicht viel Ahnung. Was genau “select 1” bedeutet weiß ich nicht und habe kurz (wirklich nur kurz) im Netz gesucht. Ist es vom Ergebnis her das gleiche wie" select * "? Ich hatte Deinen String mal laufen lassen, das Ergebnis war “1”, “select 1” gegen “select *” ausgetauscht brachte dann aber tatsächlich die Tischlampe zum Vorschein. Kommt meine MySql Umgebung vielleicht nur mit diesem “select 1” nicht klar?
Naja, auf dem Server funktioniert es schließlich. Zum Rumprobieren und Kennenlernen wäre es auf meinem Rechner halt etwas parktischer gewesen.

[QUOTE=Toto;18750]Kommt meine MySql Umgebung vielleicht nur mit diesem “select 1” nicht klar?[/QUOTE]
Genau danach sieht es aus. Evtl. dieser Bug: http://bugs.mysql.com/bug.php?id=44716
Falls ja kannst du einfach eine neuere MAMP Version nehmen und es geht.

Ich werde mal schauen, ob eine neuere Version Besserung verspricht.
Vielen Dank aber noch mal für Deine Hilfe.

Nur als kleiner Nachtrag, nach Installation einer neueren MAMP-Version funktioniert es problemlos.