я так сразу не готов сказать, где, что и как
1. getProducts
в $sql есть такое
(SELECT price
FROM " . DB_PREFIX . "product_discount pd2
WHERE pd2.product_id = p.product_id AND pd2.customer_group_id = '" . (int)$customer_group_id . "'
AND pd2.quantity = '1'
AND ((pd2.date_start = '0000-00-00' OR pd2.date_start < '" . $this->NOW . "')
AND (pd2.date_end = '0000-00-00' OR pd2.date_end > '" . $this->NOW . "'))
ORDER BY pd2.priority ASC, pd2.price ASC LIMIT 1) AS discount,
(SELECT price
FROM " . DB_PREFIX . "product_special ps
WHERE ps.product_id = p.product_id
AND ps.customer_group_id = '" . (int)$customer_group_id . "'
AND ((ps.date_start = '0000-00-00' OR ps.date_start < '" . $this->NOW . "')
AND (ps.date_end = '0000-00-00' OR ps.date_end > '" . $this->NOW . "')) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS special
нужно добавить ~ следующее
(SELECT price
FROM " . DB_PREFIX . "ЗДЕСЬ НУЖНО понять какая таблица product_special или product_discount" ps
WHERE ps.product_id = p.product_id
AND ps.customer_group_id = '" . ЗДЕСЬ НУЖНО Жестко привязать к нужной группе . "'
AND ((ps.date_start = '0000-00-00' OR ps.date_start < '" . $this->NOW . "')
AND (ps.date_end = '0000-00-00' OR ps.date_end > '" . $this->NOW . "')) ORDER BY ps.priority ASC, ps.price ASC LIMIT 1) AS price_opt
Ну и дальше уже смотреть.... и править и контроллеры - чтоб достать это поле и шаблоны
Может не в getProducts, а в getProduct
но идея такова.