Битрикс24. Подключение канала «Заказы с моего сайта» на примере WordPress + WooCommerce

В Битрикс24 в модуле Сквозная аналитика существует канал обращений Заказы своего магазина, который позволяет отслеживать рекламные источники и пути клиентов и добавлять эту информацию в блок сквозной аналитики в карточке сделки.

 

Начинаем начинать.

Само собой, настройку WordPress и WooCommerce мы рассматривать здесь не будем, считаем, что Вы молодцы и у Вас всё давно настроено и работает.

 

Для тестового окружения у нас установлен WordPress 5.4.1 и WooCommerce 4.1.0.

 

Мы использовали простой тестовый скрип:

add_action(‘woocommerce_thankyou’, ‘b24CreateOrder’);

function b24GetUrl($method) {
$domain = »;
$webhook = »;
$user = »;

$url = $domain . ‘/rest/’ . $user . ‘/’ . $webhook . ‘/’ . $method;

return $url;
}

function b24CreateOrder($id) {
b24CreateDeal($id);
}

function b24CreateDeal($id) {
$method = ‘crm.deal.add/’;

$order = wc_get_order($id)->get_data();

//Order user field
$data[‘fields’][‘{UF_CRM}’] = $order[‘id’];

$data[‘fields’][‘OPPORTUNITY’] = $order[‘total’];

$url = b24GetUrl($method);

$result = b24Request($url, $data);

return $result->result;
}

function b24Request($url, $data) {
$queryData = http_build_query($data);

$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_SSL_VERIFYPEER => 0,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $url,
CURLOPT_POSTFIELDS => $queryData,
));

json_decode(curl_exec($curl));
curl_close($curl);
}

Для работы скрипта указали адрес портала, входящий вебхук и id пользователя в строках 4, 5 и 6 соответственно. Как работать с вебхуками описано здесь.

Содержимое файла добавили в конец файла functions.php нашей темы (В административной части WordPress перейдите в меню Внешний вид – Редактор тем выберите свою и тему, затем файл functions.php)

 

Сейчас наши заказы из интернет-магазина попадают в Битрикс24, но в карточке сделки в блоке сквозной аналитики грустно отображается источник Приложение.

 

 

Для подключения канала обращения мы должны выполнить шаги:
1. подключить скрипт канала обращения Свой сайт
2. создать пользовательское поле для хранения id заказа с сайта в карточке сделки
3. подключить скрипт канала обращения Заказы своего магазина

 

Шаг 1. Подключение скрипта канала обращения Свой сайт

Этот шаг можете пропустить, если у Вас на сайте уже подключен Виджет на сайт из модуля Контакт-центр, а если нет, то продолжаем продолжать.

 

В административной части WordPress перейдите в меню Внешний вид – Редактор тем выберите свою и тему. Код канала обращения нужно установить перед закрывающим тэгом </body>, поэтому, например, выберите файл header.php

Разработчики WordPress советуют использовать дочерние темы для внесения своих изменений. Ознакомьтесь с соответствующей статьей.

 

 

В Битрикс24 откройте канал обращений Свой сайт и скопируйте js-код.

 

 

Вставьте код после открывающего тэга <body>  в открытом ранее файле header.php и нажмите внизу страницы кнопку «Обновить файл».

 

 

Вернитесь в Битрикс24 в канал обращения Свой сайт, введите адрес Вашего сайта и нажмите кнопку Проверить готовность сайта. Если Вы всё верно сделали, в статусе проверки будет указано, что Код установлен. Не забудьте нажать кнопку Сохранить внизу страницы.

 

 

Шаг 1 завершен, переходим к следующему шагу!

 

Шаг 2. Создание пользовательского поля для хранения id заказа с сайта в карточке сделки

Про пользовательские поля написано в справочной документации Битрикс24, поэтому не поленитесь, прочтите статью.

Создайте пользовательское поле типа Строка и скопируйте id этого поля. Проще всего перейти в Настройки – Настройки форм и отчётов – Пользовательские поля – Список полей (в блоке Сделки) и выбрать созданное поле. В адресной строке мы увидим id поля

 

 

Вернемся в файл functions.php (В административной части WordPress перейдите в меню Внешний вид – Редактор тем выберите свою и тему, затем файл functions.php). Найдите следующую строку после комментария «//Order user field» и замените {UF_CRM} на id пользовательского поля, созданного ранее.

 

Должна получиться строка вида

$data[‘fields’][‘UF_CRM_1586816588943’] = $order[‘id’];

Обновляем файл.

Свойства сущностей и методы описаны в справочных порталах Битрикс24 и WooCommerce.

 

 

Итак, если номер заказа из вашего интернет-магазина передаётся, то Шаг 2 завершён, двигаемся дальше.

 

Шаг 3. Подключение скрипта канала обращения Заказы своего магазина

Далее нам нужно поместить скрипт канала обращения Заказы своего магазина в код сайта.
В Битрикс24 возвращаемся в сквозную аналитику, открываем канал обращения Заказы своего магазина и выбираем созданное нами ранее пользовательское поле.

 

 

Откройте файл по пути {корень сайта}/wp-content/plugins/woocommerce/templates/checkout/thankyou.php, найдите строку

<?php do_action( ‘woocommerce_thankyou_’ . $order->get_payment_method(), $order->get_id() ); ?>

и вставьте перед ней следующий код:

<script>(window.b24order=window.b24order||[]).push({id: «<?php echo $order->get_order_number();?>», sum: «<?php echo $order->get_total();?>»});</script>

 

Этот код равен тому, что предлагают скопировать из канала обращения за тем лишь отличием, что он уже включает в себя вставки кода, необходимые для получения данных о заказе WooCommerce.

 

Сохраните файл.

 

Оформите заказ в своём интернет-магазине. Заказ превратится в сделку в Битрикс24 с заполненной информацией в сквозной аналитике.

 

 

На этом всё.