Блог Горошко Андрея Bitrix24,PHP Добавить товар crm.product.add

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

Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Добавить товар crm.product.add». Вы узнаете экспертные методики работы с crm.product.add и научитесь избегать типичных ошибок начинающих разработчиков.

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

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

Метод crm.product.add продолжает работать, но у него есть более актуальные аналоги catalog.product.*.

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

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

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

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

Информация
С версии CRM 21.700.0 включена поддержка автогенерации символьного кода товара.

Если сгенерированный символьный код более 100 символов, то он автоматически обрезается до 100 знаков. Это требуется учитывать при создании запросов, передавая уникальное значение в начале/середине названия товара для избежания совпадения символьных кодов.

Примеры кода

  • cURL (Webhook)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"NAME":"Стул пластиковый","CURRENCY_ID":"RUB","PRICE":4900,"SORT":500}}' \
    https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/crm.product.add
  • cURL (OAuth)
    curl -X POST \
    -H "Content-Type: application/json" \
    -H "Accept: application/json" \
    -d '{"fields":{"NAME":"Стул пластиковый","CURRENCY_ID":"RUB","PRICE":4900,"SORT":500},"auth":"**put_access_token_here**"}' \
    https://**put_your_bitrix24_address**/rest/crm.product.add
  • JS
    try
    {
    	const response = await $b24.callMethod(
    		'crm.product.add',
    		{
    			fields:
    			{
    				"NAME": "Стул пластиковый",
    				"CURRENCY_ID": "RUB",
    				"PRICE": 4900,
    				"SORT": 500
    			}
    		}
    	);
    	
    	const result = response.getData().result;
    	console.info('Создан новый товар с ID ' + result);
    }
    catch( error )
    {
    	console.error('Error:', error);
    }
  • PHP
    try {
        $fields = [
            'NAME' => 'Sample Product',
            'PRICE' => '100.00',
            'CURRENCY_ID' => 'USD',
            'ACTIVE' => 'Y',
            'DATE_CREATE' => (new DateTime())->format(DateTime::ATOM),
            'TIMESTAMP_X' => (new DateTime())->format(DateTime::ATOM),
            'CREATED_BY' => 1,
            'MODIFIED_BY' => 1,
            'CATALOG_ID' => 1,
            'DESCRIPTION' => 'This is a sample product.',
            'VAT_ID' => 1,
            'VAT_INCLUDED' => 'Y',
            'MEASURE' => 1,
            'SECTION_ID' => 1,
            'SORT' => 100,
            'XML_ID' => 'sample_product_001',
        ];
        $result = $serviceBuilder->getCRMScope()->product()->add($fields);
        print($result->getId());
    } catch (Throwable $e) {
        print("Error: " . $e->getMessage());
    }
  • BX24.js
    BX24.callMethod(
        "crm.product.add",
        {
            fields:
            {
                "NAME": "Стул пластиковый",
                "CURRENCY_ID": "RUB",
                "PRICE": 4900,
                "SORT": 500
            }
        },
        function(result)
        {
            if(result.error())
                console.error(result.error());
            else
                console.info("Создан новый товар с ID " + result.data());
        }
    );
  • PHP CRest
    require_once('crest.php');

    $result = CRest::call(
        'crm.product.add',
        [
            'fields' => [
                'NAME' => 'Стул пластиковый',
                'CURRENCY_ID' => 'RUB',
                'PRICE' => 4900,
                'SORT' => 500
            ]
        ]
    );

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

💡 Экспертное мнение и рекомендации

Ключевые выводы по теме «Добавить товар crm.product.add»:

Использование современных стандартов D7 при работе с crm.product.add позволяет писать чистый, масштабируемый и безопасный код. Не забывайте обрабатывать исключения (try/catch) и проверять права доступа текущего пользователя перед выполнением критических операций.

Похожая задача в бизнесе?

Помогу автоматизировать процессы и внедрить ИИ

Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.

Related Post

Получить счет по идентификатору crm.invoice.getПолучить счет по идентификатору crm.invoice.get

Оптимизация производительности и безопасности — залог успешного проекта на 1С-Битрикс. Данный материал посвящен практическому применению «Получить счет по идентификатору crm.invoice.get». Мы подготовили подробный разбор принципов работы и развернутые примеры интеграции.

Оптимизация таблиц базы данных MyISAM и перевод всех таблиц ядра Битрикс на InnoDBОптимизация таблиц базы данных MyISAM и перевод всех таблиц ядра Битрикс на InnoDB

Высокая скорость загрузки сайта и безупречная серверная безопасность — обязательные требования для успешного коммерческого проекта на 1С-Битрикс. Услуга «Оптимизация таблиц базы данных MyISAM и перевод всех таблиц ядра Битрикс на

Получить список пользователей с поиском по персональным данным user.searchПолучить список пользователей с поиском по персональным данным user.search

Каждый PHP-разработчик, работающий с экосистемой Bitrix Framework, должен глубоко понимать работу её ключевых компонентов. В этой статье мы проведем подробный аудит темы «Получить список пользователей с поиском по персональным данным