Меню
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: заметки разработчика

Создание мобильного приложения на cordova, для любого сайта.

Если стоит задача разработки мобильного приложения для сайта, можете воспользоваться данной заметкой. Постарался сделать...

Старые шаблоны битрикс для простой верстки

Новые версии типового интернет-магазина, который идет в комплекте с Битрикс (от 12 версии и выше), достаточно технологич...

Менять большую картинку, при клике на маленькую, в детальной карточке

Мини скриптик, может кому пригодится для каталога товаров или новостей при использовании дополнительных картинок (обычно...

Кастомизация компонента восстановления пароля bitrix:system.auth.forgotpasswd

Достаточно часто спрашивают как кастомизировать компонент восстановления пароля пользователя. Типовая задача, это измени...

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

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

Настройка push уведомлений через Firebase, в мобильном приложении Apache Cordova

Задача: Apache Cordova предоставляет удобный способ разработки кроссплатформенных мобильных приложений. В данной статье ...

Создание блога с комментариями, оценками и просмотрами на сайте с 1С-Битрикс

Если на вашем сайте требуется создание раздела с блогом или новостями, статьями. Записям в которых, посетители смогу ста...

Наличие на складах в умном фильтре 1С-Битрикс, с автоматическим обновлением

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

Получить все поля раздела, включая пользовательские, в section.php

Если нужно получить какие-то данные о текущем разделе, которых нет в изначальном массиве, можно воспользоваться методом ...