/api/lite/products/margin - расчёт отчёта по маржинальности для товара.
/api/lite/products/margin?id=1040
Метод расчёта отчета по маржинальности конкретного товара по его humanId. Используется метод GET, потому что никакие расчитанные данные не сохраняются в БД.
Отчёт состоит из: даты, массива предупреждений и массива каналов продаж. У предупреждений есть три типа (см. ссылку на задачу внизу). Каналы продаж состоят из названия канала и трёх массивов: годовой информации, месячной и недельной (см. JSON).
входные параметры:
isDelivered - флаг указания, какой отчет вывести. Если надо вывести отгруженные, то не указывается или false. Если необходимо вывести отчет по доставленным товарам, то true.
skuHumanId - id товара, на который требуется отчёт.
{
"channelSales": [
{
"annuallyData": [
{
"margin": 0,
"point": "Сен",
"totalCosts": 0,
"totalIncome": 0,
"totalPurchases": 0.00,
"totalSales": 0.00
},
{
"margin": 0,
"point": "Окт",
"totalCosts": 0,
"totalIncome": 0,
"totalPurchases": 0.00,
"totalSales": 0.00
},
// ...
// вырезал 9 месяцев, чтобы не растягивать статью в вики
// ...
{
"margin": 0,
"point": "Авг",
"totalCosts": 0,
"totalIncome": 0,
"totalPurchases": 0.00,
"totalSales": 0.00
}
],
"channel": "ONLINE",
"monthlyData": [
{
"margin": 0,
"point": 20,
"totalCosts": 0,
"totalIncome": 0,
"totalPurchases": 0.00,
"totalSales": 0.00
},
// ...
// вырезал 28 дней, чтобы не растягивать статью в вики
// ...
{
"margin": 0,
"point": 19,
"totalCosts": 0,
"totalIncome": 0,
"totalPurchases": 0.00,
"totalSales": 0.00
}
],
"weeklyData": [
{
"margin": 0,
"point": "Ср",
"totalCosts": 0,
"totalIncome": 0,
"totalPurchases": 3350.00,
"totalSales": 4475.00
},
// ...
// вырезал 5 дней, чтобы не растягивать статью в вики
// ...
{
"margin": 0,
"point": "Вт",
"totalCosts": 0,
"totalIncome": 0,
"totalPurchases": 0.00,
"totalSales": 0.00
}
]
},
{
"annuallyData": [ ], // вырезал содержимое, чтобы не растягивать статью в вики
"channel": "totalSales",
"monthlyData": [ ], // вырезал содержимое, чтобы не растягивать статью в вики
"weeklyData": [ ] // вырезал содержимое, чтобы не растягивать статью в вики
}
],
"date": "2023-09-20",
"warning": [
{
"additionalInfo": "Список товаров: [1029, 1028, 1026, 1025, 1024, 1040]",
"priority": 1,
"title": "Нет данных. Для расчета укажите средние цены закупки."
},
{
"additionalInfo": "Если в расчете фиксируются аномальные показатели маржинальности – меньше 1% или больше 50%.",
"priority": 3,
"title": "Аномальные показатели. Возможно необходимо актуализировать данные по ценам закупки и затрат."
}
]
}
также есть отчет общий на аккаунт, см. соседнюю статью.
выполнялось по задаче: 12073