Использую аккаунт закрытого проекта как учебный. Перевел его на бесплатный тариф. Теперь не могу им пользоваться - при попытке перейти куда-то кроме списка тарифов выскакивает окно с котом в чемодане. Сканер совместимости говорит, что надо удалить одно бесплатное приложение, но в маркет, чтобы это сделать тоже не войти. Можно ли от него избавиться не переходя на платный тариф ?
Пытаюсь через него создать входящий вебхук, который менял бы свойство товара. Результатом попытки его выполнить всегда является "ID is not defined or invalid". Как его правильно настроить.
Я создал для товара пользовательское свойство типа "список". При интеграции CRM со сторонним сайтом через вебхук я для его редактирования использовал "crm.product.property.update". При редактировании "VALUES" (т.е при любом добавлении значения свойства в список, его редактировании и удалении) , фактически, приходилось заново задавать весь список его значений с внесенными изменениями, что приводило к тому, все текущие значения удалялись и заменялись новыми, пусть, по большей части, и полностью идентичными. Из за этого мне приходится заботится о том, чтобы после редактирования этого свойства его значения у товаров для которых оно проставлено менялись на аналогичные новые. Недавно я узнал, что при редактировании через вебхук пользовательских списочных лидов ("crm.lead.userfield.update") используется поле "LIST", через которое можно отредактировать конкретное значение из списка отдельно от остальных задав его "ID". Есть ли что-то подобное для пользовательских списочных свойств товара ?
В crm есть табличная пользовательская характеристика “ответственный сотрудник” (его id в crm – 148, а внутренний идентификатор – “"ManWork"
”). Делаю возможность редактировать её со стороннего сайта.
Код
$massced=[“time"=>0,"ValuesMainWorkers"=>[]]; //Функуия получения данных из crm >
function ComAll($h1,$h2,$h3){
$h2[$h3]=file_get_contents('https://xxxx.bitrix24.ru/rest/1/xxxx/'.$h1);
$h2[$h3]=(array)json_decode($h2[$h3]);
$h2[$h3]=$h2[$h3]["result"];
$h2["time"]=SleepingTime($h2["time"]);//Функция, которая считает количество запросов и приостанавливает работу, если их слишком много
$h2[$h3]=ArrayForObjectAll($h2[$h3]);//Переводит все полученные по запросу объекты в массивы
return $h2;
}
//Функуия получения данных из crm <
//Функция отправки запроса>
function MuSearch($t1,$t2,$t3){
$data=http_build_query(
$t1
);
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_SSL_VERIFYPEER
=> 0,
CURLOPT_POST => 1,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER
=> 1,
CURLOPT_URL => 'https://xxxx.bitrix24.ru/rest/1/xxxx/'.$t2,
CURLOPT_POSTFIELDS => $data,
]);
$result = curl_exec($curl);
curl_close($curl);
$t3["time"]=SleepingTime($t3["time"]);
return $t3;
}
//Функция
отправки запроса<
//Получаес список свойств товаров>
$massced=ComAll("crm.product.property.list",$massced,"AllOptionApartment");
//Получаес список свойств товаров<
//Получаем свойство "ответственный сотрудник">
foreach ($massced["AllOptionApartment"] as $elem){
if ($elem["XML_ID"]=="ManWork"){
$ManWorkid=$elem["ID"];
//Получаем список полей свойства "ответственный сотрудник">
foreach ($elem["VALUES"] as $item){
$massced["DisciplineWorker"][]=["ID"=>$item["ID"],"XML_ID"=>$item["XML_ID"],"VALUE"=>$item["VALUE"]];
}
//Получаем список полей свойства "ответственный сотрудник"<
}
}
//Получаем свойство "ответственный сотрудник"<
//Удаление свойство "ответственный сотрудник">
$delwid["incharacter"]="237";//Внутренний идентификатор удаляемой характеристики.В рабочей версии задано автоматически
//Ищем нужное свойиство "ответственный сотрудник">
foreach ($massced["DisciplineWorker"] as $elem){
if ($elem["XML_ID"]!="Work_".$delwid[0]["incharacter"]){$massced["ValuesMainWorkers"][]=["XML_ID"=>$elem["XML_ID"],"VALUE"=>$elem["VALUE"]];}
}
//Ищем нужное свойиство "ответственный сотрудник"<$massced=MuSearch(["ID"=>148,"fields"=>["VALUES"=>$massced["ValuesMainWorkers"]]],"crm.product.property.update",$massced);
//Удаление свойство "ответственный сотрудник"<
Проблема в том, что таким образом обновляются все поля значений свойства и приходится потом отдельно заморачиваться с тем, чтобы переназначать его у товаров. Можно ли взаимодействовать только с одним полем из табличной пользовательской характеристики (в нашем случае – удалить его) а остальные вообще не трогать ?
Я в списке методов работы с пользователями не вижу ничего для его удаления. Можно ли как-нибудь удалить пользователя в Bitrix24 со стороннего ресурса через вебхук, или лучшее что можно сделать - отредактировать, удалив все, кроме email ?
Вот только при такой записи фото пользователя не меняется, а при
Код
$file=file("https://xxx/image");
Просто слетает уже имеющееся изображение. На попытку задать $file через file_get_contents что с шифрованием через base64 что без него реагирует как на неправильный тип файла. В каком виде задать "PERSONAL_PHOTO", чтобы этот запрос прошел ?
Я путаюсь написать файл обработчик, который отредактирует пользователя со стороннего ресурса. Проблемы с тем, как передать ему файл с фотографией пользователя.
Необходимо написать код, который редактировал бы определенное пользовательское свойство товара (типа список) на стороннем сайте через вебхук
Код
$data="crm.product.update?".http_build_query(
[
"ID"=>"2",//id товара
"fields"=>[
"PROPERTY_148"=>["VALUES"=>["740"=>["ID"=>"740"]]]//Пытаюсь задать id нового значения свойства для данного товара
]
]
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://xxx.bitrix24.ru/rest/1/xxx/'.$data);
curl_exec($ch);
curl_close($ch);
Как изменить этот код, чтобы он смог поменять значение заданного пользовательского свойства ?
Пытаюсь сделать интеграцию сайта с Битрикс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);
//Задаем новое свойство<