ruby получитьценутоварасоскидками

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby получитьценутоварасоскидками相关的知识,希望对你有一定的参考价值。

<?
function getFinalPriceInCurrency($item_id, $sale_currency = 'RUB') {
CModule::IncludeModule("iblock"); 
CModule::IncludeModule("catalog");
CModule::IncludeModule("sale");   
    global $USER;
 
    $currency_code = 'RUB';
 
    // Проверяем, имеет ли товар торговые предложения?
    if(CCatalogSku::IsExistOffers($item_id)) {
 
        // Пытаемся найти цену среди торговых предложений
        $res = CIBlockElement::GetByID($item_id);
 
        if($ar_res = $res->GetNext()) {
 
            if(isset($ar_res['IBLOCK_ID']) && $ar_res['IBLOCK_ID']) {
 
                // Ищем все тогровые предложения
                $offers = CIBlockPriceTools::GetOffersArray(array(
                    'IBLOCK_ID' => $ar_res['IBLOCK_ID'],
                    'HIDE_NOT_AVAILABLE' => 'Y',
                    'CHECK_PERMISSIONS' => 'Y'
                ), array($item_id), null, null, null, null, null, null, array('CURRENCY_ID' => $sale_currency), $USER->getId(), null);
 
                foreach($offers as $offer) {
 
                    $price = CCatalogProduct::GetOptimalPrice($offer['ID'], 1, $USER->GetUserGroupArray(), 'N');
                    if(isset($price['PRICE'])) {
 
                        $final_price = $price['PRICE']['PRICE'];
                        $currency_code = $price['PRICE']['CURRENCY'];
 
                        // Ищем скидки и высчитываем стоимость с учетом найденных
                        $arDiscounts = CCatalogDiscount::GetDiscountByProduct($item_id, $USER->GetUserGroupArray(), "N");
                        if(is_array($arDiscounts) && sizeof($arDiscounts) > 0) {
                            $final_price = CCatalogProduct::CountPriceWithDiscount($final_price, $currency_code, $arDiscounts);
                        }
 
                        // Конец цикла, используем найденные значения
                        break;
                    }
 
                }
            }
        }
 
    } else {
 
        // Простой товар, без торговых предложений (для количества равному 1)
        $price = CCatalogProduct::GetOptimalPrice($item_id, 1, $USER->GetUserGroupArray(), 'N');
 
        // Получили цену?
        if(!$price || !isset($price['PRICE'])) {
            return false;
        }
 
        // Меняем код валюты, если нашли
        if(isset($price['CURRENCY'])) {
            $currency_code = $price['CURRENCY'];
        }
        if(isset($price['PRICE']['CURRENCY'])) {
            $currency_code = $price['PRICE']['CURRENCY'];
        }
 
        // Получаем итоговую цену
        $final_price = $price['PRICE']['PRICE'];
 
        // Ищем скидки и пересчитываем цену товара с их учетом
        $arDiscounts = CCatalogDiscount::GetDiscountByProduct($item_id, $USER->GetUserGroupArray(), "N", 2);
        if(is_array($arDiscounts) && sizeof($arDiscounts) > 0) {
            $final_price = CCatalogProduct::CountPriceWithDiscount($final_price, $currency_code, $arDiscounts);
        }
 
    }
 
    // Если необходимо, конвертируем в нужную валюту
    if($currency_code != $sale_currency) {
        $final_price = CCurrencyRates::ConvertCurrency($final_price, $currency_code, $sale_currency);
    }
 
    return $final_price;
 
}

以上是关于ruby получитьценутоварасоскидками的主要内容,如果未能解决你的问题,请参考以下文章

css Сделатькартинкучбипринаведениеплавночтобыонасталаопятьцветная

swift Запроснаконсультацию。 ПоследовательноеполучениекартинокизPFFileдлямассиваобъектовPFObject

text Вслучаееслинеобходимоконтролироватьадреснуюстрокувпутикоторойуказываетсялокализацияпроектавирту

sql Вставитьвовторуютаблицузначениякоторыеестьвпервой,нонетвовторой

php Получитьценунатовар

php 用户客户删除用户БудьОченьаккуратен,неудалиадминаивсеегопостыистраницы