Документация для разработчиков
Темная тема

CountPriceWithDiscount

Описание и параметры

array
CCatalogProduct::CountPriceWithDiscount(
	double price,
	string currency,
	array arDiscounts
);

Метод применяет к цене price в валюте currency цепочку скидок из массива arDiscounts. Нестатический метод.

Примечание: до версии модуля 12.0 метод применял к цене price в валюте currency наибольшую скидку из массива arDiscounts.

Параметры вызова

ПараметрОписание
price Цена.
currency Валюта цены.
arDiscounts массив ассоциативных массивов скидок. Имеет вид:
array(
	array(
		"VALUE_TYPE" => "тип скидки 
			(P - в процентах, 
			F - фиксированная сумма)",
		"VALUE" => "величина скидки",
		"CURRENCY" => "валюта",
		"MAX_DISCOUNT" => "максимальный размер скидки"
	),
	array(
		"VALUE_TYPE" => "тип скидки 
			(P - в процентах, 
			F - фиксированная сумма)",
		"VALUE" => "величина скидки",
		"CURRENCY" => "валюта",
		"MAX_DISCOUNT" => "максимальный размер скидки"
	),
	* * *
)

Возвращаемые значения

Метод возвращает цену, получившуюся после применения цепочки скидок.

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

Примеры использования

<?
// Для товара с кодом $ID выведем различные цены (по типу и количеству), по
// которым данный товар может быть куплен текущим пользователем

$dbPrice = CPrice::GetList(
	array("QUANTITY_FROM" => "ASC", "QUANTITY_TO" => "ASC", "SORT" => "ASC"),
	array("PRODUCT_ID" => $ID),
	false,
	false,
	array("ID", "CATALOG_GROUP_ID", "PRICE", "CURRENCY", "QUANTITY_FROM", "QUANTITY_TO")
);
while ($arPrice = $dbPrice->Fetch())
{
	$arDiscounts = CCatalogDiscount::GetDiscountByPrice(
		$arPrice["ID"],
		$USER->GetUserGroupArray(),
		"N",
		SITE_ID
	);
	$discountPrice = CCatalogProduct::CountPriceWithDiscount(
		$arPrice["PRICE"],
		$arPrice["CURRENCY"],
		$arDiscounts
	);
	$arPrice["DISCOUNT_PRICE"] = $discountPrice;

	echo "<pre>";
	print_r($arPrice);
	echo "</pre>";
}
?>


© «Битрикс», 2001-2024, «1С-Битрикс», 2024