Меню
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"])
 
    Всё отлично!
   
   опечатка 1: "зная инфоблок торговго"
   опечатка 2: "отсортировали его по возрвстанию"
   опечатка 3: "этого, одного, торогового"
 
Еще сам 4 опечатки нашел  :)  
Спасибо
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Bst

Блог-note: заметки разработчика

Вывести информацию, только на первом уровне раздела каталога, в 1С-Битрикс

Задача: на сайте, в каталоге, выводится два фильтра - боковой и верхний. Оба компонента подключены в файле section.php к...

Создать pdf файл из элемента инфоблока, дать скачать пользователю, поддерживать в актуальном состоянии или отправить на e-mail.

Задача: при каждом посещении статьи, на сайте, нужно создавать pdf файл с ее содержимым и записывать в свойство инфоблок...

Список новостей с автопрокруткой через overflow:scroll

Простенький javascript позволит сделать автопрокрутку в шаблоне списка новостей. Достаточно актуально для новостных сайт...

Дать пользователю возможность быстро отредактировать материал

На одном из разрабатываемых сайтов, пользователи формируют его контент. После регистрации, становится доступен персональ...

Отфильтровать товары бренда и вывести по разделам каталога

Задача: на странице бренда, который выводится компонентом новостей, нужно показать все товары этого бренда из каталога. ...

Проверка на наличие элементов, текущего пользователя, в заданном инфоблоке.

Если стоит задача, определить наличие элементов созданных пользователем на сайте. Можно воспользоваться API: CUser и CIB...

Как работает система сертификации партнеров 1С-Битрикс, уровни партнеров и специалистов

Сертификация от «1С-Битрикс» – это объективная оценка знаний и практических навыков разработки проектов на платформе от ...

Получить все товары из всех заказов пользователя. История купленных товаров.

Задача: нужно создать раздел, в персональном разделе пользователя, с историей всех купленных товаров. Не путать с истори...

Работа с HTTP-запросами в Bitrix: Обзор возможностей класса \Bitrix\Main\HttpRequest

Класс \Bitrix\Main\HttpRequest, является наследником класса Request, представляет собой мощный инструмент для работы с д...