+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Virtuemart Checkout Rundungsfehler

  1. #1
    Neu an Board
    Registriert seit
    03.01.2007
    Beiträge
    16
    Bedankte sich
    5
    Erhielt 2 Danksagung
    in 1 Beitrag

    Standard Virtuemart Checkout Rundungsfehler

    Hallo,
    ich habe Joomla 1.15.14 + Virtuemart 1.1.4 installiert und kämpfe seit Wochen mit folgendem Problem:
    In meinem Shop sind die Preise mit drei Stellen hinterm Komma angelegt, was auch in den Browse-Templates richtig angezeigt wird. (Es handelt sich einfach um Kleinstartikel wie Etiketten, die eben nich in vollen Centbeträgen berechnet werden sollen).

    Im Warenkorb jedoch werden diese Preise zwar dreistellig hinterm Komma angezeigt, jedoch trotzdem auf zwei Stellen hinterm Komma gerundet.

    z.B. ein Artikel kostet 0,006 Euro / Stück - wird im Warenkorb jedoch mit 0,010 Euro angezeigt und durch den gesamten Checkout-Prozess falsch berechnet. Das ergibt eine Preisabweichung von bis zu 50% bei einem Artikel der eben nur einen halben Cent kostet, dafür aber in Großmengen verkauft wird.

    Ich habe natürlich in den Shopinformationen 3 Nachkommastellen eingegeben (er zeigt ja auch drei Stellen an, rundet jedoch auf zwei Stellen)

    Der Shop steht testweise unter: http://www.media-werbe-mittel.de/CMS/
    Mit dem Kundenlogin: 'test' und Kennwort: 'test' kann man dort eine Probebestellung eingeben.

    Ich verwende das default-Thema des Shops (funktioniert aber auch mit ja_larix nicht)

    Vielen Dank für Eure Hilfe.

    Oliver

  2. #2
    OJ*
    OJ* ist offline
    Hat hier eine Zweitwohnung
    Registriert seit
    28.08.2005
    Alter
    38
    Beiträge
    1.105
    Bedankte sich
    53
    Erhielt 197 Danksagungen
    in 185 Beiträgen

    Standard

    Das ist kein Rundungsfehler sonder eher ein Gedankenfehler würde ich sagen.

    Wenn ein Artikel 0,006 Euro kostet und ich diesen kaufe was soll ich denn dann bezahlen?
    Also wird mathematisch richtig auf 0,010 Euro gerundet.

  3. #3
    Hat hier eine Zweitwohnung Avatar von JoomlaWunder
    Registriert seit
    03.03.2010
    Beiträge
    1.494
    Bedankte sich
    88
    Erhielt 282 Danksagungen
    in 277 Beiträgen

    Standard

    Da schließe ich mich meinem Vorredner an.

    Am besten, du machst alles 2-stellig, und gut ist. Dann ist sogar noch dein Gewinn höher.

  4. #4
    Neu an Board Avatar von Sword
    Registriert seit
    13.05.2009
    Beiträge
    35
    Bedankte sich
    4
    1 Danksagung in 1 Beitrag

    Standard

    Zitat Zitat von JoomlaWunder Beitrag anzeigen
    Da schließe ich mich meinem Vorredner an.

    Am besten, du machst alles 2-stellig, und gut ist. Dann ist sogar noch dein Gewinn höher.
    ...oder man verkauft Mindestmänge von 10 St. dann kostet es 0,06 Euro und man hat das Problem mit Rundung nicht.

  5. #5
    Neu an Board
    Registriert seit
    03.01.2007
    Beiträge
    16
    Bedankte sich
    5
    Erhielt 2 Danksagung
    in 1 Beitrag

    Standard

    Zitat Zitat von OJ* Beitrag anzeigen
    Das ist kein Rundungsfehler sonder eher ein Gedankenfehler würde ich sagen.

    Wenn ein Artikel 0,006 Euro kostet und ich diesen kaufe was soll ich denn dann bezahlen?
    Also wird mathematisch richtig auf 0,010 Euro gerundet.
    Sorry, wenn ich Dir da nicht beipflichten kann. Würdest Du Dich in der Werbeartikebranche etwas auskennen, dann ist es dort üblich mit drei Stellen hinterm Komma zu rechnen. In diesem Bereich geht es oft um große Mengen bei dem es um Bruchteile von Cents ankommt. So kosten eben auch gem. meinem Beispiel 10.000 Etiketten x 0,006 Euro = 60 Euro und nicht 10.000 Etiketten x 0,01 = 100 Euro.
    Grundsätzlich hat Virtuemart in seinen Grundeinstellungen ja auch vorgesehen mit mehr als zwei Stellen hinterm Komma zu rechnen - nur stimmt die Rundung halt nicht.

    Kann mir bitte bitte jemand eine Antwort auf meine Frage geben. Ich suche eigentlich eine Lösung für mein Problem und keine Diskussion über Sinn und Unsinn einer dreistelligen Anzeige hinterm Komma.

  6. #6
    Neu an Board
    Registriert seit
    03.01.2007
    Beiträge
    16
    Bedankte sich
    5
    Erhielt 2 Danksagung
    in 1 Beitrag

    Standard

    Zitat Zitat von JoomlaWunder Beitrag anzeigen
    Da schließe ich mich meinem Vorredner an.

    Am besten, du machst alles 2-stellig, und gut ist. Dann ist sogar noch dein Gewinn höher.

    Ein Gewinn kann nur höher sein, wenn man mit dem höheren Preis auch etwas verkauft (siehe meine Antwort auf die andere Bemerkung im Forum). Ich suche virtuemartspezifische technische Vorschläge und keine verkäuferischen Ratschläge. Von verkauferischer Seite kann ich nur sagen, dass im B2B-Handel die Einkäufer zur besseren Vergleichbarkeit Stückpreise bevorzugen - also keine Preise per 10 Stück oder per 100 Stück. Das würde auch nicht funktionieren, da Werbeartikel zumeist mit Werbeaufdruck geliefert werden - d.h. drucktechnisch sind hier Über- und Unterlieferungen üblich - berechnet wird zum Schluß dann die tatsächlich gelieferte Menge (als Beispiel: 600 Feuerzeuge bestellt - ausgeliefert und berechnet 623 Feuerzeuge)

  7. #7
    Hat hier eine Zweitwohnung Avatar von JoomlaWunder
    Registriert seit
    03.03.2010
    Beiträge
    1.494
    Bedankte sich
    88
    Erhielt 282 Danksagungen
    in 277 Beiträgen

    Standard

    Mit einer Änderungen in den entsprechenden Dateien könnte man dies sicherlich erreichen. Leider weis ich aktuell nicht , welche Datei dafür zuständig ist.

    Aber: Ein Problem mit der Preis-Rundung hatte ich auch schon mal. Hatte mich dumm und dämlich gesucht. Lag letztendlich einfach nur daran, dass ich den Punkt und das Komma (also Tausender-Stelle und Komma-Stelle) falsch herum angewendet hatte.
    Könnte das eventuell auch bei dir so sein?

  8. #8
    Neu an Board
    Registriert seit
    03.01.2007
    Beiträge
    16
    Bedankte sich
    5
    Erhielt 2 Danksagung
    in 1 Beitrag

    Standard

    Zitat Zitat von JoomlaWunder Beitrag anzeigen
    Mit einer Änderungen in den entsprechenden Dateien könnte man dies sicherlich erreichen. Leider weis ich aktuell nicht , welche Datei dafür zuständig ist.

    Aber: Ein Problem mit der Preis-Rundung hatte ich auch schon mal. Hatte mich dumm und dämlich gesucht. Lag letztendlich einfach nur daran, dass ich den Punkt und das Komma (also Tausender-Stelle und Komma-Stelle) falsch herum angewendet hatte.
    Könnte das eventuell auch bei dir so sein?
    Nö, den Preis nimmt er ja aus dem Artikelstamm und dort wird er auch richtig angezeigt. Sobald er den Artikelpreis vom Artikelstamm in den Warenkorb übernimmt führt VirtueMart scheinbar eine Rundung durch (egal wieviele Nachkommastellen angezeigt werden).Vermutlich ist diese Rundungskorrektur irgendwann einmal an der falschen Stelle eingebaut worden, damit bei zwei Nachkommastellen keine Differenzen entstehen, da ja Virtuamart eigentlich mit 5 Nachkommastellen rechnen kann und prozentuale Aufschläge und Nachlässe hier zu scheinbar falschen Ergebnissen führten (hab ich aus alten Problemen im Forum abgeleitet) Ich denke, man muss hier etwas im Code ändern, aber welche Dateien sind hierfür zuständig? Irgendwo muss hier doch der Befehl für diese Rundung stecken, sonst würde ja der korrekte Betrag im Warenkorb einfach übernommen werden.

  9. #9
    Hat hier eine Zweitwohnung Avatar von JoomlaWunder
    Registriert seit
    03.03.2010
    Beiträge
    1.494
    Bedankte sich
    88
    Erhielt 282 Danksagungen
    in 277 Beiträgen

    Standard

    Einige Rundungen des Artikelpreises ($product_price) stecken in folgenden Dateien:

    administrator/components/com_virtuemart/classes/ps_checkout.php
    administrator/components/com_virtuemart/html/basket.php

    Da müsste man sich aber intensiv einarbeiten, um die richtigen Stellen zu finden.
    Weiter kann ich da auch nicht helfen.

  10. Erhielt Danksagungen von:


  11. #10
    Neu an Board
    Registriert seit
    03.01.2007
    Beiträge
    16
    Bedankte sich
    5
    Erhielt 2 Danksagung
    in 1 Beitrag

    Daumen hoch durchgebissen und Problem endlich gelöst...

    Zitat Zitat von JoomlaWunder Beitrag anzeigen
    Einige Rundungen des Artikelpreises ($product_price) stecken in folgenden Dateien:

    administrator/components/com_virtuemart/classes/ps_checkout.php
    administrator/components/com_virtuemart/html/basket.php

    Da müsste man sich aber intensiv einarbeiten, um die richtigen Stellen zu finden.
    Weiter kann ich da auch nicht helfen.
    So nun habe ich die Lösung:
    Dein Tipp mit dem basket.php hat mich auf die richtige Spur gebracht...

    Der erste Teil der Lösung steckt tatsächlich in:
    administrator/components/com_virtuemart/html/basket.php
    ändern line 112: $product_price = round( $product_price, 3 );
    ..stand vorher 2 statt 3 drin

    Danach war aber immer noch die Rundung vom Artikelpreis in der abschließenden Bestellbestätigung falsch. Hier muss man folgende Datei ändern:
    administrator/components/com_virtuemart/html/ro_basket.php
    ändern line 100: $product_rows[$i]['product_price'] = $GLOBALS['CURRENCY_DISPLAY']->getFullValue(round( $product_price, 3 ));
    ...stand auch vorher 2 statt 3 drin.

    Vielen Dank an alle Anregungen...

  12. Erhielt Danksagungen von:


+ Antworten
Seite 1 von 2 1 2 LetzteLetzte

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein