Preise & Nachkommastellen

Über dieses Dokument

Dieser Artikel beschreibt den Umgang mit Nachkommastellen von Preisen im System. Es soll in erster Linie für die weitere Arbeit bei der Formatierung und / oder Ausgabe von Preisen helfen.

Hinweis: Die Liste der Komponennten / Bereiche im Legacy sollte bei einer Erweiterung um die Berechnung der nachkommastellen auch hier ergänzt werden. (Pfad plus evtl. Kommentar dazu.)

Nachkommastellen Logik Allgemein

Bei den Nachkommastellen unterscheiden wir nach der "Berechnungsgrundlage" und dem "Ausgabeformat". Die Berechnungsgrundlage wird für die Preisberechnung verwendet und kann sich von dem gewünschten Ausgabeformat unterscheiden. Beispiel: Berechnugngrundlage ist ein Preis mit 3 Nachkommastellen, das Ausgabeformat im Land Deutschland (oder im User) ist auf 2 Nachkommastellen festgelegt.

Hinweis: Im Backend zieht in erster Linie das Ausgabeformat aus dem Nutzer-Eigenschaften. Im Frontend aus dem Land.

Konfiguration

In den assemply.properties wurde eine neue Eigenschaft definiert, welche den Globalen Wert der Nachkommastellen definiert. Der Shop kann nur als ganzes EINE Berechnungsgrundlage haben. Mischen ist nicht möglich und würde zu Fehlerhaften Berechnungen führen.

application.commerce.price.precision=2

Codebeispiel Auslesen der Anzahl Nachkommastellen

$digits=\Alvine\Types\Type::validateInteger
(\Alvine\Application\Platform\Web::getInstance()->getConfigurationValue('application.commerce.price.precision', 2));

Codebeispiel Anwendung Frontend (Zentralisierte Funktion)

Der Rückgabewert liefert ein Array mit den Daten zu Ausgabeformat und Berechnungsgrundlage um damit weiterzuarbeiten. z.B. in number_format();

$precisionData = alvine_container_shop_shoppingcart_getPricePrecisionData();

Codebeispiel Anwendung Backend (Zentralisierte Funktion)

Der Rückgabewert liefert ein Array mit den Daten zu Ausgabeformat und Berechnungsgrundlage um damit weiterzuarbeiten. z.B. in number_format();

$precisionData = alvine_price_getPricePrecisionData();

Liste der Dateien und Komponennten mit bereits angepasster Berecchnung bzw. Berücksichtigung des neuen Handling

Bitte ggfls. Erweitern

Frontend

  • shop.shoppingcart.list/handler.inc.php
  • shop.shoppingcart.summary.action/handler.inc.php
  • shop.order.history.details/handler.inc.php
  • shop.order.history.list/handler.inc.php
  • shop.order.subscribe.list/handler.inc.php
  • shop.shoppingcart.action/lib.inc.php
  • shop.shoppingcart.action.simple.shippingcosts/handler.inc.php
  • shop.shoppingcart/lib.inc.php - zentrale Funktion um Divider und Digits zu holen.
  • shop.shoppingcart.action.extra.shippingcosts/lib.inc.php & handler.inc.php
  • shop.item.price/handler.inc.php
  • shop.checkout.done.additionals & commissionals & voucher
  • shop.checkout.done.voucher
  • shop.shoppingcart.action.extra.discount/handler

Backend

  • include/shop.discount.discount.interface.inc.php /fehlerbehandlung standard
  • include/shop.extra-price.price.interface.inc.php /Preispflege Backend
  • include/shop.extra.logistic.deliveryconditions.inc.php
  • include/shop.interface.order.inc.php // für z.b. Backend CMD 8004 shop_order_getSheet()
  • include/shop.item.interface.inc.php //Detailansicht bestellungen Preisdarstellung
  • include/shop.extra.marketin.specialoffer.inc.php
  • inlcude/shop.shoppingcart.inc.php // Lieferungen
  • include/shop.interface.delivery.inc.php //Lieferungen Übersicht
  • include/shop.delivery.inc.php //Rechnungsdruck
  • include/shop.addon.turnover.inc.php //Retouren
  • include/shop.addon.interface.turnover.inc.php //Retouren
  • exec/shop.extra.report.exec.28006.inc.php //Umsatzstatistik
  • lib/price.lib - Zentrale Funktion
  • alvine/plugin/core/user/overview/shop.order.inc.php // visuelle Überprüfung Bestellhistorie
  • alvine/api/item/index.php /Json Daten Preis API Erweiterung Währung und Digits aus Item
  • alvine/plugin/interfaces/module/shop/price/standard.inc.php /Preisformatierung Standard Erweiterung Digits aus Item. Discounts berechnen, etc.