Обновление цен торговых предложений с учётом раздела
Обновление цен торговых предложений по разделу каталога инфоблока
- Нам понадобится свойство 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"));
Ещё статьи:
08.11.2023
Прощай bitrix.xscan, не стало битрикс скан модуля
Сегодня увидел, что полезного модуля bitrix.xscan не стало на маркетплейсе.
ID: 464
26.07.2023
Сохренение ютм меток в сессию
Вариант сохренения ютм меток в сессию в афйле init.php
ID: 462
29.06.2023
Почему DNS есть, но ошибка "Не удалось получить записи с DNS серверов"
Проверка на VPS показывает, что DNS есть, но по факту ошибка "Не удалось получить записи с DNS серверов"
ID: 461