Skip to main content

/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