БЛОГОДЖУМЛА - БЛОГ О ДЖУМЛА

Вывод скидки и цены со скидкой в корзине к каждому товару

  • Категория: Virtuemart 1
  • Автор:
  • Просмотров: 11381

цена

 

По просьбе форумчан показал как вывести в корзину размер скидки и цену со скидкой к каждому товару. Я думаю, моим читателям это решение тоже может пригодиться.

Открываем \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 .

Back to top