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

Поля товаров сделки

GET /v1/deals/:id/products/fields

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

Сумма скидки называется discount — как в данных и при записи. Прежнее имя discountSum осталось устаревшим псевдонимом: оно по-прежнему приходит в этом справочнике и принимается при записи, поэтому код, написанный по старому списку полей, продолжает работать. В самих товарных позициях приходит только discount — переходите на него.

Параметры

Параметр Тип Обяз. Описание
id (path) number да ID сделки

Примеры

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

Terminal
curl "https://vibecode.bitrix24.tech/v1/deals/741/products/fields" \
  -H "X-Api-Key: YOUR_API_KEY"

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

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

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

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

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

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

Поля ответа

Поле Тип RO Обяз. Описание
id integer да ID позиции
productId integer да ID товара. Каталог: GET /v1/products
productName string Название товара
price double Цена
quantity double Количество
discount double Сумма скидки
discountSum double Устаревший псевдоним discount — принимается при записи, в товарных позициях не приходит
discountRate double Величина скидки (%)
discountTypeId integer Тип скидки
taxRate double Налог (%)
taxIncluded char Налог включён в цену (Y/N)
priceExclusive double да Цена без налога со скидкой
priceNetto double да Цена нетто
priceBrutto double да Цена брутто
measureCode integer Код единицы измерения
measureName string да Единица измерения
customized char да Изменён (Y/N)
sort integer Сортировка
type integer да Тип
storeId integer да ID склада
ownerId integer да ID владельца (сделки)
ownerType string да Тип владельца
priceAccount double да Цена в валюте отчёта
xmlId string да Внешний код позиции

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

JSON
{
  "success": true,
  "data": {
    "id": { "type": "integer", "isRequired": false, "isReadOnly": true, "title": "ID", "description": "Row identity. Read-only as an attribute; echo it back in PUT /products items to update a row in place instead of recreating it." },
    "ownerId": { "type": "integer", "isRequired": false, "isReadOnly": true, "isImmutable": true, "title": "ID владельца" },
    "ownerType": { "type": "string", "isRequired": false, "isReadOnly": true, "isImmutable": true, "title": "Тип владельца" },
    "productId": { "type": "integer", "isRequired": true, "isReadOnly": false, "title": "Товар" },
    "productName": { "type": "string", "isRequired": false, "isReadOnly": false, "title": "Название товара" },
    "price": { "type": "double", "isRequired": false, "isReadOnly": false, "title": "Цена" },
    "priceExclusive": { "type": "double", "isRequired": false, "isReadOnly": true, "title": "Цена без налога со скидкой" },
    "priceNetto": { "type": "double", "isRequired": false, "isReadOnly": true, "title": "PRICE_NETTO" },
    "priceBrutto": { "type": "double", "isRequired": false, "isReadOnly": true, "title": "PRICE_BRUTTO" },
    "quantity": { "type": "double", "isRequired": false, "isReadOnly": false, "title": "Количество" },
    "discountTypeId": { "type": "integer", "isRequired": false, "isReadOnly": false, "title": "Тип скидки" },
    "discountRate": { "type": "double", "isRequired": false, "isReadOnly": false, "title": "Величина скидки" },
    "discount": { "type": "double", "isRequired": false, "isReadOnly": false, "title": "Сумма скидки" },
    "discountSum": { "type": "double", "isRequired": false, "isReadOnly": false, "title": "Сумма скидки", "description": "Deprecated alias of `discount`; kept so clients written against the previous field list keep working. Accepted on write, never present in row data — migrate to `discount`." },
    "taxRate": { "type": "double", "isRequired": false, "isReadOnly": false, "title": "Налог" },
    "taxIncluded": { "type": "char", "isRequired": false, "isReadOnly": false, "title": "Налог включен в цену" },
    "customized": { "type": "char", "isRequired": false, "isReadOnly": true, "title": "Изменен" },
    "measureCode": { "type": "integer", "isRequired": false, "isReadOnly": false, "title": "Код единицы измерения" },
    "measureName": { "type": "string", "isRequired": false, "isReadOnly": true, "title": "Единица измерения" },
    "sort": { "type": "integer", "isRequired": false, "isReadOnly": false, "title": "Сортировка" },
    "type": { "type": "integer", "isRequired": false, "isReadOnly": true, "title": "TYPE" },
    "storeId": { "type": "integer", "isRequired": false, "isReadOnly": true, "title": "STORE_ID" },
    "priceAccount": { "type": "double", "isRequired": false, "isReadOnly": true },
    "xmlId": { "type": "string", "isRequired": false, "isReadOnly": true }
  }
}

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

404 — сделка не найдена:

JSON
{
  "success": false,
  "error": {
    "code": "ENTITY_NOT_FOUND",
    "message": "Элемент не найден"
  }
}

Ошибки

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

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

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