Задать вопрос

Как получить id лида созданного через плагин WooCommerce(Интеграция wooCommerce с bitrix)?

Доброго времени суток, друзья программисты, у меня возникла такая проблема
Задача: Интегрировать плагин wooCommerce с битрикс 24, суть в том что при покупке юзера на сайте, плагин должен создавать лид в битрикс и заполнять поле "Товар".
Суть: Есть готовый скрипт, создающий лид в битрикс, все работает ОК, но мне нужно так же к лиду прикрепить нужный товар и проблема в том, что просто вписать в поле при создании не получиться, нужно воспользоваться методом - crm.lead.productrows.set, а что бы воспользоваться этим методом нужен id лида, и вопрос в том, как можно получить id созданного лида woocommerce-ом, для того что бы я мог хуком прикрепить товар к лиду
Буду очень благодарен!
Вот сам скрипт
add_action( ‘woocommerce_thankyou’, ‘my_custom_tracking’ );

function my_custom_tracking( $order_id ) {

  // Подключаемся к серверу CRM

  define(‘CRM_HOST’, ‘[ваше_название].bitrix24.ru’); // Ваш домен CRM системы

  define(‘CRM_PORT’, ‘443’); // Порт сервера CRM. Установлен по умолчанию

  define(‘CRM_PATH’, ‘/crm/configs/import/lead.php’); // Путь к компоненту lead.rest

  // Авторизуемся в CRM под необходимым пользователем:

  // 1. Указываем логин пользователя Вашей CRM по управлению лидами

  define(‘CRM_LOGIN’, ‘your_email@email.com’);

  // 2. Указываем пароль пользователя Вашей CRM по управлению лидами

  define(‘CRM_PASSWORD’, ‘your_password’);

  // Получаем информации по заказу

  $order = wc_get_order( $order_id );

  $order_data = $order->get_data();

  // Получаем базовую информация по заказу

  $order_id = $order_data[‘id’];

  $order_currency = $order_data[‘currency’];

  $order_payment_method_title = $order_data[‘payment_method_title’];

  $order_shipping_totale = $order_data[‘shipping_total’];

  $order_total = $order_data[‘total’];

  $order_base_info = «<hr><strong>Общая информация по заказу</strong><br>

  ID заказа: $order_id<br>

  Валюта заказа: $order_currency<br>

  Метода оплаты: $order_payment_method_title<br>

  Стоимость доставки: $order_shipping_totale<br>

  Итого с доставкой: $order_total<br>»;

  // Получаем информация по клиенту

  $order_customer_id = $order_data[‘customer_id’];

  $order_customer_ip_address = $order_data[‘customer_ip_address’];

  $order_billing_first_name = $order_data[‘billing’][‘first_name’];

  $order_billing_last_name = $order_data[‘billing’][‘last_name’];

  $order_billing_email = $order_data[‘billing’][’email’];

  $order_billing_phone = $order_data[‘billing’][‘phone’];

  $order_client_info = «<hr><strong>Информация по клиенту</strong><br>

  ID клиента = $order_customer_id<br>

  IP адрес клиента: $order_customer_ip_address<br>

  Имя клиента: $order_billing_first_name<br>

  Фамилия клиента: $order_billing_last_name<br>

  Email клиента: $order_billing_email<br>

  Телефон клиента: $order_billing_phone<br>»;

  // Получаем информацию по доставке

  $order_shipping_address_1 = $order_data[‘shipping’][‘address_1’];

  $order_shipping_address_2 = $order_data[‘shipping’][‘address_2’];

  $order_shipping_city = $order_data[‘shipping’][‘city’];

  $order_shipping_state = $order_data[‘shipping’][‘state’];

  $order_shipping_postcode = $order_data[‘shipping’][‘postcode’];

  $order_shipping_country = $order_data[‘shipping’][‘country’];

  $order_shipping_info = «<hr><strong>Информация по доставке</strong><br>

  Страна доставки: $order_shipping_state<br>

  Город доставки: $order_shipping_city<br>

  Индекс: $order_shipping_postcode<br>

  Адрес доставки 1: $order_shipping_address_1<br>

  Адрес доставки 2: $order_shipping_address_2<br>»;

  // Получаем информации по товару

  $order->get_total();

  $line_items = $order->get_items();

  foreach ( $line_items as $item ) {

    $product = $order->get_product_from_item( $item );

    $sku = $product->get_sku(); // артикул товара

    $id = $product->get_id(); // id товара

    $name = $product->get_name(); // название товара

    $description = $product->get_description(); // описание товара

    $stock_quantity = $product->get_stock_quantity(); // кол-во товара на складе

    $qty = $item[‘qty’]; // количество товара, которое заказали

    $total = $order->get_line_total( $item, true, true ); // стоимость всех товаров, которые заказали, но без учета доставки

    $product_info[] = «<hr><strong>Информация о товаре</strong><br>

    Название товара: $name<br>

    ID товара: $id<br>

    Артикул: $sku<br>

    Описание: $description<br>

    Заказали (шт.): $qty<br>

    Наличие (шт.): $stock_quantity<br>

    Сумма заказа (без учета доставки): $total;»;

  }

  $product_base_infо = implode(‘<br>’, $product_info);

  $subject = «Заказ с сайта № $order_id»;

  // Формируем параметры для создания лида в переменной $postData = array

  $postData = array(

    ‘TITLE’ => $subject,

    ‘COMMENTS’ => $order_base_info.’ ‘.$order_client_info.’ ‘.$order_shipping_info.’ ‘.$product_base_infо

  );

  // Передаем данные из Woocommerce в Bitrix24

  if (defined(‘CRM_AUTH’)) {

    $postData[‘AUTH’] = CRM_AUTH;

  } else {

    $postData[‘LOGIN’] = CRM_LOGIN;

    $postData[‘PASSWORD’] = CRM_PASSWORD;

  }

  $fp = fsockopen(«ssl://».CRM_HOST, CRM_PORT, $errno, $errstr, 30);

  if ($fp) {

    $strPostData = »;

    foreach ($postData as $key => $value)

    $strPostData .= ($strPostData == » ? » : ‘&’).$key.’=’.urlencode($value);

    $str = «POST «.CRM_PATH.» HTTP/1.0\r\n»;

    $str .= «Host: «.CRM_HOST.»\r\n»;

    $str .= «Content-Type: application/x-www-form-urlencoded\r\n»;

    $str .= «Content-Length: «.strlen($strPostData).»\r\n»;

    $str .= «Connection: close\r\n\r\n»;

    $str .= $strPostData;

    fwrite($fp, $str);

    $result = »;

    while (!feof($fp))

    {

      $result .= fgets($fp, 128);

    }

    fclose($fp);

    $response = explode(«\r\n\r\n», $result);

    $output = ‘<pre>’.print_r($response[1], 1).'</pre>’;

  } else {

    echo ‘Connection Failed! ‘.$errstr.’ (‘.$errno.’)’;

  }

}
  • Вопрос задан
  • 127 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
gromdron
@gromdron Куратор тега Битрикс24
Работаю с Bitrix24
вопрос в том, как можно получить id созданного лида


Замените вызов архаичного метода с логином и паролем на вебхук crm.lead.add
В результате вызова он вернет вам идентификатор созданного лида, который вы сможете использовать для заполнения товарных позиций
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽