По просьбе форумчан показал как вывести в корзину размер скидки и цену со скидкой к каждому товару. Я думаю, моим читателям это решение тоже может пригодиться.
Открываем \administrator\components\com_virtuemart\classes\ps_product.php и немного модифицируем фукцию get_adjusted_attribute_price под наши нужды.
Вместо
function get_adjusted_attribute_price ($product_id, $description='') {
пишем
function get_adjusted_attribute_price ($product_id, $description='',$base=false) {
ниже вместо
if( !empty($discount_info["amount"])) {
пишем
if( !empty($discount_info["amount"]) && !$base) {
закрываем, сохраняем. Теперь, если мы вызовем эту функцию с последним параметром true - получим цену с учетом всех атрибутов и свойст - но без скидки.
открываем \administrator\components\com_virtuemart\html\basket.php и после
$product_rows[$i]['product_price'] = $GLOBALS['CURRENCY_DISPLAY']->getFullValue($product_price);
пишем
$base_price = $ps_product->get_adjusted_attribute_price($cart[$i]["product_id"], $cart[$i]["description"],true); $base_price = $base_price["product_price"]; $product_rows[$i]['base_price'] = $GLOBALS['CURRENCY_DISPLAY']->getFullValue($base_price);
теперь в заглушке <?php echo $product['base_price'] ?> мы имеем полную цену с учетом всех атрибутов и без скидки.
далее пишем
$discount_info = $ps_product->get_discount( $cart[$i]["product_id"] ); if( !empty($discount_info["amount"])) { switch( $discount_info["is_percent"] ) { case 0: $product_rows[$i]['discount_text']= $GLOBALS['CURRENCY_DISPLAY']->getFullValue($discount_info["amount"]); break; case 1: $product_rows[$i]['discount_text']== $discount_info["amount"].'%'; break; } }
закрываем, сохраняем. В заглушке <?php echo $product['discount_text'] ?> мы теперь имеем величину скидки - либо в процентах, либо в валюте.
Открываем \components\com_virtuemart\themes\default\templates\basket\basket_b2b.html.php и вставляем новые заглушки как нам нужно - либо в ту же колонку с ценой, либо создаем новые колонки.
Чтобы эти данные отражались на всех шагах заказа - необходимо эти же изменения внести в ro_basket.php и ro_basket_b2b.html.php .