Выгрузка в highload блок, прикручивание события - alma-com/wiki-bitrix GitHub Wiki
Событие для синхронизации купонов и карт выгружаемых из 1С. Необходимо купоны выгружаемые из 1С прикрутить к скидочным купонам CMS 1С Битрикс. В init.php нужно написать следующее:
<?php
namespace Partner\InformatsionnyeKarty;
/*
* Регистрация событий для higloadblock Информационные карты
*/
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler('', 'InformatsionnyeKartyOnAfterUpdate', '\Partner\InformatsionnyeKarty\KartyOnAfterAddUpdate');
$eventManager->addEventHandler('', 'InformatsionnyeKartyOnAfterAdd', '\Partner\InformatsionnyeKarty\KartyOnAfterAddUpdate');
$eventManager->addEventHandler('', 'InformatsionnyeKartyOnAfterDelete', '\Partner\InformatsionnyeKarty\KartyOnAfterAddUpdate');
/*
* Получение списка карт и сохранение их как купонов для скидки
*/
function KartyOnAfterAddUpdate(\Bitrix\Main\Entity\Event $event)
{
$cards = array();
$codeField = "UF_KODKARTY";
$idDiscount = "5";
$listKarty = \InformatsionnyeKartyTable::getList();
while($arKarty = $listKarty->Fetch()){
$cards[$arKarty[$codeField]] = $arKarty[$codeField];
}
if (\CModule::IncludeModule("catalog")){
//Удаление всех купонов
$deleteCoupon = \CCatalogDiscountCoupon::DeleteByDiscountID($idDiscount);
//Добавление купонов
foreach($cards as $coupon){
$addCoupon = \CCatalogDiscountCoupon::add(array(
"DISCOUNT_ID" => $idDiscount,
"ONE_TIME" => "N",
"COUPON" => $coupon
));
}
}
}