Hi,
Ok, I see the issue.
Can you try to change the code:
function addDiscount(&$price, &$discount, $discount_before_tax, $zone_id, $product_tax_id) {
$config = hikashop_config();
if($config->get('floating_tax_prices', 0)) {
$price->price_value = $price->price_value_with_tax;
}
$price->price_value_without_discount = $price->price_value;
if($discount_before_tax) {
if(bccomp($discount->discount_flat_amount,0,5) !== 0) {
$price->price_value = $price->price_value -floatval($discount->discount_flat_amount);
} else {
$price->price_value = (($price->price_value * (100.0 - floatval($discount->discount_percent_amount))) / 100.0);
if(isset($price->price_orig_value)) {
$price->price_orig_value_without_discount = $price->price_orig_value;
$price->price_orig_value = (($price->price_orig_value * (100.0 - floatval($discount->discount_percent_amount))) / 100.0);
}
}
$price->price_value_without_discount_with_tax = $this->getTaxedPrice($price->price_value_without_discount, $zone_id, $product_tax_id);
$price->taxes_without_discount = $this->taxRates;
$price->price_value_with_tax = $this->getTaxedPrice($price->price_value, $zone_id, $product_tax_id);
$price->taxes = $this->taxRates;
if(isset($price->price_orig_value)) {
$price->price_orig_value_with_tax = $this->getTaxedPrice($price->price_orig_value, $zone_id, $product_tax_id);
$price->taxes_orig = $this->taxRates;
}
} else {
$price->price_value_without_discount_with_tax = $price->price_value_with_tax;
if(bccomp($discount->discount_flat_amount, 0, 5) !== 0) {
$price->price_value_with_tax = $price->price_value_with_tax - floatval($discount->discount_flat_amount);
} else {
$price->price_value_with_tax = (($price->price_value_with_tax * (100.0 - floatval($discount->discount_percent_amount))) / 100.0);
if(isset($price->price_orig_value_with_tax)) {
$price->price_orig_value_without_discount_with_tax = $price->price_orig_value_with_tax;
$price->price_orig_value_with_tax = (($price->price_orig_value_with_tax * (100.0 - floatval($discount->discount_percent_amount))) / 100.0);
}
}
$price->price_value_without_discount = $this->getUntaxedPrice($price->price_value_without_discount_with_tax, $zone_id, $product_tax_id);
$price->taxes_without_discount = $this->taxRates;
$price->price_value = $this->getUntaxedPrice($price->price_value_with_tax,$zone_id,$product_tax_id);
$price->taxes = $this->taxRates;
if(isset($price->price_orig_value_with_tax)) {
$price->price_orig_value = $this->getUntaxedPrice($price->price_orig_value_with_tax, $zone_id, $product_tax_id);
$price->taxes_orig = $this->taxRates;
}
}
}
to:
function addDiscount(&$price, &$discount, $discount_before_tax, $zone_id, $product_tax_id) {
$config = hikashop_config();
if($config->get('floating_tax_prices', 0)) {
$price->price_value = $price->price_value_with_tax;
}
$price->price_value_without_discount = $price->price_value;
$round = $this->getRounding(@$price->price_currency_id,true);
if($discount_before_tax) {
if(bccomp($discount->discount_flat_amount,0,5) !== 0) {
$price->price_value = $price->price_value -floatval($discount->discount_flat_amount);
} else {
$price->price_value = (($price->price_value * (100.0 - floatval($discount->discount_percent_amount))) / 100.0);
if(isset($price->price_orig_value)) {
$price->price_orig_value_without_discount = $price->price_orig_value;
$price->price_orig_value = (($price->price_orig_value * (100.0 - floatval($discount->discount_percent_amount))) / 100.0);
}
}
$price->price_value_without_discount_with_tax = $this->getTaxedPrice($price->price_value_without_discount, $zone_id, $product_tax_id, $round);
$price->taxes_without_discount = $this->taxRates;
$price->price_value_with_tax = $this->getTaxedPrice($price->price_value, $zone_id, $product_tax_id, $round);
$price->taxes = $this->taxRates;
if(isset($price->price_orig_value)) {
$price->price_orig_value_with_tax = $this->getTaxedPrice($price->price_orig_value, $zone_id, $product_tax_id, $round);
$price->taxes_orig = $this->taxRates;
}
} else {
$price->price_value_without_discount_with_tax = $price->price_value_with_tax;
if(bccomp($discount->discount_flat_amount, 0, 5) !== 0) {
$price->price_value_with_tax = $price->price_value_with_tax - floatval($discount->discount_flat_amount);
} else {
$price->price_value_with_tax = (($price->price_value_with_tax * (100.0 - floatval($discount->discount_percent_amount))) / 100.0);
if(isset($price->price_orig_value_with_tax)) {
$price->price_orig_value_without_discount_with_tax = $price->price_orig_value_with_tax;
$price->price_orig_value_with_tax = (($price->price_orig_value_with_tax * (100.0 - floatval($discount->discount_percent_amount))) / 100.0);
}
}
$price->price_value_without_discount = $this->getUntaxedPrice($price->price_value_without_discount_with_tax, $zone_id, $product_tax_id, $round);
$price->taxes_without_discount = $this->taxRates;
$price->price_value = $this->getUntaxedPrice($price->price_value_with_tax,$zone_id,$product_tax_id, $round);
$price->taxes = $this->taxRates;
if(isset($price->price_orig_value_with_tax)) {
$price->price_orig_value = $this->getUntaxedPrice($price->price_orig_value_with_tax, $zone_id, $product_tax_id, $round);
$price->taxes_orig = $this->taxRates;
}
}
}
in the file administrator/components/com_hikashop/classes/currency.php and see if that helps ?