[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-entities\u002Fcatalog-products\u002Ffields":3,"docs-tabs-entities\u002Fcatalog-products\u002Ffields":6},{"content":4,"lastmod":5},"\n## Поля товара\n\n`GET \u002Fv1\u002Fcatalog-products\u002Ffields`\n\nВозвращает справочник полей товара с типами и признаком «только для чтения», список полей, доступных для агрегации, а также операции, доступные в пакетном запросе.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcatalog-products\u002Ffields\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcatalog-products\u002Ffields\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcatalog-products\u002Ffields', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data } = await res.json()\nconsole.log('Полей:', Object.keys(data.fields).length)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcatalog-products\u002Ffields', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n`data.fields` — объект, ключ которого совпадает с именем поля, а значение содержит `type` (тип поля) и `readonly` (можно ли передать поле при создании и обновлении). `data.aggregatable` — поля, по которым работает [агрегация](.\u002Faggregate.md). `data.batch` — операции, доступные в [пакетном запросе](\u002Fdocs\u002Fbatch).\n\n| Поле | Тип | RO | Описание |\n|------|-----|:--:|---------|\n| `id` | number | да | Идентификатор товара |\n| `name` | string | нет | Название товара |\n| `active` | boolean | нет | Активен ли товар |\n| `iblockId` | number | нет¹ | ID каталога. Список: [`GET \u002Fv1\u002Fcatalogs`](\u002Fdocs\u002Fentities\u002Fcatalogs). Задаётся только при создании; смена через `PATCH` отклоняется — товар нельзя перенести между каталогами |\n| `iblockSectionId` | number | нет | ID раздела каталога. Список: [`GET \u002Fv1\u002Fcatalog-sections`](\u002Fdocs\u002Fentities\u002Fcatalog-sections) |\n| `purchasingPrice` | number | нет | Закупочная цена |\n| `purchasingCurrency` | string | нет | Валюта закупочной цены, например `RUB`. Список: [`GET \u002Fv1\u002Fcurrencies`](\u002Fdocs\u002Fentities\u002Fcurrencies) |\n| `quantity` | number | нет | Остаток на складе |\n| `weight` | number | нет | Вес единицы товара |\n| `measure` | number | нет | ID единицы измерения |\n| `available` | boolean | да | Доступен ли товар к покупке. Вычисляется Битрикс24 |\n| `vatIncluded` | boolean | нет | НДС включён в цену |\n| `bundle` | boolean | да | Является ли товар набором. Вычисляется Битрикс24 |\n| `canBuyZero` | boolean | нет | Разрешить покупку при нулевом остатке |\n| `quantityTrace` | boolean | нет | Включён учёт количества |\n| `subscribe` | boolean | нет | Разрешить подписку на товар |\n| `barcodeMulti` | boolean | нет | Разрешены отдельные штрихкоды для единиц товара |\n| `withoutOrder` | boolean | нет | Доступен к заказу без наличия на складе |\n| `dateActiveFrom` | datetime | нет | Дата начала активности товара |\n| `dateActiveTo` | datetime | нет | Дата окончания активности товара |\n| `createdBy` | number | да | ID пользователя, создавшего товар. Заполняется системой |\n| `modifiedBy` | number | да | ID пользователя, изменившего товар. Заполняется системой |\n| `dateCreate` | datetime | да | Дата создания товара |\n| `timestampX` | datetime | да | Дата последнего изменения |\n\n¹ `iblockId` доступен для записи только при создании (`createOnly`) — в справочнике приходит с `readonly: false` и `createOnly: true`.\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data.fields.\u003Cимя>.type` | string | Тип поля: `number`, `string`, `boolean`, `datetime` |\n| `data.fields.\u003Cимя>.readonly` | boolean | `true` — поле заполняется системой и не принимается при создании и обновлении |\n| `data.fields.\u003Cимя>.createOnly` | boolean | `true` — поле принимается только при создании; в `PATCH` отклоняется с `READONLY_FIELD` (есть у `iblockId`) |\n| `data.aggregatable` | string[] | Поля, по которым работает [агрегация](.\u002Faggregate.md) |\n| `data.batch` | string[] | Операции товара, доступные в [пакетном запросе](\u002Fdocs\u002Fbatch): `create`, `update`, `delete` |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"fields\": {\n      \"id\": { \"type\": \"number\", \"readonly\": true },\n      \"name\": { \"type\": \"string\", \"readonly\": false },\n      \"active\": { \"type\": \"boolean\", \"readonly\": false },\n      \"iblockId\": { \"type\": \"number\", \"readonly\": false, \"createOnly\": true },\n      \"iblockSectionId\": { \"type\": \"number\", \"readonly\": false },\n      \"purchasingPrice\": { \"type\": \"number\", \"readonly\": false },\n      \"purchasingCurrency\": { \"type\": \"string\", \"readonly\": false },\n      \"quantity\": { \"type\": \"number\", \"readonly\": false },\n      \"weight\": { \"type\": \"number\", \"readonly\": false },\n      \"measure\": { \"type\": \"number\", \"readonly\": false },\n      \"available\": { \"type\": \"boolean\", \"readonly\": true },\n      \"vatIncluded\": { \"type\": \"boolean\", \"readonly\": false },\n      \"bundle\": { \"type\": \"boolean\", \"readonly\": true },\n      \"canBuyZero\": { \"type\": \"boolean\", \"readonly\": false },\n      \"quantityTrace\": { \"type\": \"boolean\", \"readonly\": false },\n      \"subscribe\": { \"type\": \"boolean\", \"readonly\": false },\n      \"barcodeMulti\": { \"type\": \"boolean\", \"readonly\": false },\n      \"withoutOrder\": { \"type\": \"boolean\", \"readonly\": false },\n      \"dateActiveFrom\": { \"type\": \"datetime\", \"readonly\": false },\n      \"dateActiveTo\": { \"type\": \"datetime\", \"readonly\": false },\n      \"createdBy\": { \"type\": \"number\", \"readonly\": true },\n      \"modifiedBy\": { \"type\": \"number\", \"readonly\": true },\n      \"dateCreate\": { \"type\": \"datetime\", \"readonly\": true },\n      \"timestampX\": { \"type\": \"datetime\", \"readonly\": true }\n    },\n    \"aggregatable\": [\"purchasingPrice\", \"quantity\", \"iblockSectionId\"],\n    \"batch\": [\"create\", \"update\", \"delete\"]\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n403 — нет скоупа:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SCOPE_DENIED\",\n    \"message\": \"This endpoint requires 'catalog' scope\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `catalog` |\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**Запись зависит от управления складом.** Поля `quantity`, `purchasingPrice` и `purchasingCurrency` помечены в справочнике как доступные для записи, но при включённом на портале управлении складом не применяются при создании и изменении товара — остатки и закупочные цены ведутся складскими документами.\n\n**Ответ `GET \u002F:id` шире справочника.** Запрос одного товара по `id` возвращает дополнительные поля — символьный код, размеры, тип и пользовательские свойства каталога вида `propertyNNN`. Они не входят в справочник полей и недоступны для фильтрации и сортировки.\n\n**Каталог товара (`iblockId`) неизменяем.** Каталог выбирается при создании; Битрикс24 не переносит товар между каталогами через обновление. `PATCH` со сменой `iblockId` отклоняется с `400 READONLY_FIELD` — раньше такой запрос возвращал `200`, но товар оставался в прежнем каталоге (ложный успех).\n\n**Поля аудита защищены.** `createdBy` и `modifiedBy` заполняются Битрикс24 и не принимаются при создании и обновлении — попытка передать их отклоняется с `400 READONLY_FIELD`.\n\n## Смотрите также\n\n- [Список товаров](\u002Fdocs\u002Fentities\u002Fcatalog-products\u002Flist)\n- [Создать товар](\u002Fdocs\u002Fentities\u002Fcatalog-products\u002Fcreate)\n- [Поиск товаров](\u002Fdocs\u002Fentities\u002Fcatalog-products\u002Fsearch)\n- [Цены каталога](\u002Fdocs\u002Fentities\u002Fcatalog-prices)\n- [Справочник сущностей](\u002Fdocs\u002Fentities-index)\n","2026-06-19",{}]