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  
17-12-09 09:02:46 Streichpreis
Björn Jacob
Ich nutze tt_products 2.6.x und bin auf der Suche, wie ich einen Streichpreis abbilden kann. Im Shop ist ein Produkt A. Der normale Preis (price1) beträgt 10 Euro, der Aktionspreis (price2) 9 Euro. Nun möchte ich, dass sowohl in der Liste, als auch in der Detailansicht des Produkts der normale Preis durchgestrichen dargestellt wird und der Aktionspreis darüber oder darunter als gültiger Preis erscheint.

Aktuell habe ich price1 und price2 für ein Testprodukt gepflegt. Ausgegeben wird aber noch nichts. Wie kann ich mein Ziel erreichen?

Danke und viele Grüße, Björn
28-12-09 09:11:23 Noch aktuell
Björn Jacob
Das Thema ist nach wie vor aktuell für mich. Ist das mit tt_products möglich?
28-12-09 21:54:10 alter Preis
Franz Holzinger
Es gibt Marker für den alten Preis eines Produktes:

###OLD_PRICE_TAX###, ###OLD_PRICE_NO_TAX###

Das entspricht dem ursprünglichen Preis, der bei einem Produkt eingetragen gewesen ist, ohne jegliche Preisreduzierung über Preis2 oder über das discountprice Setup bzw. pricecalc.
11-05-10 18:37:52 2.7.1?
Ines Willenbrock
Funktioniert das auch mit 2.7.1? z.Zt. habe ich die Marker ###OLD_PRICE_TAX### und ###PRICE_TAX### im Template stehen - und beide sind identisch in der Ausgabe. Wo würde denn der alte Preis gespeichert werden?

Und wie bekommt man im Zweifelsfall price2 angezeigt, oder wird der standardmässig nicht aus der Datenbank geladen und muss via TypoScript nachgeladen werden?
15-05-10 19:26:04 alter Preis
Franz Holzinger
Der alte Preis wird in ###OLD_PRICE_TAX### gespeichert.
Für price2 gibt es schon einen anderen Thread in diesem Forum. Die Preise werden immer aus der Datenbank geladen.
18-05-10 15:33:30 alter Preis die 2.
Ines Willenbrock
wo wird OLD_PRICE denn gespeichert? Oder gibts denn erst ab 2.8?
18-05-10 16:51:28 alter preis die 3.
Ines Willenbrock
und funktioniert OLD_PRICE auch für Artikel? ich hatte es schonmal versucht aber nur den "normalen" Preis angezeigt bekommen, der auch mit PRICE angezeigt wurde
19-05-10 20:19:44 tt_products ab 2.7.0
Franz Holzinger
Den Marker ###OLD_PRICE_TAX### gibt es wenigstens seit tt_products 2.7.0 (oder früher?).
Es gibt alle Preismarker für Produkte und für Artikel.
19-05-10 20:50:57
Ines Willenbrock
Also müsste sowas wie

statt ###ARTICLE_OLD_PRICE_TAX### nur noch ###ARTICLE_PRICE_TAX###

funktionieren?
20-05-10 08:22:14 stimmt
Franz Holzinger
Ja, so stimmt es:

alter Preis: ###ARTICLE_OLD_PRICE_TAX###
neuer Preis: ###ARTICLE_PRICE_TAX###

20-05-10 14:54:24 Speicherort OLD_PRICE?
Ines Willenbrock
ok, und um meine unendliche Neugierde zu stillen: wo speichert tt_products die alten Preise?

(Und warum scheint alles, was den entprechenden Marker füllen könnte auskommentiert im Code der 2.7.1?)
21-05-10 23:24:00 Debugausgabe zu OLD_PRICE:
Ines Willenbrock
Also bei mir wird der Wert zwar gefüllt, aber es ist egal, wie oft ich den Preis änder, es steht scheinbar immer der Wert von price drin...

Irgendwas mach ich falsch, gibt es irgendwelche TS-Settings, die nötig sind, dass das funktioniert?
25-05-10 08:34:44 Preismarker
Franz Holzinger
Alle Preismarker werden in der Datei
view/field/class.tx_ttproducts_field_price_view.php

Ein Preis kann vom Produkt oder vom Artikel kommen, oder sogar aus einer Preisberechnung stammen.
25-05-10 11:03:12 Berechnung OLD_PRICE
Ines Willenbrock
ok - soweit ist das auch schon klar.
Was ich nicht verstehe ist auch eher die Zeile aus der entsprechenden Datei aus model/field/class.tx_tt_products_field_price.php aus getPriceArray():
$priceArray['0tax'] = $this->getResellerPrice($internalRow,1,0);

Wenn ich das richtig verstehe, füllt getPriceArray() das im View verwendete Array mit den dazugehörigen Preisen.
Soweit auch ok, der Preis wird mittels getResellerPrice() aus $internalRow['price'] gewonnen - aber wie bitte erreiche ich damit die Ausgabe vom vorhergehenden Preis? Oder ist das ein Missverständnis, dass OLD_PRICE garnicht den alten Preis beinhaltet sondern was ganz anderes ist?
25-05-10 13:21:43 Preis 0
Franz Holzinger
Der Marker für Preis 0 soll den unveränderten Originalpreis liefern. Aber die Steuer muss trotzdem mit hineingerechnet werden.
Womöglich wird der falsche Datensatz übergeben. Es müsste dann
$priceArray['0tax'] = $this->getResellerPrice($row,1,0);
heißen.
25-05-10 14:37:13 danke
Ines Willenbrock
Danke, nun verstehe ich auch mehr vom OLD_PRICE - der ist also für meine Zwecke nicht wirklich nutzbar, auch gut.

'0tax' => 'OLD_PRICE_TAX', wie in der view/field/class.tx_ttproducts_field_price_view.php definiert,
klang dann doch zu verlockend, zumal das oben auch für die Streichpreise empfohlen wurde...

Viele Grüße, Ines
25-05-10 17:50:33 alter Preis
Franz Holzinger
Der alte Preis ist doch der Streichpreis. Oder habe ich hier etwas falsch verstanden?
26-05-10 14:43:33 streichpreis oder auch nicht
Ines Willenbrock
Nun, wenn price dann eher durch Berechnung ermittelt wird (geht das überhaupt pro Produkt?) und OLD_PRICE den Inhalt des Feldes in der Datenbank bekommt ist das zwar ansich völlig ok, aber halt nur begrenzt für meinen Fall nutzbar: "Besondere" rauswerf-Aktionen mittels 2. Preis und durchstreichen des Originales pro Artikel kennzeichnen. Diese Artikel sollen aber in der normalen Liste der Kategorie stehen bleiben und nicht (ausschliesslich) an einem anderen Ort als Aktions-Artikel erscheinen.
Die neuen Preise lassen sich eher selten mathematisch sinnvoll für eine Kategorie beschreiben - und dem shopbetreiber vermitteln, wie er die Preise pro Artikel via TS konfiguriert geht etwas am gewünschten Szenario vorbei.

Evtl. denk ich auch einfach wieder zu kompliziert: ich brauche aber definitiv eine Eingabemöglichkeit, die einen Angebotspreis direkt im Backend angeben lässt.

Meine Idee dazu war jetzt schon, eine eigene Extension für dieses Szenario zu schreiben, die dann einen Marker entsprechend füllt, ob price2 gesetzt oder nicht. Dass sollte ja eigentlich mit dem bekannten Hook getItemMarkerArray() möglich sein.

Ines
< Zurück zum Forum