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

Создать единицу измерения

POST /v1/catalog-measures

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

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

Поле Тип Обяз. Описание
code number да Код единицы по Общероссийскому классификатору единиц измерения (ОКЕИ), целое число. Уникален на портале. Занятые коды — в GET /v1/catalog-measures
measureTitle string да Название единицы измерения
symbol string нет Краткое обозначение, например уп
symbolIntl string нет Международное обозначение
symbolLetterIntl string нет Международное буквенное обозначение, например PCE
isDefault string нет Единица по умолчанию: Y или N. Если поле не передано, создаётся единица с N

Полный список полей — GET /v1/catalog-measures/fields.

Примеры

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

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/catalog-measures" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "code": 9917,
    "measureTitle": "Тест документации",
    "symbol": "тд",
    "symbolIntl": "td",
    "symbolLetterIntl": "TDC"
  }'

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

Terminal
curl -X POST "https://vibecode.bitrix24.tech/v1/catalog-measures" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "code": 9917,
    "measureTitle": "Тест документации",
    "symbol": "тд",
    "symbolIntl": "td",
    "symbolLetterIntl": "TDC"
  }'

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/catalog-measures', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    code: 9917,
    measureTitle: 'Тест документации',
    symbol: 'тд',
    symbolIntl: 'td',
    symbolLetterIntl: 'TDC',
  }),
})

const { success, data } = await res.json()
console.log('Measure ID:', data.id)

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/catalog-measures', {
  method: 'POST',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    code: 9917,
    measureTitle: 'Тест документации',
    symbol: 'тд',
    symbolIntl: 'td',
    symbolLetterIntl: 'TDC',
  }),
})

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

Поля ответа

Ответ приходит со статусом 201 и содержит созданную запись целиком.

Поле Тип Описание
success boolean Всегда true при успехе
data.id number Идентификатор созданной единицы. Его передают в поле measure товара
data.code number Код единицы по ОКЕИ
data.measureTitle string Название единицы измерения
data.symbol string | null Краткое обозначение. null, если не передано
data.symbolIntl string | null Международное обозначение. null, если не передано
data.symbolLetterIntl string | null Международное буквенное обозначение. null, если не передано
data.isDefault string Y — единица по умолчанию, N — нет
meta.warnings array Приходит, только если в теле есть поле, которого нет среди полей единицы измерения. Элемент — code: "UNRECOGNIZED_WRITE_FIELD", field с именем поля и message. Объект fields на маршруте, который сам оборачивает карту полей и где схема не объявляет fields, отклоняется с 400 NESTED_FIELDS_ENVELOPE; передавайте поля плоско в корне JSON.

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

JSON
{
  "success": true,
  "data": {
    "code": 9917,
    "id": 17,
    "isDefault": "N",
    "measureTitle": "Тест документации",
    "symbol": "тд",
    "symbolIntl": "td",
    "symbolLetterIntl": "TDC"
  }
}

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

400 — дробный код единицы, запись не создана:

JSON
{
  "success": false,
  "error": {
    "code": "INVALID_PARAMS",
    "message": "Field \"code\" must be an integer; Bitrix24 silently truncates fractional values."
  }
}

Ошибки

HTTP Код Описание
400 MISSING_REQUIRED_FIELDS Не передан code или measureTitle. Сообщение называет первое отсутствующее поле, например Body field "code" is required to create catalogMeasure.
400 NESTED_FIELDS_ENVELOPE В теле передан объект fields вместо корневых полей; единица не создаётся
400 INVALID_PARAMS code — не целое число, например 9917.5
400 INVALID_PARAMS isDefault отличается от Y и N
422 BITRIX_ERROR Единица с таким code уже есть на портале. Сообщение Duplicate entry for key [code], в ответе также приходит error.b24Code
403 SCOPE_DENIED API-ключ не имеет скоупа catalog
401 TOKEN_MISSING API-ключ не имеет настроенных токенов
401 MISSING_API_KEY Не передан заголовок X-Api-Key

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

Известные особенности

Неизвестное скалярное поле не останавливает создание. Если в теле вместе с code и measureTitle есть неизвестное скалярное поле, единица создаётся со статусом 201, а предупреждение в meta.warnings сообщает, что поле могло не сохраниться. Объект fields отклоняется с 400 NESTED_FIELDS_ENVELOPE до создания: отправляйте поля в корне JSON. Сверяйте имена с GET /v1/catalog-measures/fields, а результат проверяйте по значениям в data, а не только по success.

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