blog@grafikmaker.de

News, Tips und Tricks für Ecommerce, Webdesign, Programmierung, XTCommerce und xtcModified von grafikmaker.de

Globale Preisänderungen in der Datenbank bei XTC, xtcModified und Co.

Hin und wieder kommt es bei einigen Shops vor, daß mal auf die schnelle alle Preise prozentual  im Shop angepasst werden müssen. Wenn man im Shop nur wenige Artikel hat mag das alles noch über die normale Artikelverwaltung im Shop gehen. Nur wenn im Shop mehrere hundert oder tausend Artikel vorhanden sind…….viel Spaß bei der Arbeit ;)

Naja, zum Glück gibt es dafür auch die Möglichkeit dies direkt in der Datenbank zu erledigen. Einige Datenbankanweisungen dafür findet man auch im Netz, wie z.B. diese:

update products set products_price=round(products_price*1.05);

Dies hat aber einen kleinen Haken, denn die Funktion „round()“ innerhalb der Anweisung rundet die Preise nicht auf Cent-Beträge sonder auf volle Euros. Das führt dann zu nicht gewollten Preisänderungen.
z.B.: 1,50€ werden zu 2,00€ oder 1,40€ werden zu 1,00€

Somit ergeben sich hier völlig ungewollte Preisänderungen die zum Teil nicht mal eine Preiserhöhung sondern eine Preisminderung zur Folge haben.

Man kann das nun wie folgt umgehen.
1. man lässt die Funktion „round()“ komplett aus der Anweisung raus
2. man erweitert die Funktion „round()“ um die Angabe von Decimalstellen

Mit der Angabe von z.B. 4 Decimalstellen würde das wie folgt aussehen:

 

update products set products_price=round(products_price*1.05,4);

Somit würde das Ergebnis wie folgt aussehen:
[Preis 1,4567€] * [Preiserhöhung 5%] = [Ergebnis inkl. Rundung 1,5295€] // altes Ergebnis wäre hier = 2,0000€
[Preis 1,3745€] * [Preiserhöhung 5%] = [Ergebnis inkl. Rundung 1,4432€] // altes Ergebnis wäre hier = 1,0000€

Viel Spaß damit und wie immer….Feedback erwünscht!

  • Dieser Beitrag wurde geschrieben von Thomas am 10. Jun 2011

Schreibe einen Kommentar


Copyright © 2018 Thomas Wernecke - Grafiker // Webdesigner // Programmierer // made width Wordpress