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

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
Наверх