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

GetDiscountByPrice

bool
CCatalogDiscount::GetDiscountByPrice(
 int productPriceID[,
 array arUserGroups = array()[,
 string renewal = "N"[,
 string siteID = false[,
 array arDiscountCoupons = false]]]]
);

Метод вычисляет скидку на цену с кодом productPriceID товара для пользователя, принадлежащего группам пользователей arUserGroups. Нестатический метод.

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

ПараметрОписаниеС версии
productPriceID Код цены.
arUserGroups Массив групп, которым принадлежит пользователь. Для текущего пользователя он возвращается методом $USER->GetUserGroupArray()
renewal Флаг "Продление подписки".
siteID Сайт (по умолчанию текущий).4.0.6
arDiscountCoupons Массив купонов, которые влияют на выборку скидок. Если задано значение false, то массив купонов будет взят из CCatalogDiscountCoupon::GetCoupons5.1.0

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

Метод возвращает массив ассоциативных массивов скидок или false в случае ошибки. В массиве содержится ассоциативный массив параметров максимальной процентной скидки (если есть) и ассоциативный массив параметров максимальной фиксированной скидки (если есть).

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

<?
$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>&quot;;
    print_r($arPrice);
    echo &quot;</pre>";
}
?>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2019, «1С-Битрикс», 2019
Наверх