Eingeschränkte Produktliste anzeigen in tt_products

  • 0 x
    63 Beiträge
    0 Hilfreiche Beiträge
    16. 10. 2005, 12:13

    Moin allerseits,

    ich hab ein Problem und versuche seit Tagen hinter die Lösung zu kommen: Im Grunde versuch ich eine eingeschränkte Produktliste dynamisch anzuzeigen, also nicht irgendie über sysordner oder so sortiert.

    Erstmal die Eckdaten (Es geht um Website mit Shop „tt_products 2.3.0“):

    Produkte
    Die Produkte gehören jew. zu einer Kategorie, einer Größe und einer Variante.

    Beispiel:

    Kategorie K1

    ......variante v1.....variante v2....variante v3
    ---------------------------------------------------------------
    S.....10 EUR...........15 EUR...........45 EUR
    M.....12 EUR...........18 EUR...........50 EUR
    L.....14 EUR...........22 EUR...........60 EUR
    XL....17 EUR...........30 EUR...........70 EUR

    Kategorie K2 usw.

    - im Prinzip wie k1 -

    Ein Produkt P1 wäre z. b.: K1, L, V2 (also jedes Produkt hat einen anderen Preis, abhängig von Größe und Variante)

    Über eine Extension kann man die Größen und Varianten bearbeiten. Legt man ein neues Produkt an, muss man die Kategorie („category“ aus tt_products), Größe und Variante (neue, mithilfe der Extension angelegte Ausklappmenüs!) auswählen, zusätzlich zur Kategorie.

    Modelle
    Es gibt Marken und für jede Marke verschiedene Modelle. Diese kann man über eine zweite Extension im BE bearbeiten. Nun muss man beim anlegen eines neuen Modells die Marke angeben, sowie welche Produktgrößen passen. Beispiel:
    Marke M1: Modell A (Größe: S), B (M,L) und C(XL)
    Marke M2: Modell X (L,XL), Y (S,M,L) und Z (M)

    Diese zwei Sachen möchte ich noch realisieren:
    1.) Ich möchte das man auf der Website mit Hilfe von Ausklappmenüs zunächst eine Marke und danach ein Modell auszuwählen.
    2. ) Danach soll die Produktliste für dieses Modell angezeigt werden, z. B. für das Modell B:

    Modell B
    K1, M, v1 – 12 EUR
    K1, M, v2 – 18 EUR
    K1, M, v3 – 50 EUR
    K1, L, v1 – 14 EUR
    K1, L, v2 – 22 EUR
    K1, L, v3 – 60 EUR
    K2 usw.

    Die Produkte befinden sich alle in einem eigenen Sysordner und die Marken und Modelle ebenso.

    Nun (endlich) zum eigentlichen Problem:

    Für 1.) wollte ich eine FE-Extension machen, aber ich bekomme das irgendwie nicht hin, die DB nach den Marken/Modellen abzufragen, um die Ausklappmenüs zu füllen

    Hier ein Auszug aus der Datei pi1\class.tx_ meineextension_pi1.php

    1. $query = 'SELECT * FROM tx_meine_extension_marke';
    2.  
    3. $res = mysql(TYPO3_db, $query);
    4. echo mysql_error();
    5. $row = mysql_fetch_array($res);

    Ergibt folgende Fehlermeldung im FE:

    Table 'meine_db.tx_meine_extension_marke' doesn't exist
    Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Dokumente und Einstellungen\blahblah\Eigene Dateien\www\typo3\Typo3-3.8.0\typo3conf\ext\meineextension\pi1\class tx_ meineextension _pi1.php on line 83

    Anmerkung: „meine_db“ ist der Name meiner DB

    2.) soll im Grunde die Produktliste aus tt_products sein, aber eben nur die Produkte, die dem Modell (über die Größen) zugeordnet sind. Wie realisiere ich diese Einschränkung?

    Vielen Dank schon mal fürs durchlesen bis hierher ;-)

    Und natürlich für Hilfe...

    Gruß aus HH, Oliver

    ps
    wie sieht es eigentlich perspektivisch mit der Zweisprachigkeit von tt_products aus (die Produktkategorien scheinen ja schon zu gehen)?!?[/quote]


  • 1
  • 0 x
    63 Beiträge
    0 Hilfreiche Beiträge
    18. 10. 2005, 01:42

    hat niemand einen tipp, wie man solch eine individuelle produkt-liste realisieren könnte?!?

  • Flink Flink
    Jedi-General
    0 x
    1663 Beiträge
    0 Hilfreiche Beiträge
    18. 10. 2005, 10:12

    [quote="captnfuture"]
    Die Produkte gehören jew. zu einer Kategorie, einer Größe und einer Variante.

    1. $query = 'SELECT * FROM tx_meine_extension_marke';
    2.  
    3. $res = mysql(TYPO3_db, $query);
    4. echo mysql_error();
    5. $row = mysql_fetch_array($res);

    Ergibt folgende Fehlermeldung im FE:

    Table 'meine_db.tx_meine_extension_marke' doesn't exist

    [/quote]
    Wie wäre es mit der tt_products und der tt_products_articles Tabelle? o.O
    Anstatt alles in einer neuen Extension zu schreiben, lassen sich die Klassen im tt_products/lib Verzeichnis auch von anderen Extensions benützen.

    Siehe
    [url=http://cvs.sourceforge.net/viewcvs.py/typo3xdev/tx_ttproducts/lib/]tt_products/lib[/url]

  • 0 x
    63 Beiträge
    0 Hilfreiche Beiträge
    18. 10. 2005, 13:36

    Danke erstmal fürs Antworten!

    Wie wäre es mit der tt_products und der tt_products_articles Tabelle? icon_confused.gif

    Das hatte ich auch irgendwann mal überlegt, dann wieder verworfen... allerdings weiss ich mittlerweile gar nicht mehr warum #paralyzed#

    Naja, ich denke das könnte ich wirklich auch so machen:
    Kategorie => product category
    Variante => product
    Das eigentliche Produkt => product article

    product article würde ich dann nach wie vor mit Hilfe einer ext um ein ausklappmenü "size" erweitern, denn die Produkte in der Liste sollen ja nach Auswahl Marke=>Model erscheinen...
    also hat ein Model die Größen S und M, dann sollen alle Produkte (product article) in der Shop-Liste erscheinen die die Größe S bzw. M haben.

    Natürlich dürfen die Varianten (product) überhaupt nicht im Shop präsent sein. Wie stellt man das ein... über "In Stock (pcs)"?!? Und wenn ja, wie? Vielleicht irgendwie so: alle Varianten (product) immer Null. (Die eigentlichen Produkte sollen immer lieferbar sein...)

    Und ich hab noch immer keine Idee, wie ich das machen könnte mit der eingeschränkten Produkt (article) Liste...

  • Flink Flink
    Jedi-General
    0 x
    1663 Beiträge
    0 Hilfreiche Beiträge
    18. 10. 2005, 23:16

    [quote="captnfuture"]
    Natürlich dürfen die Varianten (product) überhaupt nicht im Shop präsent sein. Wie stellt man das ein... über "In Stock (pcs)"?!? Und wenn ja, wie? Vielleicht irgendwie so: alle Varianten (product) immer Null. (Die eigentlichen Produkte sollen immer lieferbar sein...)
    [/quote]
    Alles, was in tt_products_articles eingetragen ist, wird aus tt_products nicht mehr verwendet. Damit ist das überflüssig.
    [quote="captnfuture"]
    Und ich hab noch immer keine Idee, wie ich das machen könnte mit der eingeschränkten Produkt (article) Liste...
    [/quote]
    in pi/class.tx_ttproducts.php die

    1. function products_display

    erweitern, und zwar die SQL-Abfragen.

  • 0 x
    63 Beiträge
    0 Hilfreiche Beiträge
    19. 10. 2005, 22:42

    Nun ist mir wieder eingefallen, warum ich "product article" nicht benutzen wollte:
    das einzige, was sich im Grunde ändern soll, ist der Preis:

    Alles, was in tt_products_articles eingetragen ist, wird aus tt_products nicht mehr verwendet.

    Optimal... außer man möchte den "title" aus dem "product" übernehmen... denn das Feld "title" hat ja das kleine gelbe Ausrufezeichen , also das muss man in "p-article" ausfüllen?!?

    Kann ich das irgendwie umgehen?
    Alle "p-article" sollen den gleichen "title" bekommen wie das dazugehörige "product", das im Grunde nur als Namensgeber fungieren soll...

  • Flink Flink
    Jedi-General
    0 x
    1663 Beiträge
    0 Hilfreiche Beiträge
    21. 10. 2005, 15:56

    [quote="captnfuture"]
    Optimal... außer man möchte den "title" aus dem "product" übernehmen... denn das Feld "title" hat ja das kleine gelbe Ausrufezeichen , also das muss man in "p-article" ausfüllen?!?
    [/quote]
    Diese Feld ist leider unverzichtbar, weil der Datensatz in der Auflistung im Backend einen Namen braucht.
    [quote="captnfuture"]
    Kann ich das irgendwie umgehen?
    Alle "p-article" sollen den gleichen "title" bekommen wie das dazugehörige "product", das im Grunde nur als Namensgeber fungieren soll...
    [/quote]
    Hier müßte man eine eigene Setup-Konfiguration einführen, die die Übernahme des Namens aus der Artikeltabelle ausschaltet.
    Oder man führt ein Sonderzeichen, z.B. # ein, das dem Titel vorangestellt sein muß, wenn er nicht für das Frontend verwendet werden soll. Der Programmieraufwand wäre minimal.

  • 1