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

Нет справки для CIBlockPriceTools::GetItemPrices

00 голосов
6
у кого есть инфа о входе/выходе для CIBlockPriceTools::GetItemPrices
поделитесь, пожалуйста, а то справке незачет!
спросил 25 Фев, 13 от Lisica (900 баллов)

6 Ответы

00 голосов
Блин, и тех. поддержка молчит и поиск по форуму ссылается только на эту тему, печаль... :(
ответил 25 Фев, 13 от Lisica (900 баллов)
00 голосов
Загляните в исходники:
/bitrix/modules/iblock/classes/general/comp_pricetools.php

Код
function GetItemPrices($IBLOCK_ID, $arCatalogPrices, $arItem, $bVATInclude = true){
...
return $arPrices;
}

В дополнение: Актуальное описание АПИ каждый день
ответил 15 Март, 13 от smileplz (8,020 баллов)
00 голосов
Пытаюсь сделать комонент на основе стандартного catalog.section, содержимое parametres.php не менял, изменяю component.php и template.php.

Вот кусок кода component.php (фильтр для отладки настроен на 1 элемент).

Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?
   if(!CModule::IncludeModule("iblock")) return;
   
      $arOrder = Array("NAME"=>"ASC");
      $arFilter = Array("IBLOCK_ID"=>27,"ID"=>6631);
      $arGroupBy = false;
      $arNavStartParams = false;
      $arSelectedFields = false;
               
      $itemList = CIBlockElement::GetList($arOrder,$arFilter,$arGroupBy,$arNavStartParams,$arSelectedFields);
      
      while($item = $itemList->GetNextElement()) :
      
            $prop['INGREDIENTS'] = $item->GetProperty("INGREDIENTS");
            $prop['NOMEN']       = $item->GetProperty("CML2_TRAITS");
            $prop['SEC_SITE']    = $item->GetProperty("SEC_SITE");
            $prop['PDF']         = $item->GetProperty("PDF");
            $prop['FORMAT']      = $item->GetProperty("FORMAT");
            
            $item = $item->GetFields();

            $item["PREVIEW_PICTURE"] = CFile::GetFileArray($item["PREVIEW_PICTURE"]);
            $item["DETAIL_PICTURE"] = CFile::GetFileArray($item["DETAIL_PICTURE"]);
            
            //==============================================
            $arParams["PRICE_VAT_INCLUDE"] = $arParams["PRICE_VAT_INCLUDE"] !== "N";
            $item["PRICES_CAT"] = CIBlockPriceTools::GetCatalogPrices(27, $arParams["PRICE_CODE"]);
            $item["PRICES"] = CIBlockPriceTools::GetItemPrices(27, $item["PRICES_CAT"], $item, $arParams['PRICE_VAT_INCLUDE']);
            echo "<pre>"; print_r($item); echo "</pre>"; break;
            //==============================================


На выходе получаю заполненный $item["PRICES_CAT"] и пустой $item["PRICES"], т.е. ошибка где-то при использовании GetitemPrices.
ответил 18 Апр, 13 от Lisica (900 баллов)
00 голосов
Блин, смотрел я исходик но пока так и не вышло вытянуть цены. Стандартный catalog.section мне не подходит, а для написания своего нет справки по АПИ и мозгов не хватает.

А тех.поддержка, как она представлена на сайте, не работает.
ответил 09 Авг, 13 от Lisica (900 баллов)
00 голосов
Класс CPrice решает.
ответил 10 Ноя, 13 от Lisica (900 баллов)
00 голосов
Тоже столкнулся с такой проблемой. Дело в том что перед «гетлистом» Нужно включить вот такой кусок кода
Цитата

$prices = CIBlockPriceTools::GetCatalogPrices(1, array(0 => "BASE", тут типы цен..));
foreach($prices as $key => $value)
{
$arSelect[] = $value["SELECT"];
$arFilter["CATALOG_SHOP_QUANTITY_".$value["ID"]] = $arParams["SHOW_PRICE_COUNT"];
}

Таким образом изменив $arFilter, «гетлист» вернет некоторые специальные поля помимо тех, что в $arSelect. Эти то поля и нужны будут в параметре $arItem для нормальной работы function GetItemPrices($IBLOCK_ID, $arCatalogPrices, $arItem, $bVATInclude = true)
ответил 17 Фев, 14 от Nimfo (140 баллов)

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

0 голосов
0 ответов
0 голосов
3 ответов
0 голосов
1 ответ
0 голосов
2 ответов