@tokyodead

Как связать контакт и сделку в Битрикс24 с помощью REST API?

Добрый день, я новичок в PHP, подскажите пожалуйста, я добавляю контакт и сделку, данные забираю с массива который я получил через АПИ, контакты добавляются, и сделки тоже, как можно подвязать контакт со сделкой?
// Функция добавления сделок
  function addDeal($res) {
    foreach($res['Items'] as $key => $value) {
      $dealData = sendDataToBitrix('crm.deal.add', [
        'fields' => [
          'TITLE' => 'Заявка,
          'STAGE_ID' => 'NEW',
          'CONTACT_ID' => $value['Id'],
        ], 'params' => [
          'REGISTER_SONET_EVENT' => 'Y'
        ]
      ]);
    }
    return $dealData;
  }
  // Функция добавления сделок

  // Функция добавления контактов
  function addContact($res) {
  foreach($res['Items'] as $key => $value) {
    $contactData = sendDataToBitrix('crm.contact.add', [
      'fields' => [
        'NAME' => $value['Data']['Name'],
        'OPENED' => 'Y',
        'PHONE' => [['VALUE' => $value['Data']['PhoneNumber'], 'VALUE_TYPE' => 'WORK']],
        'EMAIL' => [['VALUE' => $value['Data']['Email'], 'VALUE_TYPE' => 'WORK']],
        'TYPE_ID' => 'CLIENT',
      ], 'params' => [
        'REGISTER_SONET_EVENT' => 'Y'
      ]
    ]);
  }
  return $contactData['result'];
  }
  // Функция добавления контактов


Есть так же проблема с производительностью, массив очень большой, и скрипт обрабатывается долго, как можно это улучшить? + массив обрабатывается не до конца, выходит что-то вроде превышен лимит запроса 60сек.
Копался в документации, так ничего и не понял.
  • Вопрос задан
  • 1772 просмотра
Пригласить эксперта
Ответы на вопрос 1
gromdron
@gromdron Куратор тега Битрикс24
Работаю с Bitrix24
как можно подвязать контакт со сделкой?


Это недоработка со стороны Битрикс24: связать контакт со сделкой через rest api нельзя. Ждем обновлений REST API.

Есть так же проблема с производительностью, массив очень большой, и скрипт обрабатывается долго, как можно это улучшить?


Сейчас вы выполняете синхронные запросы по 1. Если на обработку одного запроса нужно 1 секунда, то 60 запросов = 60 секунд. Вы можете группировать запросы в batch, таким образом 60 запросов превратятся в 2 запроса и будут обработаны за ~2 секунды

Еще, я бы рекомендовал использовать готовую библиотеку для отправки запросов: https://github.com/mesilov/bitrix24-php-sdk/tree/2.x
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы