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

Как вывести цены товаров?

00 голосов
2
Список элементов текущего раздела выводит, а цены этих элементов (товаров) не могу вывести.
!В каталоге цены выводятся!
Использую простой код, который нашел в хелпе:

$arSelect = Array();
$arFilter = Array("IBLOCK_ID"=>IntVal(3), "SECTION_ID"=>$arResult['IBLOCK_SECTION_ID'], "INCLUDE_SUBSECTIONS"=>"N");
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect);

while(($ob = $res->GetNextElement()))
{
$arFields = $ob->GetFields();
echo "-->".$arFields['NAME'];

$arPrice = CPrice::GetByID($arFields['ID']);
echo " цена: ".$arPrice["PRICE"];

}

Подскажите пожалуйста... никак не могу понять почему не работает :(
спросил 15 Авг, 13 от Osumi (160 баллов)

2 Ответы

00 голосов
Цитата
Peaceful пишет:
$arPrice = CPrice::GetByID($arFields['ID']);

Этот код выбирает не цену для товара с $arFields['ID'], а ценовое предложение с кодом $arFields['ID'] (100% не относящееся к Вашему товару, а возможно и вообще не существующее). Где именнов хелпе такой пример, ссылку киньте, пожалуйста.

Что касается Вашего вопроса, можно сделать 2 способами:
1. Вместо
Цитата
Peaceful пишет:
$arSelect = Array();

сделать так:
Код
$arSelect = array('*','CATALOG_GROUP_ИД_ТИПА_ЦЕНЫ'); 

Тогда в $arFields будет цена и валюта
2. Вместо
Цитата
Peaceful пишет:
$arPrice = CPrice::GetByID($arFields['ID']);

сделать так:
Код
$rsPrices = CPrice::GetList('PRODUCT_ID' => $arFields['ID'],'CATALOG_GROUP_ID' => 'ИД_ТИПА_ЦЕНЫ');
if ($arPrice = $rsPrices->Fetch())
{
   // далее по тексту
}
ответил 15 Авг, 13 от Pomnep (13,960 баллов)
00 голосов
ок, спасибо. теперь разобрался :)

Выложу код по точнее, на случай, если кому пригодится:
$PRICE_TYPE_ID = 1;

$rsPrices = CPrice::GetList(array(), array('PRODUCT_ID' => $arFields['ID'], 'CATALOG_GROUP_ID' => $PRICE_TYPE_ID));
if ($arPrice = $rsPrices->Fetch())
{
echo CurrencyFormat($arPrice["PRICE"], $arPrice["CURRENCY"]);
}
ответил 21 Окт, 13 от Osumi (160 баллов)

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

0 голосов
1 ответ
0 голосов
1 ответ
0 голосов
6 ответов
спросил 23 Апр, 13 от Kiriel (2,010 баллов)
0 голосов
3 ответов