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-2025, «1С-Битрикс», 2025