Возвращает данные продукта, его остаток на складе и состав.
v2/products/get_entry.php
Параметры
| Поле | Тип | Обязательное | Описание |
|---|---|---|---|
| product_id | int | Да | ID продукта |
| storage_id | int | Да | ID склада |
Продукт возвращается, только если он числится на складе storage_id. Остатки на всех складах сразу возвращает v1/products/get_stocks.
Ответ
Объект product со всеми полями продукта, его остатком на складе storage_id, категориями, поставщиками и альтернативными артикулами (см. Продукты). Кроме них в объекте есть:
| Поле | Тип | Описание |
|---|---|---|
| materials | array | Материалы в составе |
| products | array | Заготовки в составе |
| resources | array | Ресурсы в составе |
| percent | float | Себестоимость в процентах от цены продажи, с одним знаком после запятой. 0, если цена продажи не задана |
Поля строк состава:
| Поле | Описание |
|---|---|
| id | ID материала, продукта или ресурса |
| name | Название |
| sku | Артикул. Только у материалов и заготовок |
| type, dynamic, base | Тип расчета, признак «указывается в составе продукта» и база расчета. Только у ресурсов (см. Ресурсы) |
| amount_per_batch | Количество на партию |
| amount_per_unit | Количество на единицу продукта: amount_per_batch / batch_size. У процентного ресурса совпадает с amount_per_batch |
| loss_percent | Потери в процентах. Только у материалов и заготовок |
| unit | Единица строки. У процентного ресурса «%», у фиксированной ставки с ценой в составе продукта «шт», а amount_per_batch у нее означает сумму в рублях |
| status | Всегда 1 |
| cost_per_unit | Стоимость строки на единицу продукта, с учетом потерь |
| cost_per_batch | Стоимость строки на партию, с учетом потерь |
| position | Порядковый номер строки: общий для materials и products, отдельный для resources |
Как и остальные числа, поля строк приходят строками. Исключения: percent, а также cost_per_unit и cost_per_batch процентных ресурсов, которые Controlata рассчитывает при запросе: они приходят числами.
Строки состава, категории и поставщиков из ответа можно передать в v1/products/edit без изменений.
Пример запроса
{
"product_id": 3120,
"storage_id": 3999
}
Пример ответа
{
"success": true,
"product": {
"id": "3120",
"name": "Стол обеденный",
"sku": "P100",
"price": "45000",
"cost": "13604.25",
"batch_size": "10.000",
"notes": "",
"status": "1",
"archived": "0",
"stock": "12.000",
"minimum": "3.000",
"planned": null,
"unit": "шт",
"categories": [
{
"id": "21",
"name": "Мебель"
}
],
"alternative_sku": [
{
"label": "Ozon",
"sku": "OZ-P100"
}
],
"suppliers": [
{
"id": "46",
"name": "ООО Мебельторг"
}
],
"materials": [
{
"id": "2051",
"name": "Доска дубовая",
"sku": "M010",
"amount_per_unit": "0.05",
"amount_per_batch": "0.5",
"loss_percent": "5.00",
"unit": "куб. м",
"status": "1",
"cost_per_unit": "7087.5",
"cost_per_batch": "70875",
"position": "0"
},
{
"id": "2060",
"name": "Саморез 4x40",
"sku": "M024",
"amount_per_unit": "40",
"amount_per_batch": "400",
"loss_percent": "0.00",
"unit": "шт",
"status": "1",
"cost_per_unit": "80",
"cost_per_batch": "800",
"position": "1"
}
],
"products": [
{
"id": "312",
"name": "Ножка стола",
"sku": "P012",
"amount_per_unit": "4",
"amount_per_batch": "40",
"loss_percent": "0.00",
"unit": "шт",
"status": "1",
"cost_per_unit": "3400",
"cost_per_batch": "34000",
"position": "2"
}
],
"resources": [
{
"id": "57",
"name": "Работа столяра",
"type": "rate",
"dynamic": "0",
"base": null,
"amount_per_unit": "3",
"amount_per_batch": "30",
"unit": "ч",
"status": "1",
"cost_per_unit": "1800",
"cost_per_batch": "18000",
"position": "0"
},
{
"id": "58",
"name": "Накладные расходы",
"type": "percent",
"dynamic": "0",
"base": "cost",
"amount_per_unit": "10",
"amount_per_batch": "10",
"unit": "%",
"status": "1",
"cost_per_unit": 1236.75,
"cost_per_batch": 12367.5,
"position": "1"
}
],
"percent": 30.2
}
}
Ошибки
| Ошибка | Причина |
|---|---|
| No product_id in input | Не передано обязательное поле (вместо product_id будет имя поля) |
| Storage ID not found | Склад не найден или удален |
| Product not found or access denied | Продукт не найден, удален или не числится на складе |
Версия v1
Метод v1/products/get_entry продолжает работать с теми же параметрами. Отличие в составе: материалы и заготовки в нем приходят одним массивом components, а id в строках имеет вид «m-123» для материала и «p-45» для заготовки. Такие строки нельзя отправить в add и edit без изменений, поэтому в новых интеграциях используйте v2.