Дело в том, что на многих магазинах стоит модификатор расширяющий знаки для опций = * и тд
конечно есть и другие решения, которые влияют на ценообразование и встречаются гораздо реже
эти модификаторы меняет логику формирования цены в либе system/library/cart/cart.php
поэтому кратчайший способ получить верную цену это:
добавить товар в корзину
получить о нем инфу
удалить из корзины
я это делаю как-то так
function get_cart_prod($product_id, $quantity = 1, $option = array(), $recurring_id = 0)
{
$option['unique'] = 'unique';
$this->cart->add($product_id, $quantity, $option, $recurring_id);
$query = $this->db->query("SELECT MAX(cart_id) as cart_id FROM ".DB_PREFIX."cart");
$cart_id = $query->row['cart_id'];
$prods = $this->cart->getProducts();
foreach($prods as $prod)
{
if($prod['cart_id'] == $cart_id)
{
$last_prod = $prod;
break;
}
}
$this->cart->remove($cart_id);
return $last_prod;
}
если на посте будет активность. дополню о получении старой(зачеркнутой) цены товара