Товарные позиции
Позиции работают строго в привязке к конкретной сделке — deal_id обязателен в каждом запросе. Позиции можно передать и сразу при создании сделки массивом Goods.
Важно
Сумма сделки не пересчитывается автоматически при изменении позиций — обновите её методом Обновление сделки, если нужно. Удаление позиций через публичный API недоступно.
Список позиций сделки
GET https://do.freshoffice.ru/deal/goods/list?deal_id=12345
Query Parameters
| Name | Type | Description |
|---|---|---|
| deal_id* | Int | ID сделки |
Добавление позиций из каталога
POST https://do.freshoffice.ru/deal/goods/insert?deal_id=12345&goods_ids=12,15,20
Добавляет в сделку товары из складского каталога по их ID (найти можно в списке товаров). Количество и цены подставляются из каталога — скорректируйте их обновлением позиции.
Query Parameters
| Name | Type | Description |
|---|---|---|
| deal_id* | Int | ID сделки |
| goods_ids* | String | ID товаров через запятую: 12,15,20 |
Обновление позиции
POST https://do.freshoffice.ru/deal/goods/update
Меняются только переданные поля одной позиции. id позиции берётся из списка позиций сделки.
Request Body
| Name | Type | Description |
|---|---|---|
| id* | Int | ID позиции (строки) |
| deal_id* | Int | ID сделки |
| qnt | Decimal | Количество |
| price | Decimal | Цена за единицу |
| discount | Decimal | Скидка, % |
| vat | Decimal | НДС, % |
| discription | String | Наименование строки |
| note | String | Примечание к строке |
{
"id": 501,
"deal_id": 12345,
"qnt": 10,
"price": 45.50
}
Пример
curl --location --request POST 'https://do.freshoffice.ru/deal/goods/insert?deal_id=12345&goods_ids=12,15' \
--header 'Authorization: Bearer XXXX-XXXXXXX-XXXXXXX' \
--header 'Content-Type: application/json' \
--data-raw 'null'
var request = require('request');
var options = {
'method': 'POST',
'url': 'https://do.freshoffice.ru/deal/goods/insert?deal_id=12345&goods_ids=12,15',
'headers': {
'Authorization': 'Bearer XXXX-XXXXXXX-XXXXXXX',
'Content-Type': 'application/json'
},
body: 'null'
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
Ответ
{
"status": "success",
"error": "",
"code": null,
"rows": 0,
"pages": 0,
"page": 0,
"value": "1"
}
// value: 1 - выполнено, 0 - ошибка (текст в поле error)