Поля свойства

GET /v1/catalog-product-properties/fields

Возвращает справочник полей свойства товара с типами и признаком «только для чтения», а также операции, доступные в пакетном запросе.

Примеры

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

Terminal
curl "https://vibecode.bitrix24.tech/v1/catalog-product-properties/fields" \
  -H "X-Api-Key: YOUR_API_KEY"

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

Terminal
curl "https://vibecode.bitrix24.tech/v1/catalog-product-properties/fields" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN"

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/catalog-product-properties/fields', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})

const { success, data } = await res.json()
console.log('Полей:', Object.keys(data.fields).length)

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/catalog-product-properties/fields', {
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
  },
})

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

Поля ответа

data.fields — объект, ключ которого совпадает с именем поля, а значение содержит type (тип поля) и readonly (можно ли передать поле при создании и обновлении). data.batch — операции, доступные в пакетном запросе.

Поле Тип RO Описание
id number да Идентификатор свойства. Это NNN в ключе propertyNNN у товара каталога
iblockId number нет¹ ID каталога. Список: `GET /v1/catalogs`. Обязателен при создании
name string нет Название свойства для отображения. Обязательно при создании
propertyType string нет² Базовый тип: N число, S строка, L список, F файл, E привязка к элементу, G привязка к разделу. Обязателен при создании
code string нет Символьный код: латинские буквы, цифры, подчёркивание, первый символ не цифра
active boolean нет Активно ли свойство
sort number нет Индекс сортировки
defaultValue string нет Значение по умолчанию
userType string нет² Пользовательский тип, например directory, DateTime, Money, HTML
userTypeSettings object нет Настройки пользовательского типа
listType string нет Вид списка: L выпадающий, C флажки
multiple boolean нет Множественное значение
multipleCnt number нет Число полей ввода для множественных значений
rowCount number нет Число строк поля ввода
colCount number нет Число столбцов поля ввода
withDescription boolean нет Поле с описанием значения
searchable boolean нет Участвует в поиске
filtrable boolean нет Доступно для фильтра
isRequired boolean нет Обязательно для заполнения
linkIblockId number нет ID связанного каталога для типов привязки
fileType string нет Допустимые расширения файлов для типа F
xmlId string нет Внешний идентификатор
hint string нет Подсказка к полю
timestampX datetime да Дата последнего изменения

¹ iblockId доступен для записи только при создании (createOnly) — в справочнике приходит с readonly: false и createOnly: true.

² propertyType и userType доступны для записи только при создании (createOnly) — в справочнике приходят с readonly: false и createOnly: true, в PATCH отклоняются с READONLY_FIELD.

Поле Тип Описание
success boolean Всегда true при успехе
data.fields.<имя>.type string Тип поля: number, string, boolean, object, datetime
data.fields.<имя>.readonly boolean true — поле заполняется системой и не принимается при создании и обновлении
data.fields.<имя>.createOnly boolean true — поле принимается только при создании, в PATCH отклоняется с READONLY_FIELD (есть у iblockId, propertyType, userType)
data.batch string[] Операции свойства, доступные в пакетном запросе: create, update, delete

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

JSON
{
  "success": true,
  "data": {
    "fields": {
      "id": { "type": "number", "readonly": true },
      "iblockId": { "type": "number", "readonly": false, "createOnly": true },
      "name": { "type": "string", "readonly": false },
      "propertyType": { "type": "string", "readonly": false, "createOnly": true },
      "code": { "type": "string", "readonly": false },
      "active": { "type": "boolean", "readonly": false },
      "sort": { "type": "number", "readonly": false },
      "defaultValue": { "type": "string", "readonly": false },
      "userType": { "type": "string", "readonly": false, "createOnly": true },
      "userTypeSettings": { "type": "object", "readonly": false },
      "listType": { "type": "string", "readonly": false },
      "multiple": { "type": "boolean", "readonly": false },
      "multipleCnt": { "type": "number", "readonly": false },
      "rowCount": { "type": "number", "readonly": false },
      "colCount": { "type": "number", "readonly": false },
      "withDescription": { "type": "boolean", "readonly": false },
      "searchable": { "type": "boolean", "readonly": false },
      "filtrable": { "type": "boolean", "readonly": false },
      "isRequired": { "type": "boolean", "readonly": false },
      "linkIblockId": { "type": "number", "readonly": false },
      "fileType": { "type": "string", "readonly": false },
      "xmlId": { "type": "string", "readonly": false },
      "hint": { "type": "string", "readonly": false },
      "timestampX": { "type": "datetime", "readonly": true }
    },
    "batch": ["create", "update", "delete"]
  }
}

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

403 — нет скоупа:

JSON
{
  "success": false,
  "error": {
    "code": "SCOPE_DENIED",
    "message": "This endpoint requires 'catalog' scope"
  }
}

Ошибки

HTTP Код Описание
403 SCOPE_DENIED API-ключ не имеет скоупа catalog
401 MISSING_API_KEY Не передан заголовок X-Api-Key

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

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

Тип свойства неизменяем. propertyType и userType выбираются при создании. PATCH с любым из них отклоняется с 400 READONLY_FIELD — базовый тип уже созданного свойства не меняется.

Свойство привязано к каталогу (iblockId). Каталог выбирается при создании, смена через обновление не поддерживается. PATCH со сменой iblockId отклоняется с 400 READONLY_FIELD.

Связь с полями товара. Свойства списочного типа (L) возвращаются у товара каталога в полях вида propertyNNN, где NNNid свойства. Этот справочник переводит id в название и тип, чтобы построить карту id → название и подписать значения propertyNNN.

Настройки пользовательского типа. Поле userTypeSettings — объект, состав которого зависит от значения userType. При создании и обновлении передаётся целиком.

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