本文整理汇总了PHP中CCatalogProduct::__PrimaryDiscountFilter方法的典型用法代码示例。如果您正苦于以下问题:PHP CCatalogProduct::__PrimaryDiscountFilter方法的具体用法?PHP CCatalogProduct::__PrimaryDiscountFilter怎么用?PHP CCatalogProduct::__PrimaryDiscountFilter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CCatalogProduct
的用法示例。
在下文中一共展示了CCatalogProduct::__PrimaryDiscountFilter方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: CountPriceWithDiscount
/**
* <p>Метод применяет к цене <i>price</i> в валюте <i>currency</i> цепочку скидок из массива <i>arDiscounts</i>.</p> <p><b>Примечание:</b> до версии модуля <b>12.0</b> метод применял к цене <i>price</i> в валюте <i>currency</i> наибольшую скидку из массива <i>arDiscounts</i>.</p>
*
*
*
*
* @param double $price Цена.
*
*
*
* @param string $currency Валюта цены.
*
*
*
* @param array $arDiscounts массив ассоциативных массивов скидок. Имеет вид: <pre class="syntax">array(
* array( "VALUE_TYPE" => "тип скидки (P - в процентах, F - фиксированная сумма)",
* "VALUE" => "величина скидки", "CURRENCY" => "валюта", "MAX_DISCOUNT" =>
* "максимальный размер скидки" ), array( "VALUE_TYPE" => "тип скидки (P - в
* процентах, F - фиксированная сумма)", "VALUE" => "величина скидки",
* "CURRENCY" => "валюта", "MAX_DISCOUNT" => "максимальный размер скидки" ), * * * )
* </pre>
*
*
*
* @return array <p>Метод возвращает цену, получившуюся после применения цепочки
* скидок.</p><p><b>Примечание:</b> до версии модуля <b>12.0.0</b> метод
* возвращал наименьшую цену, которую можно было получить с помощью
* наибольшей скидки.</p><a name="examples"></a>
*
*
* <h4>Example</h4>
* <pre>
* <?
* // Для товара с кодом $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>";
* }
* ?>
* </pre>
*
*
* @static
* @link http://dev.1c-bitrix.ru/api_help/catalog/classes/ccatalogproduct/ccatalogproduct__countpricewithdiscount.9c16046d.php
* @author Bitrix
*/
public static function CountPriceWithDiscount($price, $currency, $arDiscounts)
{
$mxResult = true;
foreach (GetModuleEvents("catalog", "OnCountPriceWithDiscount", true) as $arEvent)
{
$mxResult = ExecuteModuleEventEx($arEvent, array($price, $currency, $arDiscounts));
if (true !== $mxResult)
return $mxResult;
}
if (strlen($currency) <= 0)
return false;
$price = doubleval($price);
if ($price <= 0)
return 0.0;
if (!is_array($arDiscounts) || empty($arDiscounts))
return $price;
$arDiscSave = array();
$arPriceDiscount = array();
$arResultPrice = array(
'PRICE' => $price,
'CURRENCY' => $currency,
);
CCatalogProduct::__PrimaryDiscountFilter($arDiscounts, $arPriceDiscount, $arDiscSave, $arResultPrice);
//.........这里部分代码省略.........