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

Поле, которого нет среди записываемых, больше не отбрасывается молча — запрос отклоняется с 400 INVALID_PARAMS, и в тексте ошибки перечислены записываемые имена. Поля только для чтения, которые приходят в ответах товарных позиций (priceAccount, ownerId, storeId и другие) по-прежнему принимаются и игнорируются, поэтому объект, прочитанный через GET, можно отправить обратно без чистки.

Обновить товар сделки

PATCH /v1/deals/:id/products/:rowId

Обновляет товарную позицию сделки. Передайте только изменяемые поля.

Параметры

Параметр Тип Обяз. Описание
id (path) number да ID сделки
rowId (path) number да ID товарной позиции (из ответа list или add, не productId из каталога)

Поля запроса (body)

Параметр Тип Описание
price number Цена за единицу
quantity number Количество
productId number ID товара. Каталог: GET /v1/products
discount number Сумма скидки
taxRate number Ставка налога (%)
taxIncluded boolean Налог включён в цену
sort number Сортировка

Примеры

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

Terminal
curl -X PATCH "https://vibecode.bitrix24.tech/v1/deals/741/products/1471" \
  -H "X-Api-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "price": 9999, "quantity": 10 }'

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

Terminal
curl -X PATCH "https://vibecode.bitrix24.tech/v1/deals/741/products/1471" \
  -H "X-Api-Key: YOUR_APP_KEY" \
  -H "Authorization: Bearer USER_SESSION_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "price": 9999, "quantity": 10 }'

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/deals/741/products/1471', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ price: 9999, quantity: 10 }),
})

const { success, data } = await res.json()
console.log('Обновлено:', data.price, 'x', data.quantity)

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

javascript
const res = await fetch('https://vibecode.bitrix24.tech/v1/deals/741/products/1471', {
  method: 'PATCH',
  headers: {
    'X-Api-Key': 'YOUR_APP_KEY',
    'Authorization': 'Bearer USER_SESSION_TOKEN',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ price: 9999, quantity: 10 }),
})

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

Поля ответа

Обновлённый объект товарной позиции: id, productId, productName, price, quantity, discount, taxRate, taxIncluded.

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

JSON
{
  "success": true,
  "data": {
    "id": 1471,
    "productId": 1,
    "productName": "Серверное оборудование",
    "price": 9999,
    "quantity": 10,
    "discount": 0,
    "taxRate": null,
    "taxIncluded": false
  }
}

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

404 — позиция не найдена:

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

Ошибки

HTTP Код Описание
400 INVALID_PARAMS Тело содержит имя, которого нет среди записываемых полей — см. Поля товаров
404 ENTITY_NOT_FOUND Позиция не найдена
403 SCOPE_DENIED API-ключ не имеет скоупа crm
401 TOKEN_MISSING API-ключ не имеет настроенных токенов

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

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