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

компонент catalog - вывод скидок у товаров

00 голосов
4
Здравствуйте, использую комплексный компонент catalog, в нем вывожу список элементов в разделе как сделать что бы у товара указывалась значение скидки то есть не точто в итоге получается а имеено значение, то есть цена 100руб, скидка 10%, итог 90 руб как вывести имеенно 10%?
спросил 12 Дек, 13 от Plare666 (720 баллов)

4 Ответы

00 голосов
неужели никто не делал?
ответил 17 Фев, 14 от Plare666 (720 баллов)
А в чем проблема высчитать процент от числа ? Тут чистая математика же, битрикс не при чем совсем.
00 голосов
ещё актуально
ответил 07 Июнь, 14 от Plare666 (720 баллов)
00 голосов
ПОМОГИТЕ
ответил 05 Окт, 14 от Plare666 (720 баллов)
00 голосов
Посмотрите вот эту функцию:
https://dev.1c-bitrix.ru/api_help/catalog/classes/ccatalogdiscount/ccatalogdiscount.getdiscountbyproduct.php
В результате работы она вернет данные о скидке, там есть тип значения скидки, для процентов, в массиве будет VALUE_TYPE = P
А значение скидки соответственно в VALUE, у меня все работает примерно так:

Код
foreach($arResult["ITEMS"] as $key => $arElement) 
{ 
if($arElement["PRICES"]["BASE"]["DISCOUNT_VALUE"] != $arElement["PRICES"]["BASE"]["VALUE"])
   {
      $discount = CCatalogDiscount::GetDiscountByProduct($arElement["ID"], $USER->GetUserGroupArray());
      $discount = $discount[0];
      $arElement["DISCOUNT"] = array("VALUE" => $arElement["PRICES"]["BASE"]["DISCOUNT_VALUE"],
                      "TYPE" => $discount["VALUE_TYPE"]);
      if("P" == $discount["VALUE_TYPE"])
         $arElement["DISCOUNT"]["PRINT_VALUE"] = intval($discount["VALUE"]).'%';
      else
         $arElement["DISCOUNT"]["PRINT_VALUE"] = intval($discount). ' Р';
   }
   $arResult["ITEMS"][$key] = $arElement;
 }
ответил 06 Фев, 15 от Elccanta (120 баллов)