Вывести минимальную цену торговых предложений в Битрикс

RSS
Вывести минимальную цену торговых предложений в Битрикс
 
Вывести минимальную цену торговых предложений в Битрикс

Если у товара несколько торговых предложений и у каждого предложения разные цены, иногда требуется вывести минимальную цену торговых предложений, отсортировав ее из всех торговых предложений. Можно воспользоваться API Битрикс обратившись к CCatalogSKU::GetInfoByProductIBlock

Дополнение от пользователя Вячеслав
В новой версии модуля catalog (начиная с версии 18.6.200) изменились поля.
Теперь для сортировки по цене нужно в getlist передавать параметр catalog_PRICE_типцены.
То-есть вместо "PRICE"=>"ASC" указываем "catalog_PRICE_1"=>"ASC".
https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=12183#iblock_18_6_200
В старой версии модуля будет работать старый метод.
 
Михаил, а как работает скидка на торговые предложения, и если на них скидка тоже действует, то как вывести старую и новую(со скидкой) цену?
Спасибо большое!
 
Цитата
Александр Христич написал:
Михаил, а как работает скидка на торговые предложения, и если на них скидка тоже действует, то как вывести старую и новую(со скидкой) цену?
Спасибо большое!
возмите вывод цен предложений из старых шаблонов битрикс. Вот тут https://camouf.ru/blog-note/918/
 
Цитата
Михаил Базаров написал:
Цитата
Александр Христич  написал:
Михаил, а как работает скидка на торговые предложения, и если на них скидка тоже действует, то как вывести старую и новую(со скидкой) цену?
Спасибо большое!
возмите вывод цен предложений из старых шаблонов битрикс. Вот тут  https://camouf.ru/blog-note/918/
Огромное спасибо! Когда появляются какие-то проблемы, обращаюсь в первую очередь к вам, спасибо за все то время, что вы уделяете совершенно бесплатной консультации.
 
Добрый день,

Подскажите пожалуйста как вывести название Типа цены, например имеется несколько видов цен (Оптовая, Оптовая - 10% и тд). Каждой группе клиентов присвоен свой тип. Вывыести нужно в списке каталога перед ценой.

Спасибо.
 
Цитата
lexusus пишет:
GetCatalogProductPrice
Сейчас так сходу не подскажу. Вот тут посмотрите http://dev.1c-bitrix.ru/api_help/catalog/price.php первая функция
 
Цитата
Михаил Базаров пишет:
Цитата
lexusus пишет:
GetCatalogProductPrice
Сейчас так сходу не подскажу. Вот тут посмотрите http://dev.1c-bitrix.ru/api_help/catalog/price.php первая функция
информация есть в в результирующем массиве, только не понял как вывести

Код
 ["PRICES"]=>
      array(1) {
        ["Опт скидка 5%"]=>
        array(32) {
          ["ORIG_VALUE_NOVAT"]=>
          float(33.008474576271)
          ["VALUE_NOVAT"]=>
          float(2374.0058008475)
          ["PRINT_VALUE_NOVAT"]=>
          string(13) "2 374.01 руб."
          ["ORIG_VALUE_VAT"]=>
          string(5) "38.95"
 
Не подскажите как вывести просто информационно, без привязки к корзине не только минимальную цену торговых предложений, но и розничную для оптового покупателя, т..к существует две цены, а в дефолтном шаблоне показывается только минимальная для своей группы пользователей, мысли натолкнули на GetCatalogProductPrice но не дочерпал)) Поможете, дело еще в том, что простым переключением веса товара (это свойства торг предложений) изменяется только минимальная (старая и новая цена - если есть скидка)
 
Михаил, не подскажете. Почему при вставке этой функции в цене выводятся нули после запятой. Хотя на всем сайте цена выводится без их
 
Добрый день!
Подскажите пожалуйста как вывести цену и название.
Использую ред. Старт.
Цена хранится в созданом мной поле price.

Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>

 <?foreach($arResult["ITEMS"] as $cell=>$arElement):?>
 <?
 $this->AddEditAction($arElement['ID'], $arElement['EDIT_LINK'], CIBlock::GetArrayByID($arParams["IBLOCK_ID"], "ELEMENT_EDIT"));
 $this->AddDeleteAction($arElement['ID'], $arElement['DELETE_LINK'], CIBlock::GetArrayByID($arParams["IBLOCK_ID"], "ELEMENT_DELETE"), array("CONFIRM" => GetMessage('CT_BCS_ELEMENT_DELETE_CONFIRM')));
 ?>
 <div id="<?=$this->GetEditAreaId($arElement['ID']);//вывод товара (id панель управления/редактирования товара)?>">

 <?
 $renderImageCat = CFile::ResizeImageGet($arElement["PREVIEW_PICTURE"], Array("width" => 267, "height" => 400), BX_RESIZE_IMAGE_EXACT, false);
 ?>

 <a href="<?=$arElement["DETAIL_PAGE_URL"]?>" title="<?=$arElement["NAME"]?>">
 <img border="0" src="<?echo $renderImageCat['src']?>" alt="<?=$arElement["NAME"]?>" />
 </a>
 <?if(is_array($arElement["OFFERS"]) && !empty($arElement["OFFERS"]))://вывод цены?>

 <?
 $intIBlockID = 3;
 $mxResult = CCatalogSKU::GetInfoByProductIBlock(
 $intIBlockID
 );
 if (is_array($mxResult))
 {

 $rsOffers = CIBlockElement::GetList(array("PRICE"=>"ASC"),
 array('IBLOCK_ID' => $mxResult['IBLOCK_ID'],
 'PROPERTY_'.$mxResult['SKU_PROPERTY_ID'] => $arElement["ID"]));
 while ($arOffer = $rsOffers->GetNext())
 {
 $ar_price = GetCatalogProductPrice($arOffer["ID"], 1);
 echo "<p>от ".$ar_price["PRICE"]." руб. </p>" ;
 break;
 }
 }
 ?>

 <?else:?>
 <?foreach($arElement["PRICES"] as $code=>$arPrice):?>
 <?if($arPrice["CAN_ACCESS"]):?>
 <p><?=$arResult["PRICES"][$code]["TITLE"];?>:  
 <?if($arPrice["DISCOUNT_VALUE"] < $arPrice["VALUE"]):?>
 <s><?=$arPrice["PRINT_VALUE"]?></s> <span class="catalog-price"><?=$arPrice["PRINT_DISCOUNT_VALUE"]?></span>
 <?else:?><span class="catalog-price"><?=$arPrice["PRINT_VALUE"]?></span><?endif;?>
 </p>
 <?endif;?>
 <?endforeach;?>
 <?endif?>
 <?endforeach; // foreach($arResult["ITEMS"] as $arElement):?>
<?if($arParams["DISPLAY_BOTTOM_PAGER"]):?>
<?=$arResult["NAV_STRING"]?>
<?endif;?>
В общем-то шаблон создан по видео Михаила.
 
Цитата
Антон Сурнин написал:
Добрый день!
Подскажите пожалуйста как вывести цену и название.
Использую ред. Старт.
Цена хранится в созданом мной поле price.

В старте нет модуля sale (магазина). Если цена просто в свойстве, выводите как простое свойство- типа строка

<? echo $arResult['DISPLAY_PROPERTIES']['КОД_СВОЙСТВА']['~VALUE'];?>
 
Добрый день, мы используем несколько видов цен,
подскажите пожалуйста как Вывести минимальную цену(тип цены Опт id=3) торговых предложений.
спс)
 
Цитата
Артур пишет:
$ar_price
Распечатайте массив $ar_price

Код
echo '<pre>'; 
print_r($ar_price); 
echo '</pre>'; 

Там увидите, в массиве, в каком параметре передается нужная цена
Изменено: Михаил Базаров - 21.01.2024 23:05:30
 
Михаил, насколько я понял ["SKU_PROPERTY_ID"] - это ID свойства привязки предложения к товару.
И соответственно выводится не минимальная цена СКУ, а цена у которого ID наименьший среди других. На моем примере это видно (см.скрин). https://yadi.sk/i/w1yKStmgcMKAUQ
Так как сделать сортировку именно по цене?
 
Цитата
Вячеслав пишет:
Михаил, насколько я понял ["SKU_PROPERTY_ID"] - это ID свойства привязки предложения к товару.
И соответственно выводится не минимальная цена СКУ, а цена у которого ID наименьший среди других. На моем примере это видно (см.скрин). https://yadi.sk/i/w1yKStmgcMKAUQ
Так как сделать сортировку именно по цене?
Вот это правило сортировки, должно вывести именно наименьшую цену
"PRICE"=>"ASC"
 
Разобрался.
В новой версии модуля catalog (начиная с версии 18.6.200) изменились поля.
Теперь для сортировки по цене нужно в getlist передавать параметр catalog_PRICE_типцены.
То-есть вместо "PRICE"=>"ASC" указываем "catalog_PRICE_1"=>"ASC".
https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=12183#iblock_18_6_200
В старой версии модуля будет работать старый метод.
 
Михаил спасибо за ваши статьи и помощь начинающим.

Как исключить неактивные торг. предложения ?
 
Цитата
Johnny Po написал:
Как исключить неактивные торг. предложения ?

разобрался сам,  добавил в фильтр   'ACTIVE' => 'Y'
Код
$mxResult['IBLOCK_ID'], 'ACTIVE' => 'Y', 'PROPERTY_'.$mxResult['SKU_PROPERTY_ID'] => $arItem["ID"])
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Ютубе