[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-entities\u002Fbasket-items\u002Ffields":3,"docs-tabs-entities\u002Fbasket-items\u002Ffields":6},{"content":4,"lastmod":5},"\n## Поля позиции корзины\n\n`GET \u002Fv1\u002Fbasket-items\u002Ffields`\n\nВозвращает схему полей позиции корзины: типы, флаги только-для-чтения, список агрегируемых полей.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbasket-items\u002Ffields\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbasket-items\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\u002Fbasket-items\u002Ffields', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { data } = await res.json()\nconsole.log('Поля позиции:', Object.keys(data.fields))\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fbasket-items\u002Ffields', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `id` | number | Идентификатор позиции (только чтение) |\n| `orderId` | number \\| null | Идентификатор заказа. Источник: [`GET \u002Fv1\u002Forders`](..\u002Forders\u002Flist.md). У свободных позиций без заказа — `null` |\n| `productId` | number | Идентификатор товара в каталоге. Источник: [`GET \u002Fv1\u002Fcatalog-products`](\u002Fdocs\u002Fentities\u002Fcatalog-products). `0` — виртуальная позиция без привязки к каталогу |\n| `name` | string | Название позиции |\n| `price` | number | Цена за единицу с учётом скидки |\n| `basePrice` | number | Базовая цена до скидки |\n| `discountPrice` | number | Размер скидки за единицу |\n| `customPrice` | boolean | Цена задана вручную и не пересчитывается при изменении товара в каталоге |\n| `currency` | string | Валюта позиции. Список: [`GET \u002Fv1\u002Fcurrencies`](\u002Fdocs\u002Fentities\u002Fcurrencies) |\n| `quantity` | number | Количество |\n| `sort` | number | Порядок позиции в корзине. По умолчанию `100` |\n| `weight` | number \\| null | Вес единицы в граммах. У позиций без веса — `null` |\n| `dimensions` | string \\| null | Габариты в формате сериализации PHP. У позиций без габаритов — `null` |\n| `measureCode` | number \\| null | Код единицы измерения. `796` — шт, `163` — г, `006` — м. Может быть `null` |\n| `measureName` | string \\| null | Название единицы измерения. Может быть `null` |\n| `canBuy` | boolean | Доступна ли позиция к покупке |\n| `vatRate` | number \\| null | Ставка НДС в долях единицы. `0.20` = 20%. У позиций без НДС — `null` |\n| `vatIncluded` | boolean | Включён ли НДС в цену |\n| `xmlId` | string | Внешний идентификатор позиции |\n| `productXmlId` | string \\| null | Внешний идентификатор товара. Может быть `null` |\n| `catalogXmlId` | string \\| null | Внешний идентификатор каталога. Может быть `null` |\n| `dateInsert` | datetime | Дата создания (только чтение) |\n| `dateUpdate` | datetime | Дата последнего изменения (только чтение) |\n| `barcodeMulti` | boolean | Позиция учитывается по нескольким штрихкодам |\n| `type` | string \\| null | Тип позиции (только чтение). На живых порталах всегда `null` |\n| `properties` | array | Свойства позиции, только чтение. Каждый элемент: `{basketId, code, id, name, sort, value, xmlId}`. Возвращается только `GET \u002Fv1\u002Fbasket-items\u002F:id`, в списке — нет |\n| `reservations` | array | Резервы позиции на складах, только чтение. Возвращается только `GET \u002Fv1\u002Fbasket-items\u002F:id`, в списке — нет |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"fields\": {\n      \"id\": { \"type\": \"number\", \"readonly\": true },\n      \"orderId\": { \"type\": \"number\", \"readonly\": false },\n      \"productId\": { \"type\": \"number\", \"readonly\": false },\n      \"name\": { \"type\": \"string\", \"readonly\": false },\n      \"price\": { \"type\": \"number\", \"readonly\": false },\n      \"basePrice\": { \"type\": \"number\", \"readonly\": false },\n      \"discountPrice\": { \"type\": \"number\", \"readonly\": false },\n      \"customPrice\": { \"type\": \"boolean\", \"readonly\": false },\n      \"currency\": { \"type\": \"string\", \"readonly\": false },\n      \"quantity\": { \"type\": \"number\", \"readonly\": false },\n      \"sort\": { \"type\": \"number\", \"readonly\": false },\n      \"weight\": { \"type\": \"number\", \"readonly\": false, \"nullable\": true },\n      \"dimensions\": { \"type\": \"string\", \"readonly\": false, \"nullable\": true },\n      \"measureCode\": { \"type\": \"number\", \"readonly\": false, \"nullable\": true },\n      \"measureName\": { \"type\": \"string\", \"readonly\": false, \"nullable\": true },\n      \"canBuy\": { \"type\": \"boolean\", \"readonly\": false },\n      \"vatRate\": { \"type\": \"number\", \"readonly\": false, \"nullable\": true },\n      \"vatIncluded\": { \"type\": \"boolean\", \"readonly\": false },\n      \"xmlId\": { \"type\": \"string\", \"readonly\": false },\n      \"productXmlId\": { \"type\": \"string\", \"readonly\": false, \"nullable\": true },\n      \"catalogXmlId\": { \"type\": \"string\", \"readonly\": false, \"nullable\": true },\n      \"dateInsert\": { \"type\": \"datetime\", \"readonly\": true },\n      \"dateUpdate\": { \"type\": \"datetime\", \"readonly\": true },\n      \"barcodeMulti\": { \"type\": \"boolean\", \"readonly\": false },\n      \"type\": { \"type\": \"string\", \"readonly\": true },\n      \"properties\": { \"type\": \"array\", \"readonly\": true },\n      \"reservations\": { \"type\": \"array\", \"readonly\": true }\n    },\n    \"aggregatable\": [\"price\", \"quantity\", \"currency\", \"orderId\", \"productId\"],\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 'sale' scope\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `sale` |\n| 401 | `TOKEN_MISSING` | API-ключ не имеет настроенных токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Список позиций](.\u002Flist.md)\n- [Добавить позицию](.\u002Fcreate.md)\n- [Агрегация позиций](.\u002Faggregate.md)\n- [Entity API](\u002Fdocs\u002Fentity-api)\n","2026-07-10",{}]