Россия

region-img
+7 (495) 278-08-54
  • +7 (812) 670-07-40

Документация

Интеграция с CRM Битрикс24

События

Ниже представлен список событий модуля Интеграция с CRM Битрикс24. Для регистрации обработчика укажите в качестве идентификатора модуля – «sotbit.crmbitrix24».

Событие Вызывается Сущности
beforeCrmInvoiceUpdateByOrder До обновления счета из заказа $order, $invoice
beforeCrmInvoiceAddByOrder До добавления счета из заказа $order, $invoice 
afterChangeOrderProducts После изменения товаров заказа $order
afterChangeOrderPersonType
После изменения типа плательщика в заказе $order
afterChangeOrderUser После изменения плательщика заказа $order
beforeSendContactToCrm До отправки контактов в CRM $contact, $order
beforeSendCompanyToCrm До отправки компании в CRM $company, $order
beforeSendProductToCrm До отправки продукта в CRM $product
beforeSendDealToCrm До отправки сделки в CRM $order, $deal

Подключение метода к событию в таком случае выглядит следующим образом:

AddEventHandler('sotbit.crmbitrix24', 'событие', array('имя_класса', 'имя_метода'));

Пример

Для примера решим проблему различия ID у элементов списка на сайте и в Битрикс24.

Для этого привяжем вызов метода к событию, срабатывающему перед добавлением счета в CRM из заказа.

Код стоит поместить в файл init.php, расположенный по пути:
имя_сайта > bitrix > php_interface > init.php.
Данный файл подключается в прологе, в следствии чего срабатывает практически на каждой странице сайта.
AddEventHandler('sotbit.crmbitrix24', 'beforeCrmInvoiceAddByOrder', array('MyCustomClass', 'updateInvoice'));

В методе укажем, что для требуемого поля передается значение не текущего ID, а измененного, для чего создадим дополнительный массив соответствий $arCorrectionList.

MyCustomClass {
  public function updateInvoice($order, $invoice) {
    $propertyCollection = $order->getPropertyCollection();
  
    $arCorrectionList = [
      1 => 192,
      2 => 231,
      3 => 213
    ];
    
    foreach($propertyCollection as $property) {
      if($property->getField('CODE') == 'PROPERTY_CODE_LIST_TYPE') {
        $invoice->UF_SOME_LIST_FIELD = $arCorrectionList[$property->getValue()];
} } } }

В результате срабатывания вышеописанного метода, значения списка передаются корректно, так как учтена разница ID значений на сайте и CRM.

Нужна помощь в настройке решения

Оставьте заявку и мы свяжемся с вами!