Hi,
Try changing the code:
foreach ($id as $productid) {
if($product->product_id !== $productid[0]) {
foreach ($products as $product2) {
if(!empty($product->cart_product_parent_id) && $product2->cart_product_id == $product->cart_product_parent_id && $product2->product_id == $productid[0]) {
$coupon->products[] = $product;
}
}
} else {
$coupon->products[] = $product;
}
}
to:
foreach ($id as $productid) {
if($product->product_id !== $productid[0]) {
foreach ($products as $product2) {
if(!empty($product->cart_product_parent_id) && $product2->cart_product_id == $product->cart_product_parent_id && $product2->product_id == $productid[0]) {
$coupon->products[] = $product;
break 2;
}
}
} else {
$coupon->products[] = $product;
break;
}
}
in the file administrator/components/com_hikashop/classes/discount.php
That should allow the system to count the products only once and not once per category link between the product and the categories of the coupon.
Let us know how that goes so that we can add the patch on our end.