Добавить свойство товаров crm.product.property.add

Выберите инструмент для разработки с AI-агентом:

  • используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
  • используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации

Scope: crm

Кто может выполнять метод: администратор, пользователь с правом «Разрешить изменять настройки» в CRM

DEPRECATED

Развитие метода остановлено. Используйте catalog.productProperty.add.

Метод crm.product.property.add создает новое свойство товара.

Параметры метода

Обязательные параметры отмечены *

Название
тип

Описание

fields
array

Значения полей для создания свойства товара.

Чтобы узнать требуемый формат полей, выполните метод crm.product.property.fields и посмотрите формат пришедших значений этих полей

Примеры кода

Как использовать примеры в документации

Пример 1

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();

Пример 2

try
{
    const getCatalogId = async () =>
    {
        try
        {
            const response = await $b24.callMethod(
                "crm.catalog.list",
                {filter: {"ORIGINATOR_ID": "", "ORIGIN_ID": ""}}
            );

            if(response.error())
            {
                console.error(response.error());
            }
            else
            {
                let catalogId = 0;
                if (response.total() !== 1)
                {
                    catalogId = 0;
                }
                else
                {
                    const data = response.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 response = await $b24.callMethod(
                "crm.product.property.add",
                {
                    fields: {
                        "ACTIVE": "Y",
                        "IBLOCK_ID": catalogId,
                        "NAME": "Свойство - Список",
                        "SORT": 510,
                        "MULTIPLE": "Y",
                        "ROW_COUNT": 7,
                        "LIST_TYPE": "L",
                        "PROPERTY_TYPE": "L",
                        "VALUES": {
                            "n0": {
                                "ID": "n0",
                                "VALUE": "Значение списка 1",
                                "SORT": 100,
                                "DEF": "Y"
                            },
                            "n1": {
                                "ID": "n1",
                                "VALUE": "Значение списка 2",
                                "SORT": 200,
                                "DEF": "N"
                            },
                            "n2": {
                                "ID": "n2",
                                "VALUE": "Значение списка 3",
                                "SORT": 300,
                                "DEF": "Y"
                            },
                            "n3": {
                                "ID": "n3",
                                "VALUE": "Значение списка 4",
                                "SORT": 400,
                                "DEF": "N"
                            },
                            "n4": {
                                "ID": "n4",
                                "VALUE": "Значение списка 5",
                                "SORT": 500,
                                "DEF": "N"
                            },
                            "n5": {
                                "ID": "n5",
                                "VALUE": "Значение списка 6",
                                "SORT": 600,
                                "DEF": "N"
                            },
                            "n6": {
                                "ID": "n6",
                                "VALUE": "Значение списка 7",
                                "SORT": 700,
                                "DEF": "N"
                            },
                            "n7": {
                                "ID": "n7",
                                "VALUE": "Значение списка 8",
                                "SORT": 800,
                                "DEF": "N"
                            }
                        }
                    }
                }
            );

            console.dir(response.getData().result);
        }
        catch(error)
        {
            console.error(error);
        }
    };

    const start = async () =>
    {
        await getCatalogId();
    };

    start();
}
catch(error)
{
    console.error(error);
}
try {
    $response = $b24Service
        ->core
        ->call(
            'crm.catalog.list',
            [
                'filter' => ['ORIGINATOR_ID' => '', 'ORIGIN_ID' => ''],
            ]
        );

    if ($response->getError()) {
        error_log($response->getError());
        echo 'Error getting catalog list: ' . $response->getError();
    } else {
        $catalogId = 0;
        $result = $response->getResponseData()->getResult();

        if ($result->total() !== 1) {
            $catalogId = 0;
        } else {
            $data = $result->getData();
            if ($data && is_array($data) && is_object($data[0]) && isset($data[0]["ID"])) {
                $catalogId = (int)$data[0]["ID"];
            }
        }

        if ($catalogId <= 0) {
            error_log("Не удалось получить идентификатор товарного каталога CRM");
            echo "Не удалось получить идентификатор товарного каталога CRM";
        } else {
            $response = $b24Service
                ->core
                ->call(
                    'crm.product.property.add',
                    [
                        'fields' => [
                            'ACTIVE'       => 'Y',
                            'IBLOCK_ID'    => $catalogId,
                            'NAME'         => 'Свойство - Список',
                            'SORT'         => 510,
                            'MULTIPLE'     => 'Y',
                            'ROW_COUNT'    => 7,
                            'LIST_TYPE'    => 'L',
                            'PROPERTY_TYPE' => 'L',
                            'VALUES'       => [
                                'n0' => [
                                    'ID'    => 'n0',
                                    'VALUE' => 'Значение списка 1',
                                    'SORT'  => 100,
                                    'DEF'   => 'Y',
                                ],
                                'n1' => [
                                    'ID'    => 'n1',
                                    'VALUE' => 'Значение списка 2',
                                    'SORT'  => 200,
                                    'DEF'   => 'N',
                                ],
                                'n2' => [
                                    'ID'    => 'n2',
                                    'VALUE' => 'Значение списка 3',
                                    'SORT'  => 300,
                                    'DEF'   => 'Y',
                                ],
                                'n3' => [
                                    'ID'    => 'n3',
                                    'VALUE' => 'Значение списка 4',
                                    'SORT'  => 400,
                                    'DEF'   => 'N',
                                ],
                                'n4' => [
                                    'ID'    => 'n4',
                                    'VALUE' => 'Значение списка 5',
                                    'SORT'  => 500,
                                    'DEF'   => 'N',
                                ],
                                'n5' => [
                                    'ID'    => 'n5',
                                    'VALUE' => 'Значение списка 6',
                                    'SORT'  => 600,
                                    'DEF'   => 'N',
                                ],
                                'n6' => [
                                    'ID'    => 'n6',
                                    'VALUE' => 'Значение списка 7',
                                    'SORT'  => 700,
                                    'DEF'   => 'N',
                                ],
                                'n7' => [
                                    'ID'    => 'n7',
                                    'VALUE' => 'Значение списка 8',
                                    'SORT'  => 800,
                                    'DEF'   => 'N',
                                ],
                            ],
                        ],
                    ]
                );

            $result = $response->getResponseData()->getResult();
            echo 'Success: ' . print_r($result, true);
        }
    }
} catch (Throwable $e) {
    error_log($e->getMessage());
    echo 'Error: ' . $e->getMessage();
}
function addPropertyExample(catalogId)
{
    BX24.callMethod(
        "crm.product.property.add",
        {
            fields: {
                "ACTIVE": "Y",
                "IBLOCK_ID": catalogId,
                "NAME": "Свойство - Список",
                "SORT": 510,
                "MULTIPLE": "Y",
                "ROW_COUNT": 7,
                "LIST_TYPE": "L",
                "PROPERTY_TYPE": "L",
                "VALUES": {
                    "n0": {
                        "ID": "n0",
                        "VALUE": "Значение списка 1",
                        "SORT": 100,
                        "DEF": "Y"
                    },
                    "n1": {
                        "ID": "n1",
                        "VALUE": "Значение списка 2",
                        "SORT": 200,
                        "DEF": "N"
                    },
                    "n2": {
                        "ID": "n2",
                        "VALUE": "Значение списка 3",
                        "SORT": 300,
                        "DEF": "Y"
                    },
                    "n3": {
                        "ID": "n3",
                        "VALUE": "Значение списка 4",
                        "SORT": 400,
                        "DEF": "N"
                    },
                    "n4": {
                        "ID": "n4",
                        "VALUE": "Значение списка 5",
                        "SORT": 500,
                        "DEF": "N"
                    },
                    "n5": {
                        "ID": "n5",
                        "VALUE": "Значение списка 6",
                        "SORT": 600,
                        "DEF": "N"
                    },
                    "n6": {
                        "ID": "n6",
                        "VALUE": "Значение списка 7",
                        "SORT": 700,
                        "DEF": "N"
                    },
                    "n7": {
                        "ID": "n7",
                        "VALUE": "Значение списка 8",
                        "SORT": 800,
                        "DEF": "N"
                    }
                }
            }
        },
        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 addPropertyExample($catalogId) {
    $result = CRest::call(
        'crm.product.property.add',
        [
            'fields' => [
                'ACTIVE' => 'Y',
                'IBLOCK_ID' => $catalogId,
                'NAME' => 'Свойство - Список',
                'SORT' => 510,
                'MULTIPLE' => 'Y',
                'ROW_COUNT' => 7,
                'LIST_TYPE' => 'L',
                'PROPERTY_TYPE' => 'L',
                'VALUES' => [
                    'n0' => [
                        'ID' => 'n0',
                        'VALUE' => 'Значение списка 1',
                        'SORT' => 100,
                        'DEF' => 'Y'
                    ],
                    'n1' => [
                        'ID' => 'n1',
                        'VALUE' => 'Значение списка 2',
                        'SORT' => 200,
                        'DEF' => 'N'
                    ],
                    'n2' => [
                        'ID' => 'n2',
                        'VALUE' => 'Значение списка 3',
                        'SORT' => 300,
                        'DEF' => 'Y'
                    ],
                    // Continue for other values...
                ]
            ]
        ]
    );

    echo '<PRE>';
    print_r($result);
    echo '</PRE>';
}

function getCatalogId() {
    $result = CRest::call(
        'crm.catalog.list',
        ['filter' => ['ORIGINATOR_ID' => '', 'ORIGIN_ID' => '']]
    );

    if (isset($result['error'])) {
        echo 'Error: ' . $result['error_description'];
    } else {
        $catalogId = 0;
        if (count($result['result']) !== 1) {
            echo "Не удалось получить идентификатор товарного каталога CRM";
        } else {
            $data = $result['result'];
            if (isset($data[0]['ID'])) {
                $catalogId = intval($data[0]['ID']);
                addPropertyExample($catalogId);
            }
        }
    }
}

getCatalogId();