Я делал по-другом, добавил в базу в product_discount поле percent
вывел его во вьюху в админке, поле с ценой закоментил
<!--<td class="right"><input type="text" name="product_discount[<?php echo $discount_row; ?>][price]" value="<?php echo $product_discount['price']; ?>" /></td>-->
<td class="right"><input type="text" name="product_discount[<?php echo $discount_row; ?>][percent]" value="<?php echo $product_discount['percent']; ?>" /></td>
потом в модель добавил код, который отминусовует процент от основной цены
foreach ($data['product_discount'] as $product_discount) {
$price_gen = (float)$data['price'] - ((float)$product_discount['percent']*((float)$data['price']*0.01));
$this->db->query("INSERT INTO " . DB_PREFIX . "product_discount SET
product_id = '" . (int)$product_id . "',
customer_group_id = '" . (int)$product_discount['customer_group_id'] . "',
quantity = '" . (int)$product_discount['quantity'] . "',
priority = '" . (int)$product_discount['priority'] . "',
price = '" . $price_gen . "',
percent = '" . (float)$product_discount['percent'] . "',
date_start = '" . $this->db->escape($product_discount['date_start']) . "',
date_end = '" . $this->db->escape($product_discount['date_end']) . "'");
}
И в каталоге мне не пришлось вообще искать где выводится discount. :-)