Поля позиции корзины

GET /v1/basket-items/fields

Возвращает схему полей позиции корзины: типы, флаги только-для-чтения, список агрегируемых полей.

Примеры

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

Terminal
curl "https://vibecode.bitrix24.tech/v1/basket-items/fields" \
  -H "X-Api-Key: YOUR_API_KEY"

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

Terminal
curl "https://vibecode.bitrix24.tech/v1/basket-items/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/basket-items/fields', {
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
  },
})

const { data } = await res.json()
console.log('Поля позиции:', Object.keys(data.fields))

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

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

const { data } = await res.json()

Поля ответа

Поле Тип Описание
id number Идентификатор позиции (только чтение)
orderId number | null Идентификатор заказа. Источник: `GET /v1/orders`. У свободных позиций без заказа — null
productId number Идентификатор товара в каталоге. Источник: `GET /v1/catalog-products`. 0 — виртуальная позиция без привязки к каталогу
name string Название позиции
price number Цена за единицу с учётом скидки
basePrice number Базовая цена до скидки
discountPrice number Размер скидки за единицу
customPrice boolean Цена задана вручную и не пересчитывается при изменении товара в каталоге
currency string Валюта позиции. Список: `GET /v1/currencies`
quantity number Количество
sort number Порядок позиции в корзине. По умолчанию 100
weight number | null Вес единицы в граммах. У позиций без веса — null
dimensions string | null Габариты в формате сериализации PHP. У позиций без габаритов — null
measureCode number | null Код единицы измерения. 796 — шт, 163 — г, 006 — м. Может быть null
measureName string | null Название единицы измерения. Может быть null
canBuy boolean Доступна ли позиция к покупке
vatRate number | null Ставка НДС в долях единицы. 0.20 = 20%. У позиций без НДС — null
vatIncluded boolean Включён ли НДС в цену
xmlId string Внешний идентификатор позиции
productXmlId string | null Внешний идентификатор товара. Может быть null
catalogXmlId string | null Внешний идентификатор каталога. Может быть null
dateInsert datetime Дата создания (только чтение)
dateUpdate datetime Дата последнего изменения (только чтение)
barcodeMulti boolean Позиция учитывается по нескольким штрихкодам
type string | null Тип позиции (только чтение). На живых порталах всегда null
properties array Свойства позиции, только чтение. Каждый элемент: {basketId, code, id, name, sort, value, xmlId}. Возвращается только GET /v1/basket-items/:id, в списке — нет
reservations array Резервы позиции на складах, только чтение. Возвращается только GET /v1/basket-items/:id, в списке — нет

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

JSON
{
  "success": true,
  "data": {
    "fields": {
      "id": { "type": "number", "readonly": true },
      "orderId": { "type": "number", "readonly": false },
      "productId": { "type": "number", "readonly": false },
      "name": { "type": "string", "readonly": false },
      "price": { "type": "number", "readonly": false },
      "basePrice": { "type": "number", "readonly": false },
      "discountPrice": { "type": "number", "readonly": false },
      "customPrice": { "type": "boolean", "readonly": false },
      "currency": { "type": "string", "readonly": false },
      "quantity": { "type": "number", "readonly": false },
      "sort": { "type": "number", "readonly": false },
      "weight": { "type": "number", "readonly": false, "nullable": true },
      "dimensions": { "type": "string", "readonly": false, "nullable": true },
      "measureCode": { "type": "number", "readonly": false, "nullable": true },
      "measureName": { "type": "string", "readonly": false, "nullable": true },
      "canBuy": { "type": "boolean", "readonly": false },
      "vatRate": { "type": "number", "readonly": false, "nullable": true },
      "vatIncluded": { "type": "boolean", "readonly": false },
      "xmlId": { "type": "string", "readonly": false },
      "productXmlId": { "type": "string", "readonly": false, "nullable": true },
      "catalogXmlId": { "type": "string", "readonly": false, "nullable": true },
      "dateInsert": { "type": "datetime", "readonly": true },
      "dateUpdate": { "type": "datetime", "readonly": true },
      "barcodeMulti": { "type": "boolean", "readonly": false },
      "type": { "type": "string", "readonly": true },
      "properties": { "type": "array", "readonly": true },
      "reservations": { "type": "array", "readonly": true }
    },
    "aggregatable": ["price", "quantity", "currency", "orderId", "productId"],
    "batch": ["create", "update", "delete"]
  }
}

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

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

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

Ошибки

HTTP Код Описание
403 SCOPE_DENIED API-ключ не имеет скоупа sale
401 TOKEN_MISSING API-ключ не имеет настроенных токенов

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

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