Preis mit mehr Nachkommastellen

Hi,

ich habe ein sehr schwerwiegendes Problem.
Wir müssen für einige Artikel einen recht kleinen Stückpreis haben. Leider habe ich gerde gemerkt, dass das Feld oxprice in der Datenbank nur den Typ double hat.

Jetzt soll es aber bei diesen Artikeln folgendermaßen aussehen:

Artikel: Blätter Papier
Preis 12,99 / pro 1000 Stück

Um jetzt aber 1000 kaufen zu können, müssen aber wirklich 1000 in den Warenkorb legen und nicht 1 mal.
Also brauche ich einen Grundpreis 12,99 /1000 und hatte vor im Template den Einzelpreis zu rechen, damit im Warenkorb nachher alles sauber von statten geht.

Aber dann wollte ich 0,01299 eintragen, was ja der Einzelpreis ist.
Aber wie ihr euch schon denken könnt, geht das natürlich nicht.

Habt ihr da eine Idee?

Viele Grüße

Christopher

Admin/Einstellungen/weitere Einstellungen:

EUR@ 1.00@ ,@ .@ €@ 5

Perfekt, das war es :slight_smile: Danke @rubbercut

Kleiner Nachtrag. Rechnen tut er ja nun richtig, also mit den vielen Nachkommastellen.
Allerdings zeigt er nun im Shop auch alle Nachkommastellen an. Kann man
[{oxprice price=$Variable currency=$currency}]
so beeinflussen, dass er dort nur 2 Nachkommastellen anzeigt, auch wenn im Backend EUR@ 1.00@ ,@ .@ €@ 5 einstellt ist?

Ich weiß ist eine blöde Anfrage, aber Gesamtsumme 216,870000 € sieht etwas komisch aus.

Du kannst die Ausgabe direkt im Template mit Smarty anpassen:
https://www.smarty.net/docsv2/de/language.modifier.string.format.tpl

Ok, das hatte ich auch schon gefunden. Kann man das auch auf die oxprice funktion anwenden oder nur mit:

[{$variable|string_format:"%.2f"}]

Ich hatte nämlich schon so etwas probiert:

[{oxprice price=$Variable|string_format:"%.2f" currency=$currency}]

Aber da kam nur Müll bei raus.

Du könntest noch versuchen in der BasketItem.php die Ausgabe direkt im PHP zu kürzen.

Schau Dir smarty_function_oxprice an. Zur Anzeige eines Preises brauchst das nicht: [{$deinformatierterpreis}] [{$currency->sign}]
Um die Ausgabe für alle zu formatieren, würde ich mir die Methode fround()
anschauen, die sich sowohl in getbruttoprice als auch in getnettoprice wiederfindet.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.