События (хуки)
https://www.hostcms.ru/documentation/modules/core/events/
Для добавление в отправляемые данные своих данных можно использовать следующие хуки (подробнее)
// добавление данных в произвольные поля
class My_AmoCRM
{
static public function onBeforeLeadAdd($controller, $args)
{
$oEntity = $args[0]; // Shop_Order, Form_Fill или Siteuser
$oAmoCRM = $args[1]; // сет настроек
$id = $args[2]; // FALSE (add) или int (update)
/** $args[3] - параметры,
* добавление параметров в custom_fields_values
*/
$args[3]['custom_fields_values'][] = array(
'field_id' => 123456, // ID произвольного поля
'values' => array(
array(
'value' => '789', // значение
//'enum_code' => 'fax' // если есть
)
)
);
}
}
Core_Event::attach('AmoCRM_Controller.onBeforeShopLeadAdd', array('My_AmoCRM', 'onBeforeLeadAdd'));
Core_Event::attach('AmoCRM_Controller.onBeforeFormLeadAdd', array('My_AmoCRM', 'onBeforeLeadAdd'));
Core_Event::attach('AmoCRM_Controller.onBeforeSiteuserLeadAdd', array('My_AmoCRM', 'onBeforeLeadAdd'));
События отправки
/**
* Создание заказа Shop_Payment_System_Handler::_processOrder()
* @hostcms-event Shop_Payment_System_Handler.onAfterProcessOrder
* Запустить самостоятельно в своей логике
*/
$oShop_Order = Core_Entity::factory('Shop_Order', 123);
$Shop_Payment_System_Handler = Shop_Payment_System_Handler::factory($oShop_Order->Shop_Payment_System);
$Shop_Payment_System_Handler->shopOrder($oShop_Order);
AmoCRM_Controller::onAfterProcessOrder($Shop_Payment_System_Handler);
/**
* Создание формы Form_Controller_Show::process()
* @hostcms-event Form_Controller_Show.onAfterProcess
* Запустить самостоятельно в своей логике
*/
$oForm_Fill = Core_Entity::factory('Form_Fill', 123);
$oForm = $oForm_Fill->Form;
$Form_Controller_Show = new Form_Controller_Show($oForm);
AmoCRM_Controller::onAfterProcess($Form_Controller_Show, array($oForm_Fill));
/**
* нет своего хука, перед отправкой письма пользователю о регистрации вставить след код, например в ТДС
*/
$oSiteuser = Core_Entity::factory('Siteuser', 123);
AmoCRM_Controller::siteuser($oSiteuser);
Last updated