Modul Products Attribut (Preis)

Hilfe zu Modulen und Tags
Post Reply
dalton
Forum Members
Forum Members
Posts: 45
Joined: Fri Feb 19, 2010 8:30 am

Modul Products Attribut (Preis)

Post by dalton »

Hallo,

habe folgendes Problem.
Ich habe ein Produkt mit verschiedenen Preisen und der wird bei den Attributs angegeben.

Jetzt habe ich z.B. den Preis für ein Produkt für "1.95" sobald ich es Bestellen möchte, wird es im Warenkorb als Preis von "1.00" angezeigt und die .95 sind verschwunden.

Der grund dafür ist das es im Select Feld für die Auswahl des Produkts mit "komma" staht "Punkt" angezeigt wird und dies auch im Wert, obwohl in der Datenbank und beim Eintrag von dem Preis ein Punkt geschrieben habe.

Kann mir jemand helfen?
Wie kann ich es ändern das  nicht ein Komma angezeigt wird im Select Feld beim Preis?

mfg
cyberman

Re: Modul Products Attribut (Preis)

Post by cyberman »

So richtig weiss ich nicht, wo genau dein Problem ist - wie genau hast du denn den Preis eingegeben, mit Komma oder mit Punkt?
dalton
Forum Members
Forum Members
Posts: 45
Joined: Fri Feb 19, 2010 8:30 am

Re: Modul Products Attribut (Preis)

Post by dalton »

Mit einem Punkt.

Aber in der Selectbox und im Value wird es immr als Kommadargestellt obwohl es in der DB und beim eintrag mit Punkt eingetragen wurde.

Es ändert den "punkt" irgendwie in der Selectbox zum "komma".

Aber vor dem Preis in der Selectbox ist noch ein Text und dort wird der Punkt angezeigt.
LightFighter

Re: Modul Products Attribut (Preis)

Post by LightFighter »

??? Das würde mich auch brennend interessieren, wie man es verhindert, jedes Mal bei Artikelbearbeitung die Kommata manuell auf Punkte umschreiben zu müssen.  :-\
Betrifft Eingabefelder für Preis und Gewicht.

Vielen Dank im Voraus für euer Einsatz. :)
cyberman

Re: Modul Products Attribut (Preis)

Post by cyberman »

Hmm, habt ihr mal eure Spracheinstellungen geprüft (auch in der config.php)?

Wenn ich mich recht entsinne, wird das (Punkt=EN, Komma=DE) doch mit den Spracheinstellungen automatisch umgestellt ...
Last edited by cyberman on Wed Sep 29, 2010 3:24 pm, edited 1 time in total.
LightFighter

Re: Modul Products Attribut (Preis)

Post by LightFighter »

Die Sprache wurde auf "Kein Standard" und auf "Englisch" abwechselnd umgestellt. Keine Auswirkung. In config.php habe ich nichts gefunden, was auf die Sprache hindeuten würde.
cyberman

Re: Modul Products Attribut (Preis)

Post by cyberman »

LightFighter wrote: In config.php habe ich nichts gefunden, was auf die Sprache hindeuten würde.
Und was ist mit

Code: Select all

$config['locale'] = 'de_DE';
Sollte eigentlich für die dafür verantwortliche Einstellung (setlocale()) verwendet werden.
LightFighter

Re: Modul Products Attribut (Preis)

Post by LightFighter »

Danke, für den Hinweis. Bei mir war gar nichts eingetragen.

Code: Select all

$config['locale'] = '';
Ich habe zwar de_DE eingetragen, hat aber nichts gebracht. Was mir noch aufgefallen ist: die selbstdefinierte Felder trifft das Problem nicht. Ich habe z.B. Das Feld Versandkosten eingefügt, dort bleibt der Punkt unverändert. Dieses Verhalten muss also irgendwo im Modul oder im CMS festgelegt sein. Aber wo? Kann ich nicht finden.
Das Einzige was ich gefunden habe ist

Code: Select all

$price = '';
if (isset($params['price']))
  {
    $price = (float)$params['price'];
  }

$weight = '';
if (isset($params['weight']))
  {
    $weight = (float)$params['weight'];
  }
in action.editproduct.php
LightFighter

Re: Modul Products Attribut (Preis)

Post by LightFighter »

Auch das noch...  :( Wenn ich bei Gewicht z.B. 0.325 eingebe, kommt beim nächsten Aufruf 0,33 raus! Die Felder für Preis und Gewicht sind definitiv auf 2 Nachkommastellen vorformatiert.
Tja, das war wohl ein Gedankenfehler. Ein Kilo ist ja bekanntlich 1000 Gramm und nicht 100  :D
cyberman

Re: Modul Products Attribut (Preis)

Post by cyberman »

LightFighter wrote: Ich habe zwar de_DE eingetragen, hat aber nichts gebracht.
Hmm, setlocale scheint bei dir nicht durchzugreifen - füge mal

Code: Select all

setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
in die config.php ein.
Was mir noch aufgefallen ist: die selbstdefinierte Felder trifft das Problem nicht. Ich habe z.B. Das Feld Versandkosten eingefügt, dort bleibt der Punkt unverändert.
Hmm, offensichtlich scheint es an dieser Stelle noch ein String zu sein, denn

Code: Select all

    $price = (float)$params['price'];
macht aus einem String eine Fließkommazahl.

Du könntest außerdem noch versuchen, number_format() als Modifikator einzusetzen

http://www.selfphp.info/funktionsrefere ... format.php
LightFighter

Re: Modul Products Attribut (Preis)

Post by LightFighter »

Tut mir Leid... Das Einfügen von setlocale hat auch keine Veränderungen gebracht.
Du könntest außerdem noch versuchen, number_format() als Modifikator einzusetzen
Den Modifikator benutze ich auch erfolgreich in Templates. Aber hier geht es um die vordefinierte Felder eines Formulars vom Modul Products (Artikelverwaltung). Ich kann einfach nich fassen, wo genau diese Umwandlung von 0.325 zu 0,33 passiert. Beim Speichern verwandelt sich natürlich 0,33 in 0,00, da das System nur Punkt als Dezimaltrennung akzeptiert. Das steht sogar als Hilfehinweis unter dem Eingabefeld! Ist die Situation nicht doof?  :-\
Wenn ich mal die Artikelbeschreibung o.ä. bearbeiten muss/möchte, öffne ich halt dieses Formular, und wenn ich nicht aufpasse oder jemand das Formular öffnet, der diese Macke nicht kennt, ändern sich die Preise und Gewichte automatisch. Das will doch keiner.
Last edited by LightFighter on Thu Oct 14, 2010 9:26 am, edited 1 time in total.
LightFighter

Re: Modul Products Attribut (Preis)

Post by LightFighter »

Halleluja! Ich habs gefunden!!! ;D

In der gleichen Datei (Products/action.editproduct.php) nur ein paar Zeilen weiter werden die ganzen Smarty-Variablen definiert und initialisiert. Dort in der Zeile 592 (ungefähr) wird die Variable {$inputprice} erstellt (sie wird später im Template editproduct.tpl aufgerufen).

Als Parameter zur Initialisierung der Variable wurde sprintf("%.2f",$price) benutzt. Genau hier ist der Schlusselpunkt.

Wenn man stattdessen number_format($price, 2, '.', ',') nimmt, bekommt man eine richtige Vorformatierung.

Zwei Zeilen weiter wird das Gleiche an die Variable {$inputweight} angewendet. Nur mit 3 Nachkommastellen, bitte: number_format($weight, 3, '.', ',').

Vielen Dank, cyberman. Dein Tipp mit number_format war genau richtig.
LightFighter

Re: Modul Products Attribut (Preis)

Post by LightFighter »

dalton, du kannst das Thema ruhig mit [GELÖST] versehen.  ;)
cyberman

Re: Modul Products Attribut (Preis)

Post by cyberman »

Bugreport?
LightFighter

Re: Modul Products Attribut (Preis)

Post by LightFighter »

Wird gemacht. Ich muss erstmal meine Englischkenntnisse zusammenkratzen.  :D
Post Reply

Return to “Module und Tags”