Franz Holzinger

Verse of the day

Bei Gott ist mein Heil, meine Ehre, der Fels meiner Stärke; meine Zuversicht ist auf Gott.
Psalm 62:7

© Bible Gateway's Verse of the Day


autor  
28-01-11 16:52:11 Preise im FE werden nicht korrekt für Artikel angezeigt
Oliver S
Hallo,

wir haben tt_products 2.8.x eingebunden und es funktioniert soweit bis auf den wichtigen der punkt der variantenpreise.
wir haben fünf artikel (nur andere größe, mit anderen preisen) für ein produkt angelegt, in dem produkt haben wir die fünf artikel im bereich artikel/relationen eingebunden und bei dem produkt im bereich varianten die fünf artikelnamen mit semikolon getrennt im feld "größe (variante 2)" eingetragen.
rufen wir das produkt im frontend auf und wählen dann eine variante/artikel, erscheint egal bei welcher variante immer der preis des zuletzt zugewiesenen artikels (in unserem Fall der Artikel mit dem höchsten Preis: 17,95). dieser preis wird auch nur in den warenkorb übernommen.
gesetzte variablen:
- articlemode = 2
- usearticles = 3

hier der link: http://bit.ly/gtBEUt

wir haben auch schon alle verschiedenen möglichkeiten probiert, z.b.:
in dem produkt haben wir die fünf artikel im bereich artikel/relationen eingebunden, im produkt im bereich varianten die fünf artikelnamen mit semikolon getrennt im feld größe/variante2 nicht eingetragen usw.

Wo liegt der fehler?

Grüße
31-01-11 14:05:51 Selbes Problem
Sebastian Schotte
Hallo,
benutze für ein Projekt ebenfalls version 2.8.x mit verschiedenpreisigen Varianten.
Zwar werden die Preise beim ändern der Varianten angepasst und auch richtig in den Warenkorb übernommen, aber lädt man die Produktliste wird immer zuerst der höchste Preis angezeigt, obwohl die Variantenauswahl auf der Variante mit dem niedrigsten Preis steht.
Was kann hier helfen?
Viele Grüße
3-02-11 18:23:48 Beispiel Produkt und Artikel
Franz Holzinger
Bei welchem Beispiel Produkt / Artikel und mit welcher genauen Konfiguration tritt ein solcher Fehler auf?
4-02-11 10:29:47 Beispiel
Sebastian Schotte
Konfiguriert habe ich
articleMode = 2
useArticles = 3

Nutze die neueste 2.8.x sowie mbi_products_categories für Mehrfachkategorien.

Zu den Produkten:
Es handelt sich z.B. um Stahlbordwände, die in 22 verschiedenen Längen (size) Verfügbar sind. Zusätzlich haben diese noch eine Blechdicke (material).
Die Längen sind alle mit Semikolon getrennt unter den Varianten aufgeführt, eben so die Blechdicken. Die Artikel sind über IRRE angelegt und haben alle notwendigen Daten.

Wie schon gesagt, frage ich mich, warum er beim ersten Laden der Produkte den Preis des letzen/teuersten Artikels nimmt, gleichzeitig aber in der Variantenauswahl die jeweils erste/günstigste angewählt ist. Sobald ich eine andere Variante anwähle wird auch der richtige Preis angezeigt. Ändere ich dann zurück auf die erste Variante erscheint ebenfalls der richtige Preis. Füge ich das Produkt ohne Variantenauswahl in den Warenkorb, wird es auch mit dem korrekten Preis übernommen.
Es geht also nur um die erstmalige Preisanzeige.

Eine Idee, woran es liegen kann??

Vielen Dank!
4-02-11 10:35:48 Link zur Site
Sebastian Schotte
http://bit.ly/dLpMPb
4-02-11 10:36:54 Preis im Produkt?
Andreas Pohl
Kann es sein, dass du für das Produkt auch einen Preis eingetragen hast, und dieser genau der höchste der verschiedenen Artikel ist? Eventuell nimmt er dann zuerst den Produktpreis und ändert erst bei der Artikeländerung den Artikelpreis.

Grüße,
Andreas Pohl
4-02-11 10:40:44 Leider nicht die Lösung
Sebastian Schotte
Hallo Andreas,
danke für den Tip, aber es ist immer der niedrigste Preis im Produkt eingetragen.
4-02-11 18:30:06 SQL?
Franz Holzinger
Welche SQL Abfragen werden dabei erzeugt?
Dies kann man über die TYPO3 Extension debug_mysql_db herausfinden.
4-02-11 20:19:57 Viele! ;-)
Sebastian Schotte
Habe die Erweiterung installiert und bekomme auch eine Menge abfragen angezeigt. Hier nochmal der Link zur Ausgabe auf eine Singleview-Seite:
http://bit.ly/h9p2Xk
Auch da wir der teuerste Preis angezeigt und mit laufender debug_mysql_db funktioniert die Aktualisierung der Preise nicht. Ist aber bestimmt nicht das Problem, da bei deaktivierter Debug-Extension alles wieder läuft wie zuvor.

Schon mal vielen Dank für die Tipps. Hoffe wir finden das Problem!
4-02-11 20:37:13 Einzelansicht
Franz Holzinger
Welche SQL Anweisungen werden nun für die Produkt und Artikel Abfragen in der Einzelansicht erzeugt?
4-02-11 20:54:13 Sorry
Sebastian Schotte
Hier der Output:
http://bit.ly/hesSkI
5-02-11 13:57:14 23 Artikel zur Produktvariante
Franz Holzinger
Für das Produkt mit der uid=25 mit der Größe '1800' und mit dem Material '2' werden 23 Artikel gefunden. Das geht aus 'num_rows()' hervor:


SELECT article.uid uid,article.pid pid,article.tstamp tstamp,article.crdate crdate,article.hidden hidden,article.deleted deleted,article.title title,article.starttime starttime,article.endtime endtime,article.fe_group fe_group,article.subtitle subtitle,article.itemnumber itemnumber,article.price price,article.price2 price2,article.note note,article.inStock inStock,article.basketminquantity basketminquantity,article.weight weight,article.color color,article.color2 color2,article.color3 color3,article.size size,article.size2 size2,article.size3 size3,article.description description,article.gradings gradings,article.material material,article.quality quality,article.config_type config_type,article.config config,article.image image,article.uid_product uid_product
FROM tt_products_articles article JOIN tt_products_products_mm_articles ON article.uid=tt_products_products_mm_articles.uid_foreign
WHERE
tt_products_products_mm_articles.uid_local=25 AND tt_products_products_mm_articles.deleted=0 AND tt_products_products_mm_articles.hidden=0 AND((article.size='1800' OR article.size LIKE '%;1800;%' OR article.size REGEXP '^(1800)[[:blank:]]*[[.semicolon.]]' OR article.size REGEXP '[[.semicolon.]][[:blank:]]*(1800)[[:blank:]]*$')OR(article.material='2' OR article.material LIKE '%;2;%' OR article.material REGEXP '^(2)[[:blank:]]*[[.semicolon.]]' OR article.material REGEXP '[[.semicolon.]][[:blank:]]*(2)[[:blank:]]*$'))AND article.deleted=0 AND article.hidden=0 AND(article.starttime<=1296848779)AND(article.endtime=0 OR article.endtime>1296848779)AND article.fe_group IN(' ',0,-1)
ORDER BY tt_products_products_mm_articles.sorting

Es sollte aber nur einer der dem Produkt zugeordneten Artikel diese Variantenauswahl erfüllen.
Ich meine, dass von den gefundenen 23 Artikeln dann der billigste verwendet wird.
7-02-11 09:48:26 Nur ein Artikel erfüllt die Bedingung
Sebastian Schotte
Ich habe nocheinmal im Backend nachgeschaut und nur ein einziger Artikel erfüllt die Bedingung "Größe"=1800 und "Material"=2. Oder kann das Problem daran liegen. Dass die zugeordneten Artikel alle "Material"=2 haben und sich nur in der Größe unterscheiden?
7-02-11 10:02:23 Keine Kombination von 2 Varianten möglich?
Sebastian Schotte
Habe gerade beim teuersten Artikel den Wert "Material"=2 entfernt und nun wird mir der zweitteuerste Artikel angezeigt! D.h. die 23 Übereinstimmungen entstehen durch die Kombination verschiedener Varianten.
Weiterhin stelle ich gerade fest, dass ich automatisch jede Variantenkombination auswählen kann, selbst wenn diese nicht bestellbar sein soll. Wie kann ich das einstellen?
7-02-11 10:44:15 Reihenfolge?
Sebastian Schotte
Kann es an der Reihenfolge der Abfrage liegen? Zuerst wird die Größe geprüft und dann Material.
Oder liegt es am "OR" zwischen den beiden Varianten in der SQL-Abfrage? Wenn ich die Abfrage richtige verstehe, wir abgefragt, welche Produkte entweder die Eine oder(mathematisches oder?!) die andere Bedingung erfüllen. Da alle Artikel Material=2 haben entsprechen somit alle dieser Bedingung. Wie könnte ich dieses OR in ein AND ändern?
7-02-11 13:17:46 Gelöst (fast)
Sebastian Schotte
Habe in der Datei class.tx_ttproducts_product.php in Zeile 248 das "OR" durch ein "AND" ersetzt. Jetzt werden die richtigen Preise angezeigt!
Allerdings lassen sich immer noch jegliche Varianten kombinieren. Die Änderung einer Variante ändert leider nicht die Auswahlmöglichkeit des anderen Variante.
7-02-11 13:25:31 Artikelkombination
Franz Holzinger
Wenn "useArticles = 3" gesetzt ist, werden die Artikel miteinander kombiniert und addiert. Es reicht, wenn ein Artikel nur für die Größe zuständig ist. Wenn nun aber gleichzeitig mehrere Artikel die Größe 1800 haben, dann wird der günstigste genommen. Für eine Änderung des Verhaltens müsste der Programm Code erweitert werden.


Nur über "useArticles = 1" ist jeder Artikel eigenständig und hat ein eigenes 'auf Lager' Feld. Man kann einen Artikel, der nicht auf Lager ist, zunächst in den Warenkorb legen. Allerdings wird der Warenkorb sofort reduziert.
< Zurück zum Forum