Пытаюсь сделать интеграцию сайта с Битрикс24 CRM. На сайте у товаров есть свойство "ответственный сотрудник". В CRM такое-же с внешним кодом "ManWork". Пытаюсь сделать скрипт, который при добавление нового поля в это свойство на сайте добавлял бы его в аналог у CRM. Вот только он не добавляет новые записи в поле VALUES, а перезаписывает уже имеющиеся. Как сделать так, чтобы он именно добавлял новое и можно ли вместо id в запросе как-то использовать XML_ID ?
Код |
---|
//Получаем список свойств>
$ida=file_get_contents('https://xxx.bitrix24.ru/rest/1/xxx/crm.product.property.list');
$idaa=(array)json_decode($ida);
$idaa=(array)$idaa["result"];
//Получаем список свойств<
//Получаем нужное свойство>
for ($i=0;$i<count($idaa);$i++){
$constrol=(array)$idaa[$i];
if ($constrol["XML_ID"]=="ManWork"){
$ManWorkid=$constrol["ID"];
}
}
//Получаем нужное свойство<
//Переменные с именем и фамилией(в рабочей версии будут браться из POST запроса)>
$name="Егор";
$surname="Егоров";
//Переменные с именем и фамилией(в рабочей версии будут браться из POST запроса)<
//Задаем новое свойство>
$VALUES=[];//Массив с новым значением VALUES.Сюда специальной функцией должны были добавляться данные о уже имеющихся записях, а затем и новой, но это потеряло смысл по нижеописанной выше.
$VALUES[]=[""=>["VALUE"=> $name." ".$surname, "XML_ID"=> "89", "SORT"=> "500", "DEF"=> "N"]];
$data="crm.product.property.update?".http_build_query(
array(
"ID"=>$ManWorkid,
"fields"=>array
(
"VALUES"=>$VALUES
)
)
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://xxx.bitrix24.ru/rest/1/xxx/'.$data);
curl_exec($ch);
curl_close($ch);
//Задаем новое свойство<
|