Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Какой функцией можно вывести скидку в каталоге?

00 голосов
2
Добрый день!
Встала передо мной следующая задача.
Имеем скидку 10% на несколько групп товаров. При заказе скидка учитывается и в корзине отображается нормально, а возможно ли отображать также эту скидку в каталоге, скажем, чтобы рядом с базовой ценой было указано цена со скидкой такая-то...
сейчас цены в каталоге выводятся следующим образом:
Код
             if(isset($arElement["PRICE_MATRIX"]["MATRIX"][2][0]["PRICE"])) {
              $priceval = $arElement["PRICE_MATRIX"]["MATRIX"][2][0]["PRICE"];
              $prucecurr = $arElement["PRICE_MATRIX"]["MATRIX"][2][0]["CURRENCY"];
if ($prucecurr == 'RUB' || $prucecurr == 'RUR')
      $rurval = $priceval;
else
      $rurval = CCurrencyRates::ConvertCurrency($priceval, $prucecurr, "RUR"); 
              $rurval_str = number_format($rurval, 2, ".", " ");
                  /*$rurval_str = number_format($priceval, 2, ".", " ").' ?';*/
              ?>
                  <span class="price-msg"><?=GetMessage('CATALOG_PRICE');?>:</span>  <span class="catalog-item-price"><?=$rurval_str?></span>        
             <?
             }          
             ?>
    </td>   
   </tr>


Заранее спасибо!
спросил 27 Апр, 14 от AlexSol (240 баллов)

2 Ответы

00 голосов
Может кто-нибудь поделится примером реализации функции
CCatalogDiscount::GetDiscountByProduct
потому что, честно говоря вот из этого
Код
<?
$arDiscounts = CCatalogDiscount::GetDiscountByProduct(
        150,
        $USER->GetUserGroupArray(),
        "N",
        2,
        SITE_ID
    );
?>

я ничего не понял :(
ответил 16 Дек, 14 от AlexSol (240 баллов)
00 голосов
Вот рабочий пример получения скидки пользователя:
Код
if(!CModule::IncludeModule("catalog"))
   return;
$userGroup=($USER->GetUserGroupArray());
$Diskount_max=0;
foreach($userGroup as $value)
{
   $arDiscounts=CCatalogDiscount::GetDiscountGroupsList(
      $arOrder=array("GROUP_ID" => ASC),
      $arFilter=array("GROUP_ID" => $value),
      false,
      false,
      array('*')
   );
//на одну группу пользователей может быть заведено несколько скидок,
//поэтому надо выбрать из всех максимальную
   $dist=$arDiscounts->Fetch();
   $arDisRez=CCatalogDiscount::GetByID($dist["DISCOUNT_ID"]);//id skidki
   $printDiscount=(int)$arDisRez["VALUE"];//znachenie skidki
   if ($printDiscount>$Diskount_max)
      $Diskount_max=$printDiscount;
};
$arResult["THIS_USER_DISCOUNT"]=$Diskount_max;


Сорри, неправильно прочитал) Здесь получаем скидку на группу пользователя.
ответил 06 Апр, 15 от Realms (180 баллов)

Похожие вопросы

0 голосов
0 ответов
0 голосов
1 ответ
0 голосов
1 ответ
спросил 08 Июль, 17 от аноним