Обновлено 26.12.2024

Вызывается после генерации исходного объекта сделки, и до его обновления на основе маппинга профиля интеграции. Объект может быть как «чистым», так и уже заполненным, если данное событие уже вызывалось ранее и для текущей сделки есть связь с сущностью сайта.

Позволяет подставить свою исходную сделку или отменить создание сделки. Изменения не сохраняются, т.к. в дальнейшем сделка будет обновлена на основе маппинга профиля интеграции. Для изменения объекта сделки используйте событие onAfterUpdateLeads.

Параметры

  1. Rover\AmoCRM\Directory\Entity\Profile — объект профиля интеграции.
  2. array — массив дополнительных сущностей, с которыми была запрошена сделка по апи amoCRM.
  3. Rover\AmoCRM\Directory\Entity\Event — событие интеграции, в котором была создана сделка.
  4. AmoCRM\Models\LeadModel — объект сделки.

Пример обработчика

Напишем обработчик, который будет логировать все поля исходного объекта сделки в формате амоСРМ

use Bitrix\Main\Event;
use Bitrix\Main\EventManager;
use Bitrix\Main\Loader;

if (Loader::includeModule('rover.amocrm')){
    EventManager::getInstance()->addEventHandler(
        'rover.amocrm',
        'onAfterBuildLeads',
        ["AmoCrmEvents", "onAfterBuildLeadsHandler"]
    );

    class AmoCrmEvents
    {
        public static function onAfterBuildLeadsHandler(Event $event)
        {
            /** @var \AmoCRM\Models\LeadModel $lead */
            $lead = $event->getParameter(3); // параметеры нумеруются с 0.

            file_put_contents($_SERVER['DOCUMENT_ROOT'] . '/amo.log', print_r($lead->toApi(), 1), FILE_APPEND);
        }
    }
}