Передача комментария к заказу из 1С-Битрикс в Битрикс24 CRM
При настройке стандартной интеграции между 1С-Битрикс: Управление сайтом и Битрикс24 CRM столкнулись с одной неприятной особенностью. Поле «Комментарий к заказу», которое оставляет покупатель при оформлении заказа, автоматически в CRM не передается.
Странно, что в настройках интеграции до сих пор нет обычной галочки для передачи этого поля. Поэтому придется решить проблему небольшим обработчиком.
Для работы потребуется 1С-Битрикс: Управление сайтом с редакцией не ниже «Малый бизнес», а также Битрикс24 с тарифом не ниже «Стандарт», поскольку именно с него доступна интеграция интернет-магазина с CRM.
Создаем свойство заказа
Сначала убедитесь, что в магазине существует свойство заказа, в котором покупатель вводит комментарий. Проверить это можно в разделе Магазин → Настройки → Свойства заказа → Список свойств.
В моем случае комментарий хранится в свойстве с кодом CONTACT_COMMENTS . Галочку «Входит в профиль» устанавливать необязательно — достаточно обычного строкового свойства заказа. Запомните именно символьный код свойства, а не его ID. Он понадобится в обработчике.Добавляем обработчик
Теперь необходимо скопировать значение свойства заказа в системное поле
COMMENTS
, которое уже умеет передаваться в Битрикс24. Для этого откройте файл
/bitrix/php_interface/init.php
. Если его нет — просто создайте.
Добавьте следующий обработчик:
Код для вставки
use Bitrix\Main\EventManager;
use Bitrix\Main\Event;
use Bitrix\Sale\Order;
EventManager::getInstance()->addEventHandler(
'sale',
'OnSaleOrderBeforeSaved',
'OnSaleComponentHandler'
);
function OnSaleComponentHandler(Event $event)
{
/** @var Order $order */
$order = $event->getParameter('ENTITY');
$comment = '';
foreach ($order->getPropertyCollection() as $property)
{
if ($property->getField('CODE') === 'CONTACT_COMMENTS')
{
$comment = $property->getValue();
break;
}
}
$order->setField('COMMENTS', $comment);
} Результат
После сохранения заказа обработчик автоматически перенесет значение свойства
CONTACT_COMMENTS
в поле
COMMENTS
. Именно его стандартная интеграция отправляет в Битрикс24, поэтому комментарий клиента начнет отображаться в CRM без каких-либо дополнительных настроек.
По такому же принципу можно передавать и другие свойства заказа. Достаточно получить нужное значение из коллекции свойств и записать его в необходимое системное поле заказа.
Комментарии
Будем рады вашему мнению и вопросам по статье.