метод REST
scope: crm
Устаревший
crm.product.property.add
Добавить свойство товаров
Устаревший метод.
Развитие метода остановлено. Используйте catalog.productProperty.add.
Описание
Метод crm.product.property.add создает новое свойство товара.
Параметры
fields
array
необязательный
Значения полей для создания свойства товара.
Чтобы узнать требуемый формат полей, выполните метод crm.product.property.fields и посмотрите формат пришедших значений этих полей
Примеры запроса
try
{
const getCatalogId = async () =>
{
try
{
const catalogListResponse = await $b24.callMethod(
"crm.catalog.list",
{filter: {"ORIGINATOR_ID": "", "ORIGIN_ID": ""}}
);
if (catalogListResponse.error())
{
console.error(catalogListResponse.error());
}
else
{
let catalogId = 0;
if (catalogListResponse.total() !== 1)
{
catalogId = 0;
}
else
{
const data = catalogListResponse.getData().result;
if (data && data instanceof Array && typeof(data[0]) === "object" && data[0]["ID"])
{
catalogId = parseInt(data[0]["ID"]);
}
}
if (catalogId <= 0)
{
console.error("Не удалось получить идентификатор товарного каталога CRM");
}
else
{
await addPropertyExample(catalogId);
}
}
}
catch (error)
{
console.error(error);
}
};
const addPropertyExample = async (catalogId) =>
{
try
{
const propertyAddResponse = await $b24.callMethod(
"crm.product.property.add",
{
fields: {
"ACTIVE": "Y",
"IBLOCK_ID": catalogId,
"NAME": "Свойство - HTML/текст",
"SORT": 500,
"DEFAULT_VALUE": {
"TYPE": "html",
"TEXT": "<u><b>Вкусные</b> \"<span style=\"color: #00a650;\">африканские бананы</span>\"</u>"
},
"USER_TYPE_SETTINGS": {
"HEIGHT": 300
},
"USER_TYPE": "HTML",
"PROPERTY_TYPE": "S"
}
}
);
const result = propertyAddResponse.getData().result;
console.dir(result);
}
catch (error)
{
console.error(error);
}
};
const start = async () =>
{
await getCatalogId();
};
start();
}
catch (error)
{
console.error(error);
}
try {
$responseCatalog = $b24Service
->core
->call(
'crm.catalog.list',
[
'filter' => ['ORIGINATOR_ID' => '', 'ORIGIN_ID' => ''],
]
);
$catalogId = 0;
$resultCatalog = $responseCatalog
->getResponseData()
->getResult();
if ($resultCatalog->total() !== 1) {
$catalogId = 0;
} else {
$data = $resultCatalog->data();
if ($data && is_array($data) && is_object($data[0]) && isset($data[0]["ID"])) {
$catalogId = (int)$data[0]["ID"];
}
}
if ($catalogId <= 0) {
throw new Exception("Не удалось получить идентификатор товарного каталога CRM");
} else {
$responseProperty = $b24Service
->core
->call(
'crm.product.property.add',
[
'fields' => [
'ACTIVE' => 'Y',
'IBLOCK_ID' => $catalogId,
'NAME' => 'Свойство - HTML/текст',
'SORT' => 500,
'DEFAULT_VALUE' => [
'TYPE' => 'html',
'TEXT' => '<u><b>Вкусные</b> "<span style="color: #00a650;">африканские бананы</span>"</u>',
],
'USER_TYPE_SETTINGS' => [
'HEIGHT' => 300,
],
'USER_TYPE' => 'HTML',
'PROPERTY_TYPE' => 'S',
],
]
);
$resultProperty = $responseProperty
->getResponseData()
->getResult();
echo 'Success: ' . print_r($resultProperty, true);
// Нужная вам логика обработки данных
processData($resultProperty);
}
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error adding product property: ' . $e->getMessage();
}
// Создание свойства пользовательского типа S:HTML
function addPropertyExample(catalogId)
{
BX24.callMethod(
"crm.product.property.add",
{
fields: {
"ACTIVE": "Y",
"IBLOCK_ID": catalogId,
"NAME": "Свойство - HTML/текст",
"SORT": 500,
"DEFAULT_VALUE": {
"TYPE": "html",
"TEXT": "<u><b>Вкусные</b> \"<span style=\"color: #00a650;\">африканские бананы</span>\"</u>"
},
"USER_TYPE_SETTINGS": {
"HEIGHT": 300
},
"USER_TYPE": "HTML",
"PROPERTY_TYPE": "S"
}
},
function(result)
{
if(result.error())
console.error(result.error());
else
console.dir(result.data());
}
);
}
function getCatalogId()
{
BX24.callMethod(
"crm.catalog.list",
{filter: {"ORIGINATOR_ID": "", "ORIGIN_ID": ""}},
function(result)
{
if(result.error())
{
console.error(result.error());
}
else
{
var catalogId = 0;
if (result.total() !== 1)
{
catalogId = 0
}
else
{
data = result.data();
if (data && data instanceof Array && typeof(data[0]) === "object" && data[0]["ID"])
{
catalogId = parseInt(data[0]["ID"]);
}
}
if (catalogId <= 0)
{
console.error("Не удалось получить идентификатор товарного каталога CRM");
}
else
{
addPropertyExample(catalogId);
}
}
}
);
}
function start()
{
getCatalogId();
}
start();
require_once('crest.php');
// Function to add a custom property
function addPropertyExample($catalogId) {
$result = CRest::call(
'crm.product.property.add',
[
'fields' => [
'ACTIVE' => 'Y',
'IBLOCK_ID' => $catalogId,
'NAME' => 'Свойство - HTML/текст',
'SORT' => 500,
'DEFAULT_VALUE' => [
'TYPE' => 'html',
'TEXT' => '<u><b>Вкусные</b> "<span style="color: #00a650;">африканские бананы</span>"</u>'
],
'USER_TYPE_SETTINGS' => [
'HEIGHT' => 300
],
'USER_TYPE' => 'HTML',
'PROPERTY_TYPE' => 'S'
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
}
// Function to get catalog ID
function getCatalogId() {
$result = CRest::call(
'crm.catalog.list',
['filter' => ['ORIGINATOR_ID' => '', 'ORIGIN_ID' => '']]
);
if ($result['error']) {
echo 'Error: ' . $result['error_description'];
} else {
$catalogId = 0;
if ($result['total'] !== 1) {
$catalogId = 0;
} else {
$data = $result['result'];
if ($data && is_array($data) && isset($data[0]['ID'])) {
$catalogId = intval($data[0]['ID']);
}
}
if ($catalogId <= 0) {
echo "Не удалось получить идентификатор товарного каталога CRM";
} else {
addPropertyExample($catalogId);
}
}
}
// Start the process
getCatalogId();

