Jump to content

CHF runden auf 5 Rappen - erfolglos gesucht


Recommended Posts

Hallo zusammen

 

Ich habe zwar in dem Forum bereits gesucht - jedoch keine Antworten gefunden. Wie kann ich das System einstellen, damit ich auf 5 Rappen runden kann?

 

Danke für euer Feedback und Grüsse

Alain

 

PrestaShop™ 1.5.4.0

Edited by iAlain (see edit history)
Link to comment
Share on other sites

Eigentlich, wenn du den Shop installiert hast mit der Lokalisierung Schweiz, sollten die Schweizer-Regeln korrekt ablaufen. PS 1.5.4. hat ja so einige Fehler...

 

Die Rundungsregeln stellst du ein unter: Voreinstellungen -> Allgemein -> Rundungsregeln. Probiere es mit einer anderen Auswahl, wobei nach deinem Muster sei gesagt, dass einmal höher, einmal niedriger geht nur mit der Regel Klassisch, welche bis 50 abrundet (bei glaube ich sechs Stellen hinter Komma - einmal sind es 4 dann wieder 6, da wurde so oft schon geändert) und ab 51 aufrundet.

Link to comment
Share on other sites

Hallo

 

Ich könnte auch damit leben, wenn es nur hoch geht. ;) also ab 2.31 auf 2.35, ab 2.36 auf 2.40 usw.

 

Den Cent 1,2,3.. haben wir in der Schweiz leider nicht. Nur die 5 Rappen.

 

Ich habe den Shop mit der Lokalisierung "Schweiz" installiert und es auch mit den Rundungsregeln verucht - geht alles nicht - leider...

 

Besteht das Problem auch bei anderen?

Link to comment
Share on other sites

Ja bestand früher schon. Dürfte irgendwann mal mit dem Lokalisierungspaket korrigiert worden sein, oder achtet keiner mehr darauf, weil keine Fragen diesbezüglich schon seit langem gestellt wurden.

 

Kann auch sein, dass andere Schweizer ihre Preise gleich in gerundeter Form im Shop abbilden, was ja auch kundenfreundlicher wirkt

23,00 oder 24,00 anstatt 23,01 oder 23,47.

Link to comment
Share on other sites

Gleich gerundet ist auch schwierig:

 

23.00 + 8% MWSt = 24.84 ;)

 

Gibt man gerundet inkl. MWSt ein, dann kann es bei Mengenrabatten passieren... Usw.

 

Es erstaunt mich sehr, dass das Thema hier nicht mehr behandelt wird? Wird der Shop in der Scweiz vielleicht daher seltener eingesetzt? Verstehe ich nicht - denn der Shop ist absolut innovativ, klares Dashboard etc....

 

Nicht gerundete Preise ist eigentlich ein nogo in der Schweiz. Kann man das an das Entwickler Team übermittel? Denke in der CH liegt doch auch noch Potential. ;)

  • Like 1
Link to comment
Share on other sites

Die Preise bei Prestashop gehen immer vom Netto aus. Rechne sie dir doch mit Excel vor dem Import um. Vermutlich haben andere das Problem nicht, weil sie auch vom Brutto ausgehen, sonder vom Netto, der ja auch als Netto eingekauft wird.

Link to comment
Share on other sites

Guten Morgen

 

Ja und nein. Wenn ich bei z.B. Staffelungen einen Rabatt gebe... ab 10 Stück 3% Rabatt, ab 20 Stück 4% Rabatt, dann kommt nicht immer eine gerade Zahl raus... 1 Stück z.B. CHF 3.-, kauf man nur 9 Stück - kein Problem, kauf man 13 Stück - das sind dann CHF 39.- abzüglich der 3% Mengenrabatt CHF 37.83! Voilà.

 

Auch ERP-System runden in der Schweiz... ist halt so. ;)

Link to comment
Share on other sites

Rabatte werden auch vom ganzen Preis gezogen, aber die Einpflege in Prestashop ist netto.

 

Brutto-Preis 9,99 - 33% = 6,69333 angezeigt wird dann 6,69

 

Ich habe auch noch nie in einem einzigen Geschäft gesehen, dass wenn auf einen Preis von X und einen Rabatt von Y der Preis dann absolut verkauft wird, also gerundet auf absolut. Die Preise können dann nur gebrochen ausgegeben werden.

Und haben dann auch genau diese korrekte Anzeige:

 

das sind dann CHF 39.- abzüglich der 3% Mengenrabatt CHF 37.83! Voilà.
Würden sie anders angezeigt, wären sie manipuliert und entsprechen nicht der Wahrheit.

 

Sorry, ich verstehe absolut nicht das Problem. Es mag sein, dass andere Systeme oder ERP's eine Preisangabe absolut erlauben, das kann Prestashop auch, daran sollte es nicht scheitern. Die Rundungsregeln, welche zur Verfügung stehen sind bei Prestashop aber auch auf die Mehrheit abgestimmt.

Link to comment
Share on other sites

Hallo

 

Würden sie anders angezeigt, wären sie manipuliert und entsprechen nicht der Wahrheit.

Die Aussage stellst gerade das ganze Finanzsystem der Schweiz in Frage. ;)

Nein, im ernst - mit Rappen rechnen kann und soll das System schon - somit auch keine Verfälschung. Doch die Ausgabe des Preises muss immer auf 5 Rappen gerundet sein.

Vielleicht habe ich mich auch nicht genau ausgedrückt, daher hier ein paar Infos und URLs.

 

Quelle: http://de.wikipedia.org/wiki/Rundung

 

Besonders diesen Ausschnitt:

 

Rappenrundung

 

Eine Besonderheit in der Schweiz ist die Rappenrundung. Obwohl in der Schweiz durchaus nach Bedarf mit Rappen gerechnet wird, werden jedoch keine Beträge kleiner als 5 Rappen in Bargeld bezahlt oder in Rechnung gestellt. Effektive Geldbeträge müssen entsprechend gerundet werden. Sofern kaufmännisch gerundet wird, geschieht dies nach folgendem Schema:

 

Ausschlaggebend für die Rundung ist die Mitte zwischen 0 und 5 Rappen, resp. zwischen 5 und den nächsten 10 Rappen. Wenn die zu rundende Zahl gleich oder höher als die Mitte ist, wird aufgerundet, ansonsten abgerundet.

Beispiel:

 

1,000–1,024 → 1,00

1,025–1,074 → 1,05

1,075–1,099 → 1,10

 

Soll nicht kaufmännisch gerundet, sondern grundsätzlich abgerundet werden, geschieht dies nach dem folgenden Schema:

Beispiel:

 

1,000–1,049 → 1,00

1,050–1,099 → 1,05

1,100–1,149 → 1,10

 

Für die Berechnung der kaufmännischen Rappenrundung muss der zu rundende Betrag mal 20 gerechnet werden. Anschließend wird dieses Resultat auf 0 Stellen kaufmännisch gerundet. Am Ende wird der gerundete Betrag wieder durch 20 geteilt.

Dieses Konzept ist auch in anderen Ländern bekannt, so unter anderem in Finnland, bei der die kleinste Währungseinheit die 5-Eurocent-Münze ist.

 

Bei Magento:

http://www.openstream.ch/forums/topic/magento-fur-den-schweizer-markt/

https://github.com/openstream/Magento5CentRounding

 

Es gibt auch zahlreiche Forenbeiträge etc. Natürlich gibt es - wie im Wiki beschrieben - klare Rundungsregeln.

Link to comment
Share on other sites

Sorry, ich kann dir da leider nicht weiterhelfen. Ob da in PS 1.5.4. ein Fehler im Lokalisierungspaket Schweiz enthalten ist oder nicht, kann ich dir nicht sagen. Bitte deponiere das Problem im bug-tracker-report. Offensichtlich war das Problem in vorigen Versionen nicht vorhanden, sonst wären hier einige Beiträge darüber zu finden.

 

http://forge.prestashop.com

 

Alternativ könntest du es mit einer Testversion PS 1.4.10 probieren. Evtl. funktioniert dort die Lokalisierung für die Schweiz korrekt, ohne dass man irgendwelche Einstellungen vornehmen muss.

Link to comment
Share on other sites

  • 2 weeks later...

Lösung:

 

Wenn ihr im Standard-Rundungsmodus auf 5 Rappen gerundet haben wollt (was bei uns in der CH ja üblich sein sollte), müsst ihr das classes/Tools.php anpassen.

 

Bei mir sieht das jetzt so aus:

1211		 public static function ps_round($value, $precision = 0)
1212		 {
1213				 static $method = null;
1214
1215				 if ($method == null)
1216						 $method = (int)Configuration::get('PS_PRICE_ROUND_MODE');
1217
1218				 if ($method == PS_ROUND_UP)
1219						 return Tools::ceilf($value, $precision);
1220				 elseif ($method == PS_ROUND_DOWN)
1221						 return Tools::floorf($value, $precision);
1222				 return Tools::ps_chf($value);;
1223		 }
1224
1225		public static function ps_chf($value)
1226		{
1227				 $tmp = (100*round($value,2)) % 5;
1228				 if ($tmp  == 0 ) {
1229				 $chf = $value;
1230				 } else if ($tmp <= 2) {
1231				 $chf = ($value -$tmp/100);
1232				 } else {
1233				 $chf = ($value + (5-$tmp)/100);
1234				 }
1235				 return number_format((round(20*$chf))/20,2);
1236		}
1237

 

Das rundet natürlich nicht die MWST-Preis-Berechnungen wenn man einen Artikel erfasst, d.h. ich erfasse meine Artikel immer Brutto und lasse den Netto-Preis rechnen, da kümmert mich die Rundung nicht.

 

Wenn jemand Bedarf hat, kann ich die Anpassung fürs tools.js (in dem findet die andere Rundung statt) auch noch liefern.

 

Gruss

Markus

 

P.S.: Das Modul, das im Store für €89.90 angeboten wird, beinhaltet wohl im Admin-GUI einen zusätzlichen Rundungstyp, so dass das Ganze einfach konfigurierbar ist, und die JavaScript-Anpassung für die MWST-Rundung.

Edited by Martech (see edit history)
Link to comment
Share on other sites

Eine Besonderheit in der Schweiz ist die Rappenrundung.

Ist meines Wissen nach in den Niederlanden auch nicht viel anders gewesen, die haben meines Wissens nach gar keine Münzen kleiner 0,05 Gulden gehabt. Allerdings haben die durchaus Preise, die auf ,99 enden in den Geschäften ausgezeichnet. Was dann an der Kasse 1 mal zu einem Runden führte.

Daher einfach nur mal aus Interesse gefragt, ist das in der Schweiz anders geregelt, oder habe ich hier einen Denkfehler, wenn ich davon ausgehe, dass die Rundungsregel jeden Preis runden würde?

 

LG Klaus / Lockesoft

Link to comment
Share on other sites

Daher einfach nur mal aus Interesse gefragt, ist das in der Schweiz anders geregelt, oder habe ich hier einen Denkfehler, wenn ich davon ausgehe, dass die Rundungsregel jeden Preis runden würde?

 

Das ist so. In der Schweiz sind Lidl und Aldi wohl die einzigen, die mit .99 Preisen arbeiten und dann an der Kasse runden. Alle anderen haben .95 Preise, jeder einzelne Artikel ist auf 5 Rappen genau ausgezeichnet.

Das Problem des ursprünglichen Posters ist evt., dass er in einem grossen Schweizer Preisvergleichsportal nicht mehr zugelassen wurde, weil seine Preise nicht sauber auf .05 gerundet waren. Hatte gerade so einen Fall im Bekanntenkreis, das ist bei uns also ein sehr dominantes Thema ;)

 

Wie das bei uns mal einer formuliert hat:

Ist so, weil ist so. Bleibt so, weil war so.

Edited by Martech (see edit history)
  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Hi zusammen

 

Danke für die Teilnahme an dem Post.

 

Wenn jemand Bedarf hat, kann ich die Anpassung fürs tools.js (in dem findet die andere Rundung statt) auch noch liefern.

@ Markus: Gerne - wenn du alles fix fertig hast, würde ich natürlich das gerne ausprobieren.

 

Gibt es eine Möglichkeit, dass man dieses Problem den Entwicklern von PrestaShop für das BackLog mitteilen kann?

 

Herzlichen Dank und Grüsse

Alain

 

PS: Noch etwas:

 

Das Problem des ursprünglichen Posters ist evt., dass er in einem grossen Schweizer Preisvergleichsportal nicht mehr zugelassen wurde, weil seine Preise nicht sauber auf .05 gerundet waren. Hatte gerade so einen Fall im Bekanntenkreis, das ist bei uns also ein sehr dominantes Thema

Dann setzt du und dein Bekannter PrestaShop ein? Was habt ihr im Bezug auf das Preisvergleichsportal nun unternommen?

Edited by iAlain (see edit history)
Link to comment
Share on other sites

  • 3 weeks later...

Sorry, bin zur Zeit stark ausgelastet und komme nur selten dazu, mich hier umzusehen ;)

Ich werde das angepasste JS hier noch posten, dauert aber sicher noch ein paar Tage.

 

Was das Portal angeht: die Preise sind jetzt sauber gerundet, dann haben wir noch etwas an unserem Export-Skript geschraubt und jetzt sind seine Artikel wieder gelistet.

Link to comment
Share on other sites

  • 1 month later...

Hm, habe das Problem mit der Rundung auf 5 Rappen nun auch.

 

Mit dem Code von Martech hat es bisher noch nicht geklappt, vermutlich steh ich auf dem Schlauch. Da zerhaut es mir alle Preise im FO. :(

 

Hat vielleicht jemand bereits angepasste Dateien, die ohneProbleme funktionieren. Oder eventuell ein getestetes Modul?

 

Grüsse

 

aussteiger

Link to comment
Share on other sites

  • 3 weeks later...

Lösung:

 

Wenn ihr im Standard-Rundungsmodus auf 5 Rappen gerundet haben wollt (was bei uns in der CH ja üblich sein sollte), müsst ihr das classes/Tools.php anpassen.

 

Bei mir sieht das jetzt so aus:

1211		 public static function ps_round($value, $precision = 0)
1212		 {
1213				 static $method = null;
1214
1215				 if ($method == null)
1216						 $method = (int)Configuration::get('PS_PRICE_ROUND_MODE');
1217
1218				 if ($method == PS_ROUND_UP)
1219						 return Tools::ceilf($value, $precision);
1220				 elseif ($method == PS_ROUND_DOWN)
1221						 return Tools::floorf($value, $precision);
1222				 return Tools::ps_chf($value);;
1223		 }
1224
1225		public static function ps_chf($value)
1226		{
1227				 $tmp = (100*round($value,2)) % 5;
1228				 if ($tmp  == 0 ) {
1229				 $chf = $value;
1230				 } else if ($tmp <= 2) {
1231				 $chf = ($value -$tmp/100);
1232				 } else {
1233				 $chf = ($value + (5-$tmp)/100);
1234				 }
1235				 return number_format((round(20*$chf))/20,2);
1236		}
1237

 

Das rundet natürlich nicht die MWST-Preis-Berechnungen wenn man einen Artikel erfasst, d.h. ich erfasse meine Artikel immer Brutto und lasse den Netto-Preis rechnen, da kümmert mich die Rundung nicht.

 

Wenn jemand Bedarf hat, kann ich die Anpassung fürs tools.js (in dem findet die andere Rundung statt) auch noch liefern.

 

Gruss

Markus

 

P.S.: Das Modul, das im Store für €89.90 angeboten wird, beinhaltet wohl im Admin-GUI einen zusätzlichen Rundungstyp, so dass das Ganze einfach konfigurierbar ist, und die JavaScript-Anpassung für die MWST-Rundung.

 

Deine Anpassung funktioniert unglücklicherweise nur begrenzt.

Es traten bei der Verwendung deines Codes folgende Probleme auf:

1. Im Warenkorb kann die gewünschte Produktmenge nicht mehr angepasst werden. (betrifft + und - Symbole sowie Eingabefeld)

2. Erreicht ein Produkt (oder mehrere Produkte) einen Gesamtwert von 1000.- oder mehr, wird im Warenkorb (ich verwende die Ajax Version) der Preis von 1.- zurückgegeben. Ouch!

3. Besitzt ein Produkt Kombinationen, wird der Preis auf der Produktseite nicht korrekt dargestellt.

 

Grüsse Nihi

Link to comment
Share on other sites

Deine Anpassung funktioniert unglücklicherweise nur begrenzt.

Es traten bei der Verwendung deines Codes folgende Probleme auf:

1. Im Warenkorb kann die gewünschte Produktmenge nicht mehr angepasst werden. (betrifft + und - Symbole sowie Eingabefeld)

2. Erreicht ein Produkt (oder mehrere Produkte) einen Gesamtwert von 1000.- oder mehr, wird im Warenkorb (ich verwende die Ajax Version) der Preis von 1.- zurückgegeben. Ouch!

3. Besitzt ein Produkt Kombinationen, wird der Preis auf der Produktseite nicht korrekt dargestellt.

 

Grüsse Nihi

 

Hi

 

Das kann fast nicht sein, da diese Anpassungen keine Auswirkungen auf irgendwelche GUI-Operationen haben dürften, es werden nur Zahlen gerundet, und das in einer sehr einfachen Grundfunktion. Wir haben hier zwei Shops am laufen, und bei beiden bisher keine derartigen Probleme.

Hast Du gleichzeitig noch etwas anderes geändert?

 

Gruss

Martech

Link to comment
Share on other sites

Huch, das ist ja interessant.

Nein, keine sonstigen Änderungen. Hab natürlich auch mit dem Standarttheme und ohne sonstige Änderungen am Corecode probiert, und die drei Probleme treffen ebenfalls auf.

Ich verwende übrigens Version 1.5.4.1.

Ich werde das ganze mal an einer frischen Installation versuchen.

Link to comment
Share on other sites

Falls Du sowas im Zugriff hast, kannst Du sonst evtl. auch das error.log des Webservers oder das Javascript-Error-Log des Browsers mal posten. Wenn irgendwas in die Binsen geht, müsste das da irgendwo auftauchen.

Link to comment
Share on other sites

Danke für deine Antwort.

Ja, in der Tat hat die tools.js Probleme verursacht.

In einem anderen Thread fand ich allerdings den Link zu einem Shop ( https://wdxperience.ch/shop/ ) eines Welschschweizers, welcher ein (gratis) pdf anbietet, welches das Problem ebenfalls löst.

Danke trotzdem vielmals für deine Hilfe Martech.

 

Grüsse Nihi

Link to comment
Share on other sites

  • 2 weeks later...

Hallo Nihi

 

Nach der Mutation gemäss wdxeperience, kann ich die Hersteller im Herstellerblock nicht mehr aufrufen (kein switch auf die Hersteller mehr).

 

Hatest du danach das gleiche Problem? Wenn ja, wie hast du es gelöst?

 

Viele Grüsse

birobiro

Link to comment
Share on other sites

Hallo briobiro

 

Ich habe das Modul kurz aktiviert, um zu sehen, ob ich das gleiche Problem habe, was allerdings nicht der Fall ist.

Es werden mir alle Hersteller angezeigt und auch die verlinkung funktioniert.

 

Somit kann ich dir nicht wirklich weiterhelfen.

 

Grüsse Nihi

Link to comment
Share on other sites

Hallo Nihi

 

Danke für deine Antwort :D

 

wdxperience stellt ja bereits mutierte Dateien zur Verfügung wie z.B. Tools.php. Wollte nur wissen, ob du diese übernommen hast oder deine eigene dementsprechend verändert hast.

 

Wie auch immer, ich konnte das Problem lösen. Ich habe lediglich class_index.php gemäss Anweisung mutiert und nun funktioniert alles?!?! :blink:

 

Viele Grüsse

birobiro

Edited by birobiro (see edit history)
Link to comment
Share on other sites

  • 1 year later...

Prestashop 1.6.0.9:

 

classes / Tools.php

 

public static function ps_round($value, $precision = 0)
{
  static $method = null;
 
  if ($method == null)
    $method = (int)Configuration::get('PS_PRICE_ROUND_MODE');
 
  if ($method == PS_ROUND_UP)
    return Tools::ceilf($value, $precision);
  elseif ($method == PS_ROUND_DOWN)
    return Tools::floorf($value, $precision);
  // Original by prestashop is: return round($value, $precision);
  return(round($value/5, $precision)*5);
}
 
js / tools.js
 
function ps_round(value, precision)
{
  if (typeof(roundMode) === 'undefined')
    roundMode = 2;
  if (typeof(precision) === 'undefined')
    precision = 2;
 
  var method = roundMode;
  if (method === 0)
    return ceilf(value, precision);
  else if (method === 1)
    return floorf(value, precision);
  var precisionFactor = precision === 0 ? 1 : Math.pow(10, precision);
  // return Math.round(value * precisionFactor) / precisionFactor;
  return Math.round(value / 0.05) * 0.05;
}

 

Das macht prestashop "classic rounding" arbeiten mit 0.05 CHF...

  • Like 1
Link to comment
Share on other sites

  • 2 months later...

die Lösung von tiziano.besomi würde soweit funktionieren. Der gerundete Schweizer-Preis wird bei der Produkt-Übersichts Seite angezeigt (also da wo verschiedene Produkte aufgelistet sind) und auch im Warenkorb ist der Preis korrekt. Einzig beim Produktdetail nicht.. dort wird der "falsch" gerundete Preis angezeigt.

Link to comment
Share on other sites

  • 7 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...