mail@vecdev.ru

Передать комментарий к заказу из Битрикс (БУС) в CRM Битрикс 24

Столкнулась с такой проблемой, что средствами самого Битрикс никак нельзя передать поле "Комментарий к заказу" в CRM Битрикс 24, при настроенной интеграции.

Казалось бы, что вам стоит сделать дополнительную галочку? Но нет, давайте снова делать костыли....

Итак, у вас должен быть Битрикс "Управление сайтом" лицензии не ниже "Малый бизнес", и CRM Битрикс 24 с лицензией не ниже "Стандарт" (с нее начинается поддержка интеграции заказов с интернет-магазином). Сделали? Окей идем дальше.

У вас должно быть создано нужное свойство заказа. Идем в "Магазин - Настройки - Свойства заказа - Список свойств". Там должно быть свойство "Комментарий к заказу", если нет создаем сами.

Свойства заказа Битрикс


У меня это поле под номером 6. Кстати, галочка "Входит в профиль" не обязательна. По сути это просто свойство тип строка и больше ничего. Запоминаем поле "Код", оно пригодится.

Для того, чтобы Битрикс 24 поймал комментарий, идем в ядро БУС и правим файл (если его нет, то создаем) init.php (/bitrix/php_interface/init.php), и в него вносим следующий код:

// Регистрируем обработчик методами D7
use Bitrix\Main;
use Bitrix\Sale;
Main\EventManager::getInstance()->addEventHandler(
    'sale',
    'OnSaleOrderBeforeSaved',
    'OnSaleComponentHandler'
);
$order = $event->getParameter("ENTITY"); // Получаем объект заказа
    $commentbitrix24 = ""; // регистрируем переменную для комментария
    $propertyCollection = $order->getPropertyCollection(); // Свойства товара в корзине, Sale\BasketPropertyItem
    $propertys = $propertyCollection->getArray(); // Массив свойств ['properties' => [..], 'groups' => [..] ];
    // нас интересует только properties
    foreach ($propertys["properties"] as $prop) {
        if($prop["CODE"] == 'CONTACT_COMMENTS'){
            $commentbitrix24 .= $prop["VALUE"][0];
        }
    }
    $order->setField("COMMENTS", $commentbitrix24); // Устанавливаем сформированный комментарий менеджера для заказа
}

Все, в итоге наша CRM в поле "Комментарий к заказу" начнет вылавливать комментарий оставленный клиентом, как на примере ниже. Кстати, туда таким образом можно отправлять все что угодно из массива properties, главное отступы нормально поставить.

Комментарий к заказу Битрикс 24

Частный разработчик сайтов Vector Dev
Комментарии