Was ich hier anspreche hat als Ursache nicht zwingend das OSS-Modul, aber auch.
Wenn man sich ein Export-Modul baut (in
/admin/module/export/) und in dem Modul Produkt-Preise benötigt, möchte man gerne
- wie es früher bei den bis zur Version 2.0.5.1 vorhandenen alten Modulen
billiger.php,
guenstiger.php,
geizhals.php, usw. war -
die Methode
xtcGetPrice() der
xtcPrice-Klasse benutzen.
Hat man zufällig gerade im Frontend in der Box Versandland (Box
shipping_country.php) das Land auf Schweiz gesetzt,
(oder auch im Warenkorb (
shipping_estimate.php), deshalb nicht zwingend Ursache OSS-Modul)
exportiert das Modul die Preise ohne MwSt.. Genauer gesagt, es exportiert die Preise mit der MwSt. des gesetzten Landes.
Das halte ich für nicht erwartbar und folglich für nicht gut.
Sollte man nicht
$_SESSION['country'], wenn gesetzt, für's Backend unset-en oder, wenn das ungewollte Folgen hätte, auf (int)STORE_COUNTRY setzen ?
In einem Export-Modul welches ich gebaut habe musste ich einen Work-Around einbauen:
if($xtPrice->country_id != (int)STORE_COUNTRY) {
$xtPrice->country_id = STORE_COUNTRY;
$tax_class_id_qu = xtc_db_query("SELECT tax_class_id FROM ".TABLE_TAX_CLASS);
while($tax_class_id_arr = xtc_db_fetch_array($tax_class_id_qu)) {
$xtPrice->TAX[$tax_class_id_arr['tax_class_id']] = xtc_get_tax_rate($tax_class_id_arr['tax_class_id'], $xtPrice->country_id);
}
}
um das im
__construct() der Preis-Klasse Vordefinierte zu umgehen:
} else { $country_id = -1; if (isset($_SESSION['country'])) { $country_id = $_SESSION['country']; $this->country_id = $country_id; $this->zone_id = -1; } $this->TAX[$zones_data['class']] = xtc_get_tax_rate
($zones_data['class'], $country_id); } Gruß,
noRiddle
*NACHTRAG*
Der Work-Around geht auch einfacher, indem man vor Instanziierung der Preis-Klasse das macht:
if(isset($_SESSION['country']) && $_SESSION['country'] != (int
)STORE_COUNTRY
) { $_SESSION['country'] = (int
)STORE_COUNTRY
;}