Всем привет.
Полазив по форуму и по гуглу, собрал все что мог для ядра д7
Код работает, но только на добавление и изменение товара\раздела - добавляет галочку к свойству товара.
Помогите допилить на удаление скидки, или из условий скидки товара\раздела, чтобы убиралось из свойства галочка
Полазив по форуму и по гуглу, собрал все что мог для ядра д7
Код работает, но только на добавление и изменение товара\раздела - добавляет галочку к свойству товара.
Помогите допилить на удаление скидки, или из условий скидки товара\раздела, чтобы убиралось из свойства галочка
Код |
---|
$eventManager = Bitrix\Main\EventManager::getInstance(); $eventManager->addEventHandler('sale', 'DiscountonAfterAdd', 'updateDiscountProps'); $eventManager->addEventHandler('sale', 'DiscountonAfterUpdate', 'updateDiscountProps'); // $eventManager->addEventHandler('sale', 'DiscountonAfterDelete', 'updateDiscountProps'); function updateDiscountProps() { if (CModule::IncludeModule('sale')){ $result = Bitrix\Sale\Internals\DiscountTable::getList(array('filter' => array('LID' => 's1', 'ACTIVE' => 'Y'))); while ($data = $result->fetch()) { if ($data['SHORT_DESCRIPTION_STRUCTURE']['VALUE'] > 0 ) { // размер скидки в списке маркетинговых акций foreach ($data['CONDITIONS_LIST']['CHILDREN'] as $arData) { foreach ($arData [ 'CHILDREN' ] as $arElements ){ // получаем ID секций и элементов switch ($arElements [ 'CLASS_ID' ]) { case 'CondIBSection': $sectionsvalue[] = $arElements['DATA']['value']; break; case 'CondIBElement': foreach ($arElements['DATA']['value'] as $arElementsList) { $elementsvalue[] = $arElementsList; } break; } } } } } function GetElementID($ibID, $sectID) { if (CModule::IncludeModule('iblock')) { $arFilter = array( 'IBLOCK_ID' =>IntVal($ibID), 'SECTION_ID' => $sectID , 'INCLUDE_SUBSECTIONS'=>'Y', 'ACTIVE' => 'Y' ); $res = CIBlockElement::GetList(array('RAND' => 'RAND'), $arFilter, false, false, array('ID')); while ($ob = $res->GetNextElement()) { $arFields[] = $ob->GetFields(); } foreach ($arFields as $ids) { $result[] = $ids['ID']; } return $result; } } $CATALOG_ID = 2; if (empty($elementsvalue)) { $elementsvalue = array(); } if (!empty($sectionsvalue)) { $FilterResult = GetElementID($CATALOG_ID, $sectionsvalue); // указываем ID инфоблока и передаем ID секций для выборки ID элементов }else{ $FilterResult = array(); } $arFilterResult = array_unique(array_merge($elementsvalue, $FilterResult)); // объединяем массивы и удаляем одинаковые ID, если они есть foreach ($arFilterResult as $discountID) { CIBlockElement::SetPropertyValuesEx( $discountID, $CATALOG_ID, array( 'DISCOUNT' => 18 //Символьный код свойства список и его ID значение ) ); }; } } |