Дополнительные возможности 1С-Битрикс
Скопировать ссылку на статью
Скопировано

В модуле присутствует дополнительный функционал, позволяющий модифицировать данные, приходящие из системы и уходящие в нее. Для этого в файле init.php нужно описать нужную функцию и произвести требуемые изменения данных.

Функция retailCrmBeforeCustomerSend

retailCrmBeforeCustomerSend — модификация данных клиента перед отправкой в систему.

function retailCrmBeforeCustomerSend($customer)
{
        //Ваши изменения
        return $customer;
        //либо return false; и тогда данные отправлены в систему не будут
}

Где $customer — сформированный массив данных клиента для отправки в систему.

Функция retailCrmBeforeOrderSend

retailCrmBeforeOrderSend — модификация данных заказа перед отправкой в систему.

function retailCrmBeforeOrderSend($order, $arFields)
{
        //Ваши изменения
        return $order;
        //либо return false; и тогда данные отправлены в систему не будут
}

Где $order — сформированный массив данных заказа для отправки в систему, а $arFields — массив полей заказа на сайте.

Функция retailCrmBeforeCustomerSave

retailCrmBeforeCustomerSave — модификация данных клиента, пришедших по истории из системы.

function retailCrmBeforeCustomerSave($customer)
{
        //Ваши изменения
        return $customer;
        //либо return false; и тогда изменения из системы по этому клиенту будут проигнорированы
}

Где $customer— массив с измененными данными клиента, пришедший из системы.

Функция retailCrmAfterCustomerSave

retailCrmAfterCustomerSave — функция, выполняющаяся сразу после сохранения на сайте изменений данных клиента, пришедших по истории из системы.

function retailCrmAfterCustomerSave($customer)
{
        //Ваши изменения
        return;
}

Где $customer— массив с измененными данными клиента, пришедшими из системы.

Функция retailCrmBeforeOrderSave

retailCrmBeforeOrderSave — модификация данных заказа, пришедших по истории из системы.

function retailCrmBeforeOrderSave($order)
{
        //Ваши изменения
        return $order;
        //либо return false; и тогда изменения из системы по этому заказу будут проигнорированы
}

Где $order— массив с измененными данными заказа, пришедший из системы.

Функция retailCrmAfterOrderSave

retailCrmAfterOrderSave — функция, которая выполняется сразу после сохранения на сайте изменений заказа, пришедших по истории из системы.

function retailCrmAfterOrderSave($order)
{
        //Ваши изменения
        return;
}

Где $order— массив с измененными данными заказа, пришедшими из системы.

Функция retailCrmApiResult

retailCrmApiResult — функция выполняющаяся сразу после получения ответа от API системы.

function retailCrmApiResult($methodApi, $res, $code)
{
        //Ваши изменения
        return;
}

Где $methodApi— название API метода, $res— результат запроса true/false(удачный или не удачный запрос), $code- код статуса ответа API.

Примечание

Ошибки в коде, при использовании данной функции, могут нарушить работу синхронизации сайта и системы.

Если перечисленных выше инструментов по какой-то причине недостаточно, то можно внести требуемые изменения непосредственно в код модуля без риска потери этих изменений при обновлении модуля. Для этого требуется скопировать файл с нужным классом в директорию /bitrix/php_interface/retailcrm/ и уже в нем производить модификацию.

Данный механизм поддерживает изменение классов для работы с клиентами, заказами, событиями, экспортом каталога и другими вспомогательными механизмами.

Особенности

Пользовательские поля в CRM выгружаются через ассоциативный массив customFields, в данных заказа. Пример:

json {"customFields":{"someCode":"value"}}

Для передачи пользовательского поля в систему используйте php-функцию:

function retailCrmBeforeOrderSend($order, $arFields)
{
        $order['customFields']['someCode'] = 'value';
        return $order;
}
Благодарим за отзыв.
Была ли статья полезна?
Нет
  • Рекомендации не помогли
  • Нет ответа на мой вопрос
  • Текст трудно понять
  • Не нравится описанный функционал
Да
Предыдущая статья
Установка функционала для подписки на рекламно-информационные рассылки
Данный функционал позволит передавать клиентов с отметкой «Подписан» из 1С-Битрикс в RetailCRM.
Следующая статья
История изменений в модуле интеграции 1С-Битрикс
Перечень версий и произведенных с ними обновлений модуля.