Для AI-агентов: markdown этой страницы — /docs-content/entities/products.md индекс документации — /llms.txt

Товары

Управление товарами CRM-каталога: создание, получение, обновление, удаление, поиск и агрегация. Товар описывает позицию каталога — название, цену, валюту, раздел и пользовательские свойства.

Битрикс24 API: crm.product.* Скоуп: crm

Методы /v1/products устарели. Для новых интеграций используйте Товары каталога — модель с остатками, ценами и вариациями.

Создать товар

POST /v1/products

Создаёт товар CRM-каталога. Поля передаются плоско в корне JSON — без обёртки fields. В ответ приходит полный объект созданного товара.

Поля запроса (body)

Поле Тип Обяз. Описание
name string да Название товара
price number нет Цена товара. Валюту задаёт currency или дополнительное имя currencyId
currencyId string нет Дополнительное имя currency для записи. В ответах значение приходит в поле currency
currency string нет Каноническое имя валюты цены. Если переданы оба имени, используется currency. Список: GET /v1/currencies
active boolean нет Активен ли товар. По умолчанию true
sectionId number нет Раздел каталога. Список: GET /v1/product-sections
catalogId number нет Каталог товара. По умолчанию — каталог CRM портала. Список: GET /v1/catalogs
measure number нет Идентификатор единицы измерения
description string нет Описание товара
descriptionType string нет Формат описания: text или html
vatId number нет Идентификатор ставки НДС
vatIncluded boolean нет НДС включён в цену
sort number нет Порядок сортировки
xmlId string нет Внешний идентификатор
code string нет Символьный код. Если не передать — формируется из name

Примеры

curl — личный ключ

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/products" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Настольная лампа",
    "price": 100,
    "currency": "RUB"
  }'

curl — OAuth-приложение

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/products" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Настольная лампа",
    "price": 100,
    "currency": "RUB"
  }'

JavaScript — личный ключ

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/products', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Настольная лампа',
    price: 100,
    currency: 'RUB',
  }),
})

const { success, data } = await res.json()
console.log('ID товара:', data.id)

JavaScript — OAuth-приложение

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/products', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    name: 'Настольная лампа',
    price: 100,
    currency: 'RUB',
  }),
})

const { success, data } = await res.json()

Поля ответа

Поле Тип Описание
success boolean Всегда true при успехе
data object Объект созданного товара: базовые поля — см. Поля товара, плюс пользовательские свойства PROPERTY_<N>

URL карточки созданного товара в магазине портала строится из catalogId и id:

https://<портал>.bitrix24.ru/shop/catalog/<catalogId>/product/<id>/

<портал> — домен портала. Доступ ограничен правами сотрудника в Битрикс24.

Пример ответа

Показаны основные поля. В ответ также входят свойства каталога вида PROPERTY_<N> — см. Получить товар.

JSON
{
  "success": true,
  "data": {
    "id": 7027,
    "name": "Настольная лампа",
    "code": "nastolnaya_lampa",
    "active": true,
    "previewPicture": null,
    "detailPicture": null,
    "sort": 500,
    "xmlId": "7027",
    "updatedAt": "2026-06-16T08:48:18.000Z",
    "createdAt": "2026-06-16T08:48:18.000Z",
    "modifyBy": 1,
    "createdBy": 1,
    "catalogId": 25,
    "sectionId": null,
    "description": null,
    "descriptionType": "text",
    "price": 100,
    "currency": "RUB",
    "vatId": null,
    "vatIncluded": false,
    "measure": null
  }
}

Пример ответа при ошибке

422 — не передано название товара:

JSON
{
  "success": false,
  "error": {
    "code": "BITRIX_ERROR",
    "message": "Не введено название.<br><br>"
  }
}

Ошибки

HTTP Код Описание
422 BITRIX_ERROR Не передано поле name — сообщение «Не введено название.»
403 SCOPE_DENIED API-ключ не имеет скоупа crm
401 MISSING_API_KEY Не передан заголовок X-Api-Key

Полный список общих ошибок API — Ошибки.

Смотрите также