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 用户客户删除用户БудьОченьаккуратен,неудалиадминаивсеегопостыистраницы