Обновление цен торговых предложений с учётом раздела

Обновление цен торговых предложений с учётом раздела

Обновление цен торговых предложений по разделу каталога инфоблока
  • Нам понадобится свойство PROPERTY_CML2_LINK где хранится ID основной карточки вариативного товара и IBLOCK_SECTION_ID - раздел основного товара.
  • Вытаскиваем элементы торговых предложений с помощью CIBlockElement::GetList
  • Получаем данные о разделе CIBlockElement::GetByID($ar_Element["PROPERTY_CML2_LINK_VALUE"])
  • Формируем массив выборку с увязкой к разделу и данным элемента
  • Получаем данные о ценах CPrice::GetList
  • Обновляем цены с нужной наценкой CPrice::Update
Скачать пример

 $infoblock = 3; // Инфоблок 
//Вытаскиваем элементы
$arSelectElems = array (
 "ID",
 "PROPERTY_CML2_LINK"
 );
 $arFilterElems = array (
 "IBLOCK_ID" => $infoblock
);
 $arSortElems = array (
 "NAME" => "ASC"
 );
 $arResult["ELEMENTS"] = array();
 $rsElementElement = CIBlockElement::GetList(array('left_margin' => 'asc'), $arFilterElems, false, false, $arSelectElems);
 while ( $ar_Element = $rsElementElement->Fetch() ) {
 $res = CIBlockElement::GetByID($ar_Element["PROPERTY_CML2_LINK_VALUE"]);
 if($ar_res = $res->GetNext())
 {
 $ar_res_sectionID = $ar_res['IBLOCK_SECTION_ID'];
 }
//выборка с учётом раздела
 $ar_Resu[$ar_res_sectionID][] = $ar_Element;
}
 foreach ($ar_Resu[220] as $section) {
     $db_res_mrc = CPrice::GetList(
 array(),
 array(
 "PRODUCT_ID" => $section["ID"],
 "CATALOG_GROUP_ID" => 1
 )
 );
 //[PRODUCT_ID] => это торговое предложение
 if ($ar_res_mrc = $db_res_mrc->Fetch())
 {
//цена с наценкой
 $price_mrc_update = ceil($ar_res_mrc['PRICE'] + ($ar_res_mrc['PRICE']*20/100));
 CPrice::Update($ar_res_mrc['ID'], array("PRODUCT_ID" =>$ar_res_mrc['PRODUCT_ID'],"PRICE" => $price_mrc_update , "CURRENCY" => "RUB"));

Ещё статьи:

19.01.2021 Задача модуль регистрации участника акции
Задача по разработке модуля регистрации участника акции на сайт Битрикс. В модуле должны быть следующие поля: ID: 316

07.01.2021 Почему в битрикс автоматически отключаются пользователи
На сайте с определённой периодичностью происходила деактивация аккаунтов пользователей. Логин становился неактивным и зайти на сайт не получалось. ID: 314

07.01.2021 Ошибка сокетов
Бывает выскакивает такая ошибка в битрикс "Работа с сокетами    Ошибка! Не работает", "Замечание. Не удалось проверить из-за ошибки в работе с сокетами" ID: 315

© 2015-2021 Web админ
Связаться по WhatsApp