Обновлено 27.09.2024
Вызывается до «сборки» объекта компании перед отправкой его в Амо. Позволяет подставить свою компанию, или отменить создание компании.
Rover\AmoCRM\Directory\Entity\Profile
— объект профиля интеграции.array
— массив дополнительных сущностей, с которыми была запрошена компания по апи amoCRM.Rover\AmoCRM\Directory\Entity\Event
— событие интеграции, в котором была создана сделка.Не создавать компанию в зависимости от каких-либо условий
use Bitrix\Main\Event;
use Bitrix\Main\EventManager;
use Bitrix\Main\Loader;
use Bitrix\Main\EventResult;
use Rover\AmoCRM\Event\PostEvent;
if (Loader::includeModule('rover.amocrm')) {
EventManager::getInstance()->addEventHandler(
'rover.amocrm',
'onBeforeBuildCompanies',
["AmoEventHandler", "onBeforeBuildCompaniesHandler"]
);
/**
* Class FixAspro
*
* @author Pavel Shulaev (https://rover-it.me)
*/
class AmoEventHandler
{
public static function onBeforeBuildCompaniesHandler(Event $event)
{
/** @var PostEvent $amoEvent */
$amoEvent = $event->getParameter(2); // параметеры нумеруются с 0.
// фильтруем почтовое событие
if (false === $amoEvent instanceof PostEvent) {
return;
}
// ид нужного почтового события
if ($amoEvent->getSourceId() != 95) {
return;
}
$postEventData = \Bitrix\Main\Mail\Internal\EventTable::getRow([
'filter' => ['=ID' => $amoEvent->getEntityId()]
]);
// не создаём компанию если стоимость доставки менее 500
if ($postEventData['C_FIELDS']['DELIVERY_PRICE'] < 500) {
return new EventResult(EventResult::ERROR, $event->getParameters());
}
}
}
}