Hallo
Die order.php sollte die einzige sein, die so etwas macht, und nicht noch an anderen Stellen. Dafür gibt es ja Klassen und Funktionen, die das einheitlich per include/require allen anderen zur Verfügung stellt. Zentralisierung und das Zurückgreifen auf schon vorhandenes ist doch der große Vorteil einer solchen Programmierung. Deswegen kann ich nicht recht glauben(habe kein Gambio), dass Gambio hier in dem Fall eine Ausnahme macht. Vielleicht hat das auch ein nachträglich installiertes Modul so verändert. Ich habe bei uns geschaut, (XT:C, ECB, Commerce:SEO 1+2, XTC-Modified), dort werden in allen die entsprechenden Bestelldaten aus 2 Funktionen geholt, welche in der includes/classes/order.php enthalten sind. Der Aufruf in bsw. der send_order.php und print_order.php lautet.
Code:
        $order_total = $order->getTotalData($oID);
        $smarty->assign('order_data', $order->getOrderData($oID));
        $smarty->assign('order_total', $order_total['data']);
in der includes/classes/order.php steht das von Dir angegebene Füllen des array $order_data[] drin, dass wiederum beim Preis auf die funktion xtcFormat zur Aufbereitung zugreift. Mehr zusätzliche Abfragen hinsichtlich der Bestellung in send_order.php oder print_order.php stehen hier nicht.

Um das Problem bei Dir zu lösen, bitte ich Dich in die orders_products Tabelle der Datenbank zu schauen, ob es sich wirklich um Bruttopreise handelt. products_price ist der Einzelpreis und final_price ist Einzelpreis x Anzahl. Wenn dem so ist, dann kann man die Steuer wieder zurückrechnen. Wir müssen aber dann etwas mathematisch denken, da auch 0% Steuer theoretisch möglich ist (Division durch 0 geht aber bekanntermaßen nicht). In der orders_products spalte products_tax ist die Steuer angegeben.
Berechnung erfolgt so: netto = brutto*100/(100+steuer)
Anhand meines obigen Beispiels
Code:
'PRODUCTS_SINGLE_PRICE_NETTO' => number_format(round($order_data_values['final_price']/$order_data_values['products_quantity']*100/(100+$order_data_values['products_tax']),2), 2,',','.').' €',
'PRODUCTS_PRICE_NETTO' => number_format(round($order_data_values['final_price']*100/(100+$order_data_values['products_tax']),2), 2,',','.').' €',
Wenn im Shop alles und für jeden 19% ist, geht es auch mit festem Steuerwert
Code:
'PRODUCTS_SINGLE_PRICE_NETTO' => number_format(round($order_data_values['final_price']/$order_data_values['products_quantity']/1.19,2), 2,',','.').' €',
'PRODUCTS_PRICE_NETTO' => number_format(round($order_data_values['final_price']/1.19,2), 2,',','.').' €',
mfg
jay-ar