Hallo, habe mich gewundert, dass die Beträge in den Statusmails von denen auf den Rechnungen abweichen, immer so ein, zwei Cents. Habe dann in der sArticles.php in der Funktion sCalculatingPriceNum() folgendes entdeckt: if ($donotround){ if ((!$this-\>sSYSTEM-\>sUSERGROUPDATA["tax"] && $this-\>sSYSTEM-\>sUSERGROUPDATA["id"])){ }else { $price = $price\*(100+$tax)/100; } }else { if ((!$this-\>sSYSTEM-\>sUSERGROUPDATA["tax"] && $this-\>sSYSTEM-\>sUSERGROUPDATA["id"])){ $price = round($price,3); }else { $price = round($price\*(100+$tax)/100,3); } } return $price;
Dort wird ja auf drei Stellen nach dem Komma gerundet, das ergibt dann bei uns Preise wie 1,402 x 5 Artikel = 7,01 und nicht wie im Shop ausgerechnet 7,00. Abgebucht wird übrigens immer der korrekte Betrag, nur die Anzeige auf der Rechnung ist falsch (hat sich aber noch kein Kunde gemeldet…) Wenn ich das auf “2” ändere, stimmen die ganzen Beträge überein. Nun meine Frage: sind die drei Stellen so gewollt, für irgendwelche Berechnungen hinterher (wie bei Nettobeträgen) oder kann ich gefahrlos auf zwei Stellen runden? Das müsste aber doch auch bei euch/anderen Shops ebenfalls Probleme geben? :shock: Viele Grüße, Patrick
Hallo Zusammen, ich glaube ich habe genau das gleiche Problem. In meinem shop 3.5.5 community edition gibt es “Rundungsfehler” in den Rechnungen. Im Warenkorb und beim Bezahlen sind die Werte korrekt. Kann ich das mit der Änderung die Patrick vorschlägt beheben? Grüße Frank
Hinweis: In der Version 3.5.6 wird dort auch mit 3 Nachkommastellen gerundet. Mich würde auch mal der Grund interessieren.
Hallo Ihr alle, nachdem ich nun eine wenig geforscht und getestet habe: Patricks Vermutung ist genau richtig! Problembeschreibung: Bei Kundengruppen mit Rabatt wurde im Shop beim Checkout korrekt gerechnet und auch abgerechnet (bezahlt). Die Bestätigungs e-mail enthält auch die richtigen Werte. Die Rechnungen die danach generiert wurden weisen andere (falsche) Summen aus. Feststellungen: shopware CE 3.5.5 Die fehlerhaften Summen sind nachvollziehbare Rundungsfehler. In der Datenbanktabelle s_order_details stehen die Preise mit 3 Stellen nach dem Komma. Beim Durchsuchen der Dateien fällt auf das ausser in den Routinen sCalculatingPriceNum() und sCalculatingPrice()immer auf 2 Stellen nach dem Komma gerundet wird. Lösung: Ich habe wie von Patrick vorgeschlagen diese Routinen eben auch auf 2 Stellen geändert. Nu passt alles, die Werte Stimmen jetzt überall überein und sind auch richtig. DANKE Patrick für den Tipp. Grüße an Alle Frank
Bin zufällig wieder auf diesen Beitrag gestoßen, unser Shop läuft jetzt seit Juli 2011 problemlos mit den Änderungen, überall richtige Werte. Gruß Patrick