Аналитика

Методы для работы с аналитическими отчетами: товарный, финансовый по всем маркетплейсам. Лимит запросов: 1 запрос в минуту

Базовый URL: https://api.selsup.ru

🔗 Получить отчет по-товарный Рука на пульсе

Получение данных из по-товарного Рука на пульсе по фильтру
GET /api/stat/productHandOnPulse

Параметры запроса QUERY

Название Тип Обязательный Описание
offset integer Нет Смещение от начала
timeZone integer Нет Параметр timeZone
productId integer Нет Идентификатор товара
productIds integer Нет Параметр productIds
allProductIds integer Нет Параметр allProductIds
query string Нет Поисковый запрос. Может содержать штрих-код, часть названия товара, внешние идентификаторы товаров Wildberries или Ozon
dateFrom Date Нет Параметр dateFrom
dateTo Date Нет Параметр dateTo
service "NONE""WILDBERRIES""OZON""YANDEX_MARKET""FAMILIYA""NATIONAL_CATALOG""ALIEXPRESS""OTHER""MOY_SKLAD""SBER_MEGA_MARKET""CISLINK""ONE_C""AVITO""LEROY_MERLIN""DETMIR""KAZAN_EXPRESS""EVOTOR""WEBASYST""AMAZON""EBAY""SIMALAND""INSALES""LAMODA""OZON_PERFORMANCE""WALMART""GOOGLE""YANDEX_DISC""EMAIL""WOOCOMMERCE" Нет Параметр service
organizationId integer Нет Параметр organizationId
date Date Нет Параметр date
limit integer Нет Ограничение на количество записей. Максимальное значение - 500
page integer Нет Номер страницы начиная с 1
count boolean Нет Возвратить в ответе общее количество записей
sortBy string Нет Поле сортировки записей. Работает только при получении списка.
ascending boolean Нет Порядок сортировки - по возрастанию?. Работает только при получении списка.

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of ProductHandOnPulseReport Строки с результатом поиска
Структура ProductHandOnPulseReport
Поле Тип Описание
id integer ID записи отчета
clientId integer ID клиента
productId integer ID товара
service string Сервис
organizationId integer ID организации
productViewId integer ID представления товара (product_view_id)
productModelId integer ID модели товара
date string Дата отчета
profitFact number Фактическая прибыль по товару
profitPlan number Плановая прибыль по товару
priceWithSpp number Цена с учетом СПП (скидки постоянного покупателя)
price number Цена без СПП
spp number СПП
campaignBudgetPlan number Плановый бюджет кампании
campaignBudgetFact number Фактический бюджет кампании
promotionBudget number Бюджет на продвижение (ручное продвижение)
autoPromotionBudget number Бюджет на авто-продвижение
campaignCtrPercent number CTR рекламной кампании, %
drrPercent number DRR (затраты/выручка) в процентах
skuProfit number Прибыль по SKU
skuCostPrice number Себестоимость SKU
marginPercent number Маржинальность в процентах
abcRevenueGroup string ABC-группа по выручке
abcGrossProfitGroup string ABC-группа по валовой прибыли
salesAmountFact number Фактическая сумма продаж
salesCountFact integer Фактическое количество продаж
salesCountPlan integer Плановое количество продаж
sizes string Размеры товара (если применимо)
turnover number Оборачиваемость товара
daysBeforeSeasonEnd integer Количество дней до конца сезона
sortPlan number План сортировки (обновления ассортимента)
fbsCount integer Количество продаж по схеме FBS
openCardCount integer Количество открытий карточки товара
addToCartCount integer Количество добавлений в корзину
addToCartPercent number Процент добавлений в корзину относительно просмотров
ordersCount integer Количество заказов
ordersPercent number Конверсия в заказы, %
buyoutsCount integer Количество выкупов
buyoutsPercent number Конверсия в выкуп, %
viewsCount integer Показы карточки, шт
comment string Комментарий
product Product Товар - уникальный с точки зрения подтребительских свойств товар.
Структура Product
Поле Тип Описание
id integer Идентификатор товара. Проставляется автоматически
productType string Тип товара
name string Наименование товара внутреннее
deleted boolean Признак удаления товара
printName string Название товара для внешних сервисов. Если не задано, проставляется равным наименованию товара
realSize string Российский размер товара для одежды или характеристики для других категорий
vendorSize string Размер производителя или характеристики производителя. Не обязательно заполнять
size string Размер для одежды или характеристики для внешних сервисов. Должен быть уникальным в рамках цвета
wildberriesImtId integer Используется для категорий, у которых не предусмотрен размер
wildberriesStockCount integer Остатки товара на Вайлдбериз
ozonId integer Идентификатор товара Озон на сайте. SKU в озон
ozonRealFbs boolean Признак использования RealFbs для товара
ozonProductId integer Идентификатор товара Озон в кабинете API
wildberriesSizeId integer Идентификатор размера на Вайлдбериз
simalandId integer Уникальный идентификатор товара для Simaland
ozonArticle string Уникальный артикул товара для озон. Offer ID в озон
externalArticle string Уникальный артикул товара для стороннего сервиса
ozonStockCount integer Остаток товара на складах Озон
ozonStockBetweenWarehouses integer Остаток товара в Озон, которые перемещаются между складами
removeFbsStock boolean Не выгружать остатки товара на маркетплейсы
purchaseCurrency string Валюта закупочной цены товара
purchasePriceInCurrency number Цена закупки в валюте
deliveryCostInCurrency number Цена на доставку в валюте
versionId integer Поле нужно передавать при изменении,для предотвращения одновременной перезаписи
createdDate string Дата создания товара на МП
created string Дата создания товара в SelSup
createdUser string Пользователь, который создал товар
sourceIncomeItemId integer Идентификатор товара из заказа поставщика по данным которого был создан товар
sourceProductId integer Идентификатор товара, который копировали
ozonRequiredStock integer Расчитанное количество товара, для поставки на склад Озон
wildberriesRequiredStock integer Расчитанное количество товара, для поставки на склад Wildberries
wildberriesProfit number Профит с продажи товара на Вайлдбериз по FBM
wildberriesProfitFbs number Профит с продажи товара на Вайлдбериз по FBS
wildberriesOrderQuantity integer Количество заказов по FBO товара на Вайлдбериз за 2 недели
wildberriesSupplyingQuantity integer Поставляемое количество товара на Вайлдбериз по FBM заказам
wildberriesQuantityInWayToClient integer Поставляемое количество товара на Вайлдбериз по FBM заказам к клиенту
wildberriesQuantityInWayFromClient integer Поставляемое количество товара на Вайлдбериз по FBM заказам от клиента
wildberriesSaleQuantity integer Продажи товара на Вайлдбериз по FBM за 2 недели
wildberriesQuantityInWay integer Количество товаров на Вайлдбериз в пути
wildberriesNoSale boolean Признак неликвидного товара на Вайлдбериз
lastStockChange string Дата последнего изменения стока на Вайлдбериз по FBM
ozonOrderQuantity integer Количество заказов товара по FBO на Озон по FBM и FBS за 2 недели
ozonSupplyingQuantity integer Поставляемое количество товара на Озон по FBM
ozonProfit integer Чистая маржа продажи товара на Озон по FBM
instockQuantity integer Остатки товара на складах клиента
calculatedInStockQuantity integer Рассчитанный остаток
ozonFbsSku integer Идентификатор товара в Озон по FBS
ozonFboSku integer Идентификатор товара в Озон по FBO
sellerSku string Идентификатор товара на Amazon
clientId integer Идентификатор клиента
organizationId integer Идентификатор организации
productViewId integer Идентификатор цвета
view ProductView Цвет товара
Структура ProductView
Поле Тип Описание
color string Артикул цвета
wbArticle string Артикул карточки Wildberries
id integer Идентификатор цвета. Проставляется автоматически
images Array of ProductImage Список изображений товара
Структура ProductImage
Поле Тип Описание
videos Array of ProductVideo Список видео товара
Структура ProductVideo
Поле Тип Описание
productModelId integer Идентификатор модели
model ProductModel Модель товара - объединяет товары, различающиеся цветом и некоторыми характеристиками (например размер в одежде)
actual boolean Актуальность цвета - нужно ли его показывать в заказах поставщикам
mainImage ProductImage Изображение товара
mainImageId integer
mainImageUrl string Ссылка на основное изображение на маркетплейсе
imageUrls string Ссылка на изображения
image360Urls string Ссылка на изображения 360
wildberriesId integer Числовой идентификатор номенклатуры Wildberries, nmId
createdDate string Дата создания цвета
createdUser string Пользователь, создавший цвет
versionId integer Поле нужно передавать при изменении,для предотвращения одновременной перезаписи
clientId integer Идентификатор клиента
deleted boolean Признак удаления цвета
keywords string Ключевые слова - сейчас не используется, перенесены в модель
wildberriesRating number Рейтинг карточки на Вайлдбериз
wildberriesFeedbacks integer Количество отзывов на карточке на Вайлдбериз
wildberriesCardDoesNotOpen boolean Признак, что карточка не открывается на Вайлдбериз
wildberriesHasPhoto boolean Признак наличия фото на Wildberries
organizationId integer Организация карточки
params string JSON со значениями параметров цвета
values Array of ParamValue Значения параметров карточки. Отдаются при запросе модели, если передать params=true
Структура ParamValue
Поле Тип Описание
viewSourceId integer Оригинал цвета по SKU
sizes Array of Product Список размеров для цвета
Структура Product
Поле Тип Описание
hasChanges boolean Признак изменения информации о цвете и необходимости его обновить
viewWbArticle ProductView Цвет товара
viewVersionId integer
suzId string GTIN товара
cisType string Тип в национальном каталоге
notChangedStock integer Количество дней, в течении которых не менялся остаток товара
nationalCatalogFeedId integer Идентификатор создания карточки в национальном каталоге
wildberriesStatus string Статус создания карточки товара в Вайлдбериз
wildberriesMessage string Ошибка создания карточки товара в Вайлдбериз
wildberriesMessageParams string JSON параметров ошибки создания карточки товара в Вайлдбериз
nationalCatalogStatus string Статус создания карточки товара в Национальном каталоге
nationalCatalogGoodId integer Идентификатор товара в национальном каталоге
nationalCatalogMessage string Ошибка создания карточки товара в Национальном каталоге
nationalCatalogMessageParams string Параметры ошибки создания карточки товара в Национальном каталоге
ozonStatus string Статус создания карточки товара в Озон
ozonMessage string Ошибка создания карточки товара в Озон
ozonMessageParams string JSON параметры ошибки создания карточки товара в Озон
ozonTaskId integer Идентификатор задания по обновления или созданию карточки в Озон
wildberriesFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке WB по FBS за 2 недели
ozonFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке на Ozon по FBS за 2 недели
ymarketFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке на Яндекс Маркете по FBS за 2 недели
totalSupplyingQuantity integer Кол-во заказанных товаров на данной карточке за 2 недели
skuId integer Идентификатор единицы хранения товара на складе. Проставляется автоматически
sku Sku Stock Keeping Unit - Единица хранения товара на складе. Может быть связана с несколькими карточками товаров Product.id. При первом создании товара SKU создается автоматически, далее можно привязать несколько товаров - имеющих разный бренд/организацию на маркетплейсах к одному SKU.
Структура Sku
Поле Тип Описание
id integer
product Product Товар - уникальный с точки зрения подтребительских свойств товар.
productId integer
barcodes Array of ProductBarcode Штрих-коды товара
Структура ProductBarcode
Поле Тип Описание
id integer
barcode string
organizationId integer Организация, если client.barcodeUniqForOrg = false, то проставляется 0. Поле включено в уникальный ключ
clientId integer
productId integer
useInWildberries boolean Применим ли данный штрих-код для Вайлдбериз
useInOzon boolean Применим ли данный штрих-код для Озон
useInYandexMarket boolean Применим ли данный штрих-код для Yandex.Market
useInAliexpress boolean Применим ли данный штрих-код для Aliexpress
useInSberMegamarket boolean Применим ли данный штрих-код для Sber.MegaMarket
format string
params string JSON значений параметров для данного размера/характеристик
values Array of ParamValue Значения параметров карточки. Отдаются при запросе модели, если передать params=true
Структура ParamValue
Поле Тип Описание
paramId Обязательный integer Идентификатор параметра
paramName string Название параметра, для тех, у кого нет ID
option Option Значение перечислимого параметра
doubleValue number Числовое значение параметра
longValue integer Целочисленное значение параметра
booleanValue boolean Булево значение параметра
stringValue string Строковое значение параметра
dateValue string Значение параметра даты
service string Сервис
unit Unit Единица измерения
auto boolean Автоматически проставленное значение параметра
created integer Дата заполнения параметра
user string Пользователь, который заполнил параметр
group object Группа карточек. Используется на списке товаров, чтобы объединить разные размеры в одну строку
duplicates Array of Product Дубликаты карточки по остаткам. Отдаются только на списке товаров, если включена галочка Объединять дубликаты
Структура Product
Поле Тип Описание
id integer Идентификатор товара. Проставляется автоматически
productType string Тип товара
name Обязательный string Наименование товара внутреннее
deleted boolean Признак удаления товара
printName string Название товара для внешних сервисов. Если не задано, проставляется равным наименованию товара
realSize string Российский размер товара для одежды или характеристики для других категорий
vendorSize string Размер производителя или характеристики производителя. Не обязательно заполнять
size string Размер для одежды или характеристики для внешних сервисов. Должен быть уникальным в рамках цвета
wildberriesImtId integer Используется для категорий, у которых не предусмотрен размер
wildberriesStockCount integer Остатки товара на Вайлдбериз
ozonId integer Идентификатор товара Озон на сайте. SKU в озон
ozonRealFbs boolean Признак использования RealFbs для товара
ozonProductId integer Идентификатор товара Озон в кабинете API
wildberriesSizeId integer Идентификатор размера на Вайлдбериз
simalandId integer Уникальный идентификатор товара для Simaland
ozonArticle string Уникальный артикул товара для озон. Offer ID в озон
externalArticle string Уникальный артикул товара для стороннего сервиса
ozonStockCount integer Остаток товара на складах Озон
ozonStockBetweenWarehouses integer Остаток товара в Озон, которые перемещаются между складами
removeFbsStock boolean Не выгружать остатки товара на маркетплейсы
purchaseCurrency string Валюта закупочной цены товара
purchasePriceInCurrency number Цена закупки в валюте
deliveryCostInCurrency number Цена на доставку в валюте
versionId integer Поле нужно передавать при изменении,для предотвращения одновременной перезаписи
createdDate string Дата создания товара на МП
created string Дата создания товара в SelSup
createdUser string Пользователь, который создал товар
sourceIncomeItemId integer Идентификатор товара из заказа поставщика по данным которого был создан товар
sourceProductId integer Идентификатор товара, который копировали
ozonRequiredStock integer Расчитанное количество товара, для поставки на склад Озон
wildberriesRequiredStock integer Расчитанное количество товара, для поставки на склад Wildberries
wildberriesProfit number Профит с продажи товара на Вайлдбериз по FBM
wildberriesProfitFbs number Профит с продажи товара на Вайлдбериз по FBS
wildberriesOrderQuantity integer Количество заказов по FBO товара на Вайлдбериз за 2 недели
wildberriesSupplyingQuantity integer Поставляемое количество товара на Вайлдбериз по FBM заказам
wildberriesQuantityInWayToClient integer Поставляемое количество товара на Вайлдбериз по FBM заказам к клиенту
wildberriesQuantityInWayFromClient integer Поставляемое количество товара на Вайлдбериз по FBM заказам от клиента
wildberriesSaleQuantity integer Продажи товара на Вайлдбериз по FBM за 2 недели
wildberriesQuantityInWay integer Количество товаров на Вайлдбериз в пути
wildberriesNoSale boolean Признак неликвидного товара на Вайлдбериз
lastStockChange string Дата последнего изменения стока на Вайлдбериз по FBM
ozonOrderQuantity integer Количество заказов товара по FBO на Озон по FBM и FBS за 2 недели
ozonSupplyingQuantity integer Поставляемое количество товара на Озон по FBM
ozonProfit integer Чистая маржа продажи товара на Озон по FBM
instockQuantity integer Остатки товара на складах клиента
calculatedInStockQuantity integer Рассчитанный остаток
ozonFbsSku integer Идентификатор товара в Озон по FBS
ozonFboSku integer Идентификатор товара в Озон по FBO
sellerSku string Идентификатор товара на Amazon
clientId integer Идентификатор клиента
organizationId Обязательный integer Идентификатор организации
productViewId integer Идентификатор цвета
view object Цвет товара
suzId string GTIN товара
cisType string Тип в национальном каталоге
notChangedStock integer Количество дней, в течении которых не менялся остаток товара
nationalCatalogFeedId integer Идентификатор создания карточки в национальном каталоге
wildberriesStatus string Статус создания карточки товара в Вайлдбериз
wildberriesMessage string Ошибка создания карточки товара в Вайлдбериз
wildberriesMessageParams string JSON параметров ошибки создания карточки товара в Вайлдбериз
nationalCatalogStatus string Статус создания карточки товара в Национальном каталоге
nationalCatalogGoodId integer Идентификатор товара в национальном каталоге
nationalCatalogMessage string Ошибка создания карточки товара в Национальном каталоге
nationalCatalogMessageParams string Параметры ошибки создания карточки товара в Национальном каталоге
ozonStatus string Статус создания карточки товара в Озон
ozonMessage string Ошибка создания карточки товара в Озон
ozonMessageParams string JSON параметры ошибки создания карточки товара в Озон
ozonTaskId integer Идентификатор задания по обновления или созданию карточки в Озон
wildberriesFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке WB по FBS за 2 недели
ozonFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке на Ozon по FBS за 2 недели
ymarketFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке на Яндекс Маркете по FBS за 2 недели
totalSupplyingQuantity integer Кол-во заказанных товаров на данной карточке за 2 недели
skuId integer Идентификатор единицы хранения товара на складе. Проставляется автоматически
sku object Stock Keeping Unit - Единица хранения товара на складе. Может быть связана с несколькими карточками товаров Product.id. При первом создании товара SKU создается автоматически, далее можно привязать несколько товаров - имеющих разный бренд/организацию на маркетплейсах к одному SKU.
barcodes Array of object Штрих-коды товара
Структура object
Поле Тип Описание
params string JSON значений параметров для данного размера/характеристик
values Array of object Значения параметров карточки. Отдаются при запросе модели, если передать params=true
Структура object
Поле Тип Описание
group object Группа карточек. Используется на списке товаров, чтобы объединить разные размеры в одну строку
duplicates Array of object Дубликаты карточки по остаткам. Отдаются только на списке товаров, если включена галочка Объединять дубликаты
Структура object
Поле Тип Описание
hasChanges boolean Признак наличия изменений в товаре и ее нужно обновить при сохранении
ignoreDuplicate boolean Признак игнорирования дубликатов при создании
yandexMarketSku integer Идентификатор карточки товара на Yandex.Market
yandexMarketStockCount integer Остаток товара на складах Yandex.Market
yandexMarketProductId integer Идентификатор карточки товара на Yandex.Market
yandexMarketShopSku string SKU товара на Yandex.Market
groupId integer ID групповой карточки
yandexMarketStatus string Статус создания карточки товара на яндекс маркет
yandexMarketMessage string Сообщение при ошибке создания карточки товара на яндекс маркет
yandexMarketMessageParams string Параметры сообщения при создании товара в Яндекс.Маркет
sberArticle string Артикул товара на СберМегаМаркет
siteArticle string артикул товара на сайте
siteId string айди товара на сайте
leroyMerlinArticle string Артикул товара на Леруа Мерлен
ebayArticle string Артикул товара на Ebay
lamodaArticle string Артикул товара на Lamoda
lamodaSku string SKU товара на Lamoda
leroyMerlinId string Номер карточки на Леруа Мерлен
duplicate boolean Признак, что карточка является дубликатом. Отдается не для всех методов
ozonHasPhoto boolean Признак наличия фото на Ozon
aliexpressSku string SKU на Aliexpress
aliexpressStatus string Статус создания товара на Aliexpress
aliexpressMessage string Сообщение при создании товара на Aliexpress
aliexpressMessageParams string Параметры сообщения при создании товара на Aliexpress
moySkladId string ID товара в сервисе Мой Склад
moySkladType string Тип товара в сервисе Мой Склад
avitoId integer ID товара в сервисе Avito
moySkladLinkId string ID для ссылки на Мой Склад
moySkladStatus string Статус создания карточки товара в МойСклад
avitoStatus string Статус обьявления на Авито
moySkladMessage string Ошибка создания карточки товара в МойСклад
moySkladMessageParams string Параметры ошибки создания карточки товара в МойСклад
oneCId string Идентификатор товара в 1С
removeFbsStockOzon boolean Не передавать остатки товара по FBS на озон
removeFbsStockWb boolean Не передавать остатки товара по FBS на Wildberries
removeFbsStockAli boolean Не передавать остатки товара по FBS на Aliepress
removeFbsStockYm boolean Не передавать остатки товара по FBS на Яндекс.Маркет
removeFbsStockSber boolean Не передавать остатки товара по FBS на СберМегаМаркет
quantity integer Количество товара в заказах. Возвращается только в методах income/getProductsFromOrders или wms/findStock
incomeQuantity integer Количество товара в закупке без разделения по маркетплейсам
orderMinDate string Минимальная дата заказа. Возвращается только в методах income/getProductsFromOrders
expiredDate string Cрок годности товара - возвращается только в методах, wms/findStock
productionDate string Дата производства
stock integer Остаток товара на определенном складе - возвращается только в методах, wms/fetchStock
stocks object Остатки товара на складах - возвращается только в методах, wms/fetchStock
cell object Ячейка хранения товара на складе, в которой может храниться один или несколько товаров
reserved integer Остаток товара на определенном складе - возвращается только в методах, wms/fetchStock
calculatedStock integer Остаток наборов на определенном складе - возвращается только в методах, wms/fetchStock, product/findProduct, supply/findProductForOrder
price number Розничная цена товара
updatedPrice number Новая общая цена товара со скидкой. Только для методов обновления цены
priceWithoutDiscount number Розничная цена товара без учета скидки
updatedPriceWithoutDiscount number Измененная розничная цена товара без учета скидки. Принимается только в методах обновления цены
updatedDeliveryCost number Измененные прочие расходы товара Принимается только в методах обновления цены
updatedPurchasePrice number Измененная закупочная цена товара Принимается только в методах обновления цены
purchasePrice number Закупочная цена товара в руб.
isPurchasePriceUpdated boolean Признак, была ли изменена закупочная цена
isDeliveryCostUpdated boolean Признак, изменения прочих расходов на товар.
wholesalePrice number Оптовая цена товара
deliveryCost number Дополнительные расходы на доставку товара в руб. Добавляются к закупочной цене
strategyId integer Идентификатор стратегии ценообразования
ozonAverageExpenses number Расходы по продаже товара на Ozon
wildberriesAverageExpenses number Расходы по продаже товара на Wildberries
yandexMarketAverageExpenses number Расходы по продаже товара на ЯМ
wildberriesPrice number Текущая цена товара на Вайлдбериз со скидкой
wildberriesUpdatedPrice number Новая цена товара на Вайлдбериз со скидкиой.Только для методов изменения цены
wildberriesPriceWithoutDiscount number Текущая цена товара на Вайлдбериз без скидки
wildberriesUpdatedPriceWithoutDiscount number Новая цена товара на Вайлдбериз без скидки.Только для методов изменения цены
wildberriesSale integer Скидка товара на Вайлдбериз
aliexpressPrice number Текущая цена на Aliexpress со скидкой
aliexpressPriceWithoutDiscount number Текущая цена на Aliexpress без скидки.
aliexpressUpdatedPrice number Новая цена со скидкой на Aliexpress. Только для методов обновления цены
aliexpressUpdatedPriceWithoutDiscount number Новая цена без скидки на Aliexpress. Только для методов обновления цены
minPrice number Минимальная цена товара. Ниже этой цены нельзя выставлять цену на товар.Используется для Ozon при участии товара в акциях
ozonPrice number Текущая цена товара на Озон со скидкой
ozonPromotionPrice number Текущая акционная цена товара на Озон
ozonUpdatedPrice number Новая цена товара на Озон со скидкой.Только для методов изменения цены
ozonPriceWithoutDiscount number Текущая цена товара на Озон без скидки.
ozonUpdatedPriceWithoutDiscount number Новая цена Озон без скидки.Только для методов изменения цены
ozonAcquiringPercent number Максимальная комиссия за эквайринг OZON
leroyMerlinPrice number Текущая цена товара на LeroyMerlin
leroyMerlinUpdatedPrice number Новая цена товара на LeroyMerlin.Только для методов изменения цены
avitoPrice number Текущая цена товара на Avito
avitoUpdatedPrice number Новая цена товара на Avito.Только для методов изменения цены
ozonComisson number Комиссия товара на Озон FBM
sberMegaMarketPrice number Текущая цена на СберМегаМаркет со скидкой
sberMegaMarketUpdatedPrice number Новая цена со скидкой на СберМегаМаркет. Только для методов изменения цены
sberMegaMarketSupplyingQuantity integer Поставляемое количество товара на СберМегаМаркет по FBM заказам
yandexMarketPrice number Текущая цена на Яндекс.Маркет со скидкой
yandexMarketPriceWithoutDiscount number Текущая цена на Яндекс.Маркет без скидки
yandexMarketUpdatedPrice number Новая цена со скидкой на Яндекс.Маркет. Только для методов изменения цены
yandexMarketUpdatedPriceWithoutDiscount number Новая цена без скидки на Яндекс.Маркет. Только для методов изменения цены
yandexMarketSupplyingQuantity integer Поставляемое количество товара на Яндекс.Маркет по FBM заказам
oneCArticle string Уникальный артикул товара для 1c
salesExpensesOnMpPercent number Расходы по продажам на маркетплейсе, %
taxeRate number Установленый процент налога на товар, %
desiredMarginalityPercent number Желаемый % маржинальности
desiredProfitRub number Желаемая прибыль, руб.
additionalCost number Доп. расходы на товар без записи в Финансовую аналитику, руб.
sberMegaMarketId integer Карточка СберМегаМаркет
packWidth integer Ширина в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packHeight integer Высота в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packDepth integer Длина/глубина в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packWeight integer Вес в упаковке гр. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
numOfPiecesInBox integer Количество штук в коробе
lastWildberriesSaleDate string Дата последней продажи на Wildberries
lastWildberriesOrderDate string Дата последнего заказа на Wildberries
lastOzonSaleDate string Дата последней продажи на OZON
lastOzonOrderDate string Дата последнего заказа на OZON
totalOrdersCount integer Кол-во заказанных товаров на данной карточке по МП OZON + WB
totalFbsOrdersCount integer Кол-во заказанных товаров на данной карточке по FBS за 2 недели
wildberriesTotalOrdersCount integer Кол-во заказанных товаров на данной карточке по МП WB
ignoreFbsWarehouses string Список идентификаторов складов маркетплейсов через запятую - на которые не отправлять остатки по FBS
fbsWarehouses string Список идентификаторов складов маркетплейсов через запятую - на которые не отправлять остатки по FBS
minFbsStock integer Минимальный остаток - если меньше, то ставим 0
maxFbsStock integer Максимальный остаток - если больше, то ставим его
wildberriesSaleLogistic number Логистика WB, руб.
wildberriesReturnLogistic number Обратная логистика WB, руб.
wildberriesWarehouseRatio number Коэффициент склада WB в %
wildberriesComission number Комиссия WB, %
ozonSaleLogistic number Логистика Ozon, руб.
ozonReturnLogistic number Обратная логистика Ozon, руб.
ozonCommission number Комиссия Ozon, %
maxDeliveryToPickupPoint number Максимальная стоимость доставки до места выдачи, руб.
ozonPurchasePercent number Процент выкупа Ozon, %
wildberriesPurchasePercent number Процент выкупа WB, %
minMarginality number Настройки репрайсера Min % маржинальности
maxMarginality number Настройки репрайсера Max % маржинальности
minProfit number Настройки репрайсера Min прибыль, руб.
maxProfit number Настройки репрайсера Max прибыль, руб.
minPriceWithDiscount number Настройки репрайсера Min цена со скидкой, руб.
maxPriceWithDiscount number Настройки репрайсера Max цена со скидкой, руб.
oldWildberriesPriceWithDiscount number При установки через репрайсер скидку, заполняется, после удаление скидки, возвращает как основная цена и значение затирается
oldWildberriesSale integer Скидка товара на Вайлдбериз до установки новой по репрайсеру, при возврате нужно проставлять null
wildberriesPromoProfit number Расчетный профит по акциям WB нужен для определения какая акция выгодная
wildberriesMarginality number Расчетная маржинальность по WB
wildberriesPromoId integer Идентификатор акции на ВБ
oldWildberriesPromoSalePercent number Расчетная маржинальность по WB
oldWildberriesPromoPriceWithDiscount number Расчетная маржинальность по WB
endWildberriesPriceWithSppConfig number Цена для пользователя конечная с СПП.
ozonFbsCommission number Комиссия ОЗОН ФБС
ozonFboCommission number Комиссия ОЗОН ФБО
wbTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по ВБ
ozonTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по OZON
sberTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по SBER
yandexTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по YANDEX
fboStockCount integer Остаток ФБО по выбранным складам/регионам
fbsStockCount integer Остаток ФБC для планирования поставок)
fboSupplyQuantity integer Количество поставляемого товара по выбранным складам/регионам
fboSales integer Кол-во продаж FBO по складам/регионам для планирования поставок
fbsSales integer Кол-во продаж FBS по складам/регионам для планирования поставок
fboOrders integer Кол-во заказов FBO по складам/регионам для планирования поставок
fbsOrders integer Кол-во заказов FBS по складам/регионам для планирования поставок
recommendPlan number Кол-во товара для добавления к заказу
skipDaysCount integer Кол-во пропущенных дней в учёте планирования поставок
organizationShortName string
contractorName string
supplyPlanBarcode string
planCorrectionFactor number Коэффициент коррекции для планирования поставок. На это значение умножается рассчитанное количество товара для поставки
orderBefore integer До какого времени должен быть сделан заказ от 1 до 24
daysBeforeSupply integer Кол-во дней до поставки. Через сколько дней с момента заказа ориентировочно будет поставка товаров
supplyPlanDays integer На сколько дней планировать остаток
warehouseIdForSupplyReport integer Id склада на который нужно поставить рассчитанные товары. Используется только в планировании поставок
warehouseNameForSupplyReport string Название склада на который нужно поставить рассчитанные товары. Используется только в планировании поставок
manager string Поле менеджера
cellId integer
percentForParticipationPromoOrAdvertising integer Закладываемый % для участия в акциях или рекламе
selsupLink string
tempId integer Временный id используется для быстрого импорта
category object Категория
walmartSku string SKU товара на Walmart
walmartId string Id товара на Walmart (WPID)
findirTips object Советы задачника (тип задачи - текст совета)
woocomSku string SKU товара на WooCommerce
woocomId integer Id товара на WooCommerce
commissions string JSON с комиссиями из разных маркетплейсов
lowStockAlerts string JSON для уведомлений о заканчивающихся остатках по маркетплейсов
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
calculatedInstockQuantity integer
emptyBarcodes boolean
site string
anyArticle string
anyLink string
hasChanges boolean Признак наличия изменений в товаре и ее нужно обновить при сохранении
ignoreDuplicate boolean Признак игнорирования дубликатов при создании
yandexMarketSku integer Идентификатор карточки товара на Yandex.Market
yandexMarketStockCount integer Остаток товара на складах Yandex.Market
yandexMarketProductId integer Идентификатор карточки товара на Yandex.Market
yandexMarketShopSku string SKU товара на Yandex.Market
groupId integer ID групповой карточки
yandexMarketStatus string Статус создания карточки товара на яндекс маркет
yandexMarketMessage string Сообщение при ошибке создания карточки товара на яндекс маркет
yandexMarketMessageParams string Параметры сообщения при создании товара в Яндекс.Маркет
sberArticle string Артикул товара на СберМегаМаркет
siteArticle string артикул товара на сайте
siteId string айди товара на сайте
leroyMerlinArticle string Артикул товара на Леруа Мерлен
ebayArticle string Артикул товара на Ebay
lamodaArticle string Артикул товара на Lamoda
lamodaSku string SKU товара на Lamoda
leroyMerlinId string Номер карточки на Леруа Мерлен
duplicate boolean Признак, что карточка является дубликатом. Отдается не для всех методов
ozonHasPhoto boolean Признак наличия фото на Ozon
aliexpressSku string SKU на Aliexpress
aliexpressStatus string Статус создания товара на Aliexpress
aliexpressMessage string Сообщение при создании товара на Aliexpress
aliexpressMessageParams string Параметры сообщения при создании товара на Aliexpress
moySkladId string ID товара в сервисе Мой Склад
moySkladType string Тип товара в сервисе Мой Склад
avitoId integer ID товара в сервисе Avito
moySkladLinkId string ID для ссылки на Мой Склад
moySkladStatus string Статус создания карточки товара в МойСклад
avitoStatus string Статус обьявления на Авито
moySkladMessage string Ошибка создания карточки товара в МойСклад
moySkladMessageParams string Параметры ошибки создания карточки товара в МойСклад
oneCId string Идентификатор товара в 1С
removeFbsStockOzon boolean Не передавать остатки товара по FBS на озон
removeFbsStockWb boolean Не передавать остатки товара по FBS на Wildberries
removeFbsStockAli boolean Не передавать остатки товара по FBS на Aliepress
removeFbsStockYm boolean Не передавать остатки товара по FBS на Яндекс.Маркет
removeFbsStockSber boolean Не передавать остатки товара по FBS на СберМегаМаркет
quantity integer Количество товара в заказах. Возвращается только в методах income/getProductsFromOrders или wms/findStock
incomeQuantity integer Количество товара в закупке без разделения по маркетплейсам
orderMinDate string Минимальная дата заказа. Возвращается только в методах income/getProductsFromOrders
expiredDate string Cрок годности товара - возвращается только в методах, wms/findStock
productionDate string Дата производства
stock integer Остаток товара на определенном складе - возвращается только в методах, wms/fetchStock
stocks object Остатки товара на складах - возвращается только в методах, wms/fetchStock
cell Cell Ячейка хранения товара на складе, в которой может храниться один или несколько товаров
Структура Cell
Поле Тип Описание
id integer Идентификатор ячейки
warehouseId integer Склад к которому относится ячейка
passageId integer Проход на складе, к которому относится ячейка. Может соджержать название этажа и пр
shelfId integer Полка стеллажа, к которой относится ячейка
rackId integer Стеллаж, к которому относится ячейка
name string Название ячейки. По умолчанию формируется автоматически
fullName string Полное название ячейки из названий прохода, стелажа, полки и ячейки
sortName string Название для сортировки ячейки из названий прохода, стелажа, полки и ячейки
barcode string Уникальный в рамках клиента штрих-код ячейки для идентификации ячейки с помощью сканера штрих-кода. Присваивается автоматически при создании ячейки
deleted boolean Признак того, что ячейка удалена
width integer Ширина ячейки для определения товаров, которые можно положить в нее
height integer Высота ячейки для определения товаров, которые можно положить в нее
depth integer Глубина ячейки для определения товаров, которые можно положить в нее
clientId integer Клиент которому принадлежит ячейка. Проставляется автоматически
lastInventoryId integer Идентификатор последней инвентаризации
type string Тип ячейки: NORMAL, NO_PLACE - не разложенные, REFUND - для возвратов
reserved integer Остаток товара на определенном складе - возвращается только в методах, wms/fetchStock
calculatedStock integer Остаток наборов на определенном складе - возвращается только в методах, wms/fetchStock, product/findProduct, supply/findProductForOrder
price number Розничная цена товара
updatedPrice number Новая общая цена товара со скидкой. Только для методов обновления цены
priceWithoutDiscount number Розничная цена товара без учета скидки
updatedPriceWithoutDiscount number Измененная розничная цена товара без учета скидки. Принимается только в методах обновления цены
updatedDeliveryCost number Измененные прочие расходы товара Принимается только в методах обновления цены
updatedPurchasePrice number Измененная закупочная цена товара Принимается только в методах обновления цены
purchasePrice number Закупочная цена товара в руб.
isPurchasePriceUpdated boolean Признак, была ли изменена закупочная цена
isDeliveryCostUpdated boolean Признак, изменения прочих расходов на товар.
wholesalePrice number Оптовая цена товара
deliveryCost number Дополнительные расходы на доставку товара в руб. Добавляются к закупочной цене
strategyId integer Идентификатор стратегии ценообразования
ozonAverageExpenses number Расходы по продаже товара на Ozon
wildberriesAverageExpenses number Расходы по продаже товара на Wildberries
yandexMarketAverageExpenses number Расходы по продаже товара на ЯМ
wildberriesPrice number Текущая цена товара на Вайлдбериз со скидкой
wildberriesUpdatedPrice number Новая цена товара на Вайлдбериз со скидкиой.Только для методов изменения цены
wildberriesPriceWithoutDiscount number Текущая цена товара на Вайлдбериз без скидки
wildberriesUpdatedPriceWithoutDiscount number Новая цена товара на Вайлдбериз без скидки.Только для методов изменения цены
wildberriesSale integer Скидка товара на Вайлдбериз
aliexpressPrice number Текущая цена на Aliexpress со скидкой
aliexpressPriceWithoutDiscount number Текущая цена на Aliexpress без скидки.
aliexpressUpdatedPrice number Новая цена со скидкой на Aliexpress. Только для методов обновления цены
aliexpressUpdatedPriceWithoutDiscount number Новая цена без скидки на Aliexpress. Только для методов обновления цены
minPrice number Минимальная цена товара. Ниже этой цены нельзя выставлять цену на товар.Используется для Ozon при участии товара в акциях
ozonPrice number Текущая цена товара на Озон со скидкой
ozonPromotionPrice number Текущая акционная цена товара на Озон
ozonUpdatedPrice number Новая цена товара на Озон со скидкой.Только для методов изменения цены
ozonPriceWithoutDiscount number Текущая цена товара на Озон без скидки.
ozonUpdatedPriceWithoutDiscount number Новая цена Озон без скидки.Только для методов изменения цены
ozonAcquiringPercent number Максимальная комиссия за эквайринг OZON
leroyMerlinPrice number Текущая цена товара на LeroyMerlin
leroyMerlinUpdatedPrice number Новая цена товара на LeroyMerlin.Только для методов изменения цены
avitoPrice number Текущая цена товара на Avito
avitoUpdatedPrice number Новая цена товара на Avito.Только для методов изменения цены
ozonComisson number Комиссия товара на Озон FBM
sberMegaMarketPrice number Текущая цена на СберМегаМаркет со скидкой
sberMegaMarketUpdatedPrice number Новая цена со скидкой на СберМегаМаркет. Только для методов изменения цены
sberMegaMarketSupplyingQuantity integer Поставляемое количество товара на СберМегаМаркет по FBM заказам
yandexMarketPrice number Текущая цена на Яндекс.Маркет со скидкой
yandexMarketPriceWithoutDiscount number Текущая цена на Яндекс.Маркет без скидки
yandexMarketUpdatedPrice number Новая цена со скидкой на Яндекс.Маркет. Только для методов изменения цены
yandexMarketUpdatedPriceWithoutDiscount number Новая цена без скидки на Яндекс.Маркет. Только для методов изменения цены
yandexMarketSupplyingQuantity integer Поставляемое количество товара на Яндекс.Маркет по FBM заказам
oneCArticle string Уникальный артикул товара для 1c
salesExpensesOnMpPercent number Расходы по продажам на маркетплейсе, %
taxeRate number Установленый процент налога на товар, %
desiredMarginalityPercent number Желаемый % маржинальности
desiredProfitRub number Желаемая прибыль, руб.
additionalCost number Доп. расходы на товар без записи в Финансовую аналитику, руб.
sberMegaMarketId integer Карточка СберМегаМаркет
packWidth integer Ширина в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packHeight integer Высота в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packDepth integer Длина/глубина в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packWeight integer Вес в упаковке гр. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
numOfPiecesInBox integer Количество штук в коробе
lastWildberriesSaleDate string Дата последней продажи на Wildberries
lastWildberriesOrderDate string Дата последнего заказа на Wildberries
lastOzonSaleDate string Дата последней продажи на OZON
lastOzonOrderDate string Дата последнего заказа на OZON
totalOrdersCount integer Кол-во заказанных товаров на данной карточке по МП OZON + WB
totalFbsOrdersCount integer Кол-во заказанных товаров на данной карточке по FBS за 2 недели
wildberriesTotalOrdersCount integer Кол-во заказанных товаров на данной карточке по МП WB
ignoreFbsWarehouses string Список идентификаторов складов маркетплейсов через запятую - на которые не отправлять остатки по FBS
fbsWarehouses string Список идентификаторов складов маркетплейсов через запятую - на которые не отправлять остатки по FBS
minFbsStock integer Минимальный остаток - если меньше, то ставим 0
maxFbsStock integer Максимальный остаток - если больше, то ставим его
wildberriesSaleLogistic number Логистика WB, руб.
wildberriesReturnLogistic number Обратная логистика WB, руб.
wildberriesWarehouseRatio number Коэффициент склада WB в %
wildberriesComission number Комиссия WB, %
ozonSaleLogistic number Логистика Ozon, руб.
ozonReturnLogistic number Обратная логистика Ozon, руб.
ozonCommission number Комиссия Ozon, %
maxDeliveryToPickupPoint number Максимальная стоимость доставки до места выдачи, руб.
ozonPurchasePercent number Процент выкупа Ozon, %
wildberriesPurchasePercent number Процент выкупа WB, %
minMarginality number Настройки репрайсера Min % маржинальности
maxMarginality number Настройки репрайсера Max % маржинальности
minProfit number Настройки репрайсера Min прибыль, руб.
maxProfit number Настройки репрайсера Max прибыль, руб.
minPriceWithDiscount number Настройки репрайсера Min цена со скидкой, руб.
maxPriceWithDiscount number Настройки репрайсера Max цена со скидкой, руб.
oldWildberriesPriceWithDiscount number При установки через репрайсер скидку, заполняется, после удаление скидки, возвращает как основная цена и значение затирается
oldWildberriesSale integer Скидка товара на Вайлдбериз до установки новой по репрайсеру, при возврате нужно проставлять null
wildberriesPromoProfit number Расчетный профит по акциям WB нужен для определения какая акция выгодная
wildberriesMarginality number Расчетная маржинальность по WB
wildberriesPromoId integer Идентификатор акции на ВБ
oldWildberriesPromoSalePercent number Расчетная маржинальность по WB
oldWildberriesPromoPriceWithDiscount number Расчетная маржинальность по WB
endWildberriesPriceWithSppConfig number Цена для пользователя конечная с СПП.
ozonFbsCommission number Комиссия ОЗОН ФБС
ozonFboCommission number Комиссия ОЗОН ФБО
wbTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по ВБ
ozonTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по OZON
sberTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по SBER
yandexTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по YANDEX
fboStockCount integer Остаток ФБО по выбранным складам/регионам
fbsStockCount integer Остаток ФБC для планирования поставок)
fboSupplyQuantity integer Количество поставляемого товара по выбранным складам/регионам
fboSales integer Кол-во продаж FBO по складам/регионам для планирования поставок
fbsSales integer Кол-во продаж FBS по складам/регионам для планирования поставок
fboOrders integer Кол-во заказов FBO по складам/регионам для планирования поставок
fbsOrders integer Кол-во заказов FBS по складам/регионам для планирования поставок
recommendPlan number Кол-во товара для добавления к заказу
skipDaysCount integer Кол-во пропущенных дней в учёте планирования поставок
organizationShortName string
contractorName string
supplyPlanBarcode string
planCorrectionFactor number Коэффициент коррекции для планирования поставок. На это значение умножается рассчитанное количество товара для поставки
orderBefore integer До какого времени должен быть сделан заказ от 1 до 24
daysBeforeSupply integer Кол-во дней до поставки. Через сколько дней с момента заказа ориентировочно будет поставка товаров
supplyPlanDays integer На сколько дней планировать остаток
warehouseIdForSupplyReport integer Id склада на который нужно поставить рассчитанные товары. Используется только в планировании поставок
warehouseNameForSupplyReport string Название склада на который нужно поставить рассчитанные товары. Используется только в планировании поставок
manager string Поле менеджера
cellId integer
percentForParticipationPromoOrAdvertising integer Закладываемый % для участия в акциях или рекламе
selsupLink string
tempId integer Временный id используется для быстрого импорта
category Category Категория
Структура Category
Поле Тип Описание
categoryId integer Идентификатор категории. Проставляется автоматически
name string Наименование категории
deleted boolean Признак удаленных категорий
parentId integer Идентификатор родительской категории
clientId integer Идентификатор клиента
marked boolean Маркируется ли категория
categoryClass string Группы категорий Честного знака
wildberriesType WildberriesType Предмет Вайлдбериз
wildberriesCategoryId integer Идентификатор категории Wildberries, совпадает с ID категории на самом Wildberries
wildberriesFbmCommission number Комиссия по тарифу FBM
wildberriesFbwCommission number Комиссия по тарифу FBW
wildberriesFbsCommission number Комиссия по тарифу FBS
wildberriesDbsCommission number Комиссия по тарифу DBS
wildberriesEdbsCommission number Комиссия по тарифу EDBS
wildberriesCAndCCommission number Комиссия по тарифу C&C
wildberriesBookingCommission number Комиссия за бронирование
ozonDescriptionCategoryId integer Идентификатор категории на Ozon. Строится из ID категории + ID типа на Ozon
yandexMarketCategoryId integer Идентификатор категории в Яндекс.Маркет. Совпадает с идентификатором категории на самом Яндекс.Маркет
yandexMarketCategory YandexMarketCategory Категория Яндекс.Маркета
ozonDescriptionCategory OzonDescriptionCategory Категория Озон
ozonCommission number Комиссия озона.
tnved Tnved Код ТНВЭД
tnvedId integer Идентификатор ТНВЭД
laundry string Правила ухода за вещами. Разделяются запятыми
params string JSON значений параметров для категории
namePattern string Шаблон названий категории
aliexpressCategory AliexpressCategory Категория Aliexpress
aliexpressCategoryId integer Идентификатор категории на самом Aliexpress
avitoCategory AvitoCategory Категория Авито
avitoCategoryId integer Идентификатор категории на самом Avito
packDepth integer Глубина упаковки в мм. Проставляется всем товарам в категории
packWidth integer Ширина упаковки в мм. Проставляется всем товарам в категории
packHeight integer Высота упаковки в мм. Проставляется всем товарам в категории
packWeight integer Вес упаковки в граммах. Проставляется всем товарам в категории
hasSize boolean Признак разделения товаров в категории по размеру. Меняет вид редактора карточки
hasColor boolean Признак разделения товаров в категории по цвету. Меняет вид редактора карточки
autoName boolean Автоматически формировать названия товаров в категории
removeFbsStock boolean Не передавать остатки товаров по FBS для товаров из этой категории
oneCId string Идентификатор категории в 1С
externalId string Идентификатор категории на сайте
moySkladId string Идентификатор категории в сервисе МойСклад
useClientParams boolean Показывать пользовательские параметры в категории
requiredExpirationDate boolean Является ли срок годности обязательным параметром
walmartSku string SKU товара на Walmart
walmartId string Id товара на Walmart (WPID)
findirTips object Советы задачника (тип задачи - текст совета)
woocomSku string SKU товара на WooCommerce
woocomId integer Id товара на WooCommerce
commissions string JSON с комиссиями из разных маркетплейсов
lowStockAlerts string JSON для уведомлений о заканчивающихся остатках по маркетплейсов
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
calculatedInstockQuantity integer
emptyBarcodes boolean
site string
anyArticle string
anyLink string
article string Артикул
warehouseStocks Array of WarehouseStock Остатки по складам
Структура WarehouseStock
Поле Тип Описание
warehouseName string
warehouseRegion string
stockCount integer
warehouseFboStocksJson string Подготовленные остатки по складам JSON
dateTruncated string Дата отчета для отображения на фронте
period string Тип отчета - дневной или месячный
serviceId integer
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  offset: '0',
  timeZone: '1',
  productId: '123',
  productIds: '',
  allProductIds: '',
  query: 'Пример query',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  service: 'NONE',
  organizationId: 'АО "Торговый дом"',
  date: '2024-01-15',
  limit: '100',
  page: '1',
  count: 'Россия',
  sortBy: 'Пример sortBy',
  ascending: 'true',
};

const response = await axios.get('https://api.selsup.ru/api/stat/productHandOnPulse',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  offset?: number;
  timeZone?: number;
  productId?: number;
  productIds?: string;
  allProductIds?: string;
  query?: string;
  dateFrom?: string;
  dateTo?: string;
  service?: string;
  organizationId?: number;
  date?: string;
  limit?: number;
  page?: number;
  count?: string;
  sortBy?: string;
  ascending?: string;
}

const params: QueryParams = {
  offset: '0',
  timeZone: '1',
  productId: '123',
  productIds: '',
  allProductIds: '',
  query: 'Пример query',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  service: 'NONE',
  organizationId: 'АО "Торговый дом"',
  date: '2024-01-15',
  limit: '100',
  page: '1',
  count: 'Россия',
  sortBy: 'Пример sortBy',
  ascending: 'true',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/productHandOnPulse',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'offset': '0',
    'timeZone': '1',
    'productId': '123',
    'productIds': '',
    'allProductIds': '',
    'query': 'Пример query',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'service': 'NONE',
    'organizationId': 'АО "Торговый дом"',
    'date': '2024-01-15',
    'limit': '100',
    'page': '1',
    'count': 'Россия',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/productHandOnPulse',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/productHandOnPulse?offset=0&timeZone=1&productId=123&productIds=&allProductIds=&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&service=NONE&organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&date=2024-01-15&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/productHandOnPulse?offset=0&timeZone=1&productId=123&productIds=&allProductIds=&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&service=NONE&organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&date=2024-01-15&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'offset' => '0',
    'timeZone' => '1',
    'productId' => '123',
    'productIds' => '',
    'allProductIds' => '',
    'query' => 'Пример query',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'service' => 'NONE',
    'organizationId' => 'АО "Торговый дом"',
    'date' => '2024-01-15',
    'limit' => '100',
    'page' => '1',
    'count' => 'Россия',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
];

$url = 'https://api.selsup.ru/api/stat/productHandOnPulse?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/productHandOnPulse?offset=value&timeZone=1&productId=123&productIds=&allProductIds=&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&service=NONE&organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&date=2024-01-15&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Обновить по-товарный отчет Рука на пульсе

Обновление по-товарный отчет Рука на пульсе
PUT /api/stat/productHandOnPulse

Тело запроса *Обязательно

Content-Type: application/json
Массив из: ProductHandOnPulseReport
Структура элемента:
ПолеТипОписание
id integer ID записи отчета
clientId integer ID клиента
productId integer ID товара
service string Сервис
organizationId integer ID организации
productViewId integer ID представления товара (product_view_id)
productModelId integer ID модели товара
date string Дата отчета
profitFact number Фактическая прибыль по товару
profitPlan number Плановая прибыль по товару
priceWithSpp number Цена с учетом СПП (скидки постоянного покупателя)
price number Цена без СПП
spp number СПП
campaignBudgetPlan number Плановый бюджет кампании
campaignBudgetFact number Фактический бюджет кампании
promotionBudget number Бюджет на продвижение (ручное продвижение)
autoPromotionBudget number Бюджет на авто-продвижение
campaignCtrPercent number CTR рекламной кампании, %
drrPercent number DRR (затраты/выручка) в процентах
skuProfit number Прибыль по SKU
skuCostPrice number Себестоимость SKU
marginPercent number Маржинальность в процентах
abcRevenueGroup string ABC-группа по выручке
abcGrossProfitGroup string ABC-группа по валовой прибыли
salesAmountFact number Фактическая сумма продаж
salesCountFact integer Фактическое количество продаж
salesCountPlan integer Плановое количество продаж
sizes string Размеры товара (если применимо)
turnover number Оборачиваемость товара
daysBeforeSeasonEnd integer Количество дней до конца сезона
sortPlan number План сортировки (обновления ассортимента)
fbsCount integer Количество продаж по схеме FBS
openCardCount integer Количество открытий карточки товара
addToCartCount integer Количество добавлений в корзину
addToCartPercent number Процент добавлений в корзину относительно просмотров
ordersCount integer Количество заказов
ordersPercent number Конверсия в заказы, %
buyoutsCount integer Количество выкупов
buyoutsPercent number Конверсия в выкуп, %
viewsCount integer Показы карточки, шт
comment string Комментарий
product Product Товар - уникальный с точки зрения подтребительских свойств товар.
Структура Product
Поле Тип Описание
id integer Идентификатор товара. Проставляется автоматически
productType string Тип товара
name string Наименование товара внутреннее
deleted boolean Признак удаления товара
printName string Название товара для внешних сервисов. Если не задано, проставляется равным наименованию товара
realSize string Российский размер товара для одежды или характеристики для других категорий
vendorSize string Размер производителя или характеристики производителя. Не обязательно заполнять
size string Размер для одежды или характеристики для внешних сервисов. Должен быть уникальным в рамках цвета
wildberriesImtId integer Используется для категорий, у которых не предусмотрен размер
wildberriesStockCount integer Остатки товара на Вайлдбериз
ozonId integer Идентификатор товара Озон на сайте. SKU в озон
ozonRealFbs boolean Признак использования RealFbs для товара
ozonProductId integer Идентификатор товара Озон в кабинете API
wildberriesSizeId integer Идентификатор размера на Вайлдбериз
simalandId integer Уникальный идентификатор товара для Simaland
ozonArticle string Уникальный артикул товара для озон. Offer ID в озон
externalArticle string Уникальный артикул товара для стороннего сервиса
ozonStockCount integer Остаток товара на складах Озон
ozonStockBetweenWarehouses integer Остаток товара в Озон, которые перемещаются между складами
removeFbsStock boolean Не выгружать остатки товара на маркетплейсы
purchaseCurrency string Валюта закупочной цены товара
purchasePriceInCurrency number Цена закупки в валюте
deliveryCostInCurrency number Цена на доставку в валюте
versionId integer Поле нужно передавать при изменении,для предотвращения одновременной перезаписи
createdDate string Дата создания товара на МП
created string Дата создания товара в SelSup
createdUser string Пользователь, который создал товар
sourceIncomeItemId integer Идентификатор товара из заказа поставщика по данным которого был создан товар
sourceProductId integer Идентификатор товара, который копировали
ozonRequiredStock integer Расчитанное количество товара, для поставки на склад Озон
wildberriesRequiredStock integer Расчитанное количество товара, для поставки на склад Wildberries
wildberriesProfit number Профит с продажи товара на Вайлдбериз по FBM
wildberriesProfitFbs number Профит с продажи товара на Вайлдбериз по FBS
wildberriesOrderQuantity integer Количество заказов по FBO товара на Вайлдбериз за 2 недели
wildberriesSupplyingQuantity integer Поставляемое количество товара на Вайлдбериз по FBM заказам
wildberriesQuantityInWayToClient integer Поставляемое количество товара на Вайлдбериз по FBM заказам к клиенту
wildberriesQuantityInWayFromClient integer Поставляемое количество товара на Вайлдбериз по FBM заказам от клиента
wildberriesSaleQuantity integer Продажи товара на Вайлдбериз по FBM за 2 недели
wildberriesQuantityInWay integer Количество товаров на Вайлдбериз в пути
wildberriesNoSale boolean Признак неликвидного товара на Вайлдбериз
lastStockChange string Дата последнего изменения стока на Вайлдбериз по FBM
ozonOrderQuantity integer Количество заказов товара по FBO на Озон по FBM и FBS за 2 недели
ozonSupplyingQuantity integer Поставляемое количество товара на Озон по FBM
ozonProfit integer Чистая маржа продажи товара на Озон по FBM
instockQuantity integer Остатки товара на складах клиента
calculatedInStockQuantity integer Рассчитанный остаток
ozonFbsSku integer Идентификатор товара в Озон по FBS
ozonFboSku integer Идентификатор товара в Озон по FBO
sellerSku string Идентификатор товара на Amazon
clientId integer Идентификатор клиента
organizationId integer Идентификатор организации
productViewId integer Идентификатор цвета
view ProductView Цвет товара
Структура ProductView
Поле Тип Описание
color string Артикул цвета
wbArticle string Артикул карточки Wildberries
id integer Идентификатор цвета. Проставляется автоматически
images Array of ProductImage Список изображений товара
Структура ProductImage
Поле Тип Описание
videos Array of ProductVideo Список видео товара
Структура ProductVideo
Поле Тип Описание
productModelId integer Идентификатор модели
model ProductModel Модель товара - объединяет товары, различающиеся цветом и некоторыми характеристиками (например размер в одежде)
actual boolean Актуальность цвета - нужно ли его показывать в заказах поставщикам
mainImage ProductImage Изображение товара
mainImageId integer
mainImageUrl string Ссылка на основное изображение на маркетплейсе
imageUrls string Ссылка на изображения
image360Urls string Ссылка на изображения 360
wildberriesId integer Числовой идентификатор номенклатуры Wildberries, nmId
createdDate string Дата создания цвета
createdUser string Пользователь, создавший цвет
versionId integer Поле нужно передавать при изменении,для предотвращения одновременной перезаписи
clientId integer Идентификатор клиента
deleted boolean Признак удаления цвета
keywords string Ключевые слова - сейчас не используется, перенесены в модель
wildberriesRating number Рейтинг карточки на Вайлдбериз
wildberriesFeedbacks integer Количество отзывов на карточке на Вайлдбериз
wildberriesCardDoesNotOpen boolean Признак, что карточка не открывается на Вайлдбериз
wildberriesHasPhoto boolean Признак наличия фото на Wildberries
organizationId integer Организация карточки
params string JSON со значениями параметров цвета
values Array of ParamValue Значения параметров карточки. Отдаются при запросе модели, если передать params=true
Структура ParamValue
Поле Тип Описание
viewSourceId integer Оригинал цвета по SKU
sizes Array of Product Список размеров для цвета
Структура Product
Поле Тип Описание
hasChanges boolean Признак изменения информации о цвете и необходимости его обновить
viewWbArticle ProductView Цвет товара
viewVersionId integer
suzId string GTIN товара
cisType string Тип в национальном каталоге
notChangedStock integer Количество дней, в течении которых не менялся остаток товара
nationalCatalogFeedId integer Идентификатор создания карточки в национальном каталоге
wildberriesStatus string Статус создания карточки товара в Вайлдбериз
wildberriesMessage string Ошибка создания карточки товара в Вайлдбериз
wildberriesMessageParams string JSON параметров ошибки создания карточки товара в Вайлдбериз
nationalCatalogStatus string Статус создания карточки товара в Национальном каталоге
nationalCatalogGoodId integer Идентификатор товара в национальном каталоге
nationalCatalogMessage string Ошибка создания карточки товара в Национальном каталоге
nationalCatalogMessageParams string Параметры ошибки создания карточки товара в Национальном каталоге
ozonStatus string Статус создания карточки товара в Озон
ozonMessage string Ошибка создания карточки товара в Озон
ozonMessageParams string JSON параметры ошибки создания карточки товара в Озон
ozonTaskId integer Идентификатор задания по обновления или созданию карточки в Озон
wildberriesFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке WB по FBS за 2 недели
ozonFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке на Ozon по FBS за 2 недели
ymarketFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке на Яндекс Маркете по FBS за 2 недели
totalSupplyingQuantity integer Кол-во заказанных товаров на данной карточке за 2 недели
skuId integer Идентификатор единицы хранения товара на складе. Проставляется автоматически
sku Sku Stock Keeping Unit - Единица хранения товара на складе. Может быть связана с несколькими карточками товаров Product.id. При первом создании товара SKU создается автоматически, далее можно привязать несколько товаров - имеющих разный бренд/организацию на маркетплейсах к одному SKU.
Структура Sku
Поле Тип Описание
id integer
product Product Товар - уникальный с точки зрения подтребительских свойств товар.
productId integer
barcodes Array of ProductBarcode Штрих-коды товара
Структура ProductBarcode
Поле Тип Описание
id integer
barcode string
organizationId integer Организация, если client.barcodeUniqForOrg = false, то проставляется 0. Поле включено в уникальный ключ
clientId integer
productId integer
useInWildberries boolean Применим ли данный штрих-код для Вайлдбериз
useInOzon boolean Применим ли данный штрих-код для Озон
useInYandexMarket boolean Применим ли данный штрих-код для Yandex.Market
useInAliexpress boolean Применим ли данный штрих-код для Aliexpress
useInSberMegamarket boolean Применим ли данный штрих-код для Sber.MegaMarket
format string
params string JSON значений параметров для данного размера/характеристик
values Array of ParamValue Значения параметров карточки. Отдаются при запросе модели, если передать params=true
Структура ParamValue
Поле Тип Описание
paramId Обязательный integer Идентификатор параметра
paramName string Название параметра, для тех, у кого нет ID
option Option Значение перечислимого параметра
doubleValue number Числовое значение параметра
longValue integer Целочисленное значение параметра
booleanValue boolean Булево значение параметра
stringValue string Строковое значение параметра
dateValue string Значение параметра даты
service string Сервис
unit Unit Единица измерения
auto boolean Автоматически проставленное значение параметра
created integer Дата заполнения параметра
user string Пользователь, который заполнил параметр
group object Группа карточек. Используется на списке товаров, чтобы объединить разные размеры в одну строку
duplicates Array of Product Дубликаты карточки по остаткам. Отдаются только на списке товаров, если включена галочка Объединять дубликаты
Структура Product
Поле Тип Описание
id integer Идентификатор товара. Проставляется автоматически
productType string Тип товара
name Обязательный string Наименование товара внутреннее
deleted boolean Признак удаления товара
printName string Название товара для внешних сервисов. Если не задано, проставляется равным наименованию товара
realSize string Российский размер товара для одежды или характеристики для других категорий
vendorSize string Размер производителя или характеристики производителя. Не обязательно заполнять
size string Размер для одежды или характеристики для внешних сервисов. Должен быть уникальным в рамках цвета
wildberriesImtId integer Используется для категорий, у которых не предусмотрен размер
wildberriesStockCount integer Остатки товара на Вайлдбериз
ozonId integer Идентификатор товара Озон на сайте. SKU в озон
ozonRealFbs boolean Признак использования RealFbs для товара
ozonProductId integer Идентификатор товара Озон в кабинете API
wildberriesSizeId integer Идентификатор размера на Вайлдбериз
simalandId integer Уникальный идентификатор товара для Simaland
ozonArticle string Уникальный артикул товара для озон. Offer ID в озон
externalArticle string Уникальный артикул товара для стороннего сервиса
ozonStockCount integer Остаток товара на складах Озон
ozonStockBetweenWarehouses integer Остаток товара в Озон, которые перемещаются между складами
removeFbsStock boolean Не выгружать остатки товара на маркетплейсы
purchaseCurrency string Валюта закупочной цены товара
purchasePriceInCurrency number Цена закупки в валюте
deliveryCostInCurrency number Цена на доставку в валюте
versionId integer Поле нужно передавать при изменении,для предотвращения одновременной перезаписи
createdDate string Дата создания товара на МП
created string Дата создания товара в SelSup
createdUser string Пользователь, который создал товар
sourceIncomeItemId integer Идентификатор товара из заказа поставщика по данным которого был создан товар
sourceProductId integer Идентификатор товара, который копировали
ozonRequiredStock integer Расчитанное количество товара, для поставки на склад Озон
wildberriesRequiredStock integer Расчитанное количество товара, для поставки на склад Wildberries
wildberriesProfit number Профит с продажи товара на Вайлдбериз по FBM
wildberriesProfitFbs number Профит с продажи товара на Вайлдбериз по FBS
wildberriesOrderQuantity integer Количество заказов по FBO товара на Вайлдбериз за 2 недели
wildberriesSupplyingQuantity integer Поставляемое количество товара на Вайлдбериз по FBM заказам
wildberriesQuantityInWayToClient integer Поставляемое количество товара на Вайлдбериз по FBM заказам к клиенту
wildberriesQuantityInWayFromClient integer Поставляемое количество товара на Вайлдбериз по FBM заказам от клиента
wildberriesSaleQuantity integer Продажи товара на Вайлдбериз по FBM за 2 недели
wildberriesQuantityInWay integer Количество товаров на Вайлдбериз в пути
wildberriesNoSale boolean Признак неликвидного товара на Вайлдбериз
lastStockChange string Дата последнего изменения стока на Вайлдбериз по FBM
ozonOrderQuantity integer Количество заказов товара по FBO на Озон по FBM и FBS за 2 недели
ozonSupplyingQuantity integer Поставляемое количество товара на Озон по FBM
ozonProfit integer Чистая маржа продажи товара на Озон по FBM
instockQuantity integer Остатки товара на складах клиента
calculatedInStockQuantity integer Рассчитанный остаток
ozonFbsSku integer Идентификатор товара в Озон по FBS
ozonFboSku integer Идентификатор товара в Озон по FBO
sellerSku string Идентификатор товара на Amazon
clientId integer Идентификатор клиента
organizationId Обязательный integer Идентификатор организации
productViewId integer Идентификатор цвета
view object Цвет товара
suzId string GTIN товара
cisType string Тип в национальном каталоге
notChangedStock integer Количество дней, в течении которых не менялся остаток товара
nationalCatalogFeedId integer Идентификатор создания карточки в национальном каталоге
wildberriesStatus string Статус создания карточки товара в Вайлдбериз
wildberriesMessage string Ошибка создания карточки товара в Вайлдбериз
wildberriesMessageParams string JSON параметров ошибки создания карточки товара в Вайлдбериз
nationalCatalogStatus string Статус создания карточки товара в Национальном каталоге
nationalCatalogGoodId integer Идентификатор товара в национальном каталоге
nationalCatalogMessage string Ошибка создания карточки товара в Национальном каталоге
nationalCatalogMessageParams string Параметры ошибки создания карточки товара в Национальном каталоге
ozonStatus string Статус создания карточки товара в Озон
ozonMessage string Ошибка создания карточки товара в Озон
ozonMessageParams string JSON параметры ошибки создания карточки товара в Озон
ozonTaskId integer Идентификатор задания по обновления или созданию карточки в Озон
wildberriesFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке WB по FBS за 2 недели
ozonFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке на Ozon по FBS за 2 недели
ymarketFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке на Яндекс Маркете по FBS за 2 недели
totalSupplyingQuantity integer Кол-во заказанных товаров на данной карточке за 2 недели
skuId integer Идентификатор единицы хранения товара на складе. Проставляется автоматически
sku object Stock Keeping Unit - Единица хранения товара на складе. Может быть связана с несколькими карточками товаров Product.id. При первом создании товара SKU создается автоматически, далее можно привязать несколько товаров - имеющих разный бренд/организацию на маркетплейсах к одному SKU.
barcodes Array of object Штрих-коды товара
Структура object
Поле Тип Описание
params string JSON значений параметров для данного размера/характеристик
values Array of object Значения параметров карточки. Отдаются при запросе модели, если передать params=true
Структура object
Поле Тип Описание
group object Группа карточек. Используется на списке товаров, чтобы объединить разные размеры в одну строку
duplicates Array of object Дубликаты карточки по остаткам. Отдаются только на списке товаров, если включена галочка Объединять дубликаты
Структура object
Поле Тип Описание
hasChanges boolean Признак наличия изменений в товаре и ее нужно обновить при сохранении
ignoreDuplicate boolean Признак игнорирования дубликатов при создании
yandexMarketSku integer Идентификатор карточки товара на Yandex.Market
yandexMarketStockCount integer Остаток товара на складах Yandex.Market
yandexMarketProductId integer Идентификатор карточки товара на Yandex.Market
yandexMarketShopSku string SKU товара на Yandex.Market
groupId integer ID групповой карточки
yandexMarketStatus string Статус создания карточки товара на яндекс маркет
yandexMarketMessage string Сообщение при ошибке создания карточки товара на яндекс маркет
yandexMarketMessageParams string Параметры сообщения при создании товара в Яндекс.Маркет
sberArticle string Артикул товара на СберМегаМаркет
siteArticle string артикул товара на сайте
siteId string айди товара на сайте
leroyMerlinArticle string Артикул товара на Леруа Мерлен
ebayArticle string Артикул товара на Ebay
lamodaArticle string Артикул товара на Lamoda
lamodaSku string SKU товара на Lamoda
leroyMerlinId string Номер карточки на Леруа Мерлен
duplicate boolean Признак, что карточка является дубликатом. Отдается не для всех методов
ozonHasPhoto boolean Признак наличия фото на Ozon
aliexpressSku string SKU на Aliexpress
aliexpressStatus string Статус создания товара на Aliexpress
aliexpressMessage string Сообщение при создании товара на Aliexpress
aliexpressMessageParams string Параметры сообщения при создании товара на Aliexpress
moySkladId string ID товара в сервисе Мой Склад
moySkladType string Тип товара в сервисе Мой Склад
avitoId integer ID товара в сервисе Avito
moySkladLinkId string ID для ссылки на Мой Склад
moySkladStatus string Статус создания карточки товара в МойСклад
avitoStatus string Статус обьявления на Авито
moySkladMessage string Ошибка создания карточки товара в МойСклад
moySkladMessageParams string Параметры ошибки создания карточки товара в МойСклад
oneCId string Идентификатор товара в 1С
removeFbsStockOzon boolean Не передавать остатки товара по FBS на озон
removeFbsStockWb boolean Не передавать остатки товара по FBS на Wildberries
removeFbsStockAli boolean Не передавать остатки товара по FBS на Aliepress
removeFbsStockYm boolean Не передавать остатки товара по FBS на Яндекс.Маркет
removeFbsStockSber boolean Не передавать остатки товара по FBS на СберМегаМаркет
quantity integer Количество товара в заказах. Возвращается только в методах income/getProductsFromOrders или wms/findStock
incomeQuantity integer Количество товара в закупке без разделения по маркетплейсам
orderMinDate string Минимальная дата заказа. Возвращается только в методах income/getProductsFromOrders
expiredDate string Cрок годности товара - возвращается только в методах, wms/findStock
productionDate string Дата производства
stock integer Остаток товара на определенном складе - возвращается только в методах, wms/fetchStock
stocks object Остатки товара на складах - возвращается только в методах, wms/fetchStock
cell object Ячейка хранения товара на складе, в которой может храниться один или несколько товаров
reserved integer Остаток товара на определенном складе - возвращается только в методах, wms/fetchStock
calculatedStock integer Остаток наборов на определенном складе - возвращается только в методах, wms/fetchStock, product/findProduct, supply/findProductForOrder
price number Розничная цена товара
updatedPrice number Новая общая цена товара со скидкой. Только для методов обновления цены
priceWithoutDiscount number Розничная цена товара без учета скидки
updatedPriceWithoutDiscount number Измененная розничная цена товара без учета скидки. Принимается только в методах обновления цены
updatedDeliveryCost number Измененные прочие расходы товара Принимается только в методах обновления цены
updatedPurchasePrice number Измененная закупочная цена товара Принимается только в методах обновления цены
purchasePrice number Закупочная цена товара в руб.
isPurchasePriceUpdated boolean Признак, была ли изменена закупочная цена
isDeliveryCostUpdated boolean Признак, изменения прочих расходов на товар.
wholesalePrice number Оптовая цена товара
deliveryCost number Дополнительные расходы на доставку товара в руб. Добавляются к закупочной цене
strategyId integer Идентификатор стратегии ценообразования
ozonAverageExpenses number Расходы по продаже товара на Ozon
wildberriesAverageExpenses number Расходы по продаже товара на Wildberries
yandexMarketAverageExpenses number Расходы по продаже товара на ЯМ
wildberriesPrice number Текущая цена товара на Вайлдбериз со скидкой
wildberriesUpdatedPrice number Новая цена товара на Вайлдбериз со скидкиой.Только для методов изменения цены
wildberriesPriceWithoutDiscount number Текущая цена товара на Вайлдбериз без скидки
wildberriesUpdatedPriceWithoutDiscount number Новая цена товара на Вайлдбериз без скидки.Только для методов изменения цены
wildberriesSale integer Скидка товара на Вайлдбериз
aliexpressPrice number Текущая цена на Aliexpress со скидкой
aliexpressPriceWithoutDiscount number Текущая цена на Aliexpress без скидки.
aliexpressUpdatedPrice number Новая цена со скидкой на Aliexpress. Только для методов обновления цены
aliexpressUpdatedPriceWithoutDiscount number Новая цена без скидки на Aliexpress. Только для методов обновления цены
minPrice number Минимальная цена товара. Ниже этой цены нельзя выставлять цену на товар.Используется для Ozon при участии товара в акциях
ozonPrice number Текущая цена товара на Озон со скидкой
ozonPromotionPrice number Текущая акционная цена товара на Озон
ozonUpdatedPrice number Новая цена товара на Озон со скидкой.Только для методов изменения цены
ozonPriceWithoutDiscount number Текущая цена товара на Озон без скидки.
ozonUpdatedPriceWithoutDiscount number Новая цена Озон без скидки.Только для методов изменения цены
ozonAcquiringPercent number Максимальная комиссия за эквайринг OZON
leroyMerlinPrice number Текущая цена товара на LeroyMerlin
leroyMerlinUpdatedPrice number Новая цена товара на LeroyMerlin.Только для методов изменения цены
avitoPrice number Текущая цена товара на Avito
avitoUpdatedPrice number Новая цена товара на Avito.Только для методов изменения цены
ozonComisson number Комиссия товара на Озон FBM
sberMegaMarketPrice number Текущая цена на СберМегаМаркет со скидкой
sberMegaMarketUpdatedPrice number Новая цена со скидкой на СберМегаМаркет. Только для методов изменения цены
sberMegaMarketSupplyingQuantity integer Поставляемое количество товара на СберМегаМаркет по FBM заказам
yandexMarketPrice number Текущая цена на Яндекс.Маркет со скидкой
yandexMarketPriceWithoutDiscount number Текущая цена на Яндекс.Маркет без скидки
yandexMarketUpdatedPrice number Новая цена со скидкой на Яндекс.Маркет. Только для методов изменения цены
yandexMarketUpdatedPriceWithoutDiscount number Новая цена без скидки на Яндекс.Маркет. Только для методов изменения цены
yandexMarketSupplyingQuantity integer Поставляемое количество товара на Яндекс.Маркет по FBM заказам
oneCArticle string Уникальный артикул товара для 1c
salesExpensesOnMpPercent number Расходы по продажам на маркетплейсе, %
taxeRate number Установленый процент налога на товар, %
desiredMarginalityPercent number Желаемый % маржинальности
desiredProfitRub number Желаемая прибыль, руб.
additionalCost number Доп. расходы на товар без записи в Финансовую аналитику, руб.
sberMegaMarketId integer Карточка СберМегаМаркет
packWidth integer Ширина в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packHeight integer Высота в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packDepth integer Длина/глубина в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packWeight integer Вес в упаковке гр. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
numOfPiecesInBox integer Количество штук в коробе
lastWildberriesSaleDate string Дата последней продажи на Wildberries
lastWildberriesOrderDate string Дата последнего заказа на Wildberries
lastOzonSaleDate string Дата последней продажи на OZON
lastOzonOrderDate string Дата последнего заказа на OZON
totalOrdersCount integer Кол-во заказанных товаров на данной карточке по МП OZON + WB
totalFbsOrdersCount integer Кол-во заказанных товаров на данной карточке по FBS за 2 недели
wildberriesTotalOrdersCount integer Кол-во заказанных товаров на данной карточке по МП WB
ignoreFbsWarehouses string Список идентификаторов складов маркетплейсов через запятую - на которые не отправлять остатки по FBS
fbsWarehouses string Список идентификаторов складов маркетплейсов через запятую - на которые не отправлять остатки по FBS
minFbsStock integer Минимальный остаток - если меньше, то ставим 0
maxFbsStock integer Максимальный остаток - если больше, то ставим его
wildberriesSaleLogistic number Логистика WB, руб.
wildberriesReturnLogistic number Обратная логистика WB, руб.
wildberriesWarehouseRatio number Коэффициент склада WB в %
wildberriesComission number Комиссия WB, %
ozonSaleLogistic number Логистика Ozon, руб.
ozonReturnLogistic number Обратная логистика Ozon, руб.
ozonCommission number Комиссия Ozon, %
maxDeliveryToPickupPoint number Максимальная стоимость доставки до места выдачи, руб.
ozonPurchasePercent number Процент выкупа Ozon, %
wildberriesPurchasePercent number Процент выкупа WB, %
minMarginality number Настройки репрайсера Min % маржинальности
maxMarginality number Настройки репрайсера Max % маржинальности
minProfit number Настройки репрайсера Min прибыль, руб.
maxProfit number Настройки репрайсера Max прибыль, руб.
minPriceWithDiscount number Настройки репрайсера Min цена со скидкой, руб.
maxPriceWithDiscount number Настройки репрайсера Max цена со скидкой, руб.
oldWildberriesPriceWithDiscount number При установки через репрайсер скидку, заполняется, после удаление скидки, возвращает как основная цена и значение затирается
oldWildberriesSale integer Скидка товара на Вайлдбериз до установки новой по репрайсеру, при возврате нужно проставлять null
wildberriesPromoProfit number Расчетный профит по акциям WB нужен для определения какая акция выгодная
wildberriesMarginality number Расчетная маржинальность по WB
wildberriesPromoId integer Идентификатор акции на ВБ
oldWildberriesPromoSalePercent number Расчетная маржинальность по WB
oldWildberriesPromoPriceWithDiscount number Расчетная маржинальность по WB
endWildberriesPriceWithSppConfig number Цена для пользователя конечная с СПП.
ozonFbsCommission number Комиссия ОЗОН ФБС
ozonFboCommission number Комиссия ОЗОН ФБО
wbTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по ВБ
ozonTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по OZON
sberTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по SBER
yandexTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по YANDEX
fboStockCount integer Остаток ФБО по выбранным складам/регионам
fbsStockCount integer Остаток ФБC для планирования поставок)
fboSupplyQuantity integer Количество поставляемого товара по выбранным складам/регионам
fboSales integer Кол-во продаж FBO по складам/регионам для планирования поставок
fbsSales integer Кол-во продаж FBS по складам/регионам для планирования поставок
fboOrders integer Кол-во заказов FBO по складам/регионам для планирования поставок
fbsOrders integer Кол-во заказов FBS по складам/регионам для планирования поставок
recommendPlan number Кол-во товара для добавления к заказу
skipDaysCount integer Кол-во пропущенных дней в учёте планирования поставок
organizationShortName string
contractorName string
supplyPlanBarcode string
planCorrectionFactor number Коэффициент коррекции для планирования поставок. На это значение умножается рассчитанное количество товара для поставки
orderBefore integer До какого времени должен быть сделан заказ от 1 до 24
daysBeforeSupply integer Кол-во дней до поставки. Через сколько дней с момента заказа ориентировочно будет поставка товаров
supplyPlanDays integer На сколько дней планировать остаток
warehouseIdForSupplyReport integer Id склада на который нужно поставить рассчитанные товары. Используется только в планировании поставок
warehouseNameForSupplyReport string Название склада на который нужно поставить рассчитанные товары. Используется только в планировании поставок
manager string Поле менеджера
cellId integer
percentForParticipationPromoOrAdvertising integer Закладываемый % для участия в акциях или рекламе
selsupLink string
tempId integer Временный id используется для быстрого импорта
category object Категория
walmartSku string SKU товара на Walmart
walmartId string Id товара на Walmart (WPID)
findirTips object Советы задачника (тип задачи - текст совета)
woocomSku string SKU товара на WooCommerce
woocomId integer Id товара на WooCommerce
commissions string JSON с комиссиями из разных маркетплейсов
lowStockAlerts string JSON для уведомлений о заканчивающихся остатках по маркетплейсов
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
calculatedInstockQuantity integer
emptyBarcodes boolean
site string
anyArticle string
anyLink string
hasChanges boolean Признак наличия изменений в товаре и ее нужно обновить при сохранении
ignoreDuplicate boolean Признак игнорирования дубликатов при создании
yandexMarketSku integer Идентификатор карточки товара на Yandex.Market
yandexMarketStockCount integer Остаток товара на складах Yandex.Market
yandexMarketProductId integer Идентификатор карточки товара на Yandex.Market
yandexMarketShopSku string SKU товара на Yandex.Market
groupId integer ID групповой карточки
yandexMarketStatus string Статус создания карточки товара на яндекс маркет
yandexMarketMessage string Сообщение при ошибке создания карточки товара на яндекс маркет
yandexMarketMessageParams string Параметры сообщения при создании товара в Яндекс.Маркет
sberArticle string Артикул товара на СберМегаМаркет
siteArticle string артикул товара на сайте
siteId string айди товара на сайте
leroyMerlinArticle string Артикул товара на Леруа Мерлен
ebayArticle string Артикул товара на Ebay
lamodaArticle string Артикул товара на Lamoda
lamodaSku string SKU товара на Lamoda
leroyMerlinId string Номер карточки на Леруа Мерлен
duplicate boolean Признак, что карточка является дубликатом. Отдается не для всех методов
ozonHasPhoto boolean Признак наличия фото на Ozon
aliexpressSku string SKU на Aliexpress
aliexpressStatus string Статус создания товара на Aliexpress
aliexpressMessage string Сообщение при создании товара на Aliexpress
aliexpressMessageParams string Параметры сообщения при создании товара на Aliexpress
moySkladId string ID товара в сервисе Мой Склад
moySkladType string Тип товара в сервисе Мой Склад
avitoId integer ID товара в сервисе Avito
moySkladLinkId string ID для ссылки на Мой Склад
moySkladStatus string Статус создания карточки товара в МойСклад
avitoStatus string Статус обьявления на Авито
moySkladMessage string Ошибка создания карточки товара в МойСклад
moySkladMessageParams string Параметры ошибки создания карточки товара в МойСклад
oneCId string Идентификатор товара в 1С
removeFbsStockOzon boolean Не передавать остатки товара по FBS на озон
removeFbsStockWb boolean Не передавать остатки товара по FBS на Wildberries
removeFbsStockAli boolean Не передавать остатки товара по FBS на Aliepress
removeFbsStockYm boolean Не передавать остатки товара по FBS на Яндекс.Маркет
removeFbsStockSber boolean Не передавать остатки товара по FBS на СберМегаМаркет
quantity integer Количество товара в заказах. Возвращается только в методах income/getProductsFromOrders или wms/findStock
incomeQuantity integer Количество товара в закупке без разделения по маркетплейсам
orderMinDate string Минимальная дата заказа. Возвращается только в методах income/getProductsFromOrders
expiredDate string Cрок годности товара - возвращается только в методах, wms/findStock
productionDate string Дата производства
stock integer Остаток товара на определенном складе - возвращается только в методах, wms/fetchStock
stocks object Остатки товара на складах - возвращается только в методах, wms/fetchStock
cell Cell Ячейка хранения товара на складе, в которой может храниться один или несколько товаров
Структура Cell
Поле Тип Описание
id integer Идентификатор ячейки
warehouseId integer Склад к которому относится ячейка
passageId integer Проход на складе, к которому относится ячейка. Может соджержать название этажа и пр
shelfId integer Полка стеллажа, к которой относится ячейка
rackId integer Стеллаж, к которому относится ячейка
name string Название ячейки. По умолчанию формируется автоматически
fullName string Полное название ячейки из названий прохода, стелажа, полки и ячейки
sortName string Название для сортировки ячейки из названий прохода, стелажа, полки и ячейки
barcode string Уникальный в рамках клиента штрих-код ячейки для идентификации ячейки с помощью сканера штрих-кода. Присваивается автоматически при создании ячейки
deleted boolean Признак того, что ячейка удалена
width integer Ширина ячейки для определения товаров, которые можно положить в нее
height integer Высота ячейки для определения товаров, которые можно положить в нее
depth integer Глубина ячейки для определения товаров, которые можно положить в нее
clientId integer Клиент которому принадлежит ячейка. Проставляется автоматически
lastInventoryId integer Идентификатор последней инвентаризации
type string Тип ячейки: NORMAL, NO_PLACE - не разложенные, REFUND - для возвратов
reserved integer Остаток товара на определенном складе - возвращается только в методах, wms/fetchStock
calculatedStock integer Остаток наборов на определенном складе - возвращается только в методах, wms/fetchStock, product/findProduct, supply/findProductForOrder
price number Розничная цена товара
updatedPrice number Новая общая цена товара со скидкой. Только для методов обновления цены
priceWithoutDiscount number Розничная цена товара без учета скидки
updatedPriceWithoutDiscount number Измененная розничная цена товара без учета скидки. Принимается только в методах обновления цены
updatedDeliveryCost number Измененные прочие расходы товара Принимается только в методах обновления цены
updatedPurchasePrice number Измененная закупочная цена товара Принимается только в методах обновления цены
purchasePrice number Закупочная цена товара в руб.
isPurchasePriceUpdated boolean Признак, была ли изменена закупочная цена
isDeliveryCostUpdated boolean Признак, изменения прочих расходов на товар.
wholesalePrice number Оптовая цена товара
deliveryCost number Дополнительные расходы на доставку товара в руб. Добавляются к закупочной цене
strategyId integer Идентификатор стратегии ценообразования
ozonAverageExpenses number Расходы по продаже товара на Ozon
wildberriesAverageExpenses number Расходы по продаже товара на Wildberries
yandexMarketAverageExpenses number Расходы по продаже товара на ЯМ
wildberriesPrice number Текущая цена товара на Вайлдбериз со скидкой
wildberriesUpdatedPrice number Новая цена товара на Вайлдбериз со скидкиой.Только для методов изменения цены
wildberriesPriceWithoutDiscount number Текущая цена товара на Вайлдбериз без скидки
wildberriesUpdatedPriceWithoutDiscount number Новая цена товара на Вайлдбериз без скидки.Только для методов изменения цены
wildberriesSale integer Скидка товара на Вайлдбериз
aliexpressPrice number Текущая цена на Aliexpress со скидкой
aliexpressPriceWithoutDiscount number Текущая цена на Aliexpress без скидки.
aliexpressUpdatedPrice number Новая цена со скидкой на Aliexpress. Только для методов обновления цены
aliexpressUpdatedPriceWithoutDiscount number Новая цена без скидки на Aliexpress. Только для методов обновления цены
minPrice number Минимальная цена товара. Ниже этой цены нельзя выставлять цену на товар.Используется для Ozon при участии товара в акциях
ozonPrice number Текущая цена товара на Озон со скидкой
ozonPromotionPrice number Текущая акционная цена товара на Озон
ozonUpdatedPrice number Новая цена товара на Озон со скидкой.Только для методов изменения цены
ozonPriceWithoutDiscount number Текущая цена товара на Озон без скидки.
ozonUpdatedPriceWithoutDiscount number Новая цена Озон без скидки.Только для методов изменения цены
ozonAcquiringPercent number Максимальная комиссия за эквайринг OZON
leroyMerlinPrice number Текущая цена товара на LeroyMerlin
leroyMerlinUpdatedPrice number Новая цена товара на LeroyMerlin.Только для методов изменения цены
avitoPrice number Текущая цена товара на Avito
avitoUpdatedPrice number Новая цена товара на Avito.Только для методов изменения цены
ozonComisson number Комиссия товара на Озон FBM
sberMegaMarketPrice number Текущая цена на СберМегаМаркет со скидкой
sberMegaMarketUpdatedPrice number Новая цена со скидкой на СберМегаМаркет. Только для методов изменения цены
sberMegaMarketSupplyingQuantity integer Поставляемое количество товара на СберМегаМаркет по FBM заказам
yandexMarketPrice number Текущая цена на Яндекс.Маркет со скидкой
yandexMarketPriceWithoutDiscount number Текущая цена на Яндекс.Маркет без скидки
yandexMarketUpdatedPrice number Новая цена со скидкой на Яндекс.Маркет. Только для методов изменения цены
yandexMarketUpdatedPriceWithoutDiscount number Новая цена без скидки на Яндекс.Маркет. Только для методов изменения цены
yandexMarketSupplyingQuantity integer Поставляемое количество товара на Яндекс.Маркет по FBM заказам
oneCArticle string Уникальный артикул товара для 1c
salesExpensesOnMpPercent number Расходы по продажам на маркетплейсе, %
taxeRate number Установленый процент налога на товар, %
desiredMarginalityPercent number Желаемый % маржинальности
desiredProfitRub number Желаемая прибыль, руб.
additionalCost number Доп. расходы на товар без записи в Финансовую аналитику, руб.
sberMegaMarketId integer Карточка СберМегаМаркет
packWidth integer Ширина в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packHeight integer Высота в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packDepth integer Длина/глубина в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packWeight integer Вес в упаковке гр. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
numOfPiecesInBox integer Количество штук в коробе
lastWildberriesSaleDate string Дата последней продажи на Wildberries
lastWildberriesOrderDate string Дата последнего заказа на Wildberries
lastOzonSaleDate string Дата последней продажи на OZON
lastOzonOrderDate string Дата последнего заказа на OZON
totalOrdersCount integer Кол-во заказанных товаров на данной карточке по МП OZON + WB
totalFbsOrdersCount integer Кол-во заказанных товаров на данной карточке по FBS за 2 недели
wildberriesTotalOrdersCount integer Кол-во заказанных товаров на данной карточке по МП WB
ignoreFbsWarehouses string Список идентификаторов складов маркетплейсов через запятую - на которые не отправлять остатки по FBS
fbsWarehouses string Список идентификаторов складов маркетплейсов через запятую - на которые не отправлять остатки по FBS
minFbsStock integer Минимальный остаток - если меньше, то ставим 0
maxFbsStock integer Максимальный остаток - если больше, то ставим его
wildberriesSaleLogistic number Логистика WB, руб.
wildberriesReturnLogistic number Обратная логистика WB, руб.
wildberriesWarehouseRatio number Коэффициент склада WB в %
wildberriesComission number Комиссия WB, %
ozonSaleLogistic number Логистика Ozon, руб.
ozonReturnLogistic number Обратная логистика Ozon, руб.
ozonCommission number Комиссия Ozon, %
maxDeliveryToPickupPoint number Максимальная стоимость доставки до места выдачи, руб.
ozonPurchasePercent number Процент выкупа Ozon, %
wildberriesPurchasePercent number Процент выкупа WB, %
minMarginality number Настройки репрайсера Min % маржинальности
maxMarginality number Настройки репрайсера Max % маржинальности
minProfit number Настройки репрайсера Min прибыль, руб.
maxProfit number Настройки репрайсера Max прибыль, руб.
minPriceWithDiscount number Настройки репрайсера Min цена со скидкой, руб.
maxPriceWithDiscount number Настройки репрайсера Max цена со скидкой, руб.
oldWildberriesPriceWithDiscount number При установки через репрайсер скидку, заполняется, после удаление скидки, возвращает как основная цена и значение затирается
oldWildberriesSale integer Скидка товара на Вайлдбериз до установки новой по репрайсеру, при возврате нужно проставлять null
wildberriesPromoProfit number Расчетный профит по акциям WB нужен для определения какая акция выгодная
wildberriesMarginality number Расчетная маржинальность по WB
wildberriesPromoId integer Идентификатор акции на ВБ
oldWildberriesPromoSalePercent number Расчетная маржинальность по WB
oldWildberriesPromoPriceWithDiscount number Расчетная маржинальность по WB
endWildberriesPriceWithSppConfig number Цена для пользователя конечная с СПП.
ozonFbsCommission number Комиссия ОЗОН ФБС
ozonFboCommission number Комиссия ОЗОН ФБО
wbTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по ВБ
ozonTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по OZON
sberTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по SBER
yandexTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по YANDEX
fboStockCount integer Остаток ФБО по выбранным складам/регионам
fbsStockCount integer Остаток ФБC для планирования поставок)
fboSupplyQuantity integer Количество поставляемого товара по выбранным складам/регионам
fboSales integer Кол-во продаж FBO по складам/регионам для планирования поставок
fbsSales integer Кол-во продаж FBS по складам/регионам для планирования поставок
fboOrders integer Кол-во заказов FBO по складам/регионам для планирования поставок
fbsOrders integer Кол-во заказов FBS по складам/регионам для планирования поставок
recommendPlan number Кол-во товара для добавления к заказу
skipDaysCount integer Кол-во пропущенных дней в учёте планирования поставок
organizationShortName string
contractorName string
supplyPlanBarcode string
planCorrectionFactor number Коэффициент коррекции для планирования поставок. На это значение умножается рассчитанное количество товара для поставки
orderBefore integer До какого времени должен быть сделан заказ от 1 до 24
daysBeforeSupply integer Кол-во дней до поставки. Через сколько дней с момента заказа ориентировочно будет поставка товаров
supplyPlanDays integer На сколько дней планировать остаток
warehouseIdForSupplyReport integer Id склада на который нужно поставить рассчитанные товары. Используется только в планировании поставок
warehouseNameForSupplyReport string Название склада на который нужно поставить рассчитанные товары. Используется только в планировании поставок
manager string Поле менеджера
cellId integer
percentForParticipationPromoOrAdvertising integer Закладываемый % для участия в акциях или рекламе
selsupLink string
tempId integer Временный id используется для быстрого импорта
category Category Категория
Структура Category
Поле Тип Описание
categoryId integer Идентификатор категории. Проставляется автоматически
name string Наименование категории
deleted boolean Признак удаленных категорий
parentId integer Идентификатор родительской категории
clientId integer Идентификатор клиента
marked boolean Маркируется ли категория
categoryClass string Группы категорий Честного знака
wildberriesType WildberriesType Предмет Вайлдбериз
wildberriesCategoryId integer Идентификатор категории Wildberries, совпадает с ID категории на самом Wildberries
wildberriesFbmCommission number Комиссия по тарифу FBM
wildberriesFbwCommission number Комиссия по тарифу FBW
wildberriesFbsCommission number Комиссия по тарифу FBS
wildberriesDbsCommission number Комиссия по тарифу DBS
wildberriesEdbsCommission number Комиссия по тарифу EDBS
wildberriesCAndCCommission number Комиссия по тарифу C&C
wildberriesBookingCommission number Комиссия за бронирование
ozonDescriptionCategoryId integer Идентификатор категории на Ozon. Строится из ID категории + ID типа на Ozon
yandexMarketCategoryId integer Идентификатор категории в Яндекс.Маркет. Совпадает с идентификатором категории на самом Яндекс.Маркет
yandexMarketCategory YandexMarketCategory Категория Яндекс.Маркета
ozonDescriptionCategory OzonDescriptionCategory Категория Озон
ozonCommission number Комиссия озона.
tnved Tnved Код ТНВЭД
tnvedId integer Идентификатор ТНВЭД
laundry string Правила ухода за вещами. Разделяются запятыми
params string JSON значений параметров для категории
namePattern string Шаблон названий категории
aliexpressCategory AliexpressCategory Категория Aliexpress
aliexpressCategoryId integer Идентификатор категории на самом Aliexpress
avitoCategory AvitoCategory Категория Авито
avitoCategoryId integer Идентификатор категории на самом Avito
packDepth integer Глубина упаковки в мм. Проставляется всем товарам в категории
packWidth integer Ширина упаковки в мм. Проставляется всем товарам в категории
packHeight integer Высота упаковки в мм. Проставляется всем товарам в категории
packWeight integer Вес упаковки в граммах. Проставляется всем товарам в категории
hasSize boolean Признак разделения товаров в категории по размеру. Меняет вид редактора карточки
hasColor boolean Признак разделения товаров в категории по цвету. Меняет вид редактора карточки
autoName boolean Автоматически формировать названия товаров в категории
removeFbsStock boolean Не передавать остатки товаров по FBS для товаров из этой категории
oneCId string Идентификатор категории в 1С
externalId string Идентификатор категории на сайте
moySkladId string Идентификатор категории в сервисе МойСклад
useClientParams boolean Показывать пользовательские параметры в категории
requiredExpirationDate boolean Является ли срок годности обязательным параметром
walmartSku string SKU товара на Walmart
walmartId string Id товара на Walmart (WPID)
findirTips object Советы задачника (тип задачи - текст совета)
woocomSku string SKU товара на WooCommerce
woocomId integer Id товара на WooCommerce
commissions string JSON с комиссиями из разных маркетплейсов
lowStockAlerts string JSON для уведомлений о заканчивающихся остатках по маркетплейсов
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
calculatedInstockQuantity integer
emptyBarcodes boolean
site string
anyArticle string
anyLink string
article string Артикул
warehouseStocks Array of WarehouseStock Остатки по складам
Структура WarehouseStock
Поле Тип Описание
warehouseName string
warehouseRegion string
stockCount integer
warehouseFboStocksJson string Подготовленные остатки по складам JSON
dateTruncated string Дата отчета для отображения на фронте
period string Тип отчета - дневной или месячный
serviceId integer

Тело ответа

✓ 200 OK
Тип: object
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const response = await axios.put('https://api.selsup.ru/api/stat/productHandOnPulse',
  [
    {
      "id": "Иванович",
      "clientId": 123,
      "productId": 123,
      "service": "NONE",
      "organizationId": "АО \"Торговый дом\"",
      "productViewId": 123,
      "productModelId": 123,
      "date": "2024-01-15",
      "profitFact": 1,
      "profitPlan": 1
    }
  ],
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

const response = await axios.put<any>('https://api.selsup.ru/api/stat/productHandOnPulse',
  [
    {
      "id": "Иванович",
      "clientId": 123,
      "productId": 123,
      "service": "NONE",
      "organizationId": "АО \"Торговый дом\"",
      "productViewId": 123,
      "productModelId": 123,
      "date": "2024-01-15",
      "profitFact": 1,
      "profitPlan": 1
    }
  ],
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

response = requests.put(
    'https://api.selsup.ru/api/stat/productHandOnPulse',
    headers=headers,
    json=[
    {
        'id': 'Иванович',
        'clientId': 123,
        'productId': 123,
        'service': 'NONE',
        'organizationId': 'АО \'Торговый дом\'',
        'productViewId': 123,
        'productModelId': 123,
        'date': '2024-01-15',
        'profitFact': 1,
        'profitPlan': 1
    }
]
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    payload := map[string]interface{}[
        {
                `id`: `Иванович`,
                `clientId`: 123,
                `productId`: 123,
                `service`: `NONE`,
                `organizationId`: `АО \`Торговый дом\``,
                `productViewId`: 123,
                `productModelId`: 123,
                `date`: `2024-01-15`,
                `profitFact`: 1,
                `profitPlan`: 1
        }
]
    jsonData, _ := json.Marshal(payload)

    req, _ := http.NewRequest("put", "https://api.selsup.ru/api/stat/productHandOnPulse", bytes.NewBuffer(jsonData))
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/productHandOnPulse"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .put(HttpRequest.BodyPublishers.ofString(
        "[{\"id\":\"Иванович\",\"clientId\":123,\"productId\":123,\"service\":\"NONE\",\"organizationId\":\"АО \\"Торговый дом\\"\",\"productViewId\":123,\"productModelId\":123,\"date\":\"2024-01-15\",\"profitFact\":1,\"profitPlan\":1}]"
    ))
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.selsup.ru/api/stat/productHandOnPulse',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'put',
    CURLOPT_POSTFIELDS => json_encode([
    {
        'id': 'Иванович',
        'clientId': 123,
        'productId': 123,
        'service': 'NONE',
        'organizationId': 'АО \'Торговый дом\'',
        'productViewId': 123,
        'productModelId': 123,
        'date': '2024-01-15',
        'profitFact': 1,
        'profitPlan': 1
    }
]),
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X put \
  'https://api.selsup.ru/api/stat/productHandOnPulse' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '[
  {
    "id": "Иванович",
    "clientId": 123,
    "productId": 123,
    "service": "NONE",
    "organizationId": "АО \"Торговый дом\"",
    "productViewId": 123,
    "productModelId": 123,
    "date": "2024-01-15",
    "profitFact": 1,
    "profitPlan": 1
  }
]'

🔗 Сохранить план продаж

Метод сохраняет план продаж
POST /api/stat/updateSalePlanReport

Тело запроса *Обязательно

Content-Type: application/json
Массив из: PlanSales
Структура элемента:
ПолеТипОписание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
id integer
clientId integer
organizationId integer
date string
categoryId integer
viewId integer
productId integer
service string Сервис
planCount integer
planAmount number
totalCount integer
month string
year integer
week integer
factCount integer
factAmount number
dateFrom string Начало периода
dateTo string Конец периода
timeZone integer Тайм зона
period string Период WEEK, Month
serviceId integer
factAmountInPercent number Выполнение плана в процентах

Тело ответа

✓ 200 OK
Content-Type: application/json
Тип ответа: PlanSales
Элементы массива
Поле Тип Описание
shortName string Нет Сокращенное название организации.
categoryName string Нет Название категории.
brandName string Нет Название бренда.
name string Нет Название товара
viewWildberriesId integer Нет Карточка Wildberries
article string Нет Артикул
serviceArticle string Нет Артикул на маркетплейсе
color string Нет Цвет товара.
size string Нет Размер товара.
barcode string Нет Шк товара.
purchasePrice number Нет Закупочная цена.
createdDate string Нет Дата создания карточки.
isDuplicate boolean Нет Признак дубликата карточки.
dateKey string Нет Ключ по дате.
id integer Нет
clientId integer Нет
organizationId integer Нет
date string Нет
categoryId integer Нет
viewId integer Нет
productId integer Нет
service string Нет Сервис
planCount integer Нет
planAmount number Нет
totalCount integer Нет
month string Нет
year integer Нет
week integer Нет
factCount integer Нет
factAmount number Нет
dateFrom string Нет Начало периода
dateTo string Нет Конец периода
timeZone integer Нет Тайм зона
period string Нет Период WEEK, Month
serviceId integer Нет
factAmountInPercent number Нет Выполнение плана в процентах
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const response = await axios.post('https://api.selsup.ru/api/stat/updateSalePlanReport',
  [
    {
      "shortName": "Название shortName",
      "categoryName": "Электроника",
      "brandName": "Бренд А",
      "name": "Иван",
      "viewWildberriesId": 123,
      "article": "ART-001",
      "serviceArticle": "ART-001",
      "color": "Пример color",
      "size": "Пример size",
      "barcode": "4600123456789"
    }
  ],
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

const response = await axios.post<any>('https://api.selsup.ru/api/stat/updateSalePlanReport',
  [
    {
      "shortName": "Название shortName",
      "categoryName": "Электроника",
      "brandName": "Бренд А",
      "name": "Иван",
      "viewWildberriesId": 123,
      "article": "ART-001",
      "serviceArticle": "ART-001",
      "color": "Пример color",
      "size": "Пример size",
      "barcode": "4600123456789"
    }
  ],
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

response = requests.post(
    'https://api.selsup.ru/api/stat/updateSalePlanReport',
    headers=headers,
    json=[
    {
        'shortName': 'Название shortName',
        'categoryName': 'Электроника',
        'brandName': 'Бренд А',
        'name': 'Иван',
        'viewWildberriesId': 123,
        'article': 'ART-001',
        'serviceArticle': 'ART-001',
        'color': 'Пример color',
        'size': 'Пример size',
        'barcode': '4600123456789'
    }
]
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    payload := map[string]interface{}[
        {
                `shortName`: `Название shortName`,
                `categoryName`: `Электроника`,
                `brandName`: `Бренд А`,
                `name`: `Иван`,
                `viewWildberriesId`: 123,
                `article`: `ART-001`,
                `serviceArticle`: `ART-001`,
                `color`: `Пример color`,
                `size`: `Пример size`,
                `barcode`: `4600123456789`
        }
]
    jsonData, _ := json.Marshal(payload)

    req, _ := http.NewRequest("post", "https://api.selsup.ru/api/stat/updateSalePlanReport", bytes.NewBuffer(jsonData))
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/updateSalePlanReport"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .post(HttpRequest.BodyPublishers.ofString(
        "[{\"shortName\":\"Название shortName\",\"categoryName\":\"Электроника\",\"brandName\":\"Бренд А\",\"name\":\"Иван\",\"viewWildberriesId\":123,\"article\":\"ART-001\",\"serviceArticle\":\"ART-001\",\"color\":\"Пример color\",\"size\":\"Пример size\",\"barcode\":\"4600123456789\"}]"
    ))
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.selsup.ru/api/stat/updateSalePlanReport',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'post',
    CURLOPT_POSTFIELDS => json_encode([
    {
        'shortName': 'Название shortName',
        'categoryName': 'Электроника',
        'brandName': 'Бренд А',
        'name': 'Иван',
        'viewWildberriesId': 123,
        'article': 'ART-001',
        'serviceArticle': 'ART-001',
        'color': 'Пример color',
        'size': 'Пример size',
        'barcode': '4600123456789'
    }
]),
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X post \
  'https://api.selsup.ru/api/stat/updateSalePlanReport' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '[
  {
    "shortName": "Название shortName",
    "categoryName": "Электроника",
    "brandName": "Бренд А",
    "name": "Иван",
    "viewWildberriesId": 123,
    "article": "ART-001",
    "serviceArticle": "ART-001",
    "color": "Пример color",
    "size": "Пример size",
    "barcode": "4600123456789"
  }
]'

🔗 Сохранить план продаж

Метод сохраняет план продаж
POST /api/stat/saveSalePlanReport

Тело запроса *Обязательно

Content-Type: application/json
Массив из: PlanSales
Структура элемента:
ПолеТипОписание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
id integer
clientId integer
organizationId integer
date string
categoryId integer
viewId integer
productId integer
service string Сервис
planCount integer
planAmount number
totalCount integer
month string
year integer
week integer
factCount integer
factAmount number
dateFrom string Начало периода
dateTo string Конец периода
timeZone integer Тайм зона
period string Период WEEK, Month
serviceId integer
factAmountInPercent number Выполнение плана в процентах

Тело ответа

✓ 200 OK
Content-Type: application/json
Тип ответа: PlanSales
Элементы массива
Поле Тип Описание
shortName string Нет Сокращенное название организации.
categoryName string Нет Название категории.
brandName string Нет Название бренда.
name string Нет Название товара
viewWildberriesId integer Нет Карточка Wildberries
article string Нет Артикул
serviceArticle string Нет Артикул на маркетплейсе
color string Нет Цвет товара.
size string Нет Размер товара.
barcode string Нет Шк товара.
purchasePrice number Нет Закупочная цена.
createdDate string Нет Дата создания карточки.
isDuplicate boolean Нет Признак дубликата карточки.
dateKey string Нет Ключ по дате.
id integer Нет
clientId integer Нет
organizationId integer Нет
date string Нет
categoryId integer Нет
viewId integer Нет
productId integer Нет
service string Нет Сервис
planCount integer Нет
planAmount number Нет
totalCount integer Нет
month string Нет
year integer Нет
week integer Нет
factCount integer Нет
factAmount number Нет
dateFrom string Нет Начало периода
dateTo string Нет Конец периода
timeZone integer Нет Тайм зона
period string Нет Период WEEK, Month
serviceId integer Нет
factAmountInPercent number Нет Выполнение плана в процентах
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const response = await axios.post('https://api.selsup.ru/api/stat/saveSalePlanReport',
  [
    {
      "shortName": "Название shortName",
      "categoryName": "Электроника",
      "brandName": "Бренд А",
      "name": "Иван",
      "viewWildberriesId": 123,
      "article": "ART-001",
      "serviceArticle": "ART-001",
      "color": "Пример color",
      "size": "Пример size",
      "barcode": "4600123456789"
    }
  ],
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

const response = await axios.post<any>('https://api.selsup.ru/api/stat/saveSalePlanReport',
  [
    {
      "shortName": "Название shortName",
      "categoryName": "Электроника",
      "brandName": "Бренд А",
      "name": "Иван",
      "viewWildberriesId": 123,
      "article": "ART-001",
      "serviceArticle": "ART-001",
      "color": "Пример color",
      "size": "Пример size",
      "barcode": "4600123456789"
    }
  ],
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

response = requests.post(
    'https://api.selsup.ru/api/stat/saveSalePlanReport',
    headers=headers,
    json=[
    {
        'shortName': 'Название shortName',
        'categoryName': 'Электроника',
        'brandName': 'Бренд А',
        'name': 'Иван',
        'viewWildberriesId': 123,
        'article': 'ART-001',
        'serviceArticle': 'ART-001',
        'color': 'Пример color',
        'size': 'Пример size',
        'barcode': '4600123456789'
    }
]
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    payload := map[string]interface{}[
        {
                `shortName`: `Название shortName`,
                `categoryName`: `Электроника`,
                `brandName`: `Бренд А`,
                `name`: `Иван`,
                `viewWildberriesId`: 123,
                `article`: `ART-001`,
                `serviceArticle`: `ART-001`,
                `color`: `Пример color`,
                `size`: `Пример size`,
                `barcode`: `4600123456789`
        }
]
    jsonData, _ := json.Marshal(payload)

    req, _ := http.NewRequest("post", "https://api.selsup.ru/api/stat/saveSalePlanReport", bytes.NewBuffer(jsonData))
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/saveSalePlanReport"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .post(HttpRequest.BodyPublishers.ofString(
        "[{\"shortName\":\"Название shortName\",\"categoryName\":\"Электроника\",\"brandName\":\"Бренд А\",\"name\":\"Иван\",\"viewWildberriesId\":123,\"article\":\"ART-001\",\"serviceArticle\":\"ART-001\",\"color\":\"Пример color\",\"size\":\"Пример size\",\"barcode\":\"4600123456789\"}]"
    ))
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.selsup.ru/api/stat/saveSalePlanReport',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'post',
    CURLOPT_POSTFIELDS => json_encode([
    {
        'shortName': 'Название shortName',
        'categoryName': 'Электроника',
        'brandName': 'Бренд А',
        'name': 'Иван',
        'viewWildberriesId': 123,
        'article': 'ART-001',
        'serviceArticle': 'ART-001',
        'color': 'Пример color',
        'size': 'Пример size',
        'barcode': '4600123456789'
    }
]),
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X post \
  'https://api.selsup.ru/api/stat/saveSalePlanReport' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '[
  {
    "shortName": "Название shortName",
    "categoryName": "Электроника",
    "brandName": "Бренд А",
    "name": "Иван",
    "viewWildberriesId": 123,
    "article": "ART-001",
    "serviceArticle": "ART-001",
    "color": "Пример color",
    "size": "Пример size",
    "barcode": "4600123456789"
  }
]'

🔗 Перерасчет отчета по-товарный Рука на пульсе

POST /api/stat/productHandOnPulse/reload

Параметры запроса QUERY

Название Тип Обязательный Описание
fullReload boolean Нет Параметр fullReload

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  fullReload: 'true',
};

const response = await axios.post('https://api.selsup.ru/api/stat/productHandOnPulse/reload',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  fullReload?: string;
}

const params: QueryParams = {
  fullReload: 'true',
};

const response = await axios.post<any>('https://api.selsup.ru/api/stat/productHandOnPulse/reload',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'fullReload': 'true',
}

response = requests.post(
    'https://api.selsup.ru/api/stat/productHandOnPulse/reload',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("post", "https://api.selsup.ru/api/stat/productHandOnPulse/reload?fullReload=true", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/productHandOnPulse/reload?fullReload=true"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .post(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'fullReload' => 'true',
];

$url = 'https://api.selsup.ru/api/stat/productHandOnPulse/reload?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'post',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X post \
  'https://api.selsup.ru/api/stat/productHandOnPulse/reload?fullReload=true' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Импорт отчета о реализации (multipart)

Метод принимает файл в формате multipart/form-data и создает задачу по импорту данных из файлов WB и OZON и SberMarket по реализации
POST /api/stat/import

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения
service "NONE""WILDBERRIES""OZON""YANDEX_MARKET""FAMILIYA""NATIONAL_CATALOG""ALIEXPRESS""OTHER""MOY_SKLAD""SBER_MEGA_MARKET""CISLINK""ONE_C""AVITO""LEROY_MERLIN""DETMIR""KAZAN_EXPRESS""EVOTOR""WEBASYST""AMAZON""EBAY""SIMALAND""INSALES""LAMODA""OZON_PERFORMANCE""WALMART""GOOGLE""YANDEX_DISC""EMAIL""WOOCOMMERCE" Нет Параметр service

Тело запроса

Content-Type: multipart/form-data
ПолеТипОписание
file Обязательный byte[]

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const formData = new FormData();
formData.append('file', fileInput.files[0]); // File input element

fetch('https://api.selsup.ru/api/stat/import?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&service=NONE', {
  method: 'post',
  headers: {
    'Authorization': 'YOUR_API_KEY'
  },
  body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
const formData = new FormData();
const fileInput = document.getElementById('file-input') as HTMLInputElement;
if (fileInput.files?.[0]) {
  formData.append('file', fileInput.files[0]);
}

interface ResponseData {
  // Define your response type here
}

const response = await fetch('https://api.selsup.ru/api/stat/import?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&service=NONE', {
  method: 'post',
  headers: {
    'Authorization': 'YOUR_API_KEY'
  },
  body: formData
});

const data: ResponseData = await response.json();
console.log(data);
import requests

files = {
    'file': ('file.pdf', open('/path/to/file.pdf', 'rb'), 'application/pdf'),
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
    'service': 'NONE',
}

response = requests.post(
    'https://api.selsup.ru/api/stat/import',
    headers={'Authorization': 'YOUR_API_KEY'},
    files=files,
    params=params,
)

print(response.json())
package main

import (
    "bytes"
    "fmt"
    "io"
    "mime/multipart"
    "net/http"
    "os"
)

func main() {
    var b bytes.Buffer
    w := multipart.NewWriter(&b)

    // Add file
    file, err := os.Open("/path/to/file.pdf")
    if err != nil {
        panic(err)
    }
    defer file.Close()
    fw, err := w.CreateFormFile("file", "file.pdf")
    if err != nil {
        panic(err)
    }
    _, err = io.Copy(fw, file)
    if err != nil {
        panic(err)
    }

    w.Close()

    req, _ := http.NewRequest("post", "https://api.selsup.ru/api/stat/import?productAnalyticField=BARCODE&query=Пример query&withDuplicate=true&limit=100&page=1&sortBy=Пример sortBy&ascending=true&id=Иванович&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=Московская область&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10:30:00Z&dateTo=2024-01-15T10:30:00Z&services=&categories=&brands=&clientOrganizationId=АО "Торговый дом"&organizations=АО "Торговый дом"&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10:30:00Z&service=NONE", &b)
    req.Header.Set("Content-Type", w.FormDataContentType())
    req.Header.Set("Authorization", "YOUR_API_KEY")

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    fmt.Println("Response Status:", resp.Status)
}
import java.io.*;
import java.net.http.*;
import java.nio.file.*;

public class MultipartExample {
    public static void main(String[] args) throws Exception {
        String boundary = "----WebKitFormBoundary7MA4YWxkTrZu0gW";
        HttpClient client = HttpClient.newHttpClient();

        // Build multipart body
        StringBuilder body = new StringBuilder();
        body.append("--").append(boundary).append("\r\n");
        body.append("Content-Disposition: form-data; name=\"file\"; filename=\"file.pdf\"\r\n");
        body.append("Content-Type: application/octet-stream\r\n\r\n");
        // Read file bytes here
        body.append("\r\n");
        body.append("--").append(boundary).append("--\r\n");

        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://api.selsup.ru/api/stat/import?productAnalyticField=BARCODE&query=Пример query&withDuplicate=true&limit=100&page=1&sortBy=Пример sortBy&ascending=true&id=Иванович&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=Московская область&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10:30:00Z&dateTo=2024-01-15T10:30:00Z&services=&categories=&brands=&clientOrganizationId=АО "Торговый дом"&organizations=АО "Торговый дом"&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10:30:00Z&service=NONE"))
            .header("Content-Type", "multipart/form-data; boundary=" + boundary)
            .header("Authorization", "YOUR_API_KEY")
            .POST(HttpRequest.BodyPublishers.ofString(body.toString()))
            .build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
    'service' => 'NONE',
];
$url = 'https://api.selsup.ru/api/stat/import?' . http_build_query($params);

$postData = [
    'file' => new CURLFile('/path/to/file.pdf'),
];

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'post',
    CURLOPT_POSTFIELDS => $postData,
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X post \
  'https://api.selsup.ru/api/stat/import?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&service=NONE' \
  -H 'Authorization: YOUR_API_KEY' \
  -F 'file=@/path/to/file.pdf'

🔗 Импорт Excel профит репорт

Создает задачу импорта Excel файла с данными реализации по МП.
POST /api/stat/importProfitReportFromExcelFile

Тело запроса

Content-Type: multipart/form-data
ПолеТипОписание
file Обязательный byte[]

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const formData = new FormData();
formData.append('file', fileInput.files[0]); // File input element

fetch('https://api.selsup.ru/api/stat/importProfitReportFromExcelFile', {
  method: 'post',
  headers: {
    'Authorization': 'YOUR_API_KEY'
  },
  body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
const formData = new FormData();
const fileInput = document.getElementById('file-input') as HTMLInputElement;
if (fileInput.files?.[0]) {
  formData.append('file', fileInput.files[0]);
}

interface ResponseData {
  // Define your response type here
}

const response = await fetch('https://api.selsup.ru/api/stat/importProfitReportFromExcelFile', {
  method: 'post',
  headers: {
    'Authorization': 'YOUR_API_KEY'
  },
  body: formData
});

const data: ResponseData = await response.json();
console.log(data);
import requests

files = {
    'file': ('file.pdf', open('/path/to/file.pdf', 'rb'), 'application/pdf'),
}

response = requests.post(
    'https://api.selsup.ru/api/stat/importProfitReportFromExcelFile',
    headers={'Authorization': 'YOUR_API_KEY'},
    files=files,
)

print(response.json())
package main

import (
    "bytes"
    "fmt"
    "io"
    "mime/multipart"
    "net/http"
    "os"
)

func main() {
    var b bytes.Buffer
    w := multipart.NewWriter(&b)

    // Add file
    file, err := os.Open("/path/to/file.pdf")
    if err != nil {
        panic(err)
    }
    defer file.Close()
    fw, err := w.CreateFormFile("file", "file.pdf")
    if err != nil {
        panic(err)
    }
    _, err = io.Copy(fw, file)
    if err != nil {
        panic(err)
    }

    w.Close()

    req, _ := http.NewRequest("post", "https://api.selsup.ru/api/stat/importProfitReportFromExcelFile", &b)
    req.Header.Set("Content-Type", w.FormDataContentType())
    req.Header.Set("Authorization", "YOUR_API_KEY")

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    fmt.Println("Response Status:", resp.Status)
}
import java.io.*;
import java.net.http.*;
import java.nio.file.*;

public class MultipartExample {
    public static void main(String[] args) throws Exception {
        String boundary = "----WebKitFormBoundary7MA4YWxkTrZu0gW";
        HttpClient client = HttpClient.newHttpClient();

        // Build multipart body
        StringBuilder body = new StringBuilder();
        body.append("--").append(boundary).append("\r\n");
        body.append("Content-Disposition: form-data; name=\"file\"; filename=\"file.pdf\"\r\n");
        body.append("Content-Type: application/octet-stream\r\n\r\n");
        // Read file bytes here
        body.append("\r\n");
        body.append("--").append(boundary).append("--\r\n");

        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://api.selsup.ru/api/stat/importProfitReportFromExcelFile"))
            .header("Content-Type", "multipart/form-data; boundary=" + boundary)
            .header("Authorization", "YOUR_API_KEY")
            .POST(HttpRequest.BodyPublishers.ofString(body.toString()))
            .build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}
<?php
$curl = curl_init();

$postData = [
    'file' => new CURLFile('/path/to/file.pdf'),
];

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.selsup.ru/api/stat/importProfitReportFromExcelFile',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'post',
    CURLOPT_POSTFIELDS => $postData,
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X post \
  'https://api.selsup.ru/api/stat/importProfitReportFromExcelFile' \
  -H 'Authorization: YOUR_API_KEY' \
  -F 'file=@/path/to/file.pdf'

🔗 Импорт Excel плана продаж

Создает задачу импорта Excel файла с понедельным планом продаж
POST /api/stat/importPlanSalesFromExcelFile

Тело запроса

Content-Type: multipart/form-data
ПолеТипОписание
file Обязательный byte[]

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const formData = new FormData();
formData.append('file', fileInput.files[0]); // File input element

fetch('https://api.selsup.ru/api/stat/importPlanSalesFromExcelFile', {
  method: 'post',
  headers: {
    'Authorization': 'YOUR_API_KEY'
  },
  body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
const formData = new FormData();
const fileInput = document.getElementById('file-input') as HTMLInputElement;
if (fileInput.files?.[0]) {
  formData.append('file', fileInput.files[0]);
}

interface ResponseData {
  // Define your response type here
}

const response = await fetch('https://api.selsup.ru/api/stat/importPlanSalesFromExcelFile', {
  method: 'post',
  headers: {
    'Authorization': 'YOUR_API_KEY'
  },
  body: formData
});

const data: ResponseData = await response.json();
console.log(data);
import requests

files = {
    'file': ('file.pdf', open('/path/to/file.pdf', 'rb'), 'application/pdf'),
}

response = requests.post(
    'https://api.selsup.ru/api/stat/importPlanSalesFromExcelFile',
    headers={'Authorization': 'YOUR_API_KEY'},
    files=files,
)

print(response.json())
package main

import (
    "bytes"
    "fmt"
    "io"
    "mime/multipart"
    "net/http"
    "os"
)

func main() {
    var b bytes.Buffer
    w := multipart.NewWriter(&b)

    // Add file
    file, err := os.Open("/path/to/file.pdf")
    if err != nil {
        panic(err)
    }
    defer file.Close()
    fw, err := w.CreateFormFile("file", "file.pdf")
    if err != nil {
        panic(err)
    }
    _, err = io.Copy(fw, file)
    if err != nil {
        panic(err)
    }

    w.Close()

    req, _ := http.NewRequest("post", "https://api.selsup.ru/api/stat/importPlanSalesFromExcelFile", &b)
    req.Header.Set("Content-Type", w.FormDataContentType())
    req.Header.Set("Authorization", "YOUR_API_KEY")

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    fmt.Println("Response Status:", resp.Status)
}
import java.io.*;
import java.net.http.*;
import java.nio.file.*;

public class MultipartExample {
    public static void main(String[] args) throws Exception {
        String boundary = "----WebKitFormBoundary7MA4YWxkTrZu0gW";
        HttpClient client = HttpClient.newHttpClient();

        // Build multipart body
        StringBuilder body = new StringBuilder();
        body.append("--").append(boundary).append("\r\n");
        body.append("Content-Disposition: form-data; name=\"file\"; filename=\"file.pdf\"\r\n");
        body.append("Content-Type: application/octet-stream\r\n\r\n");
        // Read file bytes here
        body.append("\r\n");
        body.append("--").append(boundary).append("--\r\n");

        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://api.selsup.ru/api/stat/importPlanSalesFromExcelFile"))
            .header("Content-Type", "multipart/form-data; boundary=" + boundary)
            .header("Authorization", "YOUR_API_KEY")
            .POST(HttpRequest.BodyPublishers.ofString(body.toString()))
            .build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}
<?php
$curl = curl_init();

$postData = [
    'file' => new CURLFile('/path/to/file.pdf'),
];

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.selsup.ru/api/stat/importPlanSalesFromExcelFile',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'post',
    CURLOPT_POSTFIELDS => $postData,
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X post \
  'https://api.selsup.ru/api/stat/importPlanSalesFromExcelFile' \
  -H 'Authorization: YOUR_API_KEY' \
  -F 'file=@/path/to/file.pdf'

🔗 Импорт заказов FBO

Метод добавляет задачу в очередь на импорт заказов FBO
POST /api/stat/importFboOrders

Параметры запроса QUERY

Название Тип Обязательный Описание
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
organizationId integer Нет Идентификатор организации
service "NONE""WILDBERRIES""OZON""YANDEX_MARKET""FAMILIYA""NATIONAL_CATALOG""ALIEXPRESS""OTHER""MOY_SKLAD""SBER_MEGA_MARKET""CISLINK""ONE_C""AVITO""LEROY_MERLIN""DETMIR""KAZAN_EXPRESS""EVOTOR""WEBASYST""AMAZON""EBAY""SIMALAND""INSALES""LAMODA""OZON_PERFORMANCE""WALMART""GOOGLE""YANDEX_DISC""EMAIL""WOOCOMMERCE" Нет Маркетплейс
updateDate Date Нет Обновлять даты
filterOrders Array of string Нет Параметр filterOrders

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  organizationId: 'АО "Торговый дом"',
  service: 'NONE',
  updateDate: 'true',
  filterOrders: '',
};

const response = await axios.post('https://api.selsup.ru/api/stat/importFboOrders',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  dateFrom?: string;
  dateTo?: string;
  organizationId?: number;
  service?: string;
  updateDate?: string;
  filterOrders?: string;
}

const params: QueryParams = {
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  organizationId: 'АО "Торговый дом"',
  service: 'NONE',
  updateDate: 'true',
  filterOrders: '',
};

const response = await axios.post<any>('https://api.selsup.ru/api/stat/importFboOrders',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'organizationId': 'АО "Торговый дом"',
    'service': 'NONE',
    'updateDate': 'true',
    'filterOrders': '',
}

response = requests.post(
    'https://api.selsup.ru/api/stat/importFboOrders',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("post", "https://api.selsup.ru/api/stat/importFboOrders?dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&service=NONE&updateDate=true&filterOrders=", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/importFboOrders?dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&service=NONE&updateDate=true&filterOrders="))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .post(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'organizationId' => 'АО "Торговый дом"',
    'service' => 'NONE',
    'updateDate' => 'true',
    'filterOrders' => '',
];

$url = 'https://api.selsup.ru/api/stat/importFboOrders?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'post',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X post \
  'https://api.selsup.ru/api/stat/importFboOrders?dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&service=NONE&updateDate=true&filterOrders=' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Импорт выписки из банка

Метод принимает файл в формате multipart/form-data из банковской выписки операции с МП. Выписка из банка выгружается в формате 1C.
POST /api/stat/importBankTransactionFromFile

Параметры запроса QUERY

Название Тип Обязательный Описание
clientOrganizationId integer Нет Параметр clientOrganizationId
saveAll boolean Нет Параметр saveAll

Тело запроса

Content-Type: multipart/form-data
ПолеТипОписание
file Обязательный byte[]

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const formData = new FormData();
formData.append('file', fileInput.files[0]); // File input element

fetch('https://api.selsup.ru/api/stat/importBankTransactionFromFile?clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&saveAll=true', {
  method: 'post',
  headers: {
    'Authorization': 'YOUR_API_KEY'
  },
  body: formData
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
const formData = new FormData();
const fileInput = document.getElementById('file-input') as HTMLInputElement;
if (fileInput.files?.[0]) {
  formData.append('file', fileInput.files[0]);
}

interface ResponseData {
  // Define your response type here
}

const response = await fetch('https://api.selsup.ru/api/stat/importBankTransactionFromFile?clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&saveAll=true', {
  method: 'post',
  headers: {
    'Authorization': 'YOUR_API_KEY'
  },
  body: formData
});

const data: ResponseData = await response.json();
console.log(data);
import requests

files = {
    'file': ('file.pdf', open('/path/to/file.pdf', 'rb'), 'application/pdf'),
}

params = {
    'clientOrganizationId': 'АО "Торговый дом"',
    'saveAll': 'true',
}

response = requests.post(
    'https://api.selsup.ru/api/stat/importBankTransactionFromFile',
    headers={'Authorization': 'YOUR_API_KEY'},
    files=files,
    params=params,
)

print(response.json())
package main

import (
    "bytes"
    "fmt"
    "io"
    "mime/multipart"
    "net/http"
    "os"
)

func main() {
    var b bytes.Buffer
    w := multipart.NewWriter(&b)

    // Add file
    file, err := os.Open("/path/to/file.pdf")
    if err != nil {
        panic(err)
    }
    defer file.Close()
    fw, err := w.CreateFormFile("file", "file.pdf")
    if err != nil {
        panic(err)
    }
    _, err = io.Copy(fw, file)
    if err != nil {
        panic(err)
    }

    w.Close()

    req, _ := http.NewRequest("post", "https://api.selsup.ru/api/stat/importBankTransactionFromFile?clientOrganizationId=АО "Торговый дом"&saveAll=true", &b)
    req.Header.Set("Content-Type", w.FormDataContentType())
    req.Header.Set("Authorization", "YOUR_API_KEY")

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    fmt.Println("Response Status:", resp.Status)
}
import java.io.*;
import java.net.http.*;
import java.nio.file.*;

public class MultipartExample {
    public static void main(String[] args) throws Exception {
        String boundary = "----WebKitFormBoundary7MA4YWxkTrZu0gW";
        HttpClient client = HttpClient.newHttpClient();

        // Build multipart body
        StringBuilder body = new StringBuilder();
        body.append("--").append(boundary).append("\r\n");
        body.append("Content-Disposition: form-data; name=\"file\"; filename=\"file.pdf\"\r\n");
        body.append("Content-Type: application/octet-stream\r\n\r\n");
        // Read file bytes here
        body.append("\r\n");
        body.append("--").append(boundary).append("--\r\n");

        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://api.selsup.ru/api/stat/importBankTransactionFromFile?clientOrganizationId=АО "Торговый дом"&saveAll=true"))
            .header("Content-Type", "multipart/form-data; boundary=" + boundary)
            .header("Authorization", "YOUR_API_KEY")
            .POST(HttpRequest.BodyPublishers.ofString(body.toString()))
            .build();

        HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}
<?php
$curl = curl_init();

$params = [
    'clientOrganizationId' => 'АО "Торговый дом"',
    'saveAll' => 'true',
];
$url = 'https://api.selsup.ru/api/stat/importBankTransactionFromFile?' . http_build_query($params);

$postData = [
    'file' => new CURLFile('/path/to/file.pdf'),
];

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'post',
    CURLOPT_POSTFIELDS => $postData,
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X post \
  'https://api.selsup.ru/api/stat/importBankTransactionFromFile?clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&saveAll=true' \
  -H 'Authorization: YOUR_API_KEY' \
  -F 'file=@/path/to/file.pdf'

🔗 Импорт отчета о реализации

Метод принимает файл в формате multipart/form-data и создает задачу по импорту данных из файлов WB и OZON и SberMarket по реализации
POST /api/stat/import/binary

Параметры запроса QUERY

Название Тип Обязательный Описание
name string Да Название файла
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения
service "NONE""WILDBERRIES""OZON""YANDEX_MARKET""FAMILIYA""NATIONAL_CATALOG""ALIEXPRESS""OTHER""MOY_SKLAD""SBER_MEGA_MARKET""CISLINK""ONE_C""AVITO""LEROY_MERLIN""DETMIR""KAZAN_EXPRESS""EVOTOR""WEBASYST""AMAZON""EBAY""SIMALAND""INSALES""LAMODA""OZON_PERFORMANCE""WALMART""GOOGLE""YANDEX_DISC""EMAIL""WOOCOMMERCE" Нет Параметр service

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  name: 'Иван',
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
  service: 'NONE',
};

const response = await axios.post('https://api.selsup.ru/api/stat/import/binary',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  name?: string;
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
  service?: string;
}

const params: QueryParams = {
  name: 'Иван',
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
  service: 'NONE',
};

const response = await axios.post<any>('https://api.selsup.ru/api/stat/import/binary',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'name': 'Иван',
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
    'service': 'NONE',
}

response = requests.post(
    'https://api.selsup.ru/api/stat/import/binary',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("post", "https://api.selsup.ru/api/stat/import/binary?name=%D0%98%D0%B2%D0%B0%D0%BD&productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&service=NONE", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/import/binary?name=%D0%98%D0%B2%D0%B0%D0%BD&productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&service=NONE"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .post(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'name' => 'Иван',
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
    'service' => 'NONE',
];

$url = 'https://api.selsup.ru/api/stat/import/binary?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'post',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X post \
  'https://api.selsup.ru/api/stat/import/binary?name=%D0%98%D0%B2%D0%B0%D0%BD&productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&service=NONE' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Удалить план продаж

Метод удаляет план продаж
POST /api/stat/deleteSalePlanById

Параметры запроса QUERY

Название Тип Обязательный Описание
id integer Да Уникальный идентификатор

Тело ответа

✓ 200 OK
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  id: 'Иванович',
};

const response = await axios.post('https://api.selsup.ru/api/stat/deleteSalePlanById',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  id?: number;
}

const params: QueryParams = {
  id: 'Иванович',
};

const response = await axios.post<any>('https://api.selsup.ru/api/stat/deleteSalePlanById',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'id': 'Иванович',
}

response = requests.post(
    'https://api.selsup.ru/api/stat/deleteSalePlanById',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("post", "https://api.selsup.ru/api/stat/deleteSalePlanById?id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/deleteSalePlanById?id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .post(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'id' => 'Иванович',
];

$url = 'https://api.selsup.ru/api/stat/deleteSalePlanById?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'post',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X post \
  'https://api.selsup.ru/api/stat/deleteSalePlanById?id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Умный анализ финансов

Метод для возврата данных для отображения в блоке умного анализа финансов, сгенерированные с помощью AI. В теле запроса передается объект полученный из GET fullFinanceReport, чтобы не пересчитывать
POST /api/stat/ai/tips

Тело запроса *Обязательно

Content-Type: application/json
ПолеТипОписание
salesExpensesOnMarketplaces FindResponseRowStructureForFinanceTable
Структура FindResponseRowStructureForFinanceTable
Поле Тип Описание
rows Array of RowStructureForFinanceTable Строки с результатом поиска
Структура RowStructureForFinanceTable
Поле Тип Описание
id integer
name string
cost number
totalSales number
percent number
absPercent number
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
costStructure GetFinanceStructureResult
Структура GetFinanceStructureResult
Поле Тип Описание
rows Array of RowStructureForFinanceTable Строки с результатом поиска
Структура RowStructureForFinanceTable
Поле Тип Описание
id integer
name string
cost number
totalSales number
percent number
absPercent number
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
profitStructure GetFinanceStructureResult
Структура GetFinanceStructureResult
Поле Тип Описание
rows Array of RowStructureForFinanceTable Строки с результатом поиска
Структура RowStructureForFinanceTable
Поле Тип Описание
id integer
name string
cost number
totalSales number
percent number
absPercent number
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
penaltyStructure Array of RowStructureForFinanceTable
Структура RowStructureForFinanceTable
Поле Тип Описание
id integer
name string
cost number
totalSales number
percent number
absPercent number
serviceStructure Array of RowStructureForFinanceTable
Структура RowStructureForFinanceTable
Поле Тип Описание
id integer
name string
cost number
totalSales number
percent number
absPercent number
financesReportByPeriod FindResponseFinanceReport
Структура FindResponseFinanceReport
Поле Тип Описание
rows Array of FinanceReport Строки с результатом поиска
Структура FinanceReport
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Стоимость рекламы ВБ
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приёмка
cancelsCount integer Количество отмен
id integer Идентификатор
orgName string Название организации
organizationId integer Идентификатор организации
reportNumber string Номер отчета
dateStart string Дата начала отчета по реализации
dateEnd string Дата конца отчета по реализации
logisticToClientAmount number Стоимость логистики к клиенту в руб.
logisticFromClientAmount number Стоимость логистики от клиента в руб.
salesCommission number Комиссия от продажи в руб.
returnsCommission number Возврат комиссии в руб.
profit number Прибыль в руб. grossProfit - fixedOutlay - taxes + selfPayAmount - storageAmount
bankPayment number Оплата по банку в руб.
costPrice number Себестоимость товара в руб. purchasePrice * salesCount
fixedOutlay number Постоянные расходы в руб.(Расходы за весь интервал / кол-во дней в месяце)*на выбранный интервал, если период захватывает больше одного месяца, будет вычисляться для каждого месяца, а после складываться, в случае нескольких отчетах для организации, то будет по каждому отчету браться по коэфициенту продаж
taxes number Налоги в руб.
sellingCosts number Затраты по продаже на МП. getLogistics() + getCommissions() + getPenalty() + getServices() - getAdditionalAndDeduction() - getOtherAmount() + getCostStorage()
rentability number Рентабельность. (profit / totalSalesAmount) * 100
taxRate number Процентная ставка налога
taxType string Тип налогообложения
totalCampaignCost number Стоимость рекламы сумма
ozonCampaignCost number Реклама Озон
basicExpenses number Сумма основных расходов: комиссия + логистика + себестоимость
otherExpenses number Сумма прочих расходов: платная приемка + прочие удержания + прочие начисления + хранения + доплаты
additionalExpenses number Сумма дополнительных расходов: реклама + услуги + штрафы + сумма прочих расходов
ozonDeliveryReturn number Перечисление за доставку от покупателя, должно идти в прибыль
emptyPurchaseAmount integer Сумма продаж, для которых не указана закупочная цена
totalSalesAmountWithSpp number Сумма продаж, если учитывать СPP (до SPP)
sellingCostsWithSpp number Сумма расходов на МП если учитывать СPP (до SPP)
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
previousFinancesReportByPeriod FindResponseFinanceReport
Структура FindResponseFinanceReport
Поле Тип Описание
rows Array of FinanceReport Строки с результатом поиска
Структура FinanceReport
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Стоимость рекламы ВБ
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приёмка
cancelsCount integer Количество отмен
id integer Идентификатор
orgName string Название организации
organizationId integer Идентификатор организации
reportNumber string Номер отчета
dateStart string Дата начала отчета по реализации
dateEnd string Дата конца отчета по реализации
logisticToClientAmount number Стоимость логистики к клиенту в руб.
logisticFromClientAmount number Стоимость логистики от клиента в руб.
salesCommission number Комиссия от продажи в руб.
returnsCommission number Возврат комиссии в руб.
profit number Прибыль в руб. grossProfit - fixedOutlay - taxes + selfPayAmount - storageAmount
bankPayment number Оплата по банку в руб.
costPrice number Себестоимость товара в руб. purchasePrice * salesCount
fixedOutlay number Постоянные расходы в руб.(Расходы за весь интервал / кол-во дней в месяце)*на выбранный интервал, если период захватывает больше одного месяца, будет вычисляться для каждого месяца, а после складываться, в случае нескольких отчетах для организации, то будет по каждому отчету браться по коэфициенту продаж
taxes number Налоги в руб.
sellingCosts number Затраты по продаже на МП. getLogistics() + getCommissions() + getPenalty() + getServices() - getAdditionalAndDeduction() - getOtherAmount() + getCostStorage()
rentability number Рентабельность. (profit / totalSalesAmount) * 100
taxRate number Процентная ставка налога
taxType string Тип налогообложения
totalCampaignCost number Стоимость рекламы сумма
ozonCampaignCost number Реклама Озон
basicExpenses number Сумма основных расходов: комиссия + логистика + себестоимость
otherExpenses number Сумма прочих расходов: платная приемка + прочие удержания + прочие начисления + хранения + доплаты
additionalExpenses number Сумма дополнительных расходов: реклама + услуги + штрафы + сумма прочих расходов
ozonDeliveryReturn number Перечисление за доставку от покупателя, должно идти в прибыль
emptyPurchaseAmount integer Сумма продаж, для которых не указана закупочная цена
totalSalesAmountWithSpp number Сумма продаж, если учитывать СPP (до SPP)
sellingCostsWithSpp number Сумма расходов на МП если учитывать СPP (до SPP)
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены

Тело ответа

✓ 200 OK
Content-Type: application/json
Тип ответа: Tip
Элементы массива
Поле Тип Описание
type string Нет
title string Нет
description string Нет
value number Нет
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const response = await axios.post('https://api.selsup.ru/api/stat/ai/tips',
  {
    "salesExpensesOnMarketplaces": {},
    "costStructure": 1500,
    "profitStructure": {},
    "penaltyStructure": [
      {}
    ],
    "serviceStructure": [
      {}
    ],
    "financesReportByPeriod": {},
    "previousFinancesReportByPeriod": {}
  },
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

const response = await axios.post<any>('https://api.selsup.ru/api/stat/ai/tips',
  {
    "salesExpensesOnMarketplaces": {},
    "costStructure": 1500,
    "profitStructure": {},
    "penaltyStructure": [
      {}
    ],
    "serviceStructure": [
      {}
    ],
    "financesReportByPeriod": {},
    "previousFinancesReportByPeriod": {}
  },
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

response = requests.post(
    'https://api.selsup.ru/api/stat/ai/tips',
    headers=headers,
    json={
    'salesExpensesOnMarketplaces': {},
    'costStructure': 1500,
    'profitStructure': {},
    'penaltyStructure': [
        {}
    ],
    'serviceStructure': [
        {}
    ],
    'financesReportByPeriod': {},
    'previousFinancesReportByPeriod': {}
}
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    payload := map[string]interface{}{
        `salesExpensesOnMarketplaces`: {},
        `costStructure`: 1500,
        `profitStructure`: {},
        `penaltyStructure`: [
                {}
        ],
        `serviceStructure`: [
                {}
        ],
        `financesReportByPeriod`: {},
        `previousFinancesReportByPeriod`: {}
}
    jsonData, _ := json.Marshal(payload)

    req, _ := http.NewRequest("post", "https://api.selsup.ru/api/stat/ai/tips", bytes.NewBuffer(jsonData))
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/ai/tips"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .post(HttpRequest.BodyPublishers.ofString(
        "{\"salesExpensesOnMarketplaces\":{},\"costStructure\":1500,\"profitStructure\":{},\"penaltyStructure\":[{}],\"serviceStructure\":[{}],\"financesReportByPeriod\":{},\"previousFinancesReportByPeriod\":{}}"
    ))
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.selsup.ru/api/stat/ai/tips',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'post',
    CURLOPT_POSTFIELDS => json_encode({
    'salesExpensesOnMarketplaces': {},
    'costStructure': 1500,
    'profitStructure': {},
    'penaltyStructure': [
        {}
    ],
    'serviceStructure': [
        {}
    ],
    'financesReportByPeriod': {},
    'previousFinancesReportByPeriod': {}
}),
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X post \
  'https://api.selsup.ru/api/stat/ai/tips' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "salesExpensesOnMarketplaces": {},
  "costStructure": 1500,
  "profitStructure": {},
  "penaltyStructure": [
    {}
  ],
  "serviceStructure": [
    {}
  ],
  "financesReportByPeriod": {},
  "previousFinancesReportByPeriod": {}
}'

🔗 Excel рука на пульсе

Создает задачу на скачивание Excel файла с данными по товарной аналитике.Обязательно нужно передать в запросе dateTo, dateFrom.Не обязательные поля clientOrganizationId, serviceIds.Поле - period и productAnalyticField не используются.Добавлена возможность отсортировать список по полю sortBy и по порядку ascending.
POST /api/stat/addDownloadHandOnPulseTask

Тело запроса *Обязательно

Content-Type: application/json
ПолеТипОписание
period string Период агрегации
dateFrom string Дата начала отчета
dateTo string Дата окончания отчета
services Array of object Список маркетплейсов для которых отдать данные
Структура object
Поле Тип Описание
categories Array of object Фильтр категорий для которых отдать данные
Структура object
Поле Тип Описание
brands Array of object Фильтр брендов для которых отдать данные
Структура object
Поле Тип Описание
clientOrganizationId integer Идентификатор организации, для которой отдать данные
organizations Array of object Идентификаторы организаций клиента
Структура object
Поле Тип Описание
ids Array of object Список идентификаторов
Структура object
Поле Тип Описание
type string Тип заказа
types Array of object Типы заказа
Структура object
Поле Тип Описание
status string Статус заказа
timeZone integer Часовой пояс клиента по UTC
previousDateFrom string Дата начала периода для сравнения
productAnalyticField string Агрегировать данные по сущности
query string Поисковый запрос для фильтрации аналитики
withDuplicate boolean Отдавать аналитику по дубликатам товаров
limit integer Количество записей в ответе
page integer Страница для навигации по страницам, начиная с 1
sortBy string Поле сортировки
ascending boolean Сортировать по возрастанию по полю sortBy
id integer
isMarketPlaceStructure boolean Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Идентификатор, запрос с дашборда или нет.
analyticsField string Агрегировать данные по model/product/view
planDayCount integer Кол-во дней для отчетов
groupByView boolean Сгруппировать по цвету
warehouses Array of object Список идентификаторов складов
Структура object
Поле Тип Описание
regions Array of object Список регионов
Структура object
Поле Тип Описание
group boolean Сгруппировать данные
calculationByOrders boolean Делать расчет по заказанному количеству
sourceReport string Операция по которой выводить данные
skipDayWithoutStocks boolean Пропускать дни без остатков
isSaleStructure boolean Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Идентификатор, получить среднее за 1 единицу
updateDate boolean Обновлять даты
useWeightedGroup boolean Использовать группы по весу
isFindirRequest boolean Является ли запрос - запросом для Задачника
brandIds Array of object Фильтр по идентификаторам брендов (список)
Структура object
Поле Тип Описание
categoryIds Array of object Фильтр по идентификаторам категорий (список)
Структура object
Поле Тип Описание
articles Array of object Фильтр по артикулу (список)
Структура object
Поле Тип Описание
colors Array of object Фильтр по цвету (список)
Структура object
Поле Тип Описание
sizes Array of object Фильтр по размеру (список)
Структура object
Поле Тип Описание
barcodes Array of object Фильтр по штрих-коду (список)
Структура object
Поле Тип Описание
penaltyFrom number Фильтр по штрафам (от)
penaltyTo number Фильтр по штрафам (до)
logisticsFrom number Фильтр по логистике (от)
logisticsTo number Фильтр по логистике (до)
marginFrom number Фильтр по маржинальности (от)
marginTo number Фильтр по маржинальности (до)
totalSalesAmountFrom number Фильтр по сумме продаж (от)
totalSalesAmountTo number Фильтр по сумме продаж (до)
grossProfitFrom number Фильтр по валовой прибыли (от)
grossProfitTo number Фильтр по валовой прибыли (до)
taxNds integer Налог ндс
unmatch boolean

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const response = await axios.post('https://api.selsup.ru/api/stat/addDownloadHandOnPulseTask',
  {
    "period": "DAY",
    "dateFrom": "2024-01-15T10:30:00Z",
    "dateTo": "2024-01-15T10:30:00Z",
    "services": [
      "NONE"
    ],
    "categories": [
      1
    ],
    "brands": [
      1
    ],
    "clientOrganizationId": "АО \"Торговый дом\"",
    "organizations": [
      "АО \"Торговый дом\""
    ],
    "ids": [
      123
    ],
    "type": "standard"
  },
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

const response = await axios.post<any>('https://api.selsup.ru/api/stat/addDownloadHandOnPulseTask',
  {
    "period": "DAY",
    "dateFrom": "2024-01-15T10:30:00Z",
    "dateTo": "2024-01-15T10:30:00Z",
    "services": [
      "NONE"
    ],
    "categories": [
      1
    ],
    "brands": [
      1
    ],
    "clientOrganizationId": "АО \"Торговый дом\"",
    "organizations": [
      "АО \"Торговый дом\""
    ],
    "ids": [
      123
    ],
    "type": "standard"
  },
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

response = requests.post(
    'https://api.selsup.ru/api/stat/addDownloadHandOnPulseTask',
    headers=headers,
    json={
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': [
        'NONE'
    ],
    'categories': [
        1
    ],
    'brands': [
        1
    ],
    'clientOrganizationId': 'АО \'Торговый дом\'',
    'organizations': [
        'АО \'Торговый дом\''
    ],
    'ids': [
        123
    ],
    'type': 'standard'
}
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    payload := map[string]interface{}{
        `period`: `DAY`,
        `dateFrom`: `2024-01-15T10:30:00Z`,
        `dateTo`: `2024-01-15T10:30:00Z`,
        `services`: [
                `NONE`
        ],
        `categories`: [
                1
        ],
        `brands`: [
                1
        ],
        `clientOrganizationId`: `АО \`Торговый дом\``,
        `organizations`: [
                `АО \`Торговый дом\``
        ],
        `ids`: [
                123
        ],
        `type`: `standard`
}
    jsonData, _ := json.Marshal(payload)

    req, _ := http.NewRequest("post", "https://api.selsup.ru/api/stat/addDownloadHandOnPulseTask", bytes.NewBuffer(jsonData))
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/addDownloadHandOnPulseTask"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .post(HttpRequest.BodyPublishers.ofString(
        "{\"period\":\"DAY\",\"dateFrom\":\"2024-01-15T10:30:00Z\",\"dateTo\":\"2024-01-15T10:30:00Z\",\"services\":[\"NONE\"],\"categories\":[1],\"brands\":[1],\"clientOrganizationId\":\"АО \\"Торговый дом\\"\",\"organizations\":[\"АО \\"Торговый дом\\"\"],\"ids\":[123],\"type\":\"standard\"}"
    ))
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.selsup.ru/api/stat/addDownloadHandOnPulseTask',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'post',
    CURLOPT_POSTFIELDS => json_encode({
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': [
        'NONE'
    ],
    'categories': [
        1
    ],
    'brands': [
        1
    ],
    'clientOrganizationId': 'АО \'Торговый дом\'',
    'organizations': [
        'АО \'Торговый дом\''
    ],
    'ids': [
        123
    ],
    'type': 'standard'
}),
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X post \
  'https://api.selsup.ru/api/stat/addDownloadHandOnPulseTask' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "period": "DAY",
  "dateFrom": "2024-01-15T10:30:00Z",
  "dateTo": "2024-01-15T10:30:00Z",
  "services": [
    "NONE"
  ],
  "categories": [
    1
  ],
  "brands": [
    1
  ],
  "clientOrganizationId": "АО \"Торговый дом\"",
  "organizations": [
    "АО \"Торговый дом\""
  ],
  "ids": [
    123
  ],
  "type": "standard"
}'

🔗 Обновление закупочных цен в аналитике

Метод ставит в очередь задачу по обновлению закупочных цен и прочих расходов в аналитике по данным из товаров
GET /api/stat/updatePurchasePriceTask

Параметры запроса QUERY

Название Тип Обязательный Описание
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/updatePurchasePriceTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/updatePurchasePriceTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/updatePurchasePriceTask',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/updatePurchasePriceTask?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/updatePurchasePriceTask?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/updatePurchasePriceTask?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/updatePurchasePriceTask?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Предрасчитанный Excel план поставок товаров

Создает задачу на скачивание Excel файла по предрасчитанному плану поставок товаров
GET /api/stat/supplyPlanReport/download

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/supplyPlanReport/download',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/supplyPlanReport/download',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/supplyPlanReport/download',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/supplyPlanReport/download?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/supplyPlanReport/download?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/supplyPlanReport/download?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/supplyPlanReport/download?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Обновление остатков с маркетплейса

Метод ставит в очередь задачу по получению данных о продажах c ozon или wildberries по организации и запись их в отчет по операциям
GET /api/stat/runImportStatTaskByClientOrganizationId

Параметры запроса QUERY

Название Тип Обязательный Описание
clientOrganizationId integer Да Идентификатор организации
service "NONE""WILDBERRIES""OZON""YANDEX_MARKET""FAMILIYA""NATIONAL_CATALOG""ALIEXPRESS""OTHER""MOY_SKLAD""SBER_MEGA_MARKET""CISLINK""ONE_C""AVITO""LEROY_MERLIN""DETMIR""KAZAN_EXPRESS""EVOTOR""WEBASYST""AMAZON""EBAY""SIMALAND""INSALES""LAMODA""OZON_PERFORMANCE""WALMART""GOOGLE""YANDEX_DISC""EMAIL""WOOCOMMERCE" Да Маркетплейс с которого обновить данные

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  clientOrganizationId: 'АО "Торговый дом"',
  service: 'NONE',
};

const response = await axios.get('https://api.selsup.ru/api/stat/runImportStatTaskByClientOrganizationId',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  clientOrganizationId?: number;
  service?: string;
}

const params: QueryParams = {
  clientOrganizationId: 'АО "Торговый дом"',
  service: 'NONE',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/runImportStatTaskByClientOrganizationId',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'clientOrganizationId': 'АО "Торговый дом"',
    'service': 'NONE',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/runImportStatTaskByClientOrganizationId',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/runImportStatTaskByClientOrganizationId?clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&service=NONE", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/runImportStatTaskByClientOrganizationId?clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&service=NONE"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'clientOrganizationId' => 'АО "Торговый дом"',
    'service' => 'NONE',
];

$url = 'https://api.selsup.ru/api/stat/runImportStatTaskByClientOrganizationId?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/runImportStatTaskByClientOrganizationId?clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&service=NONE' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Отчет повторные продажи

Получение данных о повторных продажах по фильтру
GET /api/stat/repeat-sales

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
uniqueCustomers integer Количество уникальных покупателей
repeatCustomers integer Количество повторных покупателей (2 и более заказов
orderFrequencyPoints Array of OrderFrequencyPoint Покупок на покупателя
Структура OrderFrequencyPoint
Поле Тип Описание
orders integer Число покупок
percent number Процент покупателей
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/repeat-sales',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/repeat-sales',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/repeat-sales',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/repeat-sales?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/repeat-sales?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/repeat-sales?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/repeat-sales?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Задача на перезакачку аналитики

Создает задачу на перезакачку аналитике по маркетплейсам.
GET /api/stat/reDownloadAnalytics

Параметры запроса QUERY

Название Тип Обязательный Описание
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/reDownloadAnalytics',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/reDownloadAnalytics',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/reDownloadAnalytics',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/reDownloadAnalytics?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/reDownloadAnalytics?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/reDownloadAnalytics?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/reDownloadAnalytics?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Статистика по количеству созданных карточек

Метод для возврата статистики по количеству созданных карточек на маркетплейсах и в SelSup
GET /api/stat/products

Тело ответа

✓ 200 OK
Тип: object
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const response = await axios.get('https://api.selsup.ru/api/stat/products',
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

const response = await axios.get<any>('https://api.selsup.ru/api/stat/products',
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

response = requests.get(
    'https://api.selsup.ru/api/stat/products',
    headers=headers
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/products", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/products"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.selsup.ru/api/stat/products',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/products' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Товарная аналитика

Метод получает данные по товарной аналитике. Обязательно нужно передать в запросе dateTo, dateFrom, productAnalyticField.Не обязательные поля clientOrganizationId, serviceIds.Поле - period не используется.
GET /api/stat/productAnalytics

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of ProductAnalytics Строки с результатом поиска
Структура ProductAnalytics
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Затраты на рекламу, получаем только по ВБиз импорта статистики по рекламным кампаниям
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приёмка
cancelsCount integer Количество отмен
id integer Идентификатор
productId integer Идентификатор товара
productViewId integer Идентификатор цвета товара
productModelId integer Идентификатор модели товара
brandId integer Идентификатор бренда товара
categoryId integer Идентификатор категории товара
deleted boolean Товар удален?
totalCount integer Всего найдено строк для отчетов
instockQuantity integer Кол-во остатков на складе FBS
fboQuantity integer Количество остатков на складах FBO
ozonStockCount integer Количество остатков на складах Ozon
wildberriesStockCount integer Количество остатков на складах Wildberries
yandexMarketStockCount integer Количество остатков на складах Yandex.Market
ozonArticle string Уникальный артикул товара для озон
wbArticle string Название на Wildberries
yandexMarketShopSku string SKU товара на Yandex.Market
aliexpressSku string SKU на Aliexpress
sberArticle string Артикул товара на СберМегаМаркет
oneCArticle string Уникальный артикул товара для 1c
lastWildberriesSaleDate string Дата последней продажи WB
lastWildberriesOrderDate string Дата последнего заказа на WB
lastOzonSaleDate string Дата последней продажи Ozon
lastOzonOrderDate string Дата последнего заказа на Ozon
service string Сервис
orgTaxRate number Процентная ставка налога организации
prodTaxRate number Процентная ставка налога товара
taxType string Тип налогообложения
netProfitRub number Чистая прибыль
netProfitRubPerUnit number Чистая прибыль за 1ед.
otherExpenses number Дополнительныеы расходы на проданный товар, руб.
strategyId integer Идентификатор стратегии ценообразования
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
managerWb string Менеджер WB
managerYandex string Менеджер Yandex
managerOzon string Менеджер Ozon
managerMain string Менеджер Основной
organizationId integer Идентификатор организации
mainImageUrl string Ссылка на основное изображение товара
serviceId ProductAnalytics DTO для передачи данных по товарной аналитике
Структура ProductAnalytics
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Затраты на рекламу, получаем только по ВБиз импорта статистики по рекламным кампаниям
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приёмка
cancelsCount integer Количество отмен
id integer Идентификатор
productId integer Идентификатор товара
productViewId integer Идентификатор цвета товара
productModelId integer Идентификатор модели товара
brandId integer Идентификатор бренда товара
categoryId integer Идентификатор категории товара
deleted boolean Товар удален?
totalCount integer Всего найдено строк для отчетов
instockQuantity integer Кол-во остатков на складе FBS
fboQuantity integer Количество остатков на складах FBO
ozonStockCount integer Количество остатков на складах Ozon
wildberriesStockCount integer Количество остатков на складах Wildberries
yandexMarketStockCount integer Количество остатков на складах Yandex.Market
ozonArticle string Уникальный артикул товара для озон
wbArticle string Название на Wildberries
yandexMarketShopSku string SKU товара на Yandex.Market
aliexpressSku string SKU на Aliexpress
sberArticle string Артикул товара на СберМегаМаркет
oneCArticle string Уникальный артикул товара для 1c
lastWildberriesSaleDate string Дата последней продажи WB
lastWildberriesOrderDate string Дата последнего заказа на WB
lastOzonSaleDate string Дата последней продажи Ozon
lastOzonOrderDate string Дата последнего заказа на Ozon
service string Сервис
orgTaxRate number Процентная ставка налога организации
prodTaxRate number Процентная ставка налога товара
taxType string Тип налогообложения
netProfitRub number Чистая прибыль
netProfitRubPerUnit number Чистая прибыль за 1ед.
otherExpenses number Дополнительныеы расходы на проданный товар, руб.
strategyId integer Идентификатор стратегии ценообразования
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
managerWb string Менеджер WB
managerYandex string Менеджер Yandex
managerOzon string Менеджер Ozon
managerMain string Менеджер Основной
organizationId integer Идентификатор организации
mainImageUrl string Ссылка на основное изображение товара
serviceId object DTO для передачи данных по товарной аналитике
Структура object
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Затраты на рекламу, получаем только по ВБиз импорта статистики по рекламным кампаниям
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приёмка
cancelsCount integer Количество отмен
id integer Идентификатор
productId integer Идентификатор товара
productViewId integer Идентификатор цвета товара
productModelId integer Идентификатор модели товара
brandId integer Идентификатор бренда товара
categoryId integer Идентификатор категории товара
deleted boolean Товар удален?
totalCount integer Всего найдено строк для отчетов
instockQuantity integer Кол-во остатков на складе FBS
fboQuantity integer Количество остатков на складах FBO
ozonStockCount integer Количество остатков на складах Ozon
wildberriesStockCount integer Количество остатков на складах Wildberries
yandexMarketStockCount integer Количество остатков на складах Yandex.Market
ozonArticle string Уникальный артикул товара для озон
wbArticle string Название на Wildberries
yandexMarketShopSku string SKU товара на Yandex.Market
aliexpressSku string SKU на Aliexpress
sberArticle string Артикул товара на СберМегаМаркет
oneCArticle string Уникальный артикул товара для 1c
lastWildberriesSaleDate string Дата последней продажи WB
lastWildberriesOrderDate string Дата последнего заказа на WB
lastOzonSaleDate string Дата последней продажи Ozon
lastOzonOrderDate string Дата последнего заказа на Ozon
service string Сервис
orgTaxRate number Процентная ставка налога организации
prodTaxRate number Процентная ставка налога товара
taxType string Тип налогообложения
netProfitRub number Чистая прибыль
netProfitRubPerUnit number Чистая прибыль за 1ед.
otherExpenses number Дополнительныеы расходы на проданный товар, руб.
strategyId integer Идентификатор стратегии ценообразования
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
managerWb string Менеджер WB
managerYandex string Менеджер Yandex
managerOzon string Менеджер Ozon
managerMain string Менеджер Основной
organizationId integer Идентификатор организации
mainImageUrl string Ссылка на основное изображение товара
serviceId object DTO для передачи данных по товарной аналитике
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/productAnalytics',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/productAnalytics',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/productAnalytics',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/productAnalytics?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/productAnalytics?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/productAnalytics?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/productAnalytics?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Получить отчет Воронка продаж

Получение данных из воронки продаж по фильтру
GET /api/stat/nmReport

Параметры запроса QUERY

Название Тип Обязательный Описание
dateFrom Date Нет Дата начала периода
dateTo Date Нет Дата окончания периода
pastDateFrom Date Нет Дата начала периода для сравнения. Если не указано - рассчитывается автоматически как предыдущий смежный период той же длины
pastDateTo Date Нет Дата окончания периода для сравнения. Если не указано - рассчитывается автоматически как предыдущий смежный период той же длины
brandNames Array of string Нет Список названий брендов
objectIDs integer Нет Список ID предметов
tagIDs integer Нет Список ID ярлыков
nmIDs Array of integer Нет Список артикулов Wildberries, они же wildberriesId у view
timezone integer Нет Временная зона. По умолчанию Europe/Moscow
organizationId integer Нет Идентификатор организации
service "NONE""WILDBERRIES""OZON""YANDEX_MARKET""FAMILIYA""NATIONAL_CATALOG""ALIEXPRESS""OTHER""MOY_SKLAD""SBER_MEGA_MARKET""CISLINK""ONE_C""AVITO""LEROY_MERLIN""DETMIR""KAZAN_EXPRESS""EVOTOR""WEBASYST""AMAZON""EBAY""SIMALAND""INSALES""LAMODA""OZON_PERFORMANCE""WALMART""GOOGLE""YANDEX_DISC""EMAIL""WOOCOMMERCE" Нет Сервис для которого получить данные
query string Нет Поисковой запрос. Поиск идет по артикулу
skipDeletedNm boolean Нет Скрыть удалённые карточки товаров
limit integer Нет Ограничение на количество записей. Максимальное значение - 500
page integer Нет Номер страницы начиная с 1
count boolean Нет Возвратить в ответе общее количество записей
sortBy string Нет Поле сортировки записей. Работает только при получении списка.
ascending boolean Нет Порядок сортировки - по возрастанию?. Работает только при получении списка.

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of NmReport Строки с результатом поиска
Структура NmReport
Поле Тип Описание
id integer
nmId integer Артикул Wildberries, он же wildberriesId у view
clientId integer
organizationId integer
serviceId integer
vendorCode string
brandName string
objectId integer
objectName string
stocksMp integer
stocksWb integer
periodBegin string
periodEnd string
openCardCount integer
addToCartCount integer
ordersCount integer
ordersSumRub number
buyoutsCount integer
buyoutsSumRub number
cancelCount integer
cancelSumRub number
avgPriceRub number
avgOrdersCountPerDay number
addToCartPercent number
cartToOrderPercent number
buyoutsPercent number
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  dateFrom: '2024-03-01T00:00:00Z',
  dateTo: '2024-03-31T23:59:59Z',
  pastDateFrom: '2024-02-01T00:00:00Z',
  pastDateTo: '2024-02-29T23:59:59Z',
  brandNames: 'Nike,Adidas',
  objectIDs: '123,456',
  tagIDs: '10,20,30',
  nmIDs: '987654',
  timezone: '1',
  organizationId: 'АО "Торговый дом"',
  service: 'NONE',
  query: 'Пример query',
  skipDeletedNm: 'false',
  limit: '100',
  page: '1',
  count: 'Россия',
  sortBy: 'Пример sortBy',
  ascending: 'true',
};

const response = await axios.get('https://api.selsup.ru/api/stat/nmReport',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  dateFrom?: string;
  dateTo?: string;
  pastDateFrom?: string;
  pastDateTo?: string;
  brandNames?: string;
  objectIDs?: string;
  tagIDs?: string;
  nmIDs?: string;
  timezone?: number;
  organizationId?: number;
  service?: string;
  query?: string;
  skipDeletedNm?: string;
  limit?: number;
  page?: number;
  count?: string;
  sortBy?: string;
  ascending?: string;
}

const params: QueryParams = {
  dateFrom: '2024-03-01T00:00:00Z',
  dateTo: '2024-03-31T23:59:59Z',
  pastDateFrom: '2024-02-01T00:00:00Z',
  pastDateTo: '2024-02-29T23:59:59Z',
  brandNames: 'Nike,Adidas',
  objectIDs: '123,456',
  tagIDs: '10,20,30',
  nmIDs: '987654',
  timezone: '1',
  organizationId: 'АО "Торговый дом"',
  service: 'NONE',
  query: 'Пример query',
  skipDeletedNm: 'false',
  limit: '100',
  page: '1',
  count: 'Россия',
  sortBy: 'Пример sortBy',
  ascending: 'true',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/nmReport',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'dateFrom': '2024-03-01T00:00:00Z',
    'dateTo': '2024-03-31T23:59:59Z',
    'pastDateFrom': '2024-02-01T00:00:00Z',
    'pastDateTo': '2024-02-29T23:59:59Z',
    'brandNames': 'Nike,Adidas',
    'objectIDs': '123,456',
    'tagIDs': '10,20,30',
    'nmIDs': '987654',
    'timezone': '1',
    'organizationId': 'АО "Торговый дом"',
    'service': 'NONE',
    'query': 'Пример query',
    'skipDeletedNm': 'false',
    'limit': '100',
    'page': '1',
    'count': 'Россия',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/nmReport',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/nmReport?dateFrom=2024-03-01T00%3A00%3A00Z&dateTo=2024-03-31T23%3A59%3A59Z&pastDateFrom=2024-02-01T00%3A00%3A00Z&pastDateTo=2024-02-29T23%3A59%3A59Z&brandNames=Nike%2CAdidas&objectIDs=123%2C456&tagIDs=10%2C20%2C30&nmIDs=987654&timezone=1&organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&service=NONE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&skipDeletedNm=false&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/nmReport?dateFrom=2024-03-01T00%3A00%3A00Z&dateTo=2024-03-31T23%3A59%3A59Z&pastDateFrom=2024-02-01T00%3A00%3A00Z&pastDateTo=2024-02-29T23%3A59%3A59Z&brandNames=Nike%2CAdidas&objectIDs=123%2C456&tagIDs=10%2C20%2C30&nmIDs=987654&timezone=1&organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&service=NONE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&skipDeletedNm=false&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'dateFrom' => '2024-03-01T00:00:00Z',
    'dateTo' => '2024-03-31T23:59:59Z',
    'pastDateFrom' => '2024-02-01T00:00:00Z',
    'pastDateTo' => '2024-02-29T23:59:59Z',
    'brandNames' => 'Nike,Adidas',
    'objectIDs' => '123,456',
    'tagIDs' => '10,20,30',
    'nmIDs' => '987654',
    'timezone' => '1',
    'organizationId' => 'АО "Торговый дом"',
    'service' => 'NONE',
    'query' => 'Пример query',
    'skipDeletedNm' => 'false',
    'limit' => '100',
    'page' => '1',
    'count' => 'Россия',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
];

$url = 'https://api.selsup.ru/api/stat/nmReport?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/nmReport?dateFrom=2024-03-01T00%3A00%3A00Z&dateTo=2024-03-31T23%3A59%3A59Z&pastDateFrom=2024-02-01T00%3A00%3A00Z&pastDateTo=2024-02-29T23%3A59%3A59Z&brandNames=Nike%2CAdidas&objectIDs=123%2C456&tagIDs=10%2C20%2C30&nmIDs=987654&timezone=1&organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&service=NONE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&skipDeletedNm=value&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Создать FBO заказы из профит репортов

Создает задачу для создания новых FBO заказов из таблички профит репорта по МП Wildberries.
GET /api/stat/mergeOrderFromProfitReports

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/mergeOrderFromProfitReports',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/mergeOrderFromProfitReports',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/mergeOrderFromProfitReports',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/mergeOrderFromProfitReports?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/mergeOrderFromProfitReports?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/mergeOrderFromProfitReports?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/mergeOrderFromProfitReports?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Данные о раскладке товаров операторами

Возвращает информацию о раскладке за период
GET /api/stat/getUsersStats

Параметры запроса QUERY

Название Тип Обязательный Описание
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
users Array of UserInfo
Структура UserInfo
Поле Тип Описание
name string
key string
data Array of object
Структура object
Поле Тип Описание
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getUsersStats',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getUsersStats',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getUsersStats',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getUsersStats?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getUsersStats?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getUsersStats?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getUsersStats?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Данные о выполненных работах

Возвращает информацию о количестве созданных карточек и добавленных в поставку товаров
GET /api/stat/getUsersJobStats

Параметры запроса QUERY

Название Тип Обязательный Описание
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения
jobId integer Да Параметр jobId

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
users Array of UserInfo
Структура UserInfo
Поле Тип Описание
name string
key string
data Array of object
Структура object
Поле Тип Описание
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
  jobId: '123',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getUsersJobStats',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
  jobId?: number;
}

const params: QueryParams = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
  jobId: '123',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getUsersJobStats',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
    'jobId': '123',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getUsersJobStats',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getUsersJobStats?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&jobId=123", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getUsersJobStats?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&jobId=123"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
    'jobId' => '123',
];

$url = 'https://api.selsup.ru/api/stat/getUsersJobStats?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getUsersJobStats?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&jobId=123' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Взаиморасчеты с поставщиками.

Метод получает данные оборота за период с контрагентом и сальдо.
GET /api/stat/getTurnoverByContractorId

Параметры запроса QUERY

Название Тип Обязательный Описание
request object Да Параметр request

Тело ответа

✓ 200 OK
Content-Type: application/json
Тип ответа: Turnover DTO - для передачи данных по взаиморасчетам с поставщиками.
Элементы массива
Поле Тип Описание
id integer Нет Идентификатор позиции.
title string Нет Название позиции
debit number Нет Сумма Дебет(Нам должны)
credit number Нет Сумма Кредит(Мы должны)
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  request: '[object Object]',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getTurnoverByContractorId',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  request?: string;
}

const params: QueryParams = {
  request: '[object Object]',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getTurnoverByContractorId',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'request': '[object Object]',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getTurnoverByContractorId',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getTurnoverByContractorId?request=%5Bobject%20Object%5D", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getTurnoverByContractorId?request=%5Bobject%20Object%5D"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'request' => '[object Object]',
];

$url = 'https://api.selsup.ru/api/stat/getTurnoverByContractorId?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getTurnoverByContractorId?request=%5Bobject%20Object%5D' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Получить весь план продаж

Метод возвращает общие данные по плану продаж
GET /api/stat/getTotalSalePlanReport

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticFields Array of string Нет Параметр productAnalyticFields
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of PlanSales Строки с результатом поиска
Структура PlanSales
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
id integer
clientId integer
organizationId integer
date string
categoryId integer
viewId integer
productId integer
service string Сервис
planCount integer
planAmount number
totalCount integer
month string
year integer
week integer
factCount integer
factAmount number
dateFrom string Начало периода
dateTo string Конец периода
timeZone integer Тайм зона
period string Период WEEK, Month
serviceId integer
factAmountInPercent number Выполнение плана в процентах
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticFields: '',
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getTotalSalePlanReport',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticFields?: string;
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticFields: '',
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getTotalSalePlanReport',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticFields': '',
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getTotalSalePlanReport',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getTotalSalePlanReport?productAnalyticFields=&productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getTotalSalePlanReport?productAnalyticFields=&productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticFields' => '',
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getTotalSalePlanReport?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getTotalSalePlanReport?productAnalyticFields=&productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Налоги

Метод возвращает данные о предполагаемом налоге с продаж.
GET /api/stat/getTaxes

Параметры запроса QUERY

Название Тип Обязательный Описание
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Тип ответа: Taxes DTO для передачи данных по налогу
Элементы массива
Поле Тип Описание
id integer Нет Идентификатор записи
taxesAmount number Нет Сумма налога
salesAmount number Нет Сумма продаж(продажи - возвраты)
years integer Нет Год
quarter integer Нет Квартал
title string Нет Описание
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getTaxes',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getTaxes',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getTaxes',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getTaxes?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getTaxes?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getTaxes?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getTaxes?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Структура расчетов с поставщиками.

Метод получает структуру оплат за период с контрагентом.
GET /api/stat/getStructureTurnoverByContractorId

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of PaymentStructure Строки с результатом поиска
Структура PaymentStructure
Поле Тип Описание
id integer Идентификатор
documentNumber integer Номер поступления(ID)
operationType string Тип операции
contractor Contractor Контрагенты
Структура Contractor
Поле Тип Описание
id integer Идентификатор контрагента. Проставляется автоматически
name string Наименование контрагента
versionId integer Поле нужно передавать при изменении,для предотвращения одновременной перезаписи
clientId integer Идентификатор клиента
createdUser string Логин пользователя, который создал контрагента
lastIncomeDate string Дата последнего поступления для этого контрагента для сортировки
deleted boolean Признак удаления контрагента
organizationId integer Организация для реквизитов контрагента
phoneNumber string Номер телефона
email string Адрес электронной почты
contactName string Имя контакта
moySkladId string Идентификатор в сервисе МойСклад
url string Ссылка на сайт
organization Organization Данные об организации
Структура Organization
Поле Тип Описание
id integer Идентификатор организации. Проставляется автоматически
name string Полное наименование организации
shortName string
taxType string Система налогооблажения
taxRate integer Ставка налога, если она отличается от стандартной
taxNds integer Ставка налога, если она отличается от стандартной
enableNewTaxCalculation boolean Включить расчет налогов по новым правилам
inn string ИНН
kpp string КПП. Проставляется только для ООО
bank string Название банка
bik string БИК счета организации
corrBill string Номер корреспондентского счета
billNumber string Номер счета организации
stampPath string Ссылка на изображение печати организации
stampUrl string Ссылка на изображение печати организации
stampSize integer Размер в байтах изображения печати организации
stampWidth integer Ширина изображения печати организации
stampHeight integer Высота изображения печати организации
signaturePath string Фото подписи директора организации
signatureUrl string Фото подписи директора организации
signatureSize integer Размер файла в байтах подписи директора организации
signatureWidth integer Ширина изображения подписи директора
signatureHeight integer Высота изображения подписи директора
ipPerson Person Сотрудник
form string Форма собственности организации
ip boolean
clientId integer Идентификатор клиента
address Address Адресс организации
phoneNumber string Номер телефона
addressFull string Полный адрес
debit number Дебит
credit number Кредит
date string Дата операции
incomeId integer Номер закупки
transactionId integer Идентификатор транзакции
comment string Назначение платежа
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getStructureTurnoverByContractorId',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getStructureTurnoverByContractorId',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getStructureTurnoverByContractorId',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getStructureTurnoverByContractorId?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getStructureTurnoverByContractorId?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getStructureTurnoverByContractorId?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getStructureTurnoverByContractorId?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Статистика по заказам и выручке

Возвращает статистику по заказам и выручку по фильтру
GET /api/stat/getStatOrderAndSales

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
data Array of object
Структура object
Поле Тип Описание
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getStatOrderAndSales',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getStatOrderAndSales',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getStatOrderAndSales',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getStatOrderAndSales?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getStatOrderAndSales?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getStatOrderAndSales?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getStatOrderAndSales?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Структура услуг

Метод получает данные по структуре услуг.Обязательно нужно передать в запросе dateTo, dateFromНе обязательные поля clientOrganizationId, serviceIds
GET /api/stat/getServiceStructure

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Тип ответа: RowStructureForFinanceTable
Элементы массива
Поле Тип Описание
id integer Нет
name string Нет
cost number Нет
totalSales number Нет
percent number Нет
absPercent number Нет
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getServiceStructure',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getServiceStructure',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getServiceStructure',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getServiceStructure?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getServiceStructure?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getServiceStructure?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getServiceStructure?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 График по продажам

Метод возвращает данные о продажах и возвратах и группирует их по сервисам.Обязательно передать dateFrom, dateToне обязательные поля clientOrganizationId, services
GET /api/stat/getSalesReportForGraphic

Параметры запроса QUERY

Название Тип Обязательный Описание
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Тип ответа: SalesReportForGraphic DTO для передачи данных по продажам и возвратам по сервису.
Элементы массива
Поле Тип Описание
serviceName string Нет
salesAmount number Нет
returnsAmount number Нет
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getSalesReportForGraphic',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getSalesReportForGraphic',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getSalesReportForGraphic',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getSalesReportForGraphic?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getSalesReportForGraphic?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getSalesReportForGraphic?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getSalesReportForGraphic?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Расходы по продажам на маркетплейсах

Метод получает расходы по продажам на маркетплейсах.
GET /api/stat/getSalesExpensesOnMarketplaces

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of RowStructureForFinanceTable Строки с результатом поиска
Структура RowStructureForFinanceTable
Поле Тип Описание
id integer
name string
cost number
totalSales number
percent number
absPercent number
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getSalesExpensesOnMarketplaces',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getSalesExpensesOnMarketplaces',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getSalesExpensesOnMarketplaces',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getSalesExpensesOnMarketplaces?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getSalesExpensesOnMarketplaces?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getSalesExpensesOnMarketplaces?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getSalesExpensesOnMarketplaces?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Структура продаж

Метод получает данные по структуре продаж на ВБ.
GET /api/stat/getSaleOrReturnStructure

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of RowStructureForFinanceTable Строки с результатом поиска
Структура RowStructureForFinanceTable
Поле Тип Описание
id integer
name string
cost number
totalSales number
percent number
absPercent number
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getSaleOrReturnStructure',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getSaleOrReturnStructure',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getSaleOrReturnStructure',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getSaleOrReturnStructure?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getSaleOrReturnStructure?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getSaleOrReturnStructure?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getSaleOrReturnStructure?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Структура выручки

Метод получает данные по структуре дохода.Обязательно нужно передать в запросе dateTo, dateFrom, periodНе обязательные поля clientOrganizationId, serviceIds
GET /api/stat/getProfitStructure

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of RowStructureForFinanceTable Строки с результатом поиска
Структура RowStructureForFinanceTable
Поле Тип Описание
id integer
name string
cost number
totalSales number
percent number
absPercent number
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getProfitStructure',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getProfitStructure',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getProfitStructure',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getProfitStructure?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getProfitStructure?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getProfitStructure?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getProfitStructure?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Данные по продажам

Метод возвращает данные по продажам за период.
GET /api/stat/getProfitStat

Параметры запроса QUERY

Название Тип Обязательный Описание
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения
id integer Да Уникальный идентификатор
field "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Да Параметр field
service "NONE""WILDBERRIES""OZON""YANDEX_MARKET""FAMILIYA""NATIONAL_CATALOG""ALIEXPRESS""OTHER""MOY_SKLAD""SBER_MEGA_MARKET""CISLINK""ONE_C""AVITO""LEROY_MERLIN""DETMIR""KAZAN_EXPRESS""EVOTOR""WEBASYST""AMAZON""EBAY""SIMALAND""INSALES""LAMODA""OZON_PERFORMANCE""WALMART""GOOGLE""YANDEX_DISC""EMAIL""WOOCOMMERCE" Нет Параметр service

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
data Array of object
Структура object
Поле Тип Описание
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
  id: 'Иванович',
  field: 'PRODUCT',
  service: 'NONE',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getProfitStat',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
  id?: number;
  field?: string;
  service?: string;
}

const params: QueryParams = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
  id: 'Иванович',
  field: 'PRODUCT',
  service: 'NONE',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getProfitStat',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
    'id': 'Иванович',
    'field': 'PRODUCT',
    'service': 'NONE',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getProfitStat',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getProfitStat?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&field=PRODUCT&service=NONE", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getProfitStat?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&field=PRODUCT&service=NONE"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
    'id' => 'Иванович',
    'field' => 'PRODUCT',
    'service' => 'NONE',
];

$url = 'https://api.selsup.ru/api/stat/getProfitStat?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getProfitStat?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&field=PRODUCT&service=NONE' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Дашборд аналитики

Метод возвращает данные за текущий период и такой же предыдущий.
GET /api/stat/getProfitStatDifferenceToDashBoard

Параметры запроса QUERY

Название Тип Обязательный Описание
request object Да Параметр request

Тело ответа

✓ 200 OK
Content-Type: application/json
Тип ответа: FinanceReport DTO для передачи данных по финансовой аналитике
Элементы массива
Поле Тип Описание
shortName string Нет Сокращенное название организации.
categoryName string Нет Название категории.
brandName string Нет Название бренда.
name string Нет Название товара
viewWildberriesId integer Нет Карточка Wildberries
article string Нет Артикул
serviceArticle string Нет Артикул на маркетплейсе
color string Нет Цвет товара.
size string Нет Размер товара.
barcode string Нет Шк товара.
purchasePrice number Нет Закупочная цена.
createdDate string Нет Дата создания карточки.
isDuplicate boolean Нет Признак дубликата карточки.
dateKey string Нет Ключ по дате.
salesCount integer Нет Продажи в шт.
returnsCount integer Нет Возвраты в шт.
totalSalesCount integer Нет Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Нет Продажи в руб.
returnsAmount number Нет Возвраты в руб.
averageReturnsAmount number Нет Возвраты в руб. за 1 ед
totalSalesAmount number Нет Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Нет Заказы в руб.
orderAmountWithoutCancel number Нет Заказы в руб. без отмен
logistics number Нет Логистика в руб.
averageLogistics number Нет Средняя логистика в руб.
logisticsShare number Нет Доля логистики в структуре выручки, %
commissions number Нет Комиссия в руб.
averageCommissions number Нет Средняя комиссия в руб.
penalty number Нет Штрафы в руб.
additional number Нет Доплаты в руб.
refundsAndCancellations number Нет Возвраты и отмены в руб.
compensationAmount number Нет Компенсации в руб.
additionalAndDeduction number Нет Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Нет Услуги в руб.
drr number Нет ДРР, %
totalToBePaid number Нет Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Нет Итого к оплате за 1 товар.
productCount integer Нет Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Нет Проданный товар в закупочных ценах, руб.
productAmount number Нет Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Нет Средняя фактическая цена продажи
markUp number Нет Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Нет Маржинальность
grossProfit number Нет Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Нет Валовая прибыль за 1 ед.
ratioInIncome number Нет Доля в выручке
rationInGrossProfit number Нет Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Нет Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Нет Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Нет Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Нет Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Нет Прочие начисления, руб.
percentRedemption number Нет Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Нет Кол-во заказов в шт.
orderCountWithoutCancel integer Нет Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Нет Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Нет Кол-во самовыкупов, шт.
selfPayAmount number Нет Сумма самовыкупов, руб.
costStorage number Нет Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Нет Стоимость рекламы ВБ
wbSpp number Нет Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Нет Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Нет Прочие удержания WB
averageExpensesOnMP number Нет Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Нет Компенсация за утерянный товар от WB
productAmountSum number Нет
totalSalesAmountPositiveSum number Нет
grossProfitPositiveSum number Нет
acceptance number Нет Платная приёмка
cancelsCount integer Нет Количество отмен
id integer Нет Идентификатор
orgName string Нет Название организации
organizationId integer Нет Идентификатор организации
reportNumber string Нет Номер отчета
dateStart string Нет Дата начала отчета по реализации
dateEnd string Нет Дата конца отчета по реализации
logisticToClientAmount number Нет Стоимость логистики к клиенту в руб.
logisticFromClientAmount number Нет Стоимость логистики от клиента в руб.
salesCommission number Нет Комиссия от продажи в руб.
returnsCommission number Нет Возврат комиссии в руб.
profit number Нет Прибыль в руб. grossProfit - fixedOutlay - taxes + selfPayAmount - storageAmount
bankPayment number Нет Оплата по банку в руб.
costPrice number Нет Себестоимость товара в руб. purchasePrice * salesCount
fixedOutlay number Нет Постоянные расходы в руб.(Расходы за весь интервал / кол-во дней в месяце)*на выбранный интервал, если период захватывает больше одного месяца, будет вычисляться для каждого месяца, а после складываться, в случае нескольких отчетах для организации, то будет по каждому отчету браться по коэфициенту продаж
taxes number Нет Налоги в руб.
sellingCosts number Нет Затраты по продаже на МП. getLogistics() + getCommissions() + getPenalty() + getServices() - getAdditionalAndDeduction() - getOtherAmount() + getCostStorage()
rentability number Нет Рентабельность. (profit / totalSalesAmount) * 100
taxRate number Нет Процентная ставка налога
taxType string Нет Тип налогообложения
totalCampaignCost number Нет Стоимость рекламы сумма
ozonCampaignCost number Нет Реклама Озон
basicExpenses number Нет Сумма основных расходов: комиссия + логистика + себестоимость
otherExpenses number Нет Сумма прочих расходов: платная приемка + прочие удержания + прочие начисления + хранения + доплаты
additionalExpenses number Нет Сумма дополнительных расходов: реклама + услуги + штрафы + сумма прочих расходов
ozonDeliveryReturn number Нет Перечисление за доставку от покупателя, должно идти в прибыль
emptyPurchaseAmount integer Нет Сумма продаж, для которых не указана закупочная цена
totalSalesAmountWithSpp number Нет Сумма продаж, если учитывать СPP (до SPP)
sellingCostsWithSpp number Нет Сумма расходов на МП если учитывать СPP (до SPP)
inputVat number Нет Входящий НДС, руб.
outputVat number Нет Исходящий НДС, руб.
finalVat number Нет Итоговый НДС (исходящий - входящий), руб.
incomeTax number Нет Налог на прибыль, руб.
totalTax number Нет Общий налог (НДС + налог на прибыль), руб.
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  request: '[object Object]',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getProfitStatDifferenceToDashBoard',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  request?: string;
}

const params: QueryParams = {
  request: '[object Object]',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getProfitStatDifferenceToDashBoard',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'request': '[object Object]',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getProfitStatDifferenceToDashBoard',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getProfitStatDifferenceToDashBoard?request=%5Bobject%20Object%5D", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getProfitStatDifferenceToDashBoard?request=%5Bobject%20Object%5D"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'request' => '[object Object]',
];

$url = 'https://api.selsup.ru/api/stat/getProfitStatDifferenceToDashBoard?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getProfitStatDifferenceToDashBoard?request=%5Bobject%20Object%5D' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Данные по продажам

Метод возвращает данные по продажам за период.
GET /api/stat/getProfitStatByPeriodToDashBoard

Параметры запроса QUERY

Название Тип Обязательный Описание
request object Да Параметр request

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of FinanceReport Строки с результатом поиска
Структура FinanceReport
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Стоимость рекламы ВБ
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приёмка
cancelsCount integer Количество отмен
id integer Идентификатор
orgName string Название организации
organizationId integer Идентификатор организации
reportNumber string Номер отчета
dateStart string Дата начала отчета по реализации
dateEnd string Дата конца отчета по реализации
logisticToClientAmount number Стоимость логистики к клиенту в руб.
logisticFromClientAmount number Стоимость логистики от клиента в руб.
salesCommission number Комиссия от продажи в руб.
returnsCommission number Возврат комиссии в руб.
profit number Прибыль в руб. grossProfit - fixedOutlay - taxes + selfPayAmount - storageAmount
bankPayment number Оплата по банку в руб.
costPrice number Себестоимость товара в руб. purchasePrice * salesCount
fixedOutlay number Постоянные расходы в руб.(Расходы за весь интервал / кол-во дней в месяце)*на выбранный интервал, если период захватывает больше одного месяца, будет вычисляться для каждого месяца, а после складываться, в случае нескольких отчетах для организации, то будет по каждому отчету браться по коэфициенту продаж
taxes number Налоги в руб.
sellingCosts number Затраты по продаже на МП. getLogistics() + getCommissions() + getPenalty() + getServices() - getAdditionalAndDeduction() - getOtherAmount() + getCostStorage()
rentability number Рентабельность. (profit / totalSalesAmount) * 100
taxRate number Процентная ставка налога
taxType string Тип налогообложения
totalCampaignCost number Стоимость рекламы сумма
ozonCampaignCost number Реклама Озон
basicExpenses number Сумма основных расходов: комиссия + логистика + себестоимость
otherExpenses number Сумма прочих расходов: платная приемка + прочие удержания + прочие начисления + хранения + доплаты
additionalExpenses number Сумма дополнительных расходов: реклама + услуги + штрафы + сумма прочих расходов
ozonDeliveryReturn number Перечисление за доставку от покупателя, должно идти в прибыль
emptyPurchaseAmount integer Сумма продаж, для которых не указана закупочная цена
totalSalesAmountWithSpp number Сумма продаж, если учитывать СPP (до SPP)
sellingCostsWithSpp number Сумма расходов на МП если учитывать СPP (до SPP)
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  request: '[object Object]',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getProfitStatByPeriodToDashBoard',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  request?: string;
}

const params: QueryParams = {
  request: '[object Object]',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getProfitStatByPeriodToDashBoard',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'request': '[object Object]',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getProfitStatByPeriodToDashBoard',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getProfitStatByPeriodToDashBoard?request=%5Bobject%20Object%5D", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getProfitStatByPeriodToDashBoard?request=%5Bobject%20Object%5D"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'request' => '[object Object]',
];

$url = 'https://api.selsup.ru/api/stat/getProfitStatByPeriodToDashBoard?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getProfitStatByPeriodToDashBoard?request=%5Bobject%20Object%5D' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Получить истори загрузки реализации

Метод получает историю загрузок файлов реализации по МП и фильтрует их
GET /api/stat/getProfitReportFileHistory

Параметры запроса QUERY

Название Тип Обязательный Описание
dateFrom Date Нет Фильтр по дате операции - от
dateTo Date Нет Фильтр по дате операции - до
clientOrganizationId integer Нет Параметр clientOrganizationId
services Array of string Нет Список маркетплейсов
limit integer Нет Ограничение на количество записей. Максимальное значение - 500
page integer Нет Номер страницы начиная с 1
count boolean Нет Возвратить в ответе общее количество записей
sortBy "SERVICES""ORGANIZATION""CREATEDDATE""DATEFROM""DATETO" Нет Поле для сортировки
ascending boolean Нет Порядок сортировки - по возрастанию?. Работает только при получении списка.

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of ProfitReportFileHistory Строки с результатом поиска
Структура ProfitReportFileHistory
Поле Тип Описание
id integer Идентификатор в коллекции при выборке, для фронта
fileHistoryId integer Идентификатор истории загрузки профит репортов из файла
serviceId integer Идентификатор маркетплейса
organizationId integer Идентификатор организации
clientId integer Идентификатор клиента
createdDate string Дата записи
dateFrom string Дата начало отчета
dateTo string Дата окончания отчета
fileName string Название загружаемого файла
userName string Кто загружал
rowCount integer Кол-во строк загруженных
taskId integer Идентификатор таски
service string Сервис
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  clientOrganizationId: 'АО "Торговый дом"',
  services: '',
  limit: '100',
  page: '1',
  count: 'Россия',
  sortBy: 'SERVICES',
  ascending: 'true',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getProfitReportFileHistory',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  dateFrom?: string;
  dateTo?: string;
  clientOrganizationId?: number;
  services?: string;
  limit?: number;
  page?: number;
  count?: string;
  sortBy?: string;
  ascending?: string;
}

const params: QueryParams = {
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  clientOrganizationId: 'АО "Торговый дом"',
  services: '',
  limit: '100',
  page: '1',
  count: 'Россия',
  sortBy: 'SERVICES',
  ascending: 'true',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getProfitReportFileHistory',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'clientOrganizationId': 'АО "Торговый дом"',
    'services': '',
    'limit': '100',
    'page': '1',
    'count': 'Россия',
    'sortBy': 'SERVICES',
    'ascending': 'true',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getProfitReportFileHistory',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getProfitReportFileHistory?dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&services=&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=SERVICES&ascending=true", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getProfitReportFileHistory?dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&services=&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=SERVICES&ascending=true"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'services' => '',
    'limit' => '100',
    'page' => '1',
    'count' => 'Россия',
    'sortBy' => 'SERVICES',
    'ascending' => 'true',
];

$url = 'https://api.selsup.ru/api/stat/getProfitReportFileHistory?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getProfitReportFileHistory?dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&services=&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=SERVICES&ascending=true' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Дашборд аналитики

Метод возвращает данные за текущий период и такой же предыдущий.
GET /api/stat/getProfitDifferenceForPeriod

Параметры запроса QUERY

Название Тип Обязательный Описание
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения
id integer Да Уникальный идентификатор
field "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Да Параметр field
service "NONE""WILDBERRIES""OZON""YANDEX_MARKET""FAMILIYA""NATIONAL_CATALOG""ALIEXPRESS""OTHER""MOY_SKLAD""SBER_MEGA_MARKET""CISLINK""ONE_C""AVITO""LEROY_MERLIN""DETMIR""KAZAN_EXPRESS""EVOTOR""WEBASYST""AMAZON""EBAY""SIMALAND""INSALES""LAMODA""OZON_PERFORMANCE""WALMART""GOOGLE""YANDEX_DISC""EMAIL""WOOCOMMERCE" Да Параметр service

Тело ответа

✓ 200 OK
Content-Type: application/json
Тип ответа: ProductStats
Элементы массива
Поле Тип Описание
data Array of object Нет
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
  id: 'Иванович',
  field: 'PRODUCT',
  service: 'NONE',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getProfitDifferenceForPeriod',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
  id?: number;
  field?: string;
  service?: string;
}

const params: QueryParams = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
  id: 'Иванович',
  field: 'PRODUCT',
  service: 'NONE',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getProfitDifferenceForPeriod',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
    'id': 'Иванович',
    'field': 'PRODUCT',
    'service': 'NONE',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getProfitDifferenceForPeriod',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getProfitDifferenceForPeriod?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&field=PRODUCT&service=NONE", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getProfitDifferenceForPeriod?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&field=PRODUCT&service=NONE"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
    'id' => 'Иванович',
    'field' => 'PRODUCT',
    'service' => 'NONE',
];

$url = 'https://api.selsup.ru/api/stat/getProfitDifferenceForPeriod?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getProfitDifferenceForPeriod?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&field=PRODUCT&service=NONE' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Отчет по остаткам

Метод получает данные по остаткам на текущий момент и подсчитывает на какой период еще хватит товара. Обязательно нужно передать в запросе dateTo, dateFromНе обязательные поля clientOrganizationId, serviceIds
GET /api/stat/getProductBalanceResult

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of ProductBalance Строки с результатом поиска
Структура ProductBalance
Поле Тип Описание
id integer Идентификатор
organizationName string Название организации
shortName string Сокращенное название организации
categoryName string Название категории
brandName string Название бренда
article string Артикул
color string Цвет
size string Размер
barcode string Штрих-код
purchasePrice number Закупочная цена
fbsStockCount integer Остаток на складе
fbsStockAmount number Сумма цены товаров на складе
fbsAdditionalAmount number Дополнительные услуги
wildberriesStockCount integer Остаток на складе ВБ
wildberriesStockAmount number Сумма цены товаров на складе ВБ
wildberriesQuantityInWayFromClient integer От клиента, шт
wildberriesQuantityInWayToClient integer К клиенту, шт
wildberriesFinalStockCount integer Итого остаток FBS ВБ, шт
ozonStockCount integer Остаток на складе ОЗОН
ozonStockAmount number Сумма цены товаров на складе ОЗОН
ozonBetweenWarehousesCount integer между складами, шт
ozonFinalStockCount integer Итого остаток FBS ОЗОН, шт
totalBalance integer Всего на балансе
calculatedInstockQuantity integer Рассчитанный остаток
totalBalanceAmount number Сумма цены по товарам на балансе
salesCount integer Кол-во продаж
forecast integer На сколько хватит остатка, дн.
isDuplicate boolean Дубликат?
createdDate string Дата создания карточки
viewWildberriesId integer
mainImageId integer
mainImageUrl string URL обложки товара
productName string Название продукта
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getProductBalanceResult',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getProductBalanceResult',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getProductBalanceResult',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getProductBalanceResult?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getProductBalanceResult?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getProductBalanceResult?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getProductBalanceResult?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Товарная аналитика

Метод получает данные по товарной аналитике. Обязательно нужно передать в запросе dateTo, dateFrom, productAnalyticField.Не обязательные поля clientOrganizationId, serviceIds.Поле - period не используется.
GET /api/stat/getProductAnalyticsByField

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of ProductAnalytics Строки с результатом поиска
Структура ProductAnalytics
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Затраты на рекламу, получаем только по ВБиз импорта статистики по рекламным кампаниям
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приёмка
cancelsCount integer Количество отмен
id integer Идентификатор
productId integer Идентификатор товара
productViewId integer Идентификатор цвета товара
productModelId integer Идентификатор модели товара
brandId integer Идентификатор бренда товара
categoryId integer Идентификатор категории товара
deleted boolean Товар удален?
totalCount integer Всего найдено строк для отчетов
instockQuantity integer Кол-во остатков на складе FBS
fboQuantity integer Количество остатков на складах FBO
ozonStockCount integer Количество остатков на складах Ozon
wildberriesStockCount integer Количество остатков на складах Wildberries
yandexMarketStockCount integer Количество остатков на складах Yandex.Market
ozonArticle string Уникальный артикул товара для озон
wbArticle string Название на Wildberries
yandexMarketShopSku string SKU товара на Yandex.Market
aliexpressSku string SKU на Aliexpress
sberArticle string Артикул товара на СберМегаМаркет
oneCArticle string Уникальный артикул товара для 1c
lastWildberriesSaleDate string Дата последней продажи WB
lastWildberriesOrderDate string Дата последнего заказа на WB
lastOzonSaleDate string Дата последней продажи Ozon
lastOzonOrderDate string Дата последнего заказа на Ozon
service string Сервис
orgTaxRate number Процентная ставка налога организации
prodTaxRate number Процентная ставка налога товара
taxType string Тип налогообложения
netProfitRub number Чистая прибыль
netProfitRubPerUnit number Чистая прибыль за 1ед.
otherExpenses number Дополнительныеы расходы на проданный товар, руб.
strategyId integer Идентификатор стратегии ценообразования
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
managerWb string Менеджер WB
managerYandex string Менеджер Yandex
managerOzon string Менеджер Ozon
managerMain string Менеджер Основной
organizationId integer Идентификатор организации
mainImageUrl string Ссылка на основное изображение товара
serviceId ProductAnalytics DTO для передачи данных по товарной аналитике
Структура ProductAnalytics
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Затраты на рекламу, получаем только по ВБиз импорта статистики по рекламным кампаниям
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приёмка
cancelsCount integer Количество отмен
id integer Идентификатор
productId integer Идентификатор товара
productViewId integer Идентификатор цвета товара
productModelId integer Идентификатор модели товара
brandId integer Идентификатор бренда товара
categoryId integer Идентификатор категории товара
deleted boolean Товар удален?
totalCount integer Всего найдено строк для отчетов
instockQuantity integer Кол-во остатков на складе FBS
fboQuantity integer Количество остатков на складах FBO
ozonStockCount integer Количество остатков на складах Ozon
wildberriesStockCount integer Количество остатков на складах Wildberries
yandexMarketStockCount integer Количество остатков на складах Yandex.Market
ozonArticle string Уникальный артикул товара для озон
wbArticle string Название на Wildberries
yandexMarketShopSku string SKU товара на Yandex.Market
aliexpressSku string SKU на Aliexpress
sberArticle string Артикул товара на СберМегаМаркет
oneCArticle string Уникальный артикул товара для 1c
lastWildberriesSaleDate string Дата последней продажи WB
lastWildberriesOrderDate string Дата последнего заказа на WB
lastOzonSaleDate string Дата последней продажи Ozon
lastOzonOrderDate string Дата последнего заказа на Ozon
service string Сервис
orgTaxRate number Процентная ставка налога организации
prodTaxRate number Процентная ставка налога товара
taxType string Тип налогообложения
netProfitRub number Чистая прибыль
netProfitRubPerUnit number Чистая прибыль за 1ед.
otherExpenses number Дополнительныеы расходы на проданный товар, руб.
strategyId integer Идентификатор стратегии ценообразования
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
managerWb string Менеджер WB
managerYandex string Менеджер Yandex
managerOzon string Менеджер Ozon
managerMain string Менеджер Основной
organizationId integer Идентификатор организации
mainImageUrl string Ссылка на основное изображение товара
serviceId object DTO для передачи данных по товарной аналитике
Структура object
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Затраты на рекламу, получаем только по ВБиз импорта статистики по рекламным кампаниям
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приёмка
cancelsCount integer Количество отмен
id integer Идентификатор
productId integer Идентификатор товара
productViewId integer Идентификатор цвета товара
productModelId integer Идентификатор модели товара
brandId integer Идентификатор бренда товара
categoryId integer Идентификатор категории товара
deleted boolean Товар удален?
totalCount integer Всего найдено строк для отчетов
instockQuantity integer Кол-во остатков на складе FBS
fboQuantity integer Количество остатков на складах FBO
ozonStockCount integer Количество остатков на складах Ozon
wildberriesStockCount integer Количество остатков на складах Wildberries
yandexMarketStockCount integer Количество остатков на складах Yandex.Market
ozonArticle string Уникальный артикул товара для озон
wbArticle string Название на Wildberries
yandexMarketShopSku string SKU товара на Yandex.Market
aliexpressSku string SKU на Aliexpress
sberArticle string Артикул товара на СберМегаМаркет
oneCArticle string Уникальный артикул товара для 1c
lastWildberriesSaleDate string Дата последней продажи WB
lastWildberriesOrderDate string Дата последнего заказа на WB
lastOzonSaleDate string Дата последней продажи Ozon
lastOzonOrderDate string Дата последнего заказа на Ozon
service string Сервис
orgTaxRate number Процентная ставка налога организации
prodTaxRate number Процентная ставка налога товара
taxType string Тип налогообложения
netProfitRub number Чистая прибыль
netProfitRubPerUnit number Чистая прибыль за 1ед.
otherExpenses number Дополнительныеы расходы на проданный товар, руб.
strategyId integer Идентификатор стратегии ценообразования
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
managerWb string Менеджер WB
managerYandex string Менеджер Yandex
managerOzon string Менеджер Ozon
managerMain string Менеджер Основной
organizationId integer Идентификатор организации
mainImageUrl string Ссылка на основное изображение товара
serviceId object DTO для передачи данных по товарной аналитике
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getProductAnalyticsByField',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getProductAnalyticsByField',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getProductAnalyticsByField',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getProductAnalyticsByField?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getProductAnalyticsByField?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getProductAnalyticsByField?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getProductAnalyticsByField?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Отчет по проблемным товарам

Метод получает данные по проблемным товарам.
GET /api/stat/getProblematicProductStats

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of ProductAnalytics Строки с результатом поиска
Структура ProductAnalytics
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Затраты на рекламу, получаем только по ВБиз импорта статистики по рекламным кампаниям
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приёмка
cancelsCount integer Количество отмен
id integer Идентификатор
productId integer Идентификатор товара
productViewId integer Идентификатор цвета товара
productModelId integer Идентификатор модели товара
brandId integer Идентификатор бренда товара
categoryId integer Идентификатор категории товара
deleted boolean Товар удален?
totalCount integer Всего найдено строк для отчетов
instockQuantity integer Кол-во остатков на складе FBS
fboQuantity integer Количество остатков на складах FBO
ozonStockCount integer Количество остатков на складах Ozon
wildberriesStockCount integer Количество остатков на складах Wildberries
yandexMarketStockCount integer Количество остатков на складах Yandex.Market
ozonArticle string Уникальный артикул товара для озон
wbArticle string Название на Wildberries
yandexMarketShopSku string SKU товара на Yandex.Market
aliexpressSku string SKU на Aliexpress
sberArticle string Артикул товара на СберМегаМаркет
oneCArticle string Уникальный артикул товара для 1c
lastWildberriesSaleDate string Дата последней продажи WB
lastWildberriesOrderDate string Дата последнего заказа на WB
lastOzonSaleDate string Дата последней продажи Ozon
lastOzonOrderDate string Дата последнего заказа на Ozon
service string Сервис
orgTaxRate number Процентная ставка налога организации
prodTaxRate number Процентная ставка налога товара
taxType string Тип налогообложения
netProfitRub number Чистая прибыль
netProfitRubPerUnit number Чистая прибыль за 1ед.
otherExpenses number Дополнительныеы расходы на проданный товар, руб.
strategyId integer Идентификатор стратегии ценообразования
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
managerWb string Менеджер WB
managerYandex string Менеджер Yandex
managerOzon string Менеджер Ozon
managerMain string Менеджер Основной
organizationId integer Идентификатор организации
mainImageUrl string Ссылка на основное изображение товара
serviceId ProductAnalytics DTO для передачи данных по товарной аналитике
Структура ProductAnalytics
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Затраты на рекламу, получаем только по ВБиз импорта статистики по рекламным кампаниям
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приёмка
cancelsCount integer Количество отмен
id integer Идентификатор
productId integer Идентификатор товара
productViewId integer Идентификатор цвета товара
productModelId integer Идентификатор модели товара
brandId integer Идентификатор бренда товара
categoryId integer Идентификатор категории товара
deleted boolean Товар удален?
totalCount integer Всего найдено строк для отчетов
instockQuantity integer Кол-во остатков на складе FBS
fboQuantity integer Количество остатков на складах FBO
ozonStockCount integer Количество остатков на складах Ozon
wildberriesStockCount integer Количество остатков на складах Wildberries
yandexMarketStockCount integer Количество остатков на складах Yandex.Market
ozonArticle string Уникальный артикул товара для озон
wbArticle string Название на Wildberries
yandexMarketShopSku string SKU товара на Yandex.Market
aliexpressSku string SKU на Aliexpress
sberArticle string Артикул товара на СберМегаМаркет
oneCArticle string Уникальный артикул товара для 1c
lastWildberriesSaleDate string Дата последней продажи WB
lastWildberriesOrderDate string Дата последнего заказа на WB
lastOzonSaleDate string Дата последней продажи Ozon
lastOzonOrderDate string Дата последнего заказа на Ozon
service string Сервис
orgTaxRate number Процентная ставка налога организации
prodTaxRate number Процентная ставка налога товара
taxType string Тип налогообложения
netProfitRub number Чистая прибыль
netProfitRubPerUnit number Чистая прибыль за 1ед.
otherExpenses number Дополнительныеы расходы на проданный товар, руб.
strategyId integer Идентификатор стратегии ценообразования
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
managerWb string Менеджер WB
managerYandex string Менеджер Yandex
managerOzon string Менеджер Ozon
managerMain string Менеджер Основной
organizationId integer Идентификатор организации
mainImageUrl string Ссылка на основное изображение товара
serviceId object DTO для передачи данных по товарной аналитике
Структура object
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Затраты на рекламу, получаем только по ВБиз импорта статистики по рекламным кампаниям
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приёмка
cancelsCount integer Количество отмен
id integer Идентификатор
productId integer Идентификатор товара
productViewId integer Идентификатор цвета товара
productModelId integer Идентификатор модели товара
brandId integer Идентификатор бренда товара
categoryId integer Идентификатор категории товара
deleted boolean Товар удален?
totalCount integer Всего найдено строк для отчетов
instockQuantity integer Кол-во остатков на складе FBS
fboQuantity integer Количество остатков на складах FBO
ozonStockCount integer Количество остатков на складах Ozon
wildberriesStockCount integer Количество остатков на складах Wildberries
yandexMarketStockCount integer Количество остатков на складах Yandex.Market
ozonArticle string Уникальный артикул товара для озон
wbArticle string Название на Wildberries
yandexMarketShopSku string SKU товара на Yandex.Market
aliexpressSku string SKU на Aliexpress
sberArticle string Артикул товара на СберМегаМаркет
oneCArticle string Уникальный артикул товара для 1c
lastWildberriesSaleDate string Дата последней продажи WB
lastWildberriesOrderDate string Дата последнего заказа на WB
lastOzonSaleDate string Дата последней продажи Ozon
lastOzonOrderDate string Дата последнего заказа на Ozon
service string Сервис
orgTaxRate number Процентная ставка налога организации
prodTaxRate number Процентная ставка налога товара
taxType string Тип налогообложения
netProfitRub number Чистая прибыль
netProfitRubPerUnit number Чистая прибыль за 1ед.
otherExpenses number Дополнительныеы расходы на проданный товар, руб.
strategyId integer Идентификатор стратегии ценообразования
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
managerWb string Менеджер WB
managerYandex string Менеджер Yandex
managerOzon string Менеджер Ozon
managerMain string Менеджер Основной
organizationId integer Идентификатор организации
mainImageUrl string Ссылка на основное изображение товара
serviceId object DTO для передачи данных по товарной аналитике
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getProblematicProductStats',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getProblematicProductStats',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getProblematicProductStats',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getProblematicProductStats?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getProblematicProductStats?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getProblematicProductStats?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getProblematicProductStats?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Получить план продаж по типу

Метод возвращает данные по плану продаж по типу
GET /api/stat/getPlanSalesByField

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticFields Array of string Нет Параметр productAnalyticFields
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of PlanSales Строки с результатом поиска
Структура PlanSales
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
id integer
clientId integer
organizationId integer
date string
categoryId integer
viewId integer
productId integer
service string Сервис
planCount integer
planAmount number
totalCount integer
month string
year integer
week integer
factCount integer
factAmount number
dateFrom string Начало периода
dateTo string Конец периода
timeZone integer Тайм зона
period string Период WEEK, Month
serviceId integer
factAmountInPercent number Выполнение плана в процентах
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticFields: '',
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getPlanSalesByField',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticFields?: string;
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticFields: '',
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getPlanSalesByField',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticFields': '',
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getPlanSalesByField',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getPlanSalesByField?productAnalyticFields=&productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getPlanSalesByField?productAnalyticFields=&productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticFields' => '',
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getPlanSalesByField?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getPlanSalesByField?productAnalyticFields=&productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Структура расходов

Метод получает данные по структуре штрафов.Обязательно нужно передать в запросе dateTo, dateFrom, periodНе обязательные поля clientOrganizationId, serviceIds
GET /api/stat/getPenaltyStructure

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Тип ответа: RowStructureForFinanceTable
Элементы массива
Поле Тип Описание
id integer Нет
name string Нет
cost number Нет
totalSales number Нет
percent number Нет
absPercent number Нет
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getPenaltyStructure',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getPenaltyStructure',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getPenaltyStructure',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getPenaltyStructure?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getPenaltyStructure?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getPenaltyStructure?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getPenaltyStructure?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Заказы

Метод возвращает данные о заказах за период
GET /api/stat/getOrderSaleStat

Параметры запроса QUERY

Название Тип Обязательный Описание
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения
id integer Да Уникальный идентификатор
service "NONE""WILDBERRIES""OZON""YANDEX_MARKET""FAMILIYA""NATIONAL_CATALOG""ALIEXPRESS""OTHER""MOY_SKLAD""SBER_MEGA_MARKET""CISLINK""ONE_C""AVITO""LEROY_MERLIN""DETMIR""KAZAN_EXPRESS""EVOTOR""WEBASYST""AMAZON""EBAY""SIMALAND""INSALES""LAMODA""OZON_PERFORMANCE""WALMART""GOOGLE""YANDEX_DISC""EMAIL""WOOCOMMERCE" Нет Параметр service
field "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Да Параметр field

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
data Array of object
Структура object
Поле Тип Описание
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
  id: 'Иванович',
  service: 'NONE',
  field: 'PRODUCT',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getOrderSaleStat',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
  id?: number;
  service?: string;
  field?: string;
}

const params: QueryParams = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
  id: 'Иванович',
  service: 'NONE',
  field: 'PRODUCT',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getOrderSaleStat',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
    'id': 'Иванович',
    'service': 'NONE',
    'field': 'PRODUCT',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getOrderSaleStat',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getOrderSaleStat?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&service=NONE&field=PRODUCT", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getOrderSaleStat?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&service=NONE&field=PRODUCT"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
    'id' => 'Иванович',
    'service' => 'NONE',
    'field' => 'PRODUCT',
];

$url = 'https://api.selsup.ru/api/stat/getOrderSaleStat?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getOrderSaleStat?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&service=NONE&field=PRODUCT' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Отчет по по заказам

Метод получает данные по заказам с группировкой по заказу и товару (для одного заказа с 3 разными товарами в отчете будет 3 строки).
GET /api/stat/getOrderReport

Параметры запроса QUERY

Название Тип Обязательный Описание
actual boolean Нет Отображать только актуальные заказы - не закрытые?
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
serviceWarehouseId integer Нет Внешний номер склада
externalOrderId integer Нет Внешний номер заказа
invoiceNumber integer Нет ID Номера счета
article string Нет Фильтр по артикулу модели товара в заказе
product string Нет Фильтр по названию товара в заказе
organizations integer Нет Фильтр по ID организации. Можно передавать несколько значений organizations=123&organizations=345
query string Нет Поисковый запрос для фильтрации заказов по номеру или названию
userId integer Нет ID пользователя который брал на сборку заказ
service "NONE""WILDBERRIES""OZON""YANDEX_MARKET""FAMILIYA""NATIONAL_CATALOG""ALIEXPRESS""OTHER""MOY_SKLAD""SBER_MEGA_MARKET""CISLINK""ONE_C""AVITO""LEROY_MERLIN""DETMIR""KAZAN_EXPRESS""EVOTOR""WEBASYST""AMAZON""EBAY""SIMALAND""INSALES""LAMODA""OZON_PERFORMANCE""WALMART""GOOGLE""YANDEX_DISC""EMAIL""WOOCOMMERCE" Нет Фильтр заказа по маркетплейсу
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
statuses Array of string Нет Фильтр по статусам заказа. Можно передавать несколько значений statuses=CREATED&statuses=PACKING
withoutSupply boolean Нет Фильтр по заказам не прикрепленным к поставке?
orderProductId integer Нет Фильтр по ID позиции в заказе
productId integer Нет Фильтр по ID товара из заказа
hasCollectTask boolean Нет Фильтр по наличию у заказа сборочного задания?
organizationId integer Нет Фильтр по ID организации заказа
updateInService boolean Нет Заказы, которые стоят в очереди на изменение статуса на маркетплейсе?
hasServiceError boolean Нет Заказы с ошибкой обновления статуса на маркетплейсе?
noLabel boolean Нет Фильтрует заказы без этикетки?
noMsOrder boolean Нет Фильтрует по заказам не созданным в Моем складе?
noMsDemand boolean Нет Фильтрует по заказам с несозданными отгрузками в Моем складе?
ids integer Нет ID заказов. Можно передавать несколько значений ids=123&ids=345
supplyId integer Нет ID поставки, в которой отгружается заказ
notCollected boolean Нет Заказы, которые не собирались через SelSup?
dbs boolean Нет DBS заказы?
express boolean Нет Express заказы?
fbs boolean Нет FBS заказы?
noWarehouse boolean Нет Заказы без склада?
closeDate Date Нет Фильтр по дате сборки заказа - конкретный день
modifiedDate Date Нет Фильтр по дате изменения заказа - статуса или любой информации о заказе начиная с этой даты
modifiedDateTo Date Нет Фильтр по дате изменения заказа - статуса или любой информации о заказе до этой даты
incomeId integer Нет ID закупки из которого создан заказ
bindingOrderId integer Нет ID заказа, которому делаем возврат
closeDateFrom Date Нет Фильтр по дате сборки заказа от - ISO
closeDateTo Date Нет Фильтр по дате сборки заказа до - ISO
orderDate Date Нет Фильтр по дате заказа
deliveryDate Date Нет Фильтр по дате доставки заказа
deliveryDateFrom Date Нет Фильтр по дате доставки заказа от
deliveryDateTo Date Нет Фильтр по дате доставки заказа до
forMoySklad boolean Нет Для создания в МойСклад?
warehouseId integer Нет Фильтр по ID склада, с которого отгружается заказ
warehouseIds integer Нет Фильтр по ID складам, с которого отгружается заказ. Можно передавать несколько значений warehouseIds=123&warehouseIds=345
dateFrom Date Нет Фильтр по дате заказа - от
dateTo Date Нет Фильтр по дате заказа - до
timeZone integer Нет ID часового пояса клиента по UTC в часах, например 3
markingStatus "UNKNOWN""CARDS_SEND""CARDS_CREATED""SUZ_ORDERS_CREATED""MARKS_RECEIVED""CARDS_SIGNED""DOCUMENT_CREATED""SUCCESS""NO_NEED_MARKING" Нет Фильтр по статусу в честном знаке
deleted boolean Нет Показать удаленные заказы?
collectLabel boolean Нет Только для печати в PDF. Признак необходимости распечатать сборочную этикетку для "умной ленты"?
sortOrdersByDate Date Нет Только для печати в PDF. Признак необходимости распечатать сборочную этикетку для "умной ленты"?
sortBySku boolean Нет Только для печати в PDF. Признак необходимости использовать в сортировке данные о товарах объединенных по SKU?
notGroupByOrganization boolean Нет Только для печати в PDF. Признак того, что все организации сортируются одним списком?
notGroupByService boolean Нет Только для печати в PDF. Признак того, что все маркетплейсы сортируются одним списком?
productLabel boolean Нет Только для печати в PDF. Признак необходимости распечатать этикетку товара в ленте?
servicesForLabel Array of string Нет Сервисы для которых нужна печать в PDF
infoLabel boolean Нет Только для печати в PDF. Признак необходимости распечатать информационную этикетку для ленты заказов?
grouped boolean Нет Отдает сгруппированные позиции из заказов. Только для выгрузки в Excel?
replaceSetByComponent boolean Нет Заменяет в заказах комплекты на компоненты?
replaceSetsByComponentsIncome boolean Нет Заменяет в заказах комплекты на компоненты в файле закупки?
collectDeliveryLabel boolean Нет Только для печати в PDF. Признак необходимости распечатать накладную службы доставки для "умной ленты"?
shippingServicesForLabel Array of string Нет Сервисы доставки для которых нужна печать накладной в PDF
orderId integer Нет ID заказа
hasVideoFixation boolean Нет Идентификатор была ли видео фиксация?
withProducts boolean Нет Признак, что заказы необходимо отдать c товарами?
passageIds integer Нет Фильтр по ID проходов. Можно передавать несколько значений passageIds=123&passageIds=345
withContractor boolean Нет Включить информацию о поставщиках в выгрузку?
limit integer Нет Ограничение на количество записей. Максимальное значение - 500
page integer Нет Номер страницы начиная с 1
count boolean Нет Возвратить в ответе общее количество записей
sortBy "ID""CREATEDDATE""ORDERCREATED""CREATED""CREATEDUSER""STATUS""SERVICE""TYPE""BOXTYPE""NAME""ORGANIZATIONID""WAREHOUSE""INVOICENUMBER""EXTERNALORDERID""QUEUE""SUPPLYID""CLOSEDATE""STARTCOLLECTDATE""CLOSEUSERID""USERID""PRICE""PRODUCT""COLLECTORDERTASKID""DELIVERYDATE""MARKINGSTATUS""QUANTITY""DATE""SERVICEWAREHOUSEID" Нет Поле для сортировки
ascending boolean Нет Порядок сортировки - по возрастанию?. Работает только при получении списка.

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of OrderReport Строки с результатом поиска
Структура OrderReport
Поле Тип Описание
id integer Идентификатор
orderId integer Идентификатор заказа
shortOrgName string Сокращенное название организации.
service string Сервис
mainImageUrl string Ссылка на основное изображение товара на маркетплейсе
orderType string Тип заказа.
brandName string Бренд.
categoryName string Категория Selsup.
productName string Название товара.
orderStatus string Статус заказа
orderDate string Дата заказа.
orderCollectedDate string Дата сборки заказа.
orderStartCollectDate string Дата начала сборки заказа.
saleDate string Дата покупки.
countDaysInRoad integer Дней в пути.
orderRegion string Регион заказа.
salesAmount number Цена продажи.
costPrice number Себестоимость.
commission number Комиссия в руб.
logistics number Логистика.
totalSellingExpenses number Итого расходы по продаже на МП.
grossProfit number Валовая прибыль.
orderNumber string Номер заказа.
sticker string Стикер.
deliveryNumber string Номер поставки.
ozonId string Идентификатор товара на озоне.
wildberriesId string Идентификатор товара на WB.
productLink string Ссылка на карточку товара на маркетплейсе.
modelArticle string Артикул.
article string Артикул.
color string Цвет товара.
size string Размер товара.
barcode string Штрихкод.
ozonArticle string Уникальный артикул товара для озон
wbArticle string Артикул на Wildberries
yandexMarketShopSku string SKU товара на Yandex.Market
aliexpressSku string SKU на Aliexpress
externalArticle string Внешний артикул
sberArticle string Артикул товара на СберМегаМаркет
oneCArticle string Уникальный артикул товара для 1c
siteArticle string Артикул на сайте
serviceWarehouse string Склад отгрузки
quantity integer Количество данного товара в заказе
ozonPostingNumber string Номер поставки OZON
wildberriesRid string Номер заказа WB
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  actual: 'true',
  type: 'standard',
  serviceWarehouseId: 'Пример serviceWarehouseId',
  externalOrderId: 'Пример externalOrderId',
  invoiceNumber: '1',
  article: 'ART-001',
  product: 'Товар №1',
  organizations: 'АО "Торговый дом"',
  query: 'Пример query',
  userId: '123',
  service: 'NONE',
  status: 'active',
  statuses: 'active',
  withoutSupply: 'true',
  orderProductId: '123',
  productId: '123',
  hasCollectTask: 'true',
  organizationId: 'АО "Торговый дом"',
  updateInService: 'true',
  hasServiceError: 'true',
  noLabel: 'true',
  noMsOrder: 'true',
  noMsDemand: 'true',
  ids: '',
  supplyId: '123',
  notCollected: 'true',
  dbs: 'true',
  express: 'true',
  fbs: 'true',
  noWarehouse: 'true',
  closeDate: 'Пример closeDate',
  modifiedDate: '2024-01-15T10:30:00Z',
  modifiedDateTo: '2024-01-15T10:30:00Z',
  incomeId: '123',
  bindingOrderId: '123',
  closeDateFrom: '2024-01-15T10:30:00Z',
  closeDateTo: '2024-01-15T10:30:00Z',
  orderDate: 'Пример orderDate',
  deliveryDate: 'Пример deliveryDate',
  deliveryDateFrom: 'Пример deliveryDateFrom',
  deliveryDateTo: 'Пример deliveryDateTo',
  forMoySklad: 'true',
  warehouseId: '123',
  warehouseIds: '',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  timeZone: '1',
  markingStatus: 'active',
  deleted: 'false',
  collectLabel: 'true',
  sortOrdersByDate: 'true',
  sortBySku: 'SKU-12345',
  notGroupByOrganization: 'АО "Торговый дом"',
  notGroupByService: 'true',
  productLabel: 'true',
  servicesForLabel: '',
  infoLabel: 'true',
  grouped: 'true',
  replaceSetByComponent: 'true',
  replaceSetsByComponentsIncome: 'true',
  collectDeliveryLabel: 'true',
  shippingServicesForLabel: '',
  orderId: '123',
  hasVideoFixation: 'true',
  withProducts: 'true',
  passageIds: '',
  withContractor: 'true',
  limit: '100',
  page: '1',
  count: 'Россия',
  sortBy: 'ID',
  ascending: 'true',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getOrderReport',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  actual?: string;
  type?: string;
  serviceWarehouseId?: string;
  externalOrderId?: string;
  invoiceNumber?: number;
  article?: string;
  product?: string;
  organizations?: string;
  query?: string;
  userId?: number;
  service?: string;
  status?: string;
  statuses?: string;
  withoutSupply?: string;
  orderProductId?: number;
  productId?: number;
  hasCollectTask?: string;
  organizationId?: number;
  updateInService?: string;
  hasServiceError?: string;
  noLabel?: string;
  noMsOrder?: string;
  noMsDemand?: string;
  ids?: string;
  supplyId?: number;
  notCollected?: string;
  dbs?: string;
  express?: string;
  fbs?: string;
  noWarehouse?: string;
  closeDate?: string;
  modifiedDate?: string;
  modifiedDateTo?: string;
  incomeId?: number;
  bindingOrderId?: number;
  closeDateFrom?: string;
  closeDateTo?: string;
  orderDate?: string;
  deliveryDate?: string;
  deliveryDateFrom?: string;
  deliveryDateTo?: string;
  forMoySklad?: string;
  warehouseId?: number;
  warehouseIds?: string;
  dateFrom?: string;
  dateTo?: string;
  timeZone?: number;
  markingStatus?: string;
  deleted?: string;
  collectLabel?: string;
  sortOrdersByDate?: string;
  sortBySku?: string;
  notGroupByOrganization?: string;
  notGroupByService?: string;
  productLabel?: string;
  servicesForLabel?: string;
  infoLabel?: string;
  grouped?: string;
  replaceSetByComponent?: string;
  replaceSetsByComponentsIncome?: string;
  collectDeliveryLabel?: string;
  shippingServicesForLabel?: string;
  orderId?: number;
  hasVideoFixation?: string;
  withProducts?: string;
  passageIds?: string;
  withContractor?: string;
  limit?: number;
  page?: number;
  count?: string;
  sortBy?: string;
  ascending?: string;
}

const params: QueryParams = {
  actual: 'true',
  type: 'standard',
  serviceWarehouseId: 'Пример serviceWarehouseId',
  externalOrderId: 'Пример externalOrderId',
  invoiceNumber: '1',
  article: 'ART-001',
  product: 'Товар №1',
  organizations: 'АО "Торговый дом"',
  query: 'Пример query',
  userId: '123',
  service: 'NONE',
  status: 'active',
  statuses: 'active',
  withoutSupply: 'true',
  orderProductId: '123',
  productId: '123',
  hasCollectTask: 'true',
  organizationId: 'АО "Торговый дом"',
  updateInService: 'true',
  hasServiceError: 'true',
  noLabel: 'true',
  noMsOrder: 'true',
  noMsDemand: 'true',
  ids: '',
  supplyId: '123',
  notCollected: 'true',
  dbs: 'true',
  express: 'true',
  fbs: 'true',
  noWarehouse: 'true',
  closeDate: 'Пример closeDate',
  modifiedDate: '2024-01-15T10:30:00Z',
  modifiedDateTo: '2024-01-15T10:30:00Z',
  incomeId: '123',
  bindingOrderId: '123',
  closeDateFrom: '2024-01-15T10:30:00Z',
  closeDateTo: '2024-01-15T10:30:00Z',
  orderDate: 'Пример orderDate',
  deliveryDate: 'Пример deliveryDate',
  deliveryDateFrom: 'Пример deliveryDateFrom',
  deliveryDateTo: 'Пример deliveryDateTo',
  forMoySklad: 'true',
  warehouseId: '123',
  warehouseIds: '',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  timeZone: '1',
  markingStatus: 'active',
  deleted: 'false',
  collectLabel: 'true',
  sortOrdersByDate: 'true',
  sortBySku: 'SKU-12345',
  notGroupByOrganization: 'АО "Торговый дом"',
  notGroupByService: 'true',
  productLabel: 'true',
  servicesForLabel: '',
  infoLabel: 'true',
  grouped: 'true',
  replaceSetByComponent: 'true',
  replaceSetsByComponentsIncome: 'true',
  collectDeliveryLabel: 'true',
  shippingServicesForLabel: '',
  orderId: '123',
  hasVideoFixation: 'true',
  withProducts: 'true',
  passageIds: '',
  withContractor: 'true',
  limit: '100',
  page: '1',
  count: 'Россия',
  sortBy: 'ID',
  ascending: 'true',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getOrderReport',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'actual': 'true',
    'type': 'standard',
    'serviceWarehouseId': 'Пример serviceWarehouseId',
    'externalOrderId': 'Пример externalOrderId',
    'invoiceNumber': '1',
    'article': 'ART-001',
    'product': 'Товар №1',
    'organizations': 'АО "Торговый дом"',
    'query': 'Пример query',
    'userId': '123',
    'service': 'NONE',
    'status': 'active',
    'statuses': 'active',
    'withoutSupply': 'true',
    'orderProductId': '123',
    'productId': '123',
    'hasCollectTask': 'true',
    'organizationId': 'АО "Торговый дом"',
    'updateInService': 'true',
    'hasServiceError': 'true',
    'noLabel': 'true',
    'noMsOrder': 'true',
    'noMsDemand': 'true',
    'ids': '',
    'supplyId': '123',
    'notCollected': 'true',
    'dbs': 'true',
    'express': 'true',
    'fbs': 'true',
    'noWarehouse': 'true',
    'closeDate': 'Пример closeDate',
    'modifiedDate': '2024-01-15T10:30:00Z',
    'modifiedDateTo': '2024-01-15T10:30:00Z',
    'incomeId': '123',
    'bindingOrderId': '123',
    'closeDateFrom': '2024-01-15T10:30:00Z',
    'closeDateTo': '2024-01-15T10:30:00Z',
    'orderDate': 'Пример orderDate',
    'deliveryDate': 'Пример deliveryDate',
    'deliveryDateFrom': 'Пример deliveryDateFrom',
    'deliveryDateTo': 'Пример deliveryDateTo',
    'forMoySklad': 'true',
    'warehouseId': '123',
    'warehouseIds': '',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'timeZone': '1',
    'markingStatus': 'active',
    'deleted': 'false',
    'collectLabel': 'true',
    'sortOrdersByDate': 'true',
    'sortBySku': 'SKU-12345',
    'notGroupByOrganization': 'АО "Торговый дом"',
    'notGroupByService': 'true',
    'productLabel': 'true',
    'servicesForLabel': '',
    'infoLabel': 'true',
    'grouped': 'true',
    'replaceSetByComponent': 'true',
    'replaceSetsByComponentsIncome': 'true',
    'collectDeliveryLabel': 'true',
    'shippingServicesForLabel': '',
    'orderId': '123',
    'hasVideoFixation': 'true',
    'withProducts': 'true',
    'passageIds': '',
    'withContractor': 'true',
    'limit': '100',
    'page': '1',
    'count': 'Россия',
    'sortBy': 'ID',
    'ascending': 'true',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getOrderReport',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getOrderReport?actual=true&type=standard&serviceWarehouseId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20serviceWarehouseId&externalOrderId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20externalOrderId&invoiceNumber=1&article=ART-001&product=%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%20%E2%84%961&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&userId=123&service=NONE&status=active&statuses=active&withoutSupply=true&orderProductId=123&productId=123&hasCollectTask=true&organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&updateInService=true&hasServiceError=true&noLabel=true&noMsOrder=true&noMsDemand=true&ids=&supplyId=123&notCollected=true&dbs=true&express=true&fbs=true&noWarehouse=true&closeDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20closeDate&modifiedDate=2024-01-15T10%3A30%3A00Z&modifiedDateTo=2024-01-15T10%3A30%3A00Z&incomeId=123&bindingOrderId=123&closeDateFrom=2024-01-15T10%3A30%3A00Z&closeDateTo=2024-01-15T10%3A30%3A00Z&orderDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20orderDate&deliveryDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20deliveryDate&deliveryDateFrom=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20deliveryDateFrom&deliveryDateTo=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20deliveryDateTo&forMoySklad=true&warehouseId=123&warehouseIds=&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&timeZone=1&markingStatus=active&deleted=false&collectLabel=true&sortOrdersByDate=true&sortBySku=SKU-12345&notGroupByOrganization=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&notGroupByService=true&productLabel=true&servicesForLabel=&infoLabel=true&grouped=true&replaceSetByComponent=true&replaceSetsByComponentsIncome=true&collectDeliveryLabel=true&shippingServicesForLabel=&orderId=123&hasVideoFixation=true&withProducts=true&passageIds=&withContractor=true&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=ID&ascending=true", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getOrderReport?actual=true&type=standard&serviceWarehouseId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20serviceWarehouseId&externalOrderId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20externalOrderId&invoiceNumber=1&article=ART-001&product=%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%20%E2%84%961&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&userId=123&service=NONE&status=active&statuses=active&withoutSupply=true&orderProductId=123&productId=123&hasCollectTask=true&organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&updateInService=true&hasServiceError=true&noLabel=true&noMsOrder=true&noMsDemand=true&ids=&supplyId=123&notCollected=true&dbs=true&express=true&fbs=true&noWarehouse=true&closeDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20closeDate&modifiedDate=2024-01-15T10%3A30%3A00Z&modifiedDateTo=2024-01-15T10%3A30%3A00Z&incomeId=123&bindingOrderId=123&closeDateFrom=2024-01-15T10%3A30%3A00Z&closeDateTo=2024-01-15T10%3A30%3A00Z&orderDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20orderDate&deliveryDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20deliveryDate&deliveryDateFrom=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20deliveryDateFrom&deliveryDateTo=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20deliveryDateTo&forMoySklad=true&warehouseId=123&warehouseIds=&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&timeZone=1&markingStatus=active&deleted=false&collectLabel=true&sortOrdersByDate=true&sortBySku=SKU-12345&notGroupByOrganization=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&notGroupByService=true&productLabel=true&servicesForLabel=&infoLabel=true&grouped=true&replaceSetByComponent=true&replaceSetsByComponentsIncome=true&collectDeliveryLabel=true&shippingServicesForLabel=&orderId=123&hasVideoFixation=true&withProducts=true&passageIds=&withContractor=true&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=ID&ascending=true"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'actual' => 'true',
    'type' => 'standard',
    'serviceWarehouseId' => 'Пример serviceWarehouseId',
    'externalOrderId' => 'Пример externalOrderId',
    'invoiceNumber' => '1',
    'article' => 'ART-001',
    'product' => 'Товар №1',
    'organizations' => 'АО "Торговый дом"',
    'query' => 'Пример query',
    'userId' => '123',
    'service' => 'NONE',
    'status' => 'active',
    'statuses' => 'active',
    'withoutSupply' => 'true',
    'orderProductId' => '123',
    'productId' => '123',
    'hasCollectTask' => 'true',
    'organizationId' => 'АО "Торговый дом"',
    'updateInService' => 'true',
    'hasServiceError' => 'true',
    'noLabel' => 'true',
    'noMsOrder' => 'true',
    'noMsDemand' => 'true',
    'ids' => '',
    'supplyId' => '123',
    'notCollected' => 'true',
    'dbs' => 'true',
    'express' => 'true',
    'fbs' => 'true',
    'noWarehouse' => 'true',
    'closeDate' => 'Пример closeDate',
    'modifiedDate' => '2024-01-15T10:30:00Z',
    'modifiedDateTo' => '2024-01-15T10:30:00Z',
    'incomeId' => '123',
    'bindingOrderId' => '123',
    'closeDateFrom' => '2024-01-15T10:30:00Z',
    'closeDateTo' => '2024-01-15T10:30:00Z',
    'orderDate' => 'Пример orderDate',
    'deliveryDate' => 'Пример deliveryDate',
    'deliveryDateFrom' => 'Пример deliveryDateFrom',
    'deliveryDateTo' => 'Пример deliveryDateTo',
    'forMoySklad' => 'true',
    'warehouseId' => '123',
    'warehouseIds' => '',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'timeZone' => '1',
    'markingStatus' => 'active',
    'deleted' => 'false',
    'collectLabel' => 'true',
    'sortOrdersByDate' => 'true',
    'sortBySku' => 'SKU-12345',
    'notGroupByOrganization' => 'АО "Торговый дом"',
    'notGroupByService' => 'true',
    'productLabel' => 'true',
    'servicesForLabel' => '',
    'infoLabel' => 'true',
    'grouped' => 'true',
    'replaceSetByComponent' => 'true',
    'replaceSetsByComponentsIncome' => 'true',
    'collectDeliveryLabel' => 'true',
    'shippingServicesForLabel' => '',
    'orderId' => '123',
    'hasVideoFixation' => 'true',
    'withProducts' => 'true',
    'passageIds' => '',
    'withContractor' => 'true',
    'limit' => '100',
    'page' => '1',
    'count' => 'Россия',
    'sortBy' => 'ID',
    'ascending' => 'true',
];

$url = 'https://api.selsup.ru/api/stat/getOrderReport?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getOrderReport?actual=true&type=standard&serviceWarehouseId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20serviceWarehouseId&externalOrderId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20externalOrderId&invoiceNumber=1&article=ART-001&product=%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%20%E2%84%961&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&userId=123&service=NONE&status=active&statuses=active&withoutSupply=true&orderProductId=123&productId=123&hasCollectTask=true&organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&updateInService=true&hasServiceError=true&noLabel=true&noMsOrder=true&noMsDemand=true&ids=&supplyId=123&notCollected=true&dbs=true&express=true&fbs=true&noWarehouse=true&closeDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20closeDate&modifiedDate=2024-01-15T10%3A30%3A00Z&modifiedDateTo=2024-01-15T10%3A30%3A00Z&incomeId=123&bindingOrderId=123&closeDateFrom=2024-01-15T10%3A30%3A00Z&closeDateTo=2024-01-15T10%3A30%3A00Z&orderDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20orderDate&deliveryDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20deliveryDate&deliveryDateFrom=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20deliveryDateFrom&deliveryDateTo=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20deliveryDateTo&forMoySklad=true&warehouseId=123&warehouseIds=&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&timeZone=1&markingStatus=active&deleted=value&collectLabel=true&sortOrdersByDate=true&sortBySku=SKU-12345&notGroupByOrganization=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&notGroupByService=true&productLabel=true&servicesForLabel=&infoLabel=true&grouped=true&replaceSetByComponent=true&replaceSetsByComponentsIncome=true&collectDeliveryLabel=true&shippingServicesForLabel=&orderId=123&hasVideoFixation=true&withProducts=true&passageIds=&withContractor=true&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=ID&ascending=true' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Данные о выполненных задания

Возвращает информацию о выполненных заданиях сотрудников за период
GET /api/stat/getOperatorJobStats

Параметры запроса QUERY

Название Тип Обязательный Описание
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
users Array of UserInfo
Структура UserInfo
Поле Тип Описание
name string
key string
data Array of object
Структура object
Поле Тип Описание
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getOperatorJobStats',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getOperatorJobStats',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getOperatorJobStats',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getOperatorJobStats?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getOperatorJobStats?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getOperatorJobStats?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getOperatorJobStats?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Данные о заказах поставщикам

Возвращает информацию о заказах поставщикам для расчетов с контрагентами
GET /api/stat/getIncomePriceStats

Параметры запроса QUERY

Название Тип Обязательный Описание
modelId integer Да Параметр modelId

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
data Array of object
Структура object
Поле Тип Описание
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  modelId: '123',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getIncomePriceStats',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  modelId?: number;
}

const params: QueryParams = {
  modelId: '123',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getIncomePriceStats',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'modelId': '123',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getIncomePriceStats',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getIncomePriceStats?modelId=123", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getIncomePriceStats?modelId=123"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'modelId' => '123',
];

$url = 'https://api.selsup.ru/api/stat/getIncomePriceStats?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getIncomePriceStats?modelId=123' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Возвращает отчет рука на пульсе

Метод возвращает данные по отчету рука на пульсе Wildberries
GET /api/stat/getHandOnPulseReport

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of HandOnPulseReport Строки с результатом поиска
Структура HandOnPulseReport
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Затраты на рекламу, получаем только по ВБиз импорта статистики по рекламным кампаниям
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приёмка
cancelsCount integer Количество отмен
id integer Идентификатор
productId integer Идентификатор товара
productViewId integer Идентификатор цвета товара
productModelId integer Идентификатор модели товара
brandId integer Идентификатор бренда товара
categoryId integer Идентификатор категории товара
deleted boolean Товар удален?
totalCount integer Всего найдено строк для отчетов
instockQuantity integer Кол-во остатков на складе FBS
fboQuantity integer Количество остатков на складах FBO
ozonStockCount integer Количество остатков на складах Ozon
wildberriesStockCount integer Количество остатков на складах Wildberries
yandexMarketStockCount integer Количество остатков на складах Yandex.Market
ozonArticle string Уникальный артикул товара для озон
wbArticle string Название на Wildberries
yandexMarketShopSku string SKU товара на Yandex.Market
aliexpressSku string SKU на Aliexpress
sberArticle string Артикул товара на СберМегаМаркет
oneCArticle string Уникальный артикул товара для 1c
lastWildberriesSaleDate string Дата последней продажи WB
lastWildberriesOrderDate string Дата последнего заказа на WB
lastOzonSaleDate string Дата последней продажи Ozon
lastOzonOrderDate string Дата последнего заказа на Ozon
service string Сервис
orgTaxRate number Процентная ставка налога организации
prodTaxRate number Процентная ставка налога товара
taxType string Тип налогообложения
netProfitRub number Чистая прибыль
netProfitRubPerUnit number Чистая прибыль за 1ед.
otherExpenses number Дополнительныеы расходы на проданный товар, руб.
strategyId integer Идентификатор стратегии ценообразования
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
managerWb string Менеджер WB
managerYandex string Менеджер Yandex
managerOzon string Менеджер Ozon
managerMain string Менеджер Основной
organizationId integer Идентификатор организации
mainImageUrl string Ссылка на основное изображение товара
planSalesCount integer План продаж в шт(Продажи - возвраты)
articles string Все артикулы МП которые есть у клиента по товару
averageProfit number Средняя прибыль за 1 единицу товара рублесы
totalExpensesAmount number Общий расход за период
periodDateReport string Период
expenses number Сумма за рекламу
campaignOrderAmount number Сумма заказов
quantityAddCart integer Добавлений в корзину
clicks integer Кол-во кликов
views integer Кол-во показов
planSales Array of PlanSales Список плана продаж
Структура PlanSales
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
id integer
clientId integer
organizationId integer
date string
categoryId integer
viewId integer
productId integer
service string Сервис
planCount integer
planAmount number
totalCount integer
month string
year integer
week integer
factCount integer
factAmount number
dateFrom string Начало периода
dateTo string Конец периода
timeZone integer Тайм зона
period string Период WEEK, Month
serviceId integer
factAmountInPercent number Выполнение плана в процентах
purchasePercent number Средний процент выкупа по всем МП
averageCostCampaignOnOneClick number Средняя стоимость клика
quantityProductOrdersInCampaign integer Количество заказанных товаров в рекламной кампании, шт.
serviceId ProductAnalytics DTO для передачи данных по товарной аналитике
Структура ProductAnalytics
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Затраты на рекламу, получаем только по ВБиз импорта статистики по рекламным кампаниям
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приёмка
cancelsCount integer Количество отмен
id integer Идентификатор
productId integer Идентификатор товара
productViewId integer Идентификатор цвета товара
productModelId integer Идентификатор модели товара
brandId integer Идентификатор бренда товара
categoryId integer Идентификатор категории товара
deleted boolean Товар удален?
totalCount integer Всего найдено строк для отчетов
instockQuantity integer Кол-во остатков на складе FBS
fboQuantity integer Количество остатков на складах FBO
ozonStockCount integer Количество остатков на складах Ozon
wildberriesStockCount integer Количество остатков на складах Wildberries
yandexMarketStockCount integer Количество остатков на складах Yandex.Market
ozonArticle string Уникальный артикул товара для озон
wbArticle string Название на Wildberries
yandexMarketShopSku string SKU товара на Yandex.Market
aliexpressSku string SKU на Aliexpress
sberArticle string Артикул товара на СберМегаМаркет
oneCArticle string Уникальный артикул товара для 1c
lastWildberriesSaleDate string Дата последней продажи WB
lastWildberriesOrderDate string Дата последнего заказа на WB
lastOzonSaleDate string Дата последней продажи Ozon
lastOzonOrderDate string Дата последнего заказа на Ozon
service string Сервис
orgTaxRate number Процентная ставка налога организации
prodTaxRate number Процентная ставка налога товара
taxType string Тип налогообложения
netProfitRub number Чистая прибыль
netProfitRubPerUnit number Чистая прибыль за 1ед.
otherExpenses number Дополнительныеы расходы на проданный товар, руб.
strategyId integer Идентификатор стратегии ценообразования
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
managerWb string Менеджер WB
managerYandex string Менеджер Yandex
managerOzon string Менеджер Ozon
managerMain string Менеджер Основной
organizationId integer Идентификатор организации
mainImageUrl string Ссылка на основное изображение товара
serviceId ProductAnalytics DTO для передачи данных по товарной аналитике
Структура ProductAnalytics
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Затраты на рекламу, получаем только по ВБиз импорта статистики по рекламным кампаниям
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приёмка
cancelsCount integer Количество отмен
id integer Идентификатор
productId integer Идентификатор товара
productViewId integer Идентификатор цвета товара
productModelId integer Идентификатор модели товара
brandId integer Идентификатор бренда товара
categoryId integer Идентификатор категории товара
deleted boolean Товар удален?
totalCount integer Всего найдено строк для отчетов
instockQuantity integer Кол-во остатков на складе FBS
fboQuantity integer Количество остатков на складах FBO
ozonStockCount integer Количество остатков на складах Ozon
wildberriesStockCount integer Количество остатков на складах Wildberries
yandexMarketStockCount integer Количество остатков на складах Yandex.Market
ozonArticle string Уникальный артикул товара для озон
wbArticle string Название на Wildberries
yandexMarketShopSku string SKU товара на Yandex.Market
aliexpressSku string SKU на Aliexpress
sberArticle string Артикул товара на СберМегаМаркет
oneCArticle string Уникальный артикул товара для 1c
lastWildberriesSaleDate string Дата последней продажи WB
lastWildberriesOrderDate string Дата последнего заказа на WB
lastOzonSaleDate string Дата последней продажи Ozon
lastOzonOrderDate string Дата последнего заказа на Ozon
service string Сервис
orgTaxRate number Процентная ставка налога организации
prodTaxRate number Процентная ставка налога товара
taxType string Тип налогообложения
netProfitRub number Чистая прибыль
netProfitRubPerUnit number Чистая прибыль за 1ед.
otherExpenses number Дополнительныеы расходы на проданный товар, руб.
strategyId integer Идентификатор стратегии ценообразования
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
managerWb string Менеджер WB
managerYandex string Менеджер Yandex
managerOzon string Менеджер Ozon
managerMain string Менеджер Основной
organizationId integer Идентификатор организации
mainImageUrl string Ссылка на основное изображение товара
serviceId object DTO для передачи данных по товарной аналитике
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getHandOnPulseReport',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getHandOnPulseReport',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getHandOnPulseReport',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getHandOnPulseReport?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getHandOnPulseReport?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getHandOnPulseReport?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getHandOnPulseReport?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Дата начала аналитика

Возвращает первую дату записанной аналитики по клиенту
GET /api/stat/getFirstAnalyticDay

Параметры запроса QUERY

Название Тип Обязательный Описание
clientOrganizationId integer Нет Параметр clientOrganizationId
services Array of string Нет Параметр services

Тело ответа

✓ 200 OK
Тип: string
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  clientOrganizationId: 'АО "Торговый дом"',
  services: '',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getFirstAnalyticDay',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  clientOrganizationId?: number;
  services?: string;
}

const params: QueryParams = {
  clientOrganizationId: 'АО "Торговый дом"',
  services: '',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getFirstAnalyticDay',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'clientOrganizationId': 'АО "Торговый дом"',
    'services': '',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getFirstAnalyticDay',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getFirstAnalyticDay?clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&services=", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getFirstAnalyticDay?clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&services="))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'clientOrganizationId' => 'АО "Торговый дом"',
    'services' => '',
];

$url = 'https://api.selsup.ru/api/stat/getFirstAnalyticDay?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getFirstAnalyticDay?clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&services=' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Финансовый отчет

Метод получает данные по финансовой аналитике. Обязательно нужно передать в запросе dateTo, dateFrom, periodНе обязательные поля clientOrganizationId, serviceIds
GET /api/stat/getFinancesReportByPeriod

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of FinanceReport Строки с результатом поиска
Структура FinanceReport
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Стоимость рекламы ВБ
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приёмка
cancelsCount integer Количество отмен
id integer Идентификатор
orgName string Название организации
organizationId integer Идентификатор организации
reportNumber string Номер отчета
dateStart string Дата начала отчета по реализации
dateEnd string Дата конца отчета по реализации
logisticToClientAmount number Стоимость логистики к клиенту в руб.
logisticFromClientAmount number Стоимость логистики от клиента в руб.
salesCommission number Комиссия от продажи в руб.
returnsCommission number Возврат комиссии в руб.
profit number Прибыль в руб. grossProfit - fixedOutlay - taxes + selfPayAmount - storageAmount
bankPayment number Оплата по банку в руб.
costPrice number Себестоимость товара в руб. purchasePrice * salesCount
fixedOutlay number Постоянные расходы в руб.(Расходы за весь интервал / кол-во дней в месяце)*на выбранный интервал, если период захватывает больше одного месяца, будет вычисляться для каждого месяца, а после складываться, в случае нескольких отчетах для организации, то будет по каждому отчету браться по коэфициенту продаж
taxes number Налоги в руб.
sellingCosts number Затраты по продаже на МП. getLogistics() + getCommissions() + getPenalty() + getServices() - getAdditionalAndDeduction() - getOtherAmount() + getCostStorage()
rentability number Рентабельность. (profit / totalSalesAmount) * 100
taxRate number Процентная ставка налога
taxType string Тип налогообложения
totalCampaignCost number Стоимость рекламы сумма
ozonCampaignCost number Реклама Озон
basicExpenses number Сумма основных расходов: комиссия + логистика + себестоимость
otherExpenses number Сумма прочих расходов: платная приемка + прочие удержания + прочие начисления + хранения + доплаты
additionalExpenses number Сумма дополнительных расходов: реклама + услуги + штрафы + сумма прочих расходов
ozonDeliveryReturn number Перечисление за доставку от покупателя, должно идти в прибыль
emptyPurchaseAmount integer Сумма продаж, для которых не указана закупочная цена
totalSalesAmountWithSpp number Сумма продаж, если учитывать СPP (до SPP)
sellingCostsWithSpp number Сумма расходов на МП если учитывать СPP (до SPP)
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getFinancesReportByPeriod',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getFinancesReportByPeriod',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getFinancesReportByPeriod',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getFinancesReportByPeriod?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getFinancesReportByPeriod?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getFinancesReportByPeriod?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getFinancesReportByPeriod?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Получить факт продаж

Метод возвращает данные по факту продаж
GET /api/stat/getFactSalePlanReport

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticFields Array of string Нет Параметр productAnalyticFields
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of PlanFactSalesReport Строки с результатом поиска
Структура PlanFactSalesReport
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
organizationId integer id организации
totalStocksCount integer Остаток FBS + FBO.
totalFBOStocksCount integer Остаток FBO
planSalesCount integer План продаж в шт(Продажи - возвраты)
planSalesAmount number План продаж в руб(Продажи - возвраты)
salesCount integer Кол-во продаж в шт(Продажи - возвраты)
salesAmount number Сумма продаж в руб(Продажи - возвраты)
date string Дата
lastDate string Последняя дата с заполненным планом либо фактической продажей
totalCount integer
id integer
month string Месяц
year integer Год
week integer Неделя
dateFrom string Начало периода
dateTo string Конец периода
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticFields: '',
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getFactSalePlanReport',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticFields?: string;
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticFields: '',
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getFactSalePlanReport',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticFields': '',
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getFactSalePlanReport',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getFactSalePlanReport?productAnalyticFields=&productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getFactSalePlanReport?productAnalyticFields=&productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticFields' => '',
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getFactSalePlanReport?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getFactSalePlanReport?productAnalyticFields=&productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Остатки на дашборде FBO/FBS

Получить кол-во и сумму остатков по FBS и FBO
GET /api/stat/getCountFbsFbo

Параметры запроса QUERY

Название Тип Обязательный Описание
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения
service Array of string Нет Параметр service
fieldId integer Нет Параметр fieldId
field "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Параметр field

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
fbsCount integer
fbsAmount number
fboCount integer
fboAmount number
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
  service: '',
  fieldId: '123',
  field: 'PRODUCT',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getCountFbsFbo',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
  service?: string;
  fieldId?: number;
  field?: string;
}

const params: QueryParams = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
  service: '',
  fieldId: '123',
  field: 'PRODUCT',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getCountFbsFbo',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
    'service': '',
    'fieldId': '123',
    'field': 'PRODUCT',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getCountFbsFbo',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getCountFbsFbo?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&service=&fieldId=123&field=PRODUCT", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getCountFbsFbo?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&service=&fieldId=123&field=PRODUCT"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
    'service' => '',
    'fieldId' => '123',
    'field' => 'PRODUCT',
];

$url = 'https://api.selsup.ru/api/stat/getCountFbsFbo?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getCountFbsFbo?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&service=&fieldId=123&field=PRODUCT' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Структура расходов

Метод получает данные по структуре расходов.Обязательно нужно передать в запросе dateTo, dateFrom, periodНе обязательные поля clientOrganizationId, serviceIds
GET /api/stat/getCostStructure

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of RowStructureForFinanceTable Строки с результатом поиска
Структура RowStructureForFinanceTable
Поле Тип Описание
id integer
name string
cost number
totalSales number
percent number
absPercent number
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getCostStructure',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getCostStructure',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getCostStructure',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getCostStructure?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getCostStructure?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getCostStructure?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getCostStructure?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Отчет по поставщикам

Метод получает данные по продажам и остаткам товара по каждому поставщику.
GET /api/stat/getContractorsReport

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of ContractorsReport Строки с результатом поиска
Структура ContractorsReport
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Затраты на рекламу, получаем только по ВБиз импорта статистики по рекламным кампаниям
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приемка
cancelsCount integer Количество отмен
id integer Идентификатор
contractorName string Наименование поставщика
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getContractorsReport',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getContractorsReport',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getContractorsReport',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getContractorsReport?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getContractorsReport?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getContractorsReport?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getContractorsReport?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Остатки товаров

Возвращает общие данные об остатках товаров по FBO/FBS
GET /api/stat/getCommonStat

Параметры запроса QUERY

Название Тип Обязательный Описание
organizationId integer Нет Параметр organizationId

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
wildberriesGoodsCount integer
wildberriesStockPurchaseAmount integer
ozonGoodsCount integer
ozonStockPurchaseAmount integer
goodsCount integer
goodsPurchaseAmount integer
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  organizationId: 'АО "Торговый дом"',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getCommonStat',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  organizationId?: number;
}

const params: QueryParams = {
  organizationId: 'АО "Торговый дом"',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getCommonStat',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'organizationId': 'АО "Торговый дом"',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getCommonStat',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getCommonStat?organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getCommonStat?organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'organizationId' => 'АО "Торговый дом"',
];

$url = 'https://api.selsup.ru/api/stat/getCommonStat?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getCommonStat?organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Общие данные по клиентам

Метод возвращает данные за текущий период и такой же предыдущий.
GET /api/stat/getClientProductsStat

Параметры запроса QUERY

Название Тип Обязательный Описание
dateFrom Date Да Параметр dateFrom
dateTo Date Да Параметр dateTo

Тело ответа

✓ 200 OK
Content-Type: application/json
Тип ответа: ClientProductsStat
Элементы массива
Поле Тип Описание
category Category Нет Категория
ordersCount integer Нет
ordersCountPercentage number Нет
ordersRubSum integer Нет
ordersRubSumPercentage number Нет
salesCount integer Нет
salesCountPercentage number Нет
salesRubSum integer Нет
salesRubSumPercentage number Нет
productViewsOnStocks integer Нет
productViewsOnStocksWithoutSales integer Нет
productsOnStocks integer Нет
productsOnStocksWithoutSales integer Нет
productViewIncomeCount integer Нет
productIncomeCount integer Нет
productViewsHasLeftCount integer Нет
productsHasLeftCount integer Нет
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  dateFrom: '1',
  dateTo: '1',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getClientProductsStat',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  dateFrom?: number;
  dateTo?: number;
}

const params: QueryParams = {
  dateFrom: '1',
  dateTo: '1',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getClientProductsStat',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'dateFrom': '1',
    'dateTo': '1',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getClientProductsStat',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getClientProductsStat?dateFrom=1&dateTo=1", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getClientProductsStat?dateFrom=1&dateTo=1"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'dateFrom' => '1',
    'dateTo' => '1',
];

$url = 'https://api.selsup.ru/api/stat/getClientProductsStat?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getClientProductsStat?dateFrom=1&dateTo=1' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Аналитика по модели/цвету или размеру

Метод возвращает агрегированные данные по Product.Size
GET /api/stat/getAggregateProductStatsByField

Параметры запроса QUERY

Название Тип Обязательный Описание
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения
entityId integer Да Идентификатор модели, цвета, размера или категории, в зависимости от field
field "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Да Тип сущности для которой рассчитывает данные
service "NONE""WILDBERRIES""OZON""YANDEX_MARKET""FAMILIYA""NATIONAL_CATALOG""ALIEXPRESS""OTHER""MOY_SKLAD""SBER_MEGA_MARKET""CISLINK""ONE_C""AVITO""LEROY_MERLIN""DETMIR""KAZAN_EXPRESS""EVOTOR""WEBASYST""AMAZON""EBAY""SIMALAND""INSALES""LAMODA""OZON_PERFORMANCE""WALMART""GOOGLE""YANDEX_DISC""EMAIL""WOOCOMMERCE" Нет Маркетплейс
groupBy "COLOR""SIZE" Да Группировать по

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
data Array of object
Структура object
Поле Тип Описание
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
  entityId: '123',
  field: 'PRODUCT',
  service: 'NONE',
  groupBy: 'COLOR',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getAggregateProductStatsByField',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
  entityId?: number;
  field?: string;
  service?: string;
  groupBy?: string;
}

const params: QueryParams = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
  entityId: '123',
  field: 'PRODUCT',
  service: 'NONE',
  groupBy: 'COLOR',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getAggregateProductStatsByField',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
    'entityId': '123',
    'field': 'PRODUCT',
    'service': 'NONE',
    'groupBy': 'COLOR',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getAggregateProductStatsByField',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getAggregateProductStatsByField?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&entityId=123&field=PRODUCT&service=NONE&groupBy=COLOR", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getAggregateProductStatsByField?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&entityId=123&field=PRODUCT&service=NONE&groupBy=COLOR"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
    'entityId' => '123',
    'field' => 'PRODUCT',
    'service' => 'NONE',
    'groupBy' => 'COLOR',
];

$url = 'https://api.selsup.ru/api/stat/getAggregateProductStatsByField?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getAggregateProductStatsByField?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&entityId=123&field=PRODUCT&service=NONE&groupBy=COLOR' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Товарная аналитика по категориям

Метод возвращает агрегируемые данные для каждой категории товара из отчета по операциям за определенный период
GET /api/stat/getAggregateDataByCategory

Параметры запроса QUERY

Название Тип Обязательный Описание
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения
service "NONE""WILDBERRIES""OZON""YANDEX_MARKET""FAMILIYA""NATIONAL_CATALOG""ALIEXPRESS""OTHER""MOY_SKLAD""SBER_MEGA_MARKET""CISLINK""ONE_C""AVITO""LEROY_MERLIN""DETMIR""KAZAN_EXPRESS""EVOTOR""WEBASYST""AMAZON""EBAY""SIMALAND""INSALES""LAMODA""OZON_PERFORMANCE""WALMART""GOOGLE""YANDEX_DISC""EMAIL""WOOCOMMERCE" Да Параметр service
field "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Параметр field
fieldId integer Нет Параметр fieldId

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
data Array of object
Структура object
Поле Тип Описание
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
  service: 'NONE',
  field: 'PRODUCT',
  fieldId: '123',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getAggregateDataByCategory',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
  service?: string;
  field?: string;
  fieldId?: number;
}

const params: QueryParams = {
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
  service: 'NONE',
  field: 'PRODUCT',
  fieldId: '123',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getAggregateDataByCategory',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
    'service': 'NONE',
    'field': 'PRODUCT',
    'fieldId': '123',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getAggregateDataByCategory',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getAggregateDataByCategory?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&service=NONE&field=PRODUCT&fieldId=123", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getAggregateDataByCategory?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&service=NONE&field=PRODUCT&fieldId=123"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
    'service' => 'NONE',
    'field' => 'PRODUCT',
    'fieldId' => '123',
];

$url = 'https://api.selsup.ru/api/stat/getAggregateDataByCategory?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getAggregateDataByCategory?period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z&service=NONE&field=PRODUCT&fieldId=123' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 ABC анализ по выручке

Возвращает ABC анализ по выручке
GET /api/stat/getAbcAnalysisByRevenue

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
fullStatByGroup Array of AbcStatByGroup Статистика по группам
Структура AbcStatByGroup
Поле Тип Описание
group string
productsCount integer Количество артикулов в данной группе по выручке или по валовой прибыли
countPercent number Доля артикулов от общего количества в % по выручке или по валовой прибыли
profitSum number Сумма валовой прибыли или выручки по артикулам группы
profitSumPercent number Доля выручки или валовой прибыли группы от общей суммы в %
rows Array of AbcReport Статистика по артикулам
Структура AbcReport
Поле Тип Описание
id integer
article string
orgUniqueArticle string
color string
modelView string
orgUniqueModelView string
productModelId integer
organizationName string
organizationId integer
brandName string
categoryName string
categoryId integer
stocksCount integer Остаток FBS + FBO
stocksPercent number Доля в остатке в %
profit number Выручка или валовая прибыль
profitPercent number Доля в общей выручке или валовой прибыли в %
collectPercent number Накопленная доля по выручке или валовой прибыли %
group string Группа по выручке или валовой прибыли: A, B или C
groupWeighted string Группа по выручке или валовой прибыли в нормализованном виде: A, B или C
product Product Товар - уникальный с точки зрения подтребительских свойств товар.
Структура Product
Поле Тип Описание
id integer Идентификатор товара. Проставляется автоматически
productType string Тип товара
name string Наименование товара внутреннее
deleted boolean Признак удаления товара
printName string Название товара для внешних сервисов. Если не задано, проставляется равным наименованию товара
realSize string Российский размер товара для одежды или характеристики для других категорий
vendorSize string Размер производителя или характеристики производителя. Не обязательно заполнять
size string Размер для одежды или характеристики для внешних сервисов. Должен быть уникальным в рамках цвета
wildberriesImtId integer Используется для категорий, у которых не предусмотрен размер
wildberriesStockCount integer Остатки товара на Вайлдбериз
ozonId integer Идентификатор товара Озон на сайте. SKU в озон
ozonRealFbs boolean Признак использования RealFbs для товара
ozonProductId integer Идентификатор товара Озон в кабинете API
wildberriesSizeId integer Идентификатор размера на Вайлдбериз
simalandId integer Уникальный идентификатор товара для Simaland
ozonArticle string Уникальный артикул товара для озон. Offer ID в озон
externalArticle string Уникальный артикул товара для стороннего сервиса
ozonStockCount integer Остаток товара на складах Озон
ozonStockBetweenWarehouses integer Остаток товара в Озон, которые перемещаются между складами
removeFbsStock boolean Не выгружать остатки товара на маркетплейсы
purchaseCurrency string Валюта закупочной цены товара
purchasePriceInCurrency number Цена закупки в валюте
deliveryCostInCurrency number Цена на доставку в валюте
versionId integer Поле нужно передавать при изменении,для предотвращения одновременной перезаписи
createdDate string Дата создания товара на МП
created string Дата создания товара в SelSup
createdUser string Пользователь, который создал товар
sourceIncomeItemId integer Идентификатор товара из заказа поставщика по данным которого был создан товар
sourceProductId integer Идентификатор товара, который копировали
ozonRequiredStock integer Расчитанное количество товара, для поставки на склад Озон
wildberriesRequiredStock integer Расчитанное количество товара, для поставки на склад Wildberries
wildberriesProfit number Профит с продажи товара на Вайлдбериз по FBM
wildberriesProfitFbs number Профит с продажи товара на Вайлдбериз по FBS
wildberriesOrderQuantity integer Количество заказов по FBO товара на Вайлдбериз за 2 недели
wildberriesSupplyingQuantity integer Поставляемое количество товара на Вайлдбериз по FBM заказам
wildberriesQuantityInWayToClient integer Поставляемое количество товара на Вайлдбериз по FBM заказам к клиенту
wildberriesQuantityInWayFromClient integer Поставляемое количество товара на Вайлдбериз по FBM заказам от клиента
wildberriesSaleQuantity integer Продажи товара на Вайлдбериз по FBM за 2 недели
wildberriesQuantityInWay integer Количество товаров на Вайлдбериз в пути
wildberriesNoSale boolean Признак неликвидного товара на Вайлдбериз
lastStockChange string Дата последнего изменения стока на Вайлдбериз по FBM
ozonOrderQuantity integer Количество заказов товара по FBO на Озон по FBM и FBS за 2 недели
ozonSupplyingQuantity integer Поставляемое количество товара на Озон по FBM
ozonProfit integer Чистая маржа продажи товара на Озон по FBM
instockQuantity integer Остатки товара на складах клиента
calculatedInStockQuantity integer Рассчитанный остаток
ozonFbsSku integer Идентификатор товара в Озон по FBS
ozonFboSku integer Идентификатор товара в Озон по FBO
sellerSku string Идентификатор товара на Amazon
clientId integer Идентификатор клиента
organizationId integer Идентификатор организации
productViewId integer Идентификатор цвета
view ProductView Цвет товара
Структура ProductView
Поле Тип Описание
color string Артикул цвета
wbArticle string Артикул карточки Wildberries
id integer Идентификатор цвета. Проставляется автоматически
images Array of ProductImage Список изображений товара
Структура ProductImage
Поле Тип Описание
videos Array of ProductVideo Список видео товара
Структура ProductVideo
Поле Тип Описание
productModelId integer Идентификатор модели
model ProductModel Модель товара - объединяет товары, различающиеся цветом и некоторыми характеристиками (например размер в одежде)
actual boolean Актуальность цвета - нужно ли его показывать в заказах поставщикам
mainImage ProductImage Изображение товара
mainImageId integer
mainImageUrl string Ссылка на основное изображение на маркетплейсе
imageUrls string Ссылка на изображения
image360Urls string Ссылка на изображения 360
wildberriesId integer Числовой идентификатор номенклатуры Wildberries, nmId
createdDate string Дата создания цвета
createdUser string Пользователь, создавший цвет
versionId integer Поле нужно передавать при изменении,для предотвращения одновременной перезаписи
clientId integer Идентификатор клиента
deleted boolean Признак удаления цвета
keywords string Ключевые слова - сейчас не используется, перенесены в модель
wildberriesRating number Рейтинг карточки на Вайлдбериз
wildberriesFeedbacks integer Количество отзывов на карточке на Вайлдбериз
wildberriesCardDoesNotOpen boolean Признак, что карточка не открывается на Вайлдбериз
wildberriesHasPhoto boolean Признак наличия фото на Wildberries
organizationId integer Организация карточки
params string JSON со значениями параметров цвета
values Array of ParamValue Значения параметров карточки. Отдаются при запросе модели, если передать params=true
Структура ParamValue
Поле Тип Описание
viewSourceId integer Оригинал цвета по SKU
sizes Array of Product Список размеров для цвета
Структура Product
Поле Тип Описание
hasChanges boolean Признак изменения информации о цвете и необходимости его обновить
viewWbArticle ProductView Цвет товара
viewVersionId integer
suzId string GTIN товара
cisType string Тип в национальном каталоге
notChangedStock integer Количество дней, в течении которых не менялся остаток товара
nationalCatalogFeedId integer Идентификатор создания карточки в национальном каталоге
wildberriesStatus string Статус создания карточки товара в Вайлдбериз
wildberriesMessage string Ошибка создания карточки товара в Вайлдбериз
wildberriesMessageParams string JSON параметров ошибки создания карточки товара в Вайлдбериз
nationalCatalogStatus string Статус создания карточки товара в Национальном каталоге
nationalCatalogGoodId integer Идентификатор товара в национальном каталоге
nationalCatalogMessage string Ошибка создания карточки товара в Национальном каталоге
nationalCatalogMessageParams string Параметры ошибки создания карточки товара в Национальном каталоге
ozonStatus string Статус создания карточки товара в Озон
ozonMessage string Ошибка создания карточки товара в Озон
ozonMessageParams string JSON параметры ошибки создания карточки товара в Озон
ozonTaskId integer Идентификатор задания по обновления или созданию карточки в Озон
wildberriesFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке WB по FBS за 2 недели
ozonFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке на Ozon по FBS за 2 недели
ymarketFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке на Яндекс Маркете по FBS за 2 недели
totalSupplyingQuantity integer Кол-во заказанных товаров на данной карточке за 2 недели
skuId integer Идентификатор единицы хранения товара на складе. Проставляется автоматически
sku Sku Stock Keeping Unit - Единица хранения товара на складе. Может быть связана с несколькими карточками товаров Product.id. При первом создании товара SKU создается автоматически, далее можно привязать несколько товаров - имеющих разный бренд/организацию на маркетплейсах к одному SKU.
Структура Sku
Поле Тип Описание
id integer
product Product Товар - уникальный с точки зрения подтребительских свойств товар.
productId integer
barcodes Array of ProductBarcode Штрих-коды товара
Структура ProductBarcode
Поле Тип Описание
id integer
barcode string
organizationId integer Организация, если client.barcodeUniqForOrg = false, то проставляется 0. Поле включено в уникальный ключ
clientId integer
productId integer
useInWildberries boolean Применим ли данный штрих-код для Вайлдбериз
useInOzon boolean Применим ли данный штрих-код для Озон
useInYandexMarket boolean Применим ли данный штрих-код для Yandex.Market
useInAliexpress boolean Применим ли данный штрих-код для Aliexpress
useInSberMegamarket boolean Применим ли данный штрих-код для Sber.MegaMarket
format string
params string JSON значений параметров для данного размера/характеристик
values Array of ParamValue Значения параметров карточки. Отдаются при запросе модели, если передать params=true
Структура ParamValue
Поле Тип Описание
paramId Обязательный integer Идентификатор параметра
paramName string Название параметра, для тех, у кого нет ID
option Option Значение перечислимого параметра
doubleValue number Числовое значение параметра
longValue integer Целочисленное значение параметра
booleanValue boolean Булево значение параметра
stringValue string Строковое значение параметра
dateValue string Значение параметра даты
service string Сервис
unit Unit Единица измерения
auto boolean Автоматически проставленное значение параметра
created integer Дата заполнения параметра
user string Пользователь, который заполнил параметр
group object Группа карточек. Используется на списке товаров, чтобы объединить разные размеры в одну строку
duplicates Array of Product Дубликаты карточки по остаткам. Отдаются только на списке товаров, если включена галочка Объединять дубликаты
Структура Product
Поле Тип Описание
id integer Идентификатор товара. Проставляется автоматически
productType string Тип товара
name Обязательный string Наименование товара внутреннее
deleted boolean Признак удаления товара
printName string Название товара для внешних сервисов. Если не задано, проставляется равным наименованию товара
realSize string Российский размер товара для одежды или характеристики для других категорий
vendorSize string Размер производителя или характеристики производителя. Не обязательно заполнять
size string Размер для одежды или характеристики для внешних сервисов. Должен быть уникальным в рамках цвета
wildberriesImtId integer Используется для категорий, у которых не предусмотрен размер
wildberriesStockCount integer Остатки товара на Вайлдбериз
ozonId integer Идентификатор товара Озон на сайте. SKU в озон
ozonRealFbs boolean Признак использования RealFbs для товара
ozonProductId integer Идентификатор товара Озон в кабинете API
wildberriesSizeId integer Идентификатор размера на Вайлдбериз
simalandId integer Уникальный идентификатор товара для Simaland
ozonArticle string Уникальный артикул товара для озон. Offer ID в озон
externalArticle string Уникальный артикул товара для стороннего сервиса
ozonStockCount integer Остаток товара на складах Озон
ozonStockBetweenWarehouses integer Остаток товара в Озон, которые перемещаются между складами
removeFbsStock boolean Не выгружать остатки товара на маркетплейсы
purchaseCurrency string Валюта закупочной цены товара
purchasePriceInCurrency number Цена закупки в валюте
deliveryCostInCurrency number Цена на доставку в валюте
versionId integer Поле нужно передавать при изменении,для предотвращения одновременной перезаписи
createdDate string Дата создания товара на МП
created string Дата создания товара в SelSup
createdUser string Пользователь, который создал товар
sourceIncomeItemId integer Идентификатор товара из заказа поставщика по данным которого был создан товар
sourceProductId integer Идентификатор товара, который копировали
ozonRequiredStock integer Расчитанное количество товара, для поставки на склад Озон
wildberriesRequiredStock integer Расчитанное количество товара, для поставки на склад Wildberries
wildberriesProfit number Профит с продажи товара на Вайлдбериз по FBM
wildberriesProfitFbs number Профит с продажи товара на Вайлдбериз по FBS
wildberriesOrderQuantity integer Количество заказов по FBO товара на Вайлдбериз за 2 недели
wildberriesSupplyingQuantity integer Поставляемое количество товара на Вайлдбериз по FBM заказам
wildberriesQuantityInWayToClient integer Поставляемое количество товара на Вайлдбериз по FBM заказам к клиенту
wildberriesQuantityInWayFromClient integer Поставляемое количество товара на Вайлдбериз по FBM заказам от клиента
wildberriesSaleQuantity integer Продажи товара на Вайлдбериз по FBM за 2 недели
wildberriesQuantityInWay integer Количество товаров на Вайлдбериз в пути
wildberriesNoSale boolean Признак неликвидного товара на Вайлдбериз
lastStockChange string Дата последнего изменения стока на Вайлдбериз по FBM
ozonOrderQuantity integer Количество заказов товара по FBO на Озон по FBM и FBS за 2 недели
ozonSupplyingQuantity integer Поставляемое количество товара на Озон по FBM
ozonProfit integer Чистая маржа продажи товара на Озон по FBM
instockQuantity integer Остатки товара на складах клиента
calculatedInStockQuantity integer Рассчитанный остаток
ozonFbsSku integer Идентификатор товара в Озон по FBS
ozonFboSku integer Идентификатор товара в Озон по FBO
sellerSku string Идентификатор товара на Amazon
clientId integer Идентификатор клиента
organizationId Обязательный integer Идентификатор организации
productViewId integer Идентификатор цвета
view object Цвет товара
suzId string GTIN товара
cisType string Тип в национальном каталоге
notChangedStock integer Количество дней, в течении которых не менялся остаток товара
nationalCatalogFeedId integer Идентификатор создания карточки в национальном каталоге
wildberriesStatus string Статус создания карточки товара в Вайлдбериз
wildberriesMessage string Ошибка создания карточки товара в Вайлдбериз
wildberriesMessageParams string JSON параметров ошибки создания карточки товара в Вайлдбериз
nationalCatalogStatus string Статус создания карточки товара в Национальном каталоге
nationalCatalogGoodId integer Идентификатор товара в национальном каталоге
nationalCatalogMessage string Ошибка создания карточки товара в Национальном каталоге
nationalCatalogMessageParams string Параметры ошибки создания карточки товара в Национальном каталоге
ozonStatus string Статус создания карточки товара в Озон
ozonMessage string Ошибка создания карточки товара в Озон
ozonMessageParams string JSON параметры ошибки создания карточки товара в Озон
ozonTaskId integer Идентификатор задания по обновления или созданию карточки в Озон
wildberriesFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке WB по FBS за 2 недели
ozonFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке на Ozon по FBS за 2 недели
ymarketFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке на Яндекс Маркете по FBS за 2 недели
totalSupplyingQuantity integer Кол-во заказанных товаров на данной карточке за 2 недели
skuId integer Идентификатор единицы хранения товара на складе. Проставляется автоматически
sku object Stock Keeping Unit - Единица хранения товара на складе. Может быть связана с несколькими карточками товаров Product.id. При первом создании товара SKU создается автоматически, далее можно привязать несколько товаров - имеющих разный бренд/организацию на маркетплейсах к одному SKU.
barcodes Array of object Штрих-коды товара
Структура object
Поле Тип Описание
params string JSON значений параметров для данного размера/характеристик
values Array of object Значения параметров карточки. Отдаются при запросе модели, если передать params=true
Структура object
Поле Тип Описание
group object Группа карточек. Используется на списке товаров, чтобы объединить разные размеры в одну строку
duplicates Array of object Дубликаты карточки по остаткам. Отдаются только на списке товаров, если включена галочка Объединять дубликаты
Структура object
Поле Тип Описание
hasChanges boolean Признак наличия изменений в товаре и ее нужно обновить при сохранении
ignoreDuplicate boolean Признак игнорирования дубликатов при создании
yandexMarketSku integer Идентификатор карточки товара на Yandex.Market
yandexMarketStockCount integer Остаток товара на складах Yandex.Market
yandexMarketProductId integer Идентификатор карточки товара на Yandex.Market
yandexMarketShopSku string SKU товара на Yandex.Market
groupId integer ID групповой карточки
yandexMarketStatus string Статус создания карточки товара на яндекс маркет
yandexMarketMessage string Сообщение при ошибке создания карточки товара на яндекс маркет
yandexMarketMessageParams string Параметры сообщения при создании товара в Яндекс.Маркет
sberArticle string Артикул товара на СберМегаМаркет
siteArticle string артикул товара на сайте
siteId string айди товара на сайте
leroyMerlinArticle string Артикул товара на Леруа Мерлен
ebayArticle string Артикул товара на Ebay
lamodaArticle string Артикул товара на Lamoda
lamodaSku string SKU товара на Lamoda
leroyMerlinId string Номер карточки на Леруа Мерлен
duplicate boolean Признак, что карточка является дубликатом. Отдается не для всех методов
ozonHasPhoto boolean Признак наличия фото на Ozon
aliexpressSku string SKU на Aliexpress
aliexpressStatus string Статус создания товара на Aliexpress
aliexpressMessage string Сообщение при создании товара на Aliexpress
aliexpressMessageParams string Параметры сообщения при создании товара на Aliexpress
moySkladId string ID товара в сервисе Мой Склад
moySkladType string Тип товара в сервисе Мой Склад
avitoId integer ID товара в сервисе Avito
moySkladLinkId string ID для ссылки на Мой Склад
moySkladStatus string Статус создания карточки товара в МойСклад
avitoStatus string Статус обьявления на Авито
moySkladMessage string Ошибка создания карточки товара в МойСклад
moySkladMessageParams string Параметры ошибки создания карточки товара в МойСклад
oneCId string Идентификатор товара в 1С
removeFbsStockOzon boolean Не передавать остатки товара по FBS на озон
removeFbsStockWb boolean Не передавать остатки товара по FBS на Wildberries
removeFbsStockAli boolean Не передавать остатки товара по FBS на Aliepress
removeFbsStockYm boolean Не передавать остатки товара по FBS на Яндекс.Маркет
removeFbsStockSber boolean Не передавать остатки товара по FBS на СберМегаМаркет
quantity integer Количество товара в заказах. Возвращается только в методах income/getProductsFromOrders или wms/findStock
incomeQuantity integer Количество товара в закупке без разделения по маркетплейсам
orderMinDate string Минимальная дата заказа. Возвращается только в методах income/getProductsFromOrders
expiredDate string Cрок годности товара - возвращается только в методах, wms/findStock
productionDate string Дата производства
stock integer Остаток товара на определенном складе - возвращается только в методах, wms/fetchStock
stocks object Остатки товара на складах - возвращается только в методах, wms/fetchStock
cell object Ячейка хранения товара на складе, в которой может храниться один или несколько товаров
reserved integer Остаток товара на определенном складе - возвращается только в методах, wms/fetchStock
calculatedStock integer Остаток наборов на определенном складе - возвращается только в методах, wms/fetchStock, product/findProduct, supply/findProductForOrder
price number Розничная цена товара
updatedPrice number Новая общая цена товара со скидкой. Только для методов обновления цены
priceWithoutDiscount number Розничная цена товара без учета скидки
updatedPriceWithoutDiscount number Измененная розничная цена товара без учета скидки. Принимается только в методах обновления цены
updatedDeliveryCost number Измененные прочие расходы товара Принимается только в методах обновления цены
updatedPurchasePrice number Измененная закупочная цена товара Принимается только в методах обновления цены
purchasePrice number Закупочная цена товара в руб.
isPurchasePriceUpdated boolean Признак, была ли изменена закупочная цена
isDeliveryCostUpdated boolean Признак, изменения прочих расходов на товар.
wholesalePrice number Оптовая цена товара
deliveryCost number Дополнительные расходы на доставку товара в руб. Добавляются к закупочной цене
strategyId integer Идентификатор стратегии ценообразования
ozonAverageExpenses number Расходы по продаже товара на Ozon
wildberriesAverageExpenses number Расходы по продаже товара на Wildberries
yandexMarketAverageExpenses number Расходы по продаже товара на ЯМ
wildberriesPrice number Текущая цена товара на Вайлдбериз со скидкой
wildberriesUpdatedPrice number Новая цена товара на Вайлдбериз со скидкиой.Только для методов изменения цены
wildberriesPriceWithoutDiscount number Текущая цена товара на Вайлдбериз без скидки
wildberriesUpdatedPriceWithoutDiscount number Новая цена товара на Вайлдбериз без скидки.Только для методов изменения цены
wildberriesSale integer Скидка товара на Вайлдбериз
aliexpressPrice number Текущая цена на Aliexpress со скидкой
aliexpressPriceWithoutDiscount number Текущая цена на Aliexpress без скидки.
aliexpressUpdatedPrice number Новая цена со скидкой на Aliexpress. Только для методов обновления цены
aliexpressUpdatedPriceWithoutDiscount number Новая цена без скидки на Aliexpress. Только для методов обновления цены
minPrice number Минимальная цена товара. Ниже этой цены нельзя выставлять цену на товар.Используется для Ozon при участии товара в акциях
ozonPrice number Текущая цена товара на Озон со скидкой
ozonPromotionPrice number Текущая акционная цена товара на Озон
ozonUpdatedPrice number Новая цена товара на Озон со скидкой.Только для методов изменения цены
ozonPriceWithoutDiscount number Текущая цена товара на Озон без скидки.
ozonUpdatedPriceWithoutDiscount number Новая цена Озон без скидки.Только для методов изменения цены
ozonAcquiringPercent number Максимальная комиссия за эквайринг OZON
leroyMerlinPrice number Текущая цена товара на LeroyMerlin
leroyMerlinUpdatedPrice number Новая цена товара на LeroyMerlin.Только для методов изменения цены
avitoPrice number Текущая цена товара на Avito
avitoUpdatedPrice number Новая цена товара на Avito.Только для методов изменения цены
ozonComisson number Комиссия товара на Озон FBM
sberMegaMarketPrice number Текущая цена на СберМегаМаркет со скидкой
sberMegaMarketUpdatedPrice number Новая цена со скидкой на СберМегаМаркет. Только для методов изменения цены
sberMegaMarketSupplyingQuantity integer Поставляемое количество товара на СберМегаМаркет по FBM заказам
yandexMarketPrice number Текущая цена на Яндекс.Маркет со скидкой
yandexMarketPriceWithoutDiscount number Текущая цена на Яндекс.Маркет без скидки
yandexMarketUpdatedPrice number Новая цена со скидкой на Яндекс.Маркет. Только для методов изменения цены
yandexMarketUpdatedPriceWithoutDiscount number Новая цена без скидки на Яндекс.Маркет. Только для методов изменения цены
yandexMarketSupplyingQuantity integer Поставляемое количество товара на Яндекс.Маркет по FBM заказам
oneCArticle string Уникальный артикул товара для 1c
salesExpensesOnMpPercent number Расходы по продажам на маркетплейсе, %
taxeRate number Установленый процент налога на товар, %
desiredMarginalityPercent number Желаемый % маржинальности
desiredProfitRub number Желаемая прибыль, руб.
additionalCost number Доп. расходы на товар без записи в Финансовую аналитику, руб.
sberMegaMarketId integer Карточка СберМегаМаркет
packWidth integer Ширина в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packHeight integer Высота в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packDepth integer Длина/глубина в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packWeight integer Вес в упаковке гр. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
numOfPiecesInBox integer Количество штук в коробе
lastWildberriesSaleDate string Дата последней продажи на Wildberries
lastWildberriesOrderDate string Дата последнего заказа на Wildberries
lastOzonSaleDate string Дата последней продажи на OZON
lastOzonOrderDate string Дата последнего заказа на OZON
totalOrdersCount integer Кол-во заказанных товаров на данной карточке по МП OZON + WB
totalFbsOrdersCount integer Кол-во заказанных товаров на данной карточке по FBS за 2 недели
wildberriesTotalOrdersCount integer Кол-во заказанных товаров на данной карточке по МП WB
ignoreFbsWarehouses string Список идентификаторов складов маркетплейсов через запятую - на которые не отправлять остатки по FBS
fbsWarehouses string Список идентификаторов складов маркетплейсов через запятую - на которые не отправлять остатки по FBS
minFbsStock integer Минимальный остаток - если меньше, то ставим 0
maxFbsStock integer Максимальный остаток - если больше, то ставим его
wildberriesSaleLogistic number Логистика WB, руб.
wildberriesReturnLogistic number Обратная логистика WB, руб.
wildberriesWarehouseRatio number Коэффициент склада WB в %
wildberriesComission number Комиссия WB, %
ozonSaleLogistic number Логистика Ozon, руб.
ozonReturnLogistic number Обратная логистика Ozon, руб.
ozonCommission number Комиссия Ozon, %
maxDeliveryToPickupPoint number Максимальная стоимость доставки до места выдачи, руб.
ozonPurchasePercent number Процент выкупа Ozon, %
wildberriesPurchasePercent number Процент выкупа WB, %
minMarginality number Настройки репрайсера Min % маржинальности
maxMarginality number Настройки репрайсера Max % маржинальности
minProfit number Настройки репрайсера Min прибыль, руб.
maxProfit number Настройки репрайсера Max прибыль, руб.
minPriceWithDiscount number Настройки репрайсера Min цена со скидкой, руб.
maxPriceWithDiscount number Настройки репрайсера Max цена со скидкой, руб.
oldWildberriesPriceWithDiscount number При установки через репрайсер скидку, заполняется, после удаление скидки, возвращает как основная цена и значение затирается
oldWildberriesSale integer Скидка товара на Вайлдбериз до установки новой по репрайсеру, при возврате нужно проставлять null
wildberriesPromoProfit number Расчетный профит по акциям WB нужен для определения какая акция выгодная
wildberriesMarginality number Расчетная маржинальность по WB
wildberriesPromoId integer Идентификатор акции на ВБ
oldWildberriesPromoSalePercent number Расчетная маржинальность по WB
oldWildberriesPromoPriceWithDiscount number Расчетная маржинальность по WB
endWildberriesPriceWithSppConfig number Цена для пользователя конечная с СПП.
ozonFbsCommission number Комиссия ОЗОН ФБС
ozonFboCommission number Комиссия ОЗОН ФБО
wbTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по ВБ
ozonTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по OZON
sberTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по SBER
yandexTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по YANDEX
fboStockCount integer Остаток ФБО по выбранным складам/регионам
fbsStockCount integer Остаток ФБC для планирования поставок)
fboSupplyQuantity integer Количество поставляемого товара по выбранным складам/регионам
fboSales integer Кол-во продаж FBO по складам/регионам для планирования поставок
fbsSales integer Кол-во продаж FBS по складам/регионам для планирования поставок
fboOrders integer Кол-во заказов FBO по складам/регионам для планирования поставок
fbsOrders integer Кол-во заказов FBS по складам/регионам для планирования поставок
recommendPlan number Кол-во товара для добавления к заказу
skipDaysCount integer Кол-во пропущенных дней в учёте планирования поставок
organizationShortName string
contractorName string
supplyPlanBarcode string
planCorrectionFactor number Коэффициент коррекции для планирования поставок. На это значение умножается рассчитанное количество товара для поставки
orderBefore integer До какого времени должен быть сделан заказ от 1 до 24
daysBeforeSupply integer Кол-во дней до поставки. Через сколько дней с момента заказа ориентировочно будет поставка товаров
supplyPlanDays integer На сколько дней планировать остаток
warehouseIdForSupplyReport integer Id склада на который нужно поставить рассчитанные товары. Используется только в планировании поставок
warehouseNameForSupplyReport string Название склада на который нужно поставить рассчитанные товары. Используется только в планировании поставок
manager string Поле менеджера
cellId integer
percentForParticipationPromoOrAdvertising integer Закладываемый % для участия в акциях или рекламе
selsupLink string
tempId integer Временный id используется для быстрого импорта
category object Категория
walmartSku string SKU товара на Walmart
walmartId string Id товара на Walmart (WPID)
findirTips object Советы задачника (тип задачи - текст совета)
woocomSku string SKU товара на WooCommerce
woocomId integer Id товара на WooCommerce
commissions string JSON с комиссиями из разных маркетплейсов
lowStockAlerts string JSON для уведомлений о заканчивающихся остатках по маркетплейсов
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
calculatedInstockQuantity integer
emptyBarcodes boolean
site string
anyArticle string
anyLink string
hasChanges boolean Признак наличия изменений в товаре и ее нужно обновить при сохранении
ignoreDuplicate boolean Признак игнорирования дубликатов при создании
yandexMarketSku integer Идентификатор карточки товара на Yandex.Market
yandexMarketStockCount integer Остаток товара на складах Yandex.Market
yandexMarketProductId integer Идентификатор карточки товара на Yandex.Market
yandexMarketShopSku string SKU товара на Yandex.Market
groupId integer ID групповой карточки
yandexMarketStatus string Статус создания карточки товара на яндекс маркет
yandexMarketMessage string Сообщение при ошибке создания карточки товара на яндекс маркет
yandexMarketMessageParams string Параметры сообщения при создании товара в Яндекс.Маркет
sberArticle string Артикул товара на СберМегаМаркет
siteArticle string артикул товара на сайте
siteId string айди товара на сайте
leroyMerlinArticle string Артикул товара на Леруа Мерлен
ebayArticle string Артикул товара на Ebay
lamodaArticle string Артикул товара на Lamoda
lamodaSku string SKU товара на Lamoda
leroyMerlinId string Номер карточки на Леруа Мерлен
duplicate boolean Признак, что карточка является дубликатом. Отдается не для всех методов
ozonHasPhoto boolean Признак наличия фото на Ozon
aliexpressSku string SKU на Aliexpress
aliexpressStatus string Статус создания товара на Aliexpress
aliexpressMessage string Сообщение при создании товара на Aliexpress
aliexpressMessageParams string Параметры сообщения при создании товара на Aliexpress
moySkladId string ID товара в сервисе Мой Склад
moySkladType string Тип товара в сервисе Мой Склад
avitoId integer ID товара в сервисе Avito
moySkladLinkId string ID для ссылки на Мой Склад
moySkladStatus string Статус создания карточки товара в МойСклад
avitoStatus string Статус обьявления на Авито
moySkladMessage string Ошибка создания карточки товара в МойСклад
moySkladMessageParams string Параметры ошибки создания карточки товара в МойСклад
oneCId string Идентификатор товара в 1С
removeFbsStockOzon boolean Не передавать остатки товара по FBS на озон
removeFbsStockWb boolean Не передавать остатки товара по FBS на Wildberries
removeFbsStockAli boolean Не передавать остатки товара по FBS на Aliepress
removeFbsStockYm boolean Не передавать остатки товара по FBS на Яндекс.Маркет
removeFbsStockSber boolean Не передавать остатки товара по FBS на СберМегаМаркет
quantity integer Количество товара в заказах. Возвращается только в методах income/getProductsFromOrders или wms/findStock
incomeQuantity integer Количество товара в закупке без разделения по маркетплейсам
orderMinDate string Минимальная дата заказа. Возвращается только в методах income/getProductsFromOrders
expiredDate string Cрок годности товара - возвращается только в методах, wms/findStock
productionDate string Дата производства
stock integer Остаток товара на определенном складе - возвращается только в методах, wms/fetchStock
stocks object Остатки товара на складах - возвращается только в методах, wms/fetchStock
cell Cell Ячейка хранения товара на складе, в которой может храниться один или несколько товаров
Структура Cell
Поле Тип Описание
id integer Идентификатор ячейки
warehouseId integer Склад к которому относится ячейка
passageId integer Проход на складе, к которому относится ячейка. Может соджержать название этажа и пр
shelfId integer Полка стеллажа, к которой относится ячейка
rackId integer Стеллаж, к которому относится ячейка
name string Название ячейки. По умолчанию формируется автоматически
fullName string Полное название ячейки из названий прохода, стелажа, полки и ячейки
sortName string Название для сортировки ячейки из названий прохода, стелажа, полки и ячейки
barcode string Уникальный в рамках клиента штрих-код ячейки для идентификации ячейки с помощью сканера штрих-кода. Присваивается автоматически при создании ячейки
deleted boolean Признак того, что ячейка удалена
width integer Ширина ячейки для определения товаров, которые можно положить в нее
height integer Высота ячейки для определения товаров, которые можно положить в нее
depth integer Глубина ячейки для определения товаров, которые можно положить в нее
clientId integer Клиент которому принадлежит ячейка. Проставляется автоматически
lastInventoryId integer Идентификатор последней инвентаризации
type string Тип ячейки: NORMAL, NO_PLACE - не разложенные, REFUND - для возвратов
reserved integer Остаток товара на определенном складе - возвращается только в методах, wms/fetchStock
calculatedStock integer Остаток наборов на определенном складе - возвращается только в методах, wms/fetchStock, product/findProduct, supply/findProductForOrder
price number Розничная цена товара
updatedPrice number Новая общая цена товара со скидкой. Только для методов обновления цены
priceWithoutDiscount number Розничная цена товара без учета скидки
updatedPriceWithoutDiscount number Измененная розничная цена товара без учета скидки. Принимается только в методах обновления цены
updatedDeliveryCost number Измененные прочие расходы товара Принимается только в методах обновления цены
updatedPurchasePrice number Измененная закупочная цена товара Принимается только в методах обновления цены
purchasePrice number Закупочная цена товара в руб.
isPurchasePriceUpdated boolean Признак, была ли изменена закупочная цена
isDeliveryCostUpdated boolean Признак, изменения прочих расходов на товар.
wholesalePrice number Оптовая цена товара
deliveryCost number Дополнительные расходы на доставку товара в руб. Добавляются к закупочной цене
strategyId integer Идентификатор стратегии ценообразования
ozonAverageExpenses number Расходы по продаже товара на Ozon
wildberriesAverageExpenses number Расходы по продаже товара на Wildberries
yandexMarketAverageExpenses number Расходы по продаже товара на ЯМ
wildberriesPrice number Текущая цена товара на Вайлдбериз со скидкой
wildberriesUpdatedPrice number Новая цена товара на Вайлдбериз со скидкиой.Только для методов изменения цены
wildberriesPriceWithoutDiscount number Текущая цена товара на Вайлдбериз без скидки
wildberriesUpdatedPriceWithoutDiscount number Новая цена товара на Вайлдбериз без скидки.Только для методов изменения цены
wildberriesSale integer Скидка товара на Вайлдбериз
aliexpressPrice number Текущая цена на Aliexpress со скидкой
aliexpressPriceWithoutDiscount number Текущая цена на Aliexpress без скидки.
aliexpressUpdatedPrice number Новая цена со скидкой на Aliexpress. Только для методов обновления цены
aliexpressUpdatedPriceWithoutDiscount number Новая цена без скидки на Aliexpress. Только для методов обновления цены
minPrice number Минимальная цена товара. Ниже этой цены нельзя выставлять цену на товар.Используется для Ozon при участии товара в акциях
ozonPrice number Текущая цена товара на Озон со скидкой
ozonPromotionPrice number Текущая акционная цена товара на Озон
ozonUpdatedPrice number Новая цена товара на Озон со скидкой.Только для методов изменения цены
ozonPriceWithoutDiscount number Текущая цена товара на Озон без скидки.
ozonUpdatedPriceWithoutDiscount number Новая цена Озон без скидки.Только для методов изменения цены
ozonAcquiringPercent number Максимальная комиссия за эквайринг OZON
leroyMerlinPrice number Текущая цена товара на LeroyMerlin
leroyMerlinUpdatedPrice number Новая цена товара на LeroyMerlin.Только для методов изменения цены
avitoPrice number Текущая цена товара на Avito
avitoUpdatedPrice number Новая цена товара на Avito.Только для методов изменения цены
ozonComisson number Комиссия товара на Озон FBM
sberMegaMarketPrice number Текущая цена на СберМегаМаркет со скидкой
sberMegaMarketUpdatedPrice number Новая цена со скидкой на СберМегаМаркет. Только для методов изменения цены
sberMegaMarketSupplyingQuantity integer Поставляемое количество товара на СберМегаМаркет по FBM заказам
yandexMarketPrice number Текущая цена на Яндекс.Маркет со скидкой
yandexMarketPriceWithoutDiscount number Текущая цена на Яндекс.Маркет без скидки
yandexMarketUpdatedPrice number Новая цена со скидкой на Яндекс.Маркет. Только для методов изменения цены
yandexMarketUpdatedPriceWithoutDiscount number Новая цена без скидки на Яндекс.Маркет. Только для методов изменения цены
yandexMarketSupplyingQuantity integer Поставляемое количество товара на Яндекс.Маркет по FBM заказам
oneCArticle string Уникальный артикул товара для 1c
salesExpensesOnMpPercent number Расходы по продажам на маркетплейсе, %
taxeRate number Установленый процент налога на товар, %
desiredMarginalityPercent number Желаемый % маржинальности
desiredProfitRub number Желаемая прибыль, руб.
additionalCost number Доп. расходы на товар без записи в Финансовую аналитику, руб.
sberMegaMarketId integer Карточка СберМегаМаркет
packWidth integer Ширина в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packHeight integer Высота в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packDepth integer Длина/глубина в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packWeight integer Вес в упаковке гр. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
numOfPiecesInBox integer Количество штук в коробе
lastWildberriesSaleDate string Дата последней продажи на Wildberries
lastWildberriesOrderDate string Дата последнего заказа на Wildberries
lastOzonSaleDate string Дата последней продажи на OZON
lastOzonOrderDate string Дата последнего заказа на OZON
totalOrdersCount integer Кол-во заказанных товаров на данной карточке по МП OZON + WB
totalFbsOrdersCount integer Кол-во заказанных товаров на данной карточке по FBS за 2 недели
wildberriesTotalOrdersCount integer Кол-во заказанных товаров на данной карточке по МП WB
ignoreFbsWarehouses string Список идентификаторов складов маркетплейсов через запятую - на которые не отправлять остатки по FBS
fbsWarehouses string Список идентификаторов складов маркетплейсов через запятую - на которые не отправлять остатки по FBS
minFbsStock integer Минимальный остаток - если меньше, то ставим 0
maxFbsStock integer Максимальный остаток - если больше, то ставим его
wildberriesSaleLogistic number Логистика WB, руб.
wildberriesReturnLogistic number Обратная логистика WB, руб.
wildberriesWarehouseRatio number Коэффициент склада WB в %
wildberriesComission number Комиссия WB, %
ozonSaleLogistic number Логистика Ozon, руб.
ozonReturnLogistic number Обратная логистика Ozon, руб.
ozonCommission number Комиссия Ozon, %
maxDeliveryToPickupPoint number Максимальная стоимость доставки до места выдачи, руб.
ozonPurchasePercent number Процент выкупа Ozon, %
wildberriesPurchasePercent number Процент выкупа WB, %
minMarginality number Настройки репрайсера Min % маржинальности
maxMarginality number Настройки репрайсера Max % маржинальности
minProfit number Настройки репрайсера Min прибыль, руб.
maxProfit number Настройки репрайсера Max прибыль, руб.
minPriceWithDiscount number Настройки репрайсера Min цена со скидкой, руб.
maxPriceWithDiscount number Настройки репрайсера Max цена со скидкой, руб.
oldWildberriesPriceWithDiscount number При установки через репрайсер скидку, заполняется, после удаление скидки, возвращает как основная цена и значение затирается
oldWildberriesSale integer Скидка товара на Вайлдбериз до установки новой по репрайсеру, при возврате нужно проставлять null
wildberriesPromoProfit number Расчетный профит по акциям WB нужен для определения какая акция выгодная
wildberriesMarginality number Расчетная маржинальность по WB
wildberriesPromoId integer Идентификатор акции на ВБ
oldWildberriesPromoSalePercent number Расчетная маржинальность по WB
oldWildberriesPromoPriceWithDiscount number Расчетная маржинальность по WB
endWildberriesPriceWithSppConfig number Цена для пользователя конечная с СПП.
ozonFbsCommission number Комиссия ОЗОН ФБС
ozonFboCommission number Комиссия ОЗОН ФБО
wbTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по ВБ
ozonTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по OZON
sberTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по SBER
yandexTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по YANDEX
fboStockCount integer Остаток ФБО по выбранным складам/регионам
fbsStockCount integer Остаток ФБC для планирования поставок)
fboSupplyQuantity integer Количество поставляемого товара по выбранным складам/регионам
fboSales integer Кол-во продаж FBO по складам/регионам для планирования поставок
fbsSales integer Кол-во продаж FBS по складам/регионам для планирования поставок
fboOrders integer Кол-во заказов FBO по складам/регионам для планирования поставок
fbsOrders integer Кол-во заказов FBS по складам/регионам для планирования поставок
recommendPlan number Кол-во товара для добавления к заказу
skipDaysCount integer Кол-во пропущенных дней в учёте планирования поставок
organizationShortName string
contractorName string
supplyPlanBarcode string
planCorrectionFactor number Коэффициент коррекции для планирования поставок. На это значение умножается рассчитанное количество товара для поставки
orderBefore integer До какого времени должен быть сделан заказ от 1 до 24
daysBeforeSupply integer Кол-во дней до поставки. Через сколько дней с момента заказа ориентировочно будет поставка товаров
supplyPlanDays integer На сколько дней планировать остаток
warehouseIdForSupplyReport integer Id склада на который нужно поставить рассчитанные товары. Используется только в планировании поставок
warehouseNameForSupplyReport string Название склада на который нужно поставить рассчитанные товары. Используется только в планировании поставок
manager string Поле менеджера
cellId integer
percentForParticipationPromoOrAdvertising integer Закладываемый % для участия в акциях или рекламе
selsupLink string
tempId integer Временный id используется для быстрого импорта
category Category Категория
Структура Category
Поле Тип Описание
categoryId integer Идентификатор категории. Проставляется автоматически
name string Наименование категории
deleted boolean Признак удаленных категорий
parentId integer Идентификатор родительской категории
clientId integer Идентификатор клиента
marked boolean Маркируется ли категория
categoryClass string Группы категорий Честного знака
wildberriesType WildberriesType Предмет Вайлдбериз
wildberriesCategoryId integer Идентификатор категории Wildberries, совпадает с ID категории на самом Wildberries
wildberriesFbmCommission number Комиссия по тарифу FBM
wildberriesFbwCommission number Комиссия по тарифу FBW
wildberriesFbsCommission number Комиссия по тарифу FBS
wildberriesDbsCommission number Комиссия по тарифу DBS
wildberriesEdbsCommission number Комиссия по тарифу EDBS
wildberriesCAndCCommission number Комиссия по тарифу C&C
wildberriesBookingCommission number Комиссия за бронирование
ozonDescriptionCategoryId integer Идентификатор категории на Ozon. Строится из ID категории + ID типа на Ozon
yandexMarketCategoryId integer Идентификатор категории в Яндекс.Маркет. Совпадает с идентификатором категории на самом Яндекс.Маркет
yandexMarketCategory YandexMarketCategory Категория Яндекс.Маркета
ozonDescriptionCategory OzonDescriptionCategory Категория Озон
ozonCommission number Комиссия озона.
tnved Tnved Код ТНВЭД
tnvedId integer Идентификатор ТНВЭД
laundry string Правила ухода за вещами. Разделяются запятыми
params string JSON значений параметров для категории
namePattern string Шаблон названий категории
aliexpressCategory AliexpressCategory Категория Aliexpress
aliexpressCategoryId integer Идентификатор категории на самом Aliexpress
avitoCategory AvitoCategory Категория Авито
avitoCategoryId integer Идентификатор категории на самом Avito
packDepth integer Глубина упаковки в мм. Проставляется всем товарам в категории
packWidth integer Ширина упаковки в мм. Проставляется всем товарам в категории
packHeight integer Высота упаковки в мм. Проставляется всем товарам в категории
packWeight integer Вес упаковки в граммах. Проставляется всем товарам в категории
hasSize boolean Признак разделения товаров в категории по размеру. Меняет вид редактора карточки
hasColor boolean Признак разделения товаров в категории по цвету. Меняет вид редактора карточки
autoName boolean Автоматически формировать названия товаров в категории
removeFbsStock boolean Не передавать остатки товаров по FBS для товаров из этой категории
oneCId string Идентификатор категории в 1С
externalId string Идентификатор категории на сайте
moySkladId string Идентификатор категории в сервисе МойСклад
useClientParams boolean Показывать пользовательские параметры в категории
requiredExpirationDate boolean Является ли срок годности обязательным параметром
walmartSku string SKU товара на Walmart
walmartId string Id товара на Walmart (WPID)
findirTips object Советы задачника (тип задачи - текст совета)
woocomSku string SKU товара на WooCommerce
woocomId integer Id товара на WooCommerce
commissions string JSON с комиссиями из разных маркетплейсов
lowStockAlerts string JSON для уведомлений о заканчивающихся остатках по маркетплейсов
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
calculatedInstockQuantity integer
emptyBarcodes boolean
site string
anyArticle string
anyLink string
totalCount integer
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getAbcAnalysisByRevenue',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getAbcAnalysisByRevenue',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getAbcAnalysisByRevenue',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getAbcAnalysisByRevenue?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getAbcAnalysisByRevenue?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getAbcAnalysisByRevenue?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getAbcAnalysisByRevenue?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 ABC анализ по валовой прибыли

Возвращает результат ABC анализа по валовой прибыли
GET /api/stat/getAbcAnalysisByGrossProfit

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
fullStatByGroup Array of AbcStatByGroup Статистика по группам
Структура AbcStatByGroup
Поле Тип Описание
group string
productsCount integer Количество артикулов в данной группе по выручке или по валовой прибыли
countPercent number Доля артикулов от общего количества в % по выручке или по валовой прибыли
profitSum number Сумма валовой прибыли или выручки по артикулам группы
profitSumPercent number Доля выручки или валовой прибыли группы от общей суммы в %
rows Array of AbcReport Статистика по артикулам
Структура AbcReport
Поле Тип Описание
id integer
article string
orgUniqueArticle string
color string
modelView string
orgUniqueModelView string
productModelId integer
organizationName string
organizationId integer
brandName string
categoryName string
categoryId integer
stocksCount integer Остаток FBS + FBO
stocksPercent number Доля в остатке в %
profit number Выручка или валовая прибыль
profitPercent number Доля в общей выручке или валовой прибыли в %
collectPercent number Накопленная доля по выручке или валовой прибыли %
group string Группа по выручке или валовой прибыли: A, B или C
groupWeighted string Группа по выручке или валовой прибыли в нормализованном виде: A, B или C
product Product Товар - уникальный с точки зрения подтребительских свойств товар.
Структура Product
Поле Тип Описание
id integer Идентификатор товара. Проставляется автоматически
productType string Тип товара
name string Наименование товара внутреннее
deleted boolean Признак удаления товара
printName string Название товара для внешних сервисов. Если не задано, проставляется равным наименованию товара
realSize string Российский размер товара для одежды или характеристики для других категорий
vendorSize string Размер производителя или характеристики производителя. Не обязательно заполнять
size string Размер для одежды или характеристики для внешних сервисов. Должен быть уникальным в рамках цвета
wildberriesImtId integer Используется для категорий, у которых не предусмотрен размер
wildberriesStockCount integer Остатки товара на Вайлдбериз
ozonId integer Идентификатор товара Озон на сайте. SKU в озон
ozonRealFbs boolean Признак использования RealFbs для товара
ozonProductId integer Идентификатор товара Озон в кабинете API
wildberriesSizeId integer Идентификатор размера на Вайлдбериз
simalandId integer Уникальный идентификатор товара для Simaland
ozonArticle string Уникальный артикул товара для озон. Offer ID в озон
externalArticle string Уникальный артикул товара для стороннего сервиса
ozonStockCount integer Остаток товара на складах Озон
ozonStockBetweenWarehouses integer Остаток товара в Озон, которые перемещаются между складами
removeFbsStock boolean Не выгружать остатки товара на маркетплейсы
purchaseCurrency string Валюта закупочной цены товара
purchasePriceInCurrency number Цена закупки в валюте
deliveryCostInCurrency number Цена на доставку в валюте
versionId integer Поле нужно передавать при изменении,для предотвращения одновременной перезаписи
createdDate string Дата создания товара на МП
created string Дата создания товара в SelSup
createdUser string Пользователь, который создал товар
sourceIncomeItemId integer Идентификатор товара из заказа поставщика по данным которого был создан товар
sourceProductId integer Идентификатор товара, который копировали
ozonRequiredStock integer Расчитанное количество товара, для поставки на склад Озон
wildberriesRequiredStock integer Расчитанное количество товара, для поставки на склад Wildberries
wildberriesProfit number Профит с продажи товара на Вайлдбериз по FBM
wildberriesProfitFbs number Профит с продажи товара на Вайлдбериз по FBS
wildberriesOrderQuantity integer Количество заказов по FBO товара на Вайлдбериз за 2 недели
wildberriesSupplyingQuantity integer Поставляемое количество товара на Вайлдбериз по FBM заказам
wildberriesQuantityInWayToClient integer Поставляемое количество товара на Вайлдбериз по FBM заказам к клиенту
wildberriesQuantityInWayFromClient integer Поставляемое количество товара на Вайлдбериз по FBM заказам от клиента
wildberriesSaleQuantity integer Продажи товара на Вайлдбериз по FBM за 2 недели
wildberriesQuantityInWay integer Количество товаров на Вайлдбериз в пути
wildberriesNoSale boolean Признак неликвидного товара на Вайлдбериз
lastStockChange string Дата последнего изменения стока на Вайлдбериз по FBM
ozonOrderQuantity integer Количество заказов товара по FBO на Озон по FBM и FBS за 2 недели
ozonSupplyingQuantity integer Поставляемое количество товара на Озон по FBM
ozonProfit integer Чистая маржа продажи товара на Озон по FBM
instockQuantity integer Остатки товара на складах клиента
calculatedInStockQuantity integer Рассчитанный остаток
ozonFbsSku integer Идентификатор товара в Озон по FBS
ozonFboSku integer Идентификатор товара в Озон по FBO
sellerSku string Идентификатор товара на Amazon
clientId integer Идентификатор клиента
organizationId integer Идентификатор организации
productViewId integer Идентификатор цвета
view ProductView Цвет товара
Структура ProductView
Поле Тип Описание
color string Артикул цвета
wbArticle string Артикул карточки Wildberries
id integer Идентификатор цвета. Проставляется автоматически
images Array of ProductImage Список изображений товара
Структура ProductImage
Поле Тип Описание
videos Array of ProductVideo Список видео товара
Структура ProductVideo
Поле Тип Описание
productModelId integer Идентификатор модели
model ProductModel Модель товара - объединяет товары, различающиеся цветом и некоторыми характеристиками (например размер в одежде)
actual boolean Актуальность цвета - нужно ли его показывать в заказах поставщикам
mainImage ProductImage Изображение товара
mainImageId integer
mainImageUrl string Ссылка на основное изображение на маркетплейсе
imageUrls string Ссылка на изображения
image360Urls string Ссылка на изображения 360
wildberriesId integer Числовой идентификатор номенклатуры Wildberries, nmId
createdDate string Дата создания цвета
createdUser string Пользователь, создавший цвет
versionId integer Поле нужно передавать при изменении,для предотвращения одновременной перезаписи
clientId integer Идентификатор клиента
deleted boolean Признак удаления цвета
keywords string Ключевые слова - сейчас не используется, перенесены в модель
wildberriesRating number Рейтинг карточки на Вайлдбериз
wildberriesFeedbacks integer Количество отзывов на карточке на Вайлдбериз
wildberriesCardDoesNotOpen boolean Признак, что карточка не открывается на Вайлдбериз
wildberriesHasPhoto boolean Признак наличия фото на Wildberries
organizationId integer Организация карточки
params string JSON со значениями параметров цвета
values Array of ParamValue Значения параметров карточки. Отдаются при запросе модели, если передать params=true
Структура ParamValue
Поле Тип Описание
viewSourceId integer Оригинал цвета по SKU
sizes Array of Product Список размеров для цвета
Структура Product
Поле Тип Описание
hasChanges boolean Признак изменения информации о цвете и необходимости его обновить
viewWbArticle ProductView Цвет товара
viewVersionId integer
suzId string GTIN товара
cisType string Тип в национальном каталоге
notChangedStock integer Количество дней, в течении которых не менялся остаток товара
nationalCatalogFeedId integer Идентификатор создания карточки в национальном каталоге
wildberriesStatus string Статус создания карточки товара в Вайлдбериз
wildberriesMessage string Ошибка создания карточки товара в Вайлдбериз
wildberriesMessageParams string JSON параметров ошибки создания карточки товара в Вайлдбериз
nationalCatalogStatus string Статус создания карточки товара в Национальном каталоге
nationalCatalogGoodId integer Идентификатор товара в национальном каталоге
nationalCatalogMessage string Ошибка создания карточки товара в Национальном каталоге
nationalCatalogMessageParams string Параметры ошибки создания карточки товара в Национальном каталоге
ozonStatus string Статус создания карточки товара в Озон
ozonMessage string Ошибка создания карточки товара в Озон
ozonMessageParams string JSON параметры ошибки создания карточки товара в Озон
ozonTaskId integer Идентификатор задания по обновления или созданию карточки в Озон
wildberriesFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке WB по FBS за 2 недели
ozonFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке на Ozon по FBS за 2 недели
ymarketFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке на Яндекс Маркете по FBS за 2 недели
totalSupplyingQuantity integer Кол-во заказанных товаров на данной карточке за 2 недели
skuId integer Идентификатор единицы хранения товара на складе. Проставляется автоматически
sku Sku Stock Keeping Unit - Единица хранения товара на складе. Может быть связана с несколькими карточками товаров Product.id. При первом создании товара SKU создается автоматически, далее можно привязать несколько товаров - имеющих разный бренд/организацию на маркетплейсах к одному SKU.
Структура Sku
Поле Тип Описание
id integer
product Product Товар - уникальный с точки зрения подтребительских свойств товар.
productId integer
barcodes Array of ProductBarcode Штрих-коды товара
Структура ProductBarcode
Поле Тип Описание
id integer
barcode string
organizationId integer Организация, если client.barcodeUniqForOrg = false, то проставляется 0. Поле включено в уникальный ключ
clientId integer
productId integer
useInWildberries boolean Применим ли данный штрих-код для Вайлдбериз
useInOzon boolean Применим ли данный штрих-код для Озон
useInYandexMarket boolean Применим ли данный штрих-код для Yandex.Market
useInAliexpress boolean Применим ли данный штрих-код для Aliexpress
useInSberMegamarket boolean Применим ли данный штрих-код для Sber.MegaMarket
format string
params string JSON значений параметров для данного размера/характеристик
values Array of ParamValue Значения параметров карточки. Отдаются при запросе модели, если передать params=true
Структура ParamValue
Поле Тип Описание
paramId Обязательный integer Идентификатор параметра
paramName string Название параметра, для тех, у кого нет ID
option Option Значение перечислимого параметра
doubleValue number Числовое значение параметра
longValue integer Целочисленное значение параметра
booleanValue boolean Булево значение параметра
stringValue string Строковое значение параметра
dateValue string Значение параметра даты
service string Сервис
unit Unit Единица измерения
auto boolean Автоматически проставленное значение параметра
created integer Дата заполнения параметра
user string Пользователь, который заполнил параметр
group object Группа карточек. Используется на списке товаров, чтобы объединить разные размеры в одну строку
duplicates Array of Product Дубликаты карточки по остаткам. Отдаются только на списке товаров, если включена галочка Объединять дубликаты
Структура Product
Поле Тип Описание
id integer Идентификатор товара. Проставляется автоматически
productType string Тип товара
name Обязательный string Наименование товара внутреннее
deleted boolean Признак удаления товара
printName string Название товара для внешних сервисов. Если не задано, проставляется равным наименованию товара
realSize string Российский размер товара для одежды или характеристики для других категорий
vendorSize string Размер производителя или характеристики производителя. Не обязательно заполнять
size string Размер для одежды или характеристики для внешних сервисов. Должен быть уникальным в рамках цвета
wildberriesImtId integer Используется для категорий, у которых не предусмотрен размер
wildberriesStockCount integer Остатки товара на Вайлдбериз
ozonId integer Идентификатор товара Озон на сайте. SKU в озон
ozonRealFbs boolean Признак использования RealFbs для товара
ozonProductId integer Идентификатор товара Озон в кабинете API
wildberriesSizeId integer Идентификатор размера на Вайлдбериз
simalandId integer Уникальный идентификатор товара для Simaland
ozonArticle string Уникальный артикул товара для озон. Offer ID в озон
externalArticle string Уникальный артикул товара для стороннего сервиса
ozonStockCount integer Остаток товара на складах Озон
ozonStockBetweenWarehouses integer Остаток товара в Озон, которые перемещаются между складами
removeFbsStock boolean Не выгружать остатки товара на маркетплейсы
purchaseCurrency string Валюта закупочной цены товара
purchasePriceInCurrency number Цена закупки в валюте
deliveryCostInCurrency number Цена на доставку в валюте
versionId integer Поле нужно передавать при изменении,для предотвращения одновременной перезаписи
createdDate string Дата создания товара на МП
created string Дата создания товара в SelSup
createdUser string Пользователь, который создал товар
sourceIncomeItemId integer Идентификатор товара из заказа поставщика по данным которого был создан товар
sourceProductId integer Идентификатор товара, который копировали
ozonRequiredStock integer Расчитанное количество товара, для поставки на склад Озон
wildberriesRequiredStock integer Расчитанное количество товара, для поставки на склад Wildberries
wildberriesProfit number Профит с продажи товара на Вайлдбериз по FBM
wildberriesProfitFbs number Профит с продажи товара на Вайлдбериз по FBS
wildberriesOrderQuantity integer Количество заказов по FBO товара на Вайлдбериз за 2 недели
wildberriesSupplyingQuantity integer Поставляемое количество товара на Вайлдбериз по FBM заказам
wildberriesQuantityInWayToClient integer Поставляемое количество товара на Вайлдбериз по FBM заказам к клиенту
wildberriesQuantityInWayFromClient integer Поставляемое количество товара на Вайлдбериз по FBM заказам от клиента
wildberriesSaleQuantity integer Продажи товара на Вайлдбериз по FBM за 2 недели
wildberriesQuantityInWay integer Количество товаров на Вайлдбериз в пути
wildberriesNoSale boolean Признак неликвидного товара на Вайлдбериз
lastStockChange string Дата последнего изменения стока на Вайлдбериз по FBM
ozonOrderQuantity integer Количество заказов товара по FBO на Озон по FBM и FBS за 2 недели
ozonSupplyingQuantity integer Поставляемое количество товара на Озон по FBM
ozonProfit integer Чистая маржа продажи товара на Озон по FBM
instockQuantity integer Остатки товара на складах клиента
calculatedInStockQuantity integer Рассчитанный остаток
ozonFbsSku integer Идентификатор товара в Озон по FBS
ozonFboSku integer Идентификатор товара в Озон по FBO
sellerSku string Идентификатор товара на Amazon
clientId integer Идентификатор клиента
organizationId Обязательный integer Идентификатор организации
productViewId integer Идентификатор цвета
view object Цвет товара
suzId string GTIN товара
cisType string Тип в национальном каталоге
notChangedStock integer Количество дней, в течении которых не менялся остаток товара
nationalCatalogFeedId integer Идентификатор создания карточки в национальном каталоге
wildberriesStatus string Статус создания карточки товара в Вайлдбериз
wildberriesMessage string Ошибка создания карточки товара в Вайлдбериз
wildberriesMessageParams string JSON параметров ошибки создания карточки товара в Вайлдбериз
nationalCatalogStatus string Статус создания карточки товара в Национальном каталоге
nationalCatalogGoodId integer Идентификатор товара в национальном каталоге
nationalCatalogMessage string Ошибка создания карточки товара в Национальном каталоге
nationalCatalogMessageParams string Параметры ошибки создания карточки товара в Национальном каталоге
ozonStatus string Статус создания карточки товара в Озон
ozonMessage string Ошибка создания карточки товара в Озон
ozonMessageParams string JSON параметры ошибки создания карточки товара в Озон
ozonTaskId integer Идентификатор задания по обновления или созданию карточки в Озон
wildberriesFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке WB по FBS за 2 недели
ozonFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке на Ozon по FBS за 2 недели
ymarketFbsOrdersQuantity integer Кол-во заказанных товаров на данной карточке на Яндекс Маркете по FBS за 2 недели
totalSupplyingQuantity integer Кол-во заказанных товаров на данной карточке за 2 недели
skuId integer Идентификатор единицы хранения товара на складе. Проставляется автоматически
sku object Stock Keeping Unit - Единица хранения товара на складе. Может быть связана с несколькими карточками товаров Product.id. При первом создании товара SKU создается автоматически, далее можно привязать несколько товаров - имеющих разный бренд/организацию на маркетплейсах к одному SKU.
barcodes Array of object Штрих-коды товара
Структура object
Поле Тип Описание
params string JSON значений параметров для данного размера/характеристик
values Array of object Значения параметров карточки. Отдаются при запросе модели, если передать params=true
Структура object
Поле Тип Описание
group object Группа карточек. Используется на списке товаров, чтобы объединить разные размеры в одну строку
duplicates Array of object Дубликаты карточки по остаткам. Отдаются только на списке товаров, если включена галочка Объединять дубликаты
Структура object
Поле Тип Описание
hasChanges boolean Признак наличия изменений в товаре и ее нужно обновить при сохранении
ignoreDuplicate boolean Признак игнорирования дубликатов при создании
yandexMarketSku integer Идентификатор карточки товара на Yandex.Market
yandexMarketStockCount integer Остаток товара на складах Yandex.Market
yandexMarketProductId integer Идентификатор карточки товара на Yandex.Market
yandexMarketShopSku string SKU товара на Yandex.Market
groupId integer ID групповой карточки
yandexMarketStatus string Статус создания карточки товара на яндекс маркет
yandexMarketMessage string Сообщение при ошибке создания карточки товара на яндекс маркет
yandexMarketMessageParams string Параметры сообщения при создании товара в Яндекс.Маркет
sberArticle string Артикул товара на СберМегаМаркет
siteArticle string артикул товара на сайте
siteId string айди товара на сайте
leroyMerlinArticle string Артикул товара на Леруа Мерлен
ebayArticle string Артикул товара на Ebay
lamodaArticle string Артикул товара на Lamoda
lamodaSku string SKU товара на Lamoda
leroyMerlinId string Номер карточки на Леруа Мерлен
duplicate boolean Признак, что карточка является дубликатом. Отдается не для всех методов
ozonHasPhoto boolean Признак наличия фото на Ozon
aliexpressSku string SKU на Aliexpress
aliexpressStatus string Статус создания товара на Aliexpress
aliexpressMessage string Сообщение при создании товара на Aliexpress
aliexpressMessageParams string Параметры сообщения при создании товара на Aliexpress
moySkladId string ID товара в сервисе Мой Склад
moySkladType string Тип товара в сервисе Мой Склад
avitoId integer ID товара в сервисе Avito
moySkladLinkId string ID для ссылки на Мой Склад
moySkladStatus string Статус создания карточки товара в МойСклад
avitoStatus string Статус обьявления на Авито
moySkladMessage string Ошибка создания карточки товара в МойСклад
moySkladMessageParams string Параметры ошибки создания карточки товара в МойСклад
oneCId string Идентификатор товара в 1С
removeFbsStockOzon boolean Не передавать остатки товара по FBS на озон
removeFbsStockWb boolean Не передавать остатки товара по FBS на Wildberries
removeFbsStockAli boolean Не передавать остатки товара по FBS на Aliepress
removeFbsStockYm boolean Не передавать остатки товара по FBS на Яндекс.Маркет
removeFbsStockSber boolean Не передавать остатки товара по FBS на СберМегаМаркет
quantity integer Количество товара в заказах. Возвращается только в методах income/getProductsFromOrders или wms/findStock
incomeQuantity integer Количество товара в закупке без разделения по маркетплейсам
orderMinDate string Минимальная дата заказа. Возвращается только в методах income/getProductsFromOrders
expiredDate string Cрок годности товара - возвращается только в методах, wms/findStock
productionDate string Дата производства
stock integer Остаток товара на определенном складе - возвращается только в методах, wms/fetchStock
stocks object Остатки товара на складах - возвращается только в методах, wms/fetchStock
cell object Ячейка хранения товара на складе, в которой может храниться один или несколько товаров
reserved integer Остаток товара на определенном складе - возвращается только в методах, wms/fetchStock
calculatedStock integer Остаток наборов на определенном складе - возвращается только в методах, wms/fetchStock, product/findProduct, supply/findProductForOrder
price number Розничная цена товара
updatedPrice number Новая общая цена товара со скидкой. Только для методов обновления цены
priceWithoutDiscount number Розничная цена товара без учета скидки
updatedPriceWithoutDiscount number Измененная розничная цена товара без учета скидки. Принимается только в методах обновления цены
updatedDeliveryCost number Измененные прочие расходы товара Принимается только в методах обновления цены
updatedPurchasePrice number Измененная закупочная цена товара Принимается только в методах обновления цены
purchasePrice number Закупочная цена товара в руб.
isPurchasePriceUpdated boolean Признак, была ли изменена закупочная цена
isDeliveryCostUpdated boolean Признак, изменения прочих расходов на товар.
wholesalePrice number Оптовая цена товара
deliveryCost number Дополнительные расходы на доставку товара в руб. Добавляются к закупочной цене
strategyId integer Идентификатор стратегии ценообразования
ozonAverageExpenses number Расходы по продаже товара на Ozon
wildberriesAverageExpenses number Расходы по продаже товара на Wildberries
yandexMarketAverageExpenses number Расходы по продаже товара на ЯМ
wildberriesPrice number Текущая цена товара на Вайлдбериз со скидкой
wildberriesUpdatedPrice number Новая цена товара на Вайлдбериз со скидкиой.Только для методов изменения цены
wildberriesPriceWithoutDiscount number Текущая цена товара на Вайлдбериз без скидки
wildberriesUpdatedPriceWithoutDiscount number Новая цена товара на Вайлдбериз без скидки.Только для методов изменения цены
wildberriesSale integer Скидка товара на Вайлдбериз
aliexpressPrice number Текущая цена на Aliexpress со скидкой
aliexpressPriceWithoutDiscount number Текущая цена на Aliexpress без скидки.
aliexpressUpdatedPrice number Новая цена со скидкой на Aliexpress. Только для методов обновления цены
aliexpressUpdatedPriceWithoutDiscount number Новая цена без скидки на Aliexpress. Только для методов обновления цены
minPrice number Минимальная цена товара. Ниже этой цены нельзя выставлять цену на товар.Используется для Ozon при участии товара в акциях
ozonPrice number Текущая цена товара на Озон со скидкой
ozonPromotionPrice number Текущая акционная цена товара на Озон
ozonUpdatedPrice number Новая цена товара на Озон со скидкой.Только для методов изменения цены
ozonPriceWithoutDiscount number Текущая цена товара на Озон без скидки.
ozonUpdatedPriceWithoutDiscount number Новая цена Озон без скидки.Только для методов изменения цены
ozonAcquiringPercent number Максимальная комиссия за эквайринг OZON
leroyMerlinPrice number Текущая цена товара на LeroyMerlin
leroyMerlinUpdatedPrice number Новая цена товара на LeroyMerlin.Только для методов изменения цены
avitoPrice number Текущая цена товара на Avito
avitoUpdatedPrice number Новая цена товара на Avito.Только для методов изменения цены
ozonComisson number Комиссия товара на Озон FBM
sberMegaMarketPrice number Текущая цена на СберМегаМаркет со скидкой
sberMegaMarketUpdatedPrice number Новая цена со скидкой на СберМегаМаркет. Только для методов изменения цены
sberMegaMarketSupplyingQuantity integer Поставляемое количество товара на СберМегаМаркет по FBM заказам
yandexMarketPrice number Текущая цена на Яндекс.Маркет со скидкой
yandexMarketPriceWithoutDiscount number Текущая цена на Яндекс.Маркет без скидки
yandexMarketUpdatedPrice number Новая цена со скидкой на Яндекс.Маркет. Только для методов изменения цены
yandexMarketUpdatedPriceWithoutDiscount number Новая цена без скидки на Яндекс.Маркет. Только для методов изменения цены
yandexMarketSupplyingQuantity integer Поставляемое количество товара на Яндекс.Маркет по FBM заказам
oneCArticle string Уникальный артикул товара для 1c
salesExpensesOnMpPercent number Расходы по продажам на маркетплейсе, %
taxeRate number Установленый процент налога на товар, %
desiredMarginalityPercent number Желаемый % маржинальности
desiredProfitRub number Желаемая прибыль, руб.
additionalCost number Доп. расходы на товар без записи в Финансовую аналитику, руб.
sberMegaMarketId integer Карточка СберМегаМаркет
packWidth integer Ширина в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packHeight integer Высота в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packDepth integer Длина/глубина в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packWeight integer Вес в упаковке гр. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
numOfPiecesInBox integer Количество штук в коробе
lastWildberriesSaleDate string Дата последней продажи на Wildberries
lastWildberriesOrderDate string Дата последнего заказа на Wildberries
lastOzonSaleDate string Дата последней продажи на OZON
lastOzonOrderDate string Дата последнего заказа на OZON
totalOrdersCount integer Кол-во заказанных товаров на данной карточке по МП OZON + WB
totalFbsOrdersCount integer Кол-во заказанных товаров на данной карточке по FBS за 2 недели
wildberriesTotalOrdersCount integer Кол-во заказанных товаров на данной карточке по МП WB
ignoreFbsWarehouses string Список идентификаторов складов маркетплейсов через запятую - на которые не отправлять остатки по FBS
fbsWarehouses string Список идентификаторов складов маркетплейсов через запятую - на которые не отправлять остатки по FBS
minFbsStock integer Минимальный остаток - если меньше, то ставим 0
maxFbsStock integer Максимальный остаток - если больше, то ставим его
wildberriesSaleLogistic number Логистика WB, руб.
wildberriesReturnLogistic number Обратная логистика WB, руб.
wildberriesWarehouseRatio number Коэффициент склада WB в %
wildberriesComission number Комиссия WB, %
ozonSaleLogistic number Логистика Ozon, руб.
ozonReturnLogistic number Обратная логистика Ozon, руб.
ozonCommission number Комиссия Ozon, %
maxDeliveryToPickupPoint number Максимальная стоимость доставки до места выдачи, руб.
ozonPurchasePercent number Процент выкупа Ozon, %
wildberriesPurchasePercent number Процент выкупа WB, %
minMarginality number Настройки репрайсера Min % маржинальности
maxMarginality number Настройки репрайсера Max % маржинальности
minProfit number Настройки репрайсера Min прибыль, руб.
maxProfit number Настройки репрайсера Max прибыль, руб.
minPriceWithDiscount number Настройки репрайсера Min цена со скидкой, руб.
maxPriceWithDiscount number Настройки репрайсера Max цена со скидкой, руб.
oldWildberriesPriceWithDiscount number При установки через репрайсер скидку, заполняется, после удаление скидки, возвращает как основная цена и значение затирается
oldWildberriesSale integer Скидка товара на Вайлдбериз до установки новой по репрайсеру, при возврате нужно проставлять null
wildberriesPromoProfit number Расчетный профит по акциям WB нужен для определения какая акция выгодная
wildberriesMarginality number Расчетная маржинальность по WB
wildberriesPromoId integer Идентификатор акции на ВБ
oldWildberriesPromoSalePercent number Расчетная маржинальность по WB
oldWildberriesPromoPriceWithDiscount number Расчетная маржинальность по WB
endWildberriesPriceWithSppConfig number Цена для пользователя конечная с СПП.
ozonFbsCommission number Комиссия ОЗОН ФБС
ozonFboCommission number Комиссия ОЗОН ФБО
wbTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по ВБ
ozonTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по OZON
sberTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по SBER
yandexTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по YANDEX
fboStockCount integer Остаток ФБО по выбранным складам/регионам
fbsStockCount integer Остаток ФБC для планирования поставок)
fboSupplyQuantity integer Количество поставляемого товара по выбранным складам/регионам
fboSales integer Кол-во продаж FBO по складам/регионам для планирования поставок
fbsSales integer Кол-во продаж FBS по складам/регионам для планирования поставок
fboOrders integer Кол-во заказов FBO по складам/регионам для планирования поставок
fbsOrders integer Кол-во заказов FBS по складам/регионам для планирования поставок
recommendPlan number Кол-во товара для добавления к заказу
skipDaysCount integer Кол-во пропущенных дней в учёте планирования поставок
organizationShortName string
contractorName string
supplyPlanBarcode string
planCorrectionFactor number Коэффициент коррекции для планирования поставок. На это значение умножается рассчитанное количество товара для поставки
orderBefore integer До какого времени должен быть сделан заказ от 1 до 24
daysBeforeSupply integer Кол-во дней до поставки. Через сколько дней с момента заказа ориентировочно будет поставка товаров
supplyPlanDays integer На сколько дней планировать остаток
warehouseIdForSupplyReport integer Id склада на который нужно поставить рассчитанные товары. Используется только в планировании поставок
warehouseNameForSupplyReport string Название склада на который нужно поставить рассчитанные товары. Используется только в планировании поставок
manager string Поле менеджера
cellId integer
percentForParticipationPromoOrAdvertising integer Закладываемый % для участия в акциях или рекламе
selsupLink string
tempId integer Временный id используется для быстрого импорта
category object Категория
walmartSku string SKU товара на Walmart
walmartId string Id товара на Walmart (WPID)
findirTips object Советы задачника (тип задачи - текст совета)
woocomSku string SKU товара на WooCommerce
woocomId integer Id товара на WooCommerce
commissions string JSON с комиссиями из разных маркетплейсов
lowStockAlerts string JSON для уведомлений о заканчивающихся остатках по маркетплейсов
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
calculatedInstockQuantity integer
emptyBarcodes boolean
site string
anyArticle string
anyLink string
hasChanges boolean Признак наличия изменений в товаре и ее нужно обновить при сохранении
ignoreDuplicate boolean Признак игнорирования дубликатов при создании
yandexMarketSku integer Идентификатор карточки товара на Yandex.Market
yandexMarketStockCount integer Остаток товара на складах Yandex.Market
yandexMarketProductId integer Идентификатор карточки товара на Yandex.Market
yandexMarketShopSku string SKU товара на Yandex.Market
groupId integer ID групповой карточки
yandexMarketStatus string Статус создания карточки товара на яндекс маркет
yandexMarketMessage string Сообщение при ошибке создания карточки товара на яндекс маркет
yandexMarketMessageParams string Параметры сообщения при создании товара в Яндекс.Маркет
sberArticle string Артикул товара на СберМегаМаркет
siteArticle string артикул товара на сайте
siteId string айди товара на сайте
leroyMerlinArticle string Артикул товара на Леруа Мерлен
ebayArticle string Артикул товара на Ebay
lamodaArticle string Артикул товара на Lamoda
lamodaSku string SKU товара на Lamoda
leroyMerlinId string Номер карточки на Леруа Мерлен
duplicate boolean Признак, что карточка является дубликатом. Отдается не для всех методов
ozonHasPhoto boolean Признак наличия фото на Ozon
aliexpressSku string SKU на Aliexpress
aliexpressStatus string Статус создания товара на Aliexpress
aliexpressMessage string Сообщение при создании товара на Aliexpress
aliexpressMessageParams string Параметры сообщения при создании товара на Aliexpress
moySkladId string ID товара в сервисе Мой Склад
moySkladType string Тип товара в сервисе Мой Склад
avitoId integer ID товара в сервисе Avito
moySkladLinkId string ID для ссылки на Мой Склад
moySkladStatus string Статус создания карточки товара в МойСклад
avitoStatus string Статус обьявления на Авито
moySkladMessage string Ошибка создания карточки товара в МойСклад
moySkladMessageParams string Параметры ошибки создания карточки товара в МойСклад
oneCId string Идентификатор товара в 1С
removeFbsStockOzon boolean Не передавать остатки товара по FBS на озон
removeFbsStockWb boolean Не передавать остатки товара по FBS на Wildberries
removeFbsStockAli boolean Не передавать остатки товара по FBS на Aliepress
removeFbsStockYm boolean Не передавать остатки товара по FBS на Яндекс.Маркет
removeFbsStockSber boolean Не передавать остатки товара по FBS на СберМегаМаркет
quantity integer Количество товара в заказах. Возвращается только в методах income/getProductsFromOrders или wms/findStock
incomeQuantity integer Количество товара в закупке без разделения по маркетплейсам
orderMinDate string Минимальная дата заказа. Возвращается только в методах income/getProductsFromOrders
expiredDate string Cрок годности товара - возвращается только в методах, wms/findStock
productionDate string Дата производства
stock integer Остаток товара на определенном складе - возвращается только в методах, wms/fetchStock
stocks object Остатки товара на складах - возвращается только в методах, wms/fetchStock
cell Cell Ячейка хранения товара на складе, в которой может храниться один или несколько товаров
Структура Cell
Поле Тип Описание
id integer Идентификатор ячейки
warehouseId integer Склад к которому относится ячейка
passageId integer Проход на складе, к которому относится ячейка. Может соджержать название этажа и пр
shelfId integer Полка стеллажа, к которой относится ячейка
rackId integer Стеллаж, к которому относится ячейка
name string Название ячейки. По умолчанию формируется автоматически
fullName string Полное название ячейки из названий прохода, стелажа, полки и ячейки
sortName string Название для сортировки ячейки из названий прохода, стелажа, полки и ячейки
barcode string Уникальный в рамках клиента штрих-код ячейки для идентификации ячейки с помощью сканера штрих-кода. Присваивается автоматически при создании ячейки
deleted boolean Признак того, что ячейка удалена
width integer Ширина ячейки для определения товаров, которые можно положить в нее
height integer Высота ячейки для определения товаров, которые можно положить в нее
depth integer Глубина ячейки для определения товаров, которые можно положить в нее
clientId integer Клиент которому принадлежит ячейка. Проставляется автоматически
lastInventoryId integer Идентификатор последней инвентаризации
type string Тип ячейки: NORMAL, NO_PLACE - не разложенные, REFUND - для возвратов
reserved integer Остаток товара на определенном складе - возвращается только в методах, wms/fetchStock
calculatedStock integer Остаток наборов на определенном складе - возвращается только в методах, wms/fetchStock, product/findProduct, supply/findProductForOrder
price number Розничная цена товара
updatedPrice number Новая общая цена товара со скидкой. Только для методов обновления цены
priceWithoutDiscount number Розничная цена товара без учета скидки
updatedPriceWithoutDiscount number Измененная розничная цена товара без учета скидки. Принимается только в методах обновления цены
updatedDeliveryCost number Измененные прочие расходы товара Принимается только в методах обновления цены
updatedPurchasePrice number Измененная закупочная цена товара Принимается только в методах обновления цены
purchasePrice number Закупочная цена товара в руб.
isPurchasePriceUpdated boolean Признак, была ли изменена закупочная цена
isDeliveryCostUpdated boolean Признак, изменения прочих расходов на товар.
wholesalePrice number Оптовая цена товара
deliveryCost number Дополнительные расходы на доставку товара в руб. Добавляются к закупочной цене
strategyId integer Идентификатор стратегии ценообразования
ozonAverageExpenses number Расходы по продаже товара на Ozon
wildberriesAverageExpenses number Расходы по продаже товара на Wildberries
yandexMarketAverageExpenses number Расходы по продаже товара на ЯМ
wildberriesPrice number Текущая цена товара на Вайлдбериз со скидкой
wildberriesUpdatedPrice number Новая цена товара на Вайлдбериз со скидкиой.Только для методов изменения цены
wildberriesPriceWithoutDiscount number Текущая цена товара на Вайлдбериз без скидки
wildberriesUpdatedPriceWithoutDiscount number Новая цена товара на Вайлдбериз без скидки.Только для методов изменения цены
wildberriesSale integer Скидка товара на Вайлдбериз
aliexpressPrice number Текущая цена на Aliexpress со скидкой
aliexpressPriceWithoutDiscount number Текущая цена на Aliexpress без скидки.
aliexpressUpdatedPrice number Новая цена со скидкой на Aliexpress. Только для методов обновления цены
aliexpressUpdatedPriceWithoutDiscount number Новая цена без скидки на Aliexpress. Только для методов обновления цены
minPrice number Минимальная цена товара. Ниже этой цены нельзя выставлять цену на товар.Используется для Ozon при участии товара в акциях
ozonPrice number Текущая цена товара на Озон со скидкой
ozonPromotionPrice number Текущая акционная цена товара на Озон
ozonUpdatedPrice number Новая цена товара на Озон со скидкой.Только для методов изменения цены
ozonPriceWithoutDiscount number Текущая цена товара на Озон без скидки.
ozonUpdatedPriceWithoutDiscount number Новая цена Озон без скидки.Только для методов изменения цены
ozonAcquiringPercent number Максимальная комиссия за эквайринг OZON
leroyMerlinPrice number Текущая цена товара на LeroyMerlin
leroyMerlinUpdatedPrice number Новая цена товара на LeroyMerlin.Только для методов изменения цены
avitoPrice number Текущая цена товара на Avito
avitoUpdatedPrice number Новая цена товара на Avito.Только для методов изменения цены
ozonComisson number Комиссия товара на Озон FBM
sberMegaMarketPrice number Текущая цена на СберМегаМаркет со скидкой
sberMegaMarketUpdatedPrice number Новая цена со скидкой на СберМегаМаркет. Только для методов изменения цены
sberMegaMarketSupplyingQuantity integer Поставляемое количество товара на СберМегаМаркет по FBM заказам
yandexMarketPrice number Текущая цена на Яндекс.Маркет со скидкой
yandexMarketPriceWithoutDiscount number Текущая цена на Яндекс.Маркет без скидки
yandexMarketUpdatedPrice number Новая цена со скидкой на Яндекс.Маркет. Только для методов изменения цены
yandexMarketUpdatedPriceWithoutDiscount number Новая цена без скидки на Яндекс.Маркет. Только для методов изменения цены
yandexMarketSupplyingQuantity integer Поставляемое количество товара на Яндекс.Маркет по FBM заказам
oneCArticle string Уникальный артикул товара для 1c
salesExpensesOnMpPercent number Расходы по продажам на маркетплейсе, %
taxeRate number Установленый процент налога на товар, %
desiredMarginalityPercent number Желаемый % маржинальности
desiredProfitRub number Желаемая прибыль, руб.
additionalCost number Доп. расходы на товар без записи в Финансовую аналитику, руб.
sberMegaMarketId integer Карточка СберМегаМаркет
packWidth integer Ширина в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packHeight integer Высота в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packDepth integer Длина/глубина в упаковке мм. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
packWeight integer Вес в упаковке гр. Имеет больший приоритет, чем значение в модели или категории, отдается на маркетплейсы
numOfPiecesInBox integer Количество штук в коробе
lastWildberriesSaleDate string Дата последней продажи на Wildberries
lastWildberriesOrderDate string Дата последнего заказа на Wildberries
lastOzonSaleDate string Дата последней продажи на OZON
lastOzonOrderDate string Дата последнего заказа на OZON
totalOrdersCount integer Кол-во заказанных товаров на данной карточке по МП OZON + WB
totalFbsOrdersCount integer Кол-во заказанных товаров на данной карточке по FBS за 2 недели
wildberriesTotalOrdersCount integer Кол-во заказанных товаров на данной карточке по МП WB
ignoreFbsWarehouses string Список идентификаторов складов маркетплейсов через запятую - на которые не отправлять остатки по FBS
fbsWarehouses string Список идентификаторов складов маркетплейсов через запятую - на которые не отправлять остатки по FBS
minFbsStock integer Минимальный остаток - если меньше, то ставим 0
maxFbsStock integer Максимальный остаток - если больше, то ставим его
wildberriesSaleLogistic number Логистика WB, руб.
wildberriesReturnLogistic number Обратная логистика WB, руб.
wildberriesWarehouseRatio number Коэффициент склада WB в %
wildberriesComission number Комиссия WB, %
ozonSaleLogistic number Логистика Ozon, руб.
ozonReturnLogistic number Обратная логистика Ozon, руб.
ozonCommission number Комиссия Ozon, %
maxDeliveryToPickupPoint number Максимальная стоимость доставки до места выдачи, руб.
ozonPurchasePercent number Процент выкупа Ozon, %
wildberriesPurchasePercent number Процент выкупа WB, %
minMarginality number Настройки репрайсера Min % маржинальности
maxMarginality number Настройки репрайсера Max % маржинальности
minProfit number Настройки репрайсера Min прибыль, руб.
maxProfit number Настройки репрайсера Max прибыль, руб.
minPriceWithDiscount number Настройки репрайсера Min цена со скидкой, руб.
maxPriceWithDiscount number Настройки репрайсера Max цена со скидкой, руб.
oldWildberriesPriceWithDiscount number При установки через репрайсер скидку, заполняется, после удаление скидки, возвращает как основная цена и значение затирается
oldWildberriesSale integer Скидка товара на Вайлдбериз до установки новой по репрайсеру, при возврате нужно проставлять null
wildberriesPromoProfit number Расчетный профит по акциям WB нужен для определения какая акция выгодная
wildberriesMarginality number Расчетная маржинальность по WB
wildberriesPromoId integer Идентификатор акции на ВБ
oldWildberriesPromoSalePercent number Расчетная маржинальность по WB
oldWildberriesPromoPriceWithDiscount number Расчетная маржинальность по WB
endWildberriesPriceWithSppConfig number Цена для пользователя конечная с СПП.
ozonFbsCommission number Комиссия ОЗОН ФБС
ozonFboCommission number Комиссия ОЗОН ФБО
wbTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по ВБ
ozonTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по OZON
sberTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по SBER
yandexTotalSalesCount integer Общее кол-во продажи - возвраты, начиная с подсчета процента выкупа по YANDEX
fboStockCount integer Остаток ФБО по выбранным складам/регионам
fbsStockCount integer Остаток ФБC для планирования поставок)
fboSupplyQuantity integer Количество поставляемого товара по выбранным складам/регионам
fboSales integer Кол-во продаж FBO по складам/регионам для планирования поставок
fbsSales integer Кол-во продаж FBS по складам/регионам для планирования поставок
fboOrders integer Кол-во заказов FBO по складам/регионам для планирования поставок
fbsOrders integer Кол-во заказов FBS по складам/регионам для планирования поставок
recommendPlan number Кол-во товара для добавления к заказу
skipDaysCount integer Кол-во пропущенных дней в учёте планирования поставок
organizationShortName string
contractorName string
supplyPlanBarcode string
planCorrectionFactor number Коэффициент коррекции для планирования поставок. На это значение умножается рассчитанное количество товара для поставки
orderBefore integer До какого времени должен быть сделан заказ от 1 до 24
daysBeforeSupply integer Кол-во дней до поставки. Через сколько дней с момента заказа ориентировочно будет поставка товаров
supplyPlanDays integer На сколько дней планировать остаток
warehouseIdForSupplyReport integer Id склада на который нужно поставить рассчитанные товары. Используется только в планировании поставок
warehouseNameForSupplyReport string Название склада на который нужно поставить рассчитанные товары. Используется только в планировании поставок
manager string Поле менеджера
cellId integer
percentForParticipationPromoOrAdvertising integer Закладываемый % для участия в акциях или рекламе
selsupLink string
tempId integer Временный id используется для быстрого импорта
category Category Категория
Структура Category
Поле Тип Описание
categoryId integer Идентификатор категории. Проставляется автоматически
name string Наименование категории
deleted boolean Признак удаленных категорий
parentId integer Идентификатор родительской категории
clientId integer Идентификатор клиента
marked boolean Маркируется ли категория
categoryClass string Группы категорий Честного знака
wildberriesType WildberriesType Предмет Вайлдбериз
wildberriesCategoryId integer Идентификатор категории Wildberries, совпадает с ID категории на самом Wildberries
wildberriesFbmCommission number Комиссия по тарифу FBM
wildberriesFbwCommission number Комиссия по тарифу FBW
wildberriesFbsCommission number Комиссия по тарифу FBS
wildberriesDbsCommission number Комиссия по тарифу DBS
wildberriesEdbsCommission number Комиссия по тарифу EDBS
wildberriesCAndCCommission number Комиссия по тарифу C&C
wildberriesBookingCommission number Комиссия за бронирование
ozonDescriptionCategoryId integer Идентификатор категории на Ozon. Строится из ID категории + ID типа на Ozon
yandexMarketCategoryId integer Идентификатор категории в Яндекс.Маркет. Совпадает с идентификатором категории на самом Яндекс.Маркет
yandexMarketCategory YandexMarketCategory Категория Яндекс.Маркета
ozonDescriptionCategory OzonDescriptionCategory Категория Озон
ozonCommission number Комиссия озона.
tnved Tnved Код ТНВЭД
tnvedId integer Идентификатор ТНВЭД
laundry string Правила ухода за вещами. Разделяются запятыми
params string JSON значений параметров для категории
namePattern string Шаблон названий категории
aliexpressCategory AliexpressCategory Категория Aliexpress
aliexpressCategoryId integer Идентификатор категории на самом Aliexpress
avitoCategory AvitoCategory Категория Авито
avitoCategoryId integer Идентификатор категории на самом Avito
packDepth integer Глубина упаковки в мм. Проставляется всем товарам в категории
packWidth integer Ширина упаковки в мм. Проставляется всем товарам в категории
packHeight integer Высота упаковки в мм. Проставляется всем товарам в категории
packWeight integer Вес упаковки в граммах. Проставляется всем товарам в категории
hasSize boolean Признак разделения товаров в категории по размеру. Меняет вид редактора карточки
hasColor boolean Признак разделения товаров в категории по цвету. Меняет вид редактора карточки
autoName boolean Автоматически формировать названия товаров в категории
removeFbsStock boolean Не передавать остатки товаров по FBS для товаров из этой категории
oneCId string Идентификатор категории в 1С
externalId string Идентификатор категории на сайте
moySkladId string Идентификатор категории в сервисе МойСклад
useClientParams boolean Показывать пользовательские параметры в категории
requiredExpirationDate boolean Является ли срок годности обязательным параметром
walmartSku string SKU товара на Walmart
walmartId string Id товара на Walmart (WPID)
findirTips object Советы задачника (тип задачи - текст совета)
woocomSku string SKU товара на WooCommerce
woocomId integer Id товара на WooCommerce
commissions string JSON с комиссиями из разных маркетплейсов
lowStockAlerts string JSON для уведомлений о заканчивающихся остатках по маркетплейсов
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
calculatedInstockQuantity integer
emptyBarcodes boolean
site string
anyArticle string
anyLink string
totalCount integer
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/getAbcAnalysisByGrossProfit',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/getAbcAnalysisByGrossProfit',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/getAbcAnalysisByGrossProfit',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/getAbcAnalysisByGrossProfit?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/getAbcAnalysisByGrossProfit?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/getAbcAnalysisByGrossProfit?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/getAbcAnalysisByGrossProfit?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Полный финансовый отчет

Объединение методов getFinancesReportByPeriod, getCostStructure,getSalesExpensesOnMarketplaces, getProfitStructure,getPenaltyStructure, getServiceStructure
GET /api/stat/fullFinanceReport

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
salesExpensesOnMarketplaces FindResponseRowStructureForFinanceTable
Структура FindResponseRowStructureForFinanceTable
Поле Тип Описание
rows Array of RowStructureForFinanceTable Строки с результатом поиска
Структура RowStructureForFinanceTable
Поле Тип Описание
id integer
name string
cost number
totalSales number
percent number
absPercent number
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
costStructure GetFinanceStructureResult
Структура GetFinanceStructureResult
Поле Тип Описание
rows Array of RowStructureForFinanceTable Строки с результатом поиска
Структура RowStructureForFinanceTable
Поле Тип Описание
id integer
name string
cost number
totalSales number
percent number
absPercent number
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
profitStructure GetFinanceStructureResult
Структура GetFinanceStructureResult
Поле Тип Описание
rows Array of RowStructureForFinanceTable Строки с результатом поиска
Структура RowStructureForFinanceTable
Поле Тип Описание
id integer
name string
cost number
totalSales number
percent number
absPercent number
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
penaltyStructure Array of RowStructureForFinanceTable
Структура RowStructureForFinanceTable
Поле Тип Описание
id integer
name string
cost number
totalSales number
percent number
absPercent number
serviceStructure Array of RowStructureForFinanceTable
Структура RowStructureForFinanceTable
Поле Тип Описание
id integer
name string
cost number
totalSales number
percent number
absPercent number
financesReportByPeriod FindResponseFinanceReport
Структура FindResponseFinanceReport
Поле Тип Описание
rows Array of FinanceReport Строки с результатом поиска
Структура FinanceReport
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Стоимость рекламы ВБ
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приёмка
cancelsCount integer Количество отмен
id integer Идентификатор
orgName string Название организации
organizationId integer Идентификатор организации
reportNumber string Номер отчета
dateStart string Дата начала отчета по реализации
dateEnd string Дата конца отчета по реализации
logisticToClientAmount number Стоимость логистики к клиенту в руб.
logisticFromClientAmount number Стоимость логистики от клиента в руб.
salesCommission number Комиссия от продажи в руб.
returnsCommission number Возврат комиссии в руб.
profit number Прибыль в руб. grossProfit - fixedOutlay - taxes + selfPayAmount - storageAmount
bankPayment number Оплата по банку в руб.
costPrice number Себестоимость товара в руб. purchasePrice * salesCount
fixedOutlay number Постоянные расходы в руб.(Расходы за весь интервал / кол-во дней в месяце)*на выбранный интервал, если период захватывает больше одного месяца, будет вычисляться для каждого месяца, а после складываться, в случае нескольких отчетах для организации, то будет по каждому отчету браться по коэфициенту продаж
taxes number Налоги в руб.
sellingCosts number Затраты по продаже на МП. getLogistics() + getCommissions() + getPenalty() + getServices() - getAdditionalAndDeduction() - getOtherAmount() + getCostStorage()
rentability number Рентабельность. (profit / totalSalesAmount) * 100
taxRate number Процентная ставка налога
taxType string Тип налогообложения
totalCampaignCost number Стоимость рекламы сумма
ozonCampaignCost number Реклама Озон
basicExpenses number Сумма основных расходов: комиссия + логистика + себестоимость
otherExpenses number Сумма прочих расходов: платная приемка + прочие удержания + прочие начисления + хранения + доплаты
additionalExpenses number Сумма дополнительных расходов: реклама + услуги + штрафы + сумма прочих расходов
ozonDeliveryReturn number Перечисление за доставку от покупателя, должно идти в прибыль
emptyPurchaseAmount integer Сумма продаж, для которых не указана закупочная цена
totalSalesAmountWithSpp number Сумма продаж, если учитывать СPP (до SPP)
sellingCostsWithSpp number Сумма расходов на МП если учитывать СPP (до SPP)
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
previousFinancesReportByPeriod FindResponseFinanceReport
Структура FindResponseFinanceReport
Поле Тип Описание
rows Array of FinanceReport Строки с результатом поиска
Структура FinanceReport
Поле Тип Описание
shortName string Сокращенное название организации.
categoryName string Название категории.
brandName string Название бренда.
name string Название товара
viewWildberriesId integer Карточка Wildberries
article string Артикул
serviceArticle string Артикул на маркетплейсе
color string Цвет товара.
size string Размер товара.
barcode string Шк товара.
purchasePrice number Закупочная цена.
createdDate string Дата создания карточки.
isDuplicate boolean Признак дубликата карточки.
dateKey string Ключ по дате.
salesCount integer Продажи в шт.
returnsCount integer Возвраты в шт.
totalSalesCount integer Разница между продажами и возвратами в шт. salesCount - returnsCount
salesAmount number Продажи в руб.
returnsAmount number Возвраты в руб.
averageReturnsAmount number Возвраты в руб. за 1 ед
totalSalesAmount number Разница между продажами и возвратами в руб. salesAmount - returnsAmount
orderAmount number Заказы в руб.
orderAmountWithoutCancel number Заказы в руб. без отмен
logistics number Логистика в руб.
averageLogistics number Средняя логистика в руб.
logisticsShare number Доля логистики в структуре выручки, %
commissions number Комиссия в руб.
averageCommissions number Средняя комиссия в руб.
penalty number Штрафы в руб.
additional number Доплаты в руб.
refundsAndCancellations number Возвраты и отмены в руб.
compensationAmount number Компенсации в руб.
additionalAndDeduction number Доплаты и удержания в руб. в файле финансах ячейка Доплаты
services number Услуги в руб.
drr number ДРР, %
totalToBePaid number Итого к оплате. totalSalesAmount - logistics - commission - penalties - additional - services + otherAmount - costStorage - campaignCost
averageToBePaid number Итого к оплате за 1 товар.
productCount integer Товарный остаток FBS + FBO на текущий момент.
salesAmountInPurchasePrice number Проданный товар в закупочных ценах, руб.
productAmount number Сумма по товарному остатку purchasePrice * productCount
averageSellingPrice number Средняя фактическая цена продажи
markUp number Фактическая наценка totalToBePaid / (purchasePrice * totalSalesCount)
margin number Маржинальность
grossProfit number Валовая прибыль totalToBePaid - totalSalesCount * purchasePrice - selPayAmount
averageGrossProfit number Валовая прибыль за 1 ед.
ratioInIncome number Доля в выручке
rationInGrossProfit number Доля в валовой прибыли в % grossProfit / SUM(grossProfit)
ratioInProductCount number Доля в товарном остатке в % productAmount / SUM(productAmount)
efficiencyForIncome number Эффективность по выручке ratioInIncome / ratioInProductCount
grossProfitEfficiency number Эффективность по валовой прибыли rationInGrossProfit / ratioInProductCount
averageExpenses number Средний расходов по продаже на МП на 1 ед товара, руб. все расходы в руб / продажи - возвраты в шт
otherAmount number Прочие начисления, руб.
percentRedemption number Процент выкупа. Продажи/(Продажи+Возвраты)*100 только для ВБ
orderCount integer Кол-во заказов в шт.
orderCountWithoutCancel integer Кол-во заказов в шт. без отмен
nonPurchasePriceCount integer Кол-во profitRepot где не указана закупочная цена, шт.
selfPayCount integer Кол-во самовыкупов, шт.
selfPayAmount number Сумма самовыкупов, руб.
costStorage number Сумма за хранения товара на МП, получаем только по ВБ через импорт файла.
campaignCost number Стоимость рекламы ВБ
wbSpp number Сумма скидки постоянного покупателя на ВБ
wbTotalSalesByPriceWithDisc number Сумма продажи ВБ, по цене со скидкой продажи - возвраты
otherDeductions number Прочие удержания WB
averageExpensesOnMP number Средний расход по продаже на МП на 1 ед товара(берутся все расходы на МП по товару)
compensationForLostItemOnWb number Компенсация за утерянный товар от WB
productAmountSum number
totalSalesAmountPositiveSum number
grossProfitPositiveSum number
acceptance number Платная приёмка
cancelsCount integer Количество отмен
id integer Идентификатор
orgName string Название организации
organizationId integer Идентификатор организации
reportNumber string Номер отчета
dateStart string Дата начала отчета по реализации
dateEnd string Дата конца отчета по реализации
logisticToClientAmount number Стоимость логистики к клиенту в руб.
logisticFromClientAmount number Стоимость логистики от клиента в руб.
salesCommission number Комиссия от продажи в руб.
returnsCommission number Возврат комиссии в руб.
profit number Прибыль в руб. grossProfit - fixedOutlay - taxes + selfPayAmount - storageAmount
bankPayment number Оплата по банку в руб.
costPrice number Себестоимость товара в руб. purchasePrice * salesCount
fixedOutlay number Постоянные расходы в руб.(Расходы за весь интервал / кол-во дней в месяце)*на выбранный интервал, если период захватывает больше одного месяца, будет вычисляться для каждого месяца, а после складываться, в случае нескольких отчетах для организации, то будет по каждому отчету браться по коэфициенту продаж
taxes number Налоги в руб.
sellingCosts number Затраты по продаже на МП. getLogistics() + getCommissions() + getPenalty() + getServices() - getAdditionalAndDeduction() - getOtherAmount() + getCostStorage()
rentability number Рентабельность. (profit / totalSalesAmount) * 100
taxRate number Процентная ставка налога
taxType string Тип налогообложения
totalCampaignCost number Стоимость рекламы сумма
ozonCampaignCost number Реклама Озон
basicExpenses number Сумма основных расходов: комиссия + логистика + себестоимость
otherExpenses number Сумма прочих расходов: платная приемка + прочие удержания + прочие начисления + хранения + доплаты
additionalExpenses number Сумма дополнительных расходов: реклама + услуги + штрафы + сумма прочих расходов
ozonDeliveryReturn number Перечисление за доставку от покупателя, должно идти в прибыль
emptyPurchaseAmount integer Сумма продаж, для которых не указана закупочная цена
totalSalesAmountWithSpp number Сумма продаж, если учитывать СPP (до SPP)
sellingCostsWithSpp number Сумма расходов на МП если учитывать СPP (до SPP)
inputVat number Входящий НДС, руб.
outputVat number Исходящий НДС, руб.
finalVat number Итоговый НДС (исходящий - входящий), руб.
incomeTax number Налог на прибыль, руб.
totalTax number Общий налог (НДС + налог на прибыль), руб.
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/fullFinanceReport',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/fullFinanceReport',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/fullFinanceReport',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/fullFinanceReport?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/fullFinanceReport?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/fullFinanceReport?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/fullFinanceReport?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Умный анализ финансов

GET /api/stat/findirTips

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
tips object
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/findirTips',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/findirTips',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/findirTips',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/findirTips?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/findirTips?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/findirTips?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/findirTips?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Умный анализ финансов

GET /api/stat/findir/tips

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Тип ответа: Tip
Элементы массива
Поле Тип Описание
type string Нет
title string Нет
description string Нет
value number Нет
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/findir/tips',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/findir/tips',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/findir/tips',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/findir/tips?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/findir/tips?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/findir/tips?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/findir/tips?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Поиск операций аналитики

Метод возвращает список операций аналитики по фильтру
GET /api/stat/findProfitReport

Параметры запроса QUERY

Название Тип Обязательный Описание
dateFrom Date Нет Фильтр по дате операции - от
dateTo Date Нет Фильтр по дате операции - до
field "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Параметр field
fieldId integer Нет Параметр fieldId
commission number Нет Параметр commission
clientOrganizationId integer Нет Параметр clientOrganizationId
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Параметр sourceReport
organizations Array of integer Нет Идентификаторы организаций клиента
services Array of string Нет Список маркетплейсов
categories Array of integer Нет Список категорий
brands Array of integer Нет Список брендов
noProduct boolean Нет Без карточки
operationType "DEFAULT""SALES""RETURNS""PENALTIES""LOGISTICS""SERVICES""COMPENSATION""STORNO_SALES""STORNO_RETURNS""IS_CANCEL""ONE_PENALTIES""ONE_ADDITION_PAY""ORDERS""TRANSFER_DELIVERY""OTHERS_AMOUNT""ACQUIRING""COST_STORAGE""CAMPAIGN_OPERATION""DEDUCTIONS""COMPENSATION_FOR_LOST_ITEM_ON_WB""LOGISTICS_CORRECTION""ACCEPTANCE""NEW_ACCEPTANCE""OWN_DELIVERY" Нет Тип операции(Продажи, возврат, логистика и т.д.)
query string Нет Вид операции
timeZone integer Нет Часовой пояс клиента по UTC
clientId integer Нет Идентификатор клиента через репрайсер
fileHistoryId integer Нет Идентификатор загруженного файла
notCurrentCurrency boolean Нет Валюта отчета
limit integer Нет Ограничение на количество записей. Максимальное значение - 500
page integer Нет Номер страницы начиная с 1
count boolean Нет Возвратить в ответе общее количество записей
sortBy "ID""SALECOMMISSION""OPERATION_DATE""SERVICENAME""SUBJECTNAME""SERVICECARD""PRODUCTNAME""DOCUMENTTYPE""SUPPLIEROPERNAME""BONUSTYPENAME""PENALTY" Нет Поле для сортировки
ascending boolean Нет Порядок сортировки - по возрастанию?. Работает только при получении списка.

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of RealizationReport Строки с результатом поиска
Структура RealizationReport
Поле Тип Описание
id integer
realizationReportId string Номер отчета WB и идентификатор операции ozon и sbermarket
currencyName string Оригинальная валюта отчёта
currentCurrency string Валюта отчёта
originalValues string Суммы в первоначальной валюте отчёта
dateFrom string Дата начала отчетного периода
dateTo string Дата конца отчетного периода
supplierContractCode string Договор
rid string Уникальный идентификатор позиции заказа
operationDate string Дата операции
createDate string Дата формирования отчёта WB
rrdId integer Номер строки
giId integer Номер поставки
subjectName string Название товара(товаров) WB или ozon(Items.name)
productCode string Артикул WB(nm_id) или код SKU ozon(Items.sku) Артикул СМ(p.sber_article)
brandName string Бренд
saName string Артикул поставщика
tsName string Размер
barcode string
docTypeName string Тип документа
quantity integer Количество
retailPrice number Цена розничная
retailAmount number Сумма продаж(Возвратов), до вычетов.
salePercent number Согласованная скидка
commissionPercent number Процент комиссии
officeName string Склад
supplierOperName string Обоснование для оплаты
orderType string Тип заказа Wildberries
orderDate string Даты заказа WB и OZON
saleDate string Дата продажи
shkId string ШК
retailPriceWithDiscRub number Цена розничная с учетом согласованной скидки
deliveryAmount integer Кол-во доставок
returnAmount integer Кол-во возвратов
returnFlag boolean Маркер возврата sbermarket
deliveryCharge number Стоимость логистики
giBoxTypeName string Тип коробов
productDiscountForReport string Согласованный продуктовый дисконт
supplierPromo string Промокод
ppvzSppPrc number Скидка постоянного Покупателя (СПП)
ppvzKvwPrcBase number Размер кВВ без НДС, % Базовый
ppvzKvwPrc number Итоговый кВВ без НДС, %
saleCommission number Комиссия торговой площадки в рублях.
income number К перечислению Продавцу за реализованный Товар WB(ppvz_for_pay).ozon(amount) уже вычитает комиссию и оплату своих сервисов.
ppvzReward number Возмещение Расходов услуг поверенного
ppvzVw number Комиссия торговой площадки, без НДС
ppvzVwNds number НДС с Вознаграждения Вайлдберриз
ppvzOfficeId integer Номер офиса WB или номер склада OZON
ppvzOfficeName string Наименование офиса доставки
ppvzSupplierId string Номер партнера
ppvzSupplierName string Партнер
ppvzInn string ИНН партнера
clientId integer
organizationId integer Идентификатор организации, по которой
productId integer Идентификатор товара, к которому относится операция
productModelId integer Идентификатор модели товара, к которому относится операция
productViewId integer Идентификатор цвета товара, к которому относится операция
serviceId integer Тип сервиса для которого предназначен отчет.
ozonPostingNumber string ozon номер отправления.
ozonReturnDeliveryCharge number ozon плата за доставку возврата.
operationType string Тип операции.
operationTypeName string Полное название типа операции.
transactionType string Тип транзакции.
ozonCommission number Вознаграждение ozon
operationStatus string Статус операции, <Продажа>, <Возврат> и т.д,
operationTypeTitle string Название типа операции на ozon
declarationNumber string Номер таможенной декларации используется wildberries
bonusTypeName string Обоснование штрафов и доплат используется wildberries
wildberriesStickerId string Идентификатор этикетки wildberries
uniqueId string Уникальный идентификатор
sourceReport string Идентификатор из какого импорта пришли данные: ORDER, SALES, PROFIT, OZON, SBER
penalty number Штраф на WB
additionalPayment number Доплаты на WB
sRid string Уникальный идентификатор заказа
siteCountry string Страна назначения
ozonProcessing number OZON processing
operationId integer Идентификатор операции
yandexMarketStatusUpdateDate string Дата и время, когда статус заказа на YandexMarket был изменен в последний раз. Отдает время +03:00
yandexMarketPartnerOrderId string Идентификатор заказа в YandexMarket, сохраняем через файл идентификатор магазина
yandexMarketPaymentType string Тип оплаты заказа YandexMarket
sberOperationClass string Тип операции сбера
deliveryRegionId integer Идентификатор региона доставки.
deliveryRegionName string Название региона доставки.
marketSku integer SKU на Маркете.
shopSku string SHOP_SKU на Маркете.
purchasePrice number Закупочная цена на момент заказа.
orderStatus string Статус заказа:
wmsItemId integer Идентификатор информации о движение товара.
selfPay boolean Самовыкуп
otherExpenses number Прочие расходы по товару.
campaignExpenses number расходы на рекламу
supRatingPrcUp number Размер снижения кВВ из-за рейтинга, %
isKgvpV2 number Размер снижения кВВ из-за акции, %
rebillLogisticCost number Возмещение издержек по перевозке.Поле будет в ответе при наличии значения
rebillLogisticOrg string Организатор перевозки.Поле будет в ответе при наличии значения.
acquiringFee number Возмещение издержек по эквайрингу. Издержки WB за услуги эквайринга: вычитаются из вознаграждения WB и не влияют на доход продавца.
acquiringBank string Наименование банка-эквайера
kiz string Код маркировки.Поле будет в ответе при наличии значения
oblast string Регион заказа
warehouseId integer Идентификатор склада в селсап
fileHistoryId integer Идентификатор ручной загрузки с файла
storageFee number Хранение
deduction number Удержание
acceptance number Платная приемка
importDate string Дата импорта
productName string Полное название продукта
serviceName string Название МП
shortOrgName string Организация
article string Артикул
color string Цвет
size string Размер
barcodeSelsup string ШК
warehouseName string Название склада в селсап
warehouseRegion string Регион склада в селсап
currencyOrDefault string
exchangeRateDate string
srid string
stringNmId string
total integer Общее количество найденных записей. Возвращается только, когда count = true
page integer Номер запрошенной страницы
hasNextPage boolean Есть ли следующая страница
emptyPurchase integer Показатель пустой закупочной цены
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  field: 'PRODUCT',
  fieldId: '123',
  commission: '1',
  clientOrganizationId: 'АО "Торговый дом"',
  sourceReport: 'DEFAULT',
  organizations: 'АО "Торговый дом"',
  services: '',
  categories: '',
  brands: '',
  noProduct: 'true',
  operationType: 'standard',
  query: 'Пример query',
  timeZone: '1',
  clientId: '123',
  fileHistoryId: 'https://example.com/document.pdf',
  notCurrentCurrency: 'Пример notCurrentCurrency',
  limit: '100',
  page: '1',
  count: 'Россия',
  sortBy: 'ID',
  ascending: 'true',
};

const response = await axios.get('https://api.selsup.ru/api/stat/findProfitReport',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  dateFrom?: string;
  dateTo?: string;
  field?: string;
  fieldId?: number;
  commission?: number;
  clientOrganizationId?: number;
  sourceReport?: string;
  organizations?: string;
  services?: string;
  categories?: string;
  brands?: string;
  noProduct?: string;
  operationType?: string;
  query?: string;
  timeZone?: number;
  clientId?: number;
  fileHistoryId?: number;
  notCurrentCurrency?: string;
  limit?: number;
  page?: number;
  count?: string;
  sortBy?: string;
  ascending?: string;
}

const params: QueryParams = {
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  field: 'PRODUCT',
  fieldId: '123',
  commission: '1',
  clientOrganizationId: 'АО "Торговый дом"',
  sourceReport: 'DEFAULT',
  organizations: 'АО "Торговый дом"',
  services: '',
  categories: '',
  brands: '',
  noProduct: 'true',
  operationType: 'standard',
  query: 'Пример query',
  timeZone: '1',
  clientId: '123',
  fileHistoryId: 'https://example.com/document.pdf',
  notCurrentCurrency: 'Пример notCurrentCurrency',
  limit: '100',
  page: '1',
  count: 'Россия',
  sortBy: 'ID',
  ascending: 'true',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/findProfitReport',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'field': 'PRODUCT',
    'fieldId': '123',
    'commission': '1',
    'clientOrganizationId': 'АО "Торговый дом"',
    'sourceReport': 'DEFAULT',
    'organizations': 'АО "Торговый дом"',
    'services': '',
    'categories': '',
    'brands': '',
    'noProduct': 'true',
    'operationType': 'standard',
    'query': 'Пример query',
    'timeZone': '1',
    'clientId': '123',
    'fileHistoryId': 'https://example.com/document.pdf',
    'notCurrentCurrency': 'Пример notCurrentCurrency',
    'limit': '100',
    'page': '1',
    'count': 'Россия',
    'sortBy': 'ID',
    'ascending': 'true',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/findProfitReport',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/findProfitReport?dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&field=PRODUCT&fieldId=123&commission=1&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&sourceReport=DEFAULT&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&services=&categories=&brands=&noProduct=true&operationType=standard&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&timeZone=1&clientId=123&fileHistoryId=https%3A%2F%2Fexample.com%2Fdocument.pdf&notCurrentCurrency=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20notCurrentCurrency&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=ID&ascending=true", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/findProfitReport?dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&field=PRODUCT&fieldId=123&commission=1&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&sourceReport=DEFAULT&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&services=&categories=&brands=&noProduct=true&operationType=standard&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&timeZone=1&clientId=123&fileHistoryId=https%3A%2F%2Fexample.com%2Fdocument.pdf&notCurrentCurrency=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20notCurrentCurrency&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=ID&ascending=true"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'field' => 'PRODUCT',
    'fieldId' => '123',
    'commission' => '1',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'sourceReport' => 'DEFAULT',
    'organizations' => 'АО "Торговый дом"',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'noProduct' => 'true',
    'operationType' => 'standard',
    'query' => 'Пример query',
    'timeZone' => '1',
    'clientId' => '123',
    'fileHistoryId' => 'https://example.com/document.pdf',
    'notCurrentCurrency' => 'Пример notCurrentCurrency',
    'limit' => '100',
    'page' => '1',
    'count' => 'Россия',
    'sortBy' => 'ID',
    'ascending' => 'true',
];

$url = 'https://api.selsup.ru/api/stat/findProfitReport?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/findProfitReport?dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&field=PRODUCT&fieldId=123&commission=1&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&sourceReport=DEFAULT&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&services=&categories=&brands=&noProduct=true&operationType=standard&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&timeZone=1&clientId=123&fileHistoryId=https%3A%2F%2Fexample.com%2Fdocument.pdf&notCurrentCurrency=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20notCurrentCurrency&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=ID&ascending=true' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Скачивание шаблона Excel плана продаж

Создает задачу на скачивание шаблона Excel файла с понедельным планом продаж
GET /api/stat/exportPlanSalesExcelFile

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticFields Array of string Нет Параметр productAnalyticFields
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticFields: '',
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/exportPlanSalesExcelFile',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticFields?: string;
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticFields: '',
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/exportPlanSalesExcelFile',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticFields': '',
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/exportPlanSalesExcelFile',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/exportPlanSalesExcelFile?productAnalyticFields=&productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/exportPlanSalesExcelFile?productAnalyticFields=&productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticFields' => '',
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/exportPlanSalesExcelFile?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/exportPlanSalesExcelFile?productAnalyticFields=&productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Файл остатков на складах МП

Метод ставит в очередь задачу по скачивании файла с остатками по каждому складу маркеплейса
GET /api/stat/downloadStockReportFile

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/downloadStockReportFile',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/downloadStockReportFile',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/downloadStockReportFile',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/downloadStockReportFile?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/downloadStockReportFile?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/downloadStockReportFile?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/downloadStockReportFile?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Excel отчет по поставщикам

Метод ставит в очередь задачу на скачивание Excel файла с данными по продажам и остаткам товара по каждому поставщику.
GET /api/stat/downloadContractorsReportFile

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/downloadContractorsReportFile',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/downloadContractorsReportFile',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/downloadContractorsReportFile',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/downloadContractorsReportFile?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/downloadContractorsReportFile?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/downloadContractorsReportFile?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/downloadContractorsReportFile?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Удалить данные о загрузке

Метод удаляет данные о загрузке вместе со всеми загруженными данными по этому файлу
GET /api/stat/deleteProfitReportsByFileHistoryId

Параметры запроса QUERY

Название Тип Обязательный Описание
ids Array of integer Да Параметр ids

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  ids: '',
};

const response = await axios.get('https://api.selsup.ru/api/stat/deleteProfitReportsByFileHistoryId',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  ids?: string;
}

const params: QueryParams = {
  ids: '',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/deleteProfitReportsByFileHistoryId',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'ids': '',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/deleteProfitReportsByFileHistoryId',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/deleteProfitReportsByFileHistoryId?ids=", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/deleteProfitReportsByFileHistoryId?ids="))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'ids' => '',
];

$url = 'https://api.selsup.ru/api/stat/deleteProfitReportsByFileHistoryId?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/deleteProfitReportsByFileHistoryId?ids=' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Запуск закачки данных по хранению

Метод ставит в очередь задачу по закачки данных оплат за хранение на Wildberries
GET /api/stat/addWildberriesStorageReportTask

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/addWildberriesStorageReportTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/addWildberriesStorageReportTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/addWildberriesStorageReportTask',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/addWildberriesStorageReportTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/addWildberriesStorageReportTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/addWildberriesStorageReportTask?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/addWildberriesStorageReportTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Запуск установки процента выкупа из аналитики

Метод ставит в очередь задачу по вычислению и установки процента выкупа товаров из аналитики
GET /api/stat/addSetPurchasePercentTask

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const response = await axios.get('https://api.selsup.ru/api/stat/addSetPurchasePercentTask',
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

const response = await axios.get<any>('https://api.selsup.ru/api/stat/addSetPurchasePercentTask',
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

response = requests.get(
    'https://api.selsup.ru/api/stat/addSetPurchasePercentTask',
    headers=headers
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/addSetPurchasePercentTask", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/addSetPurchasePercentTask"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.selsup.ru/api/stat/addSetPurchasePercentTask',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/addSetPurchasePercentTask' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Матчинг аналитики к карточке

Метод ставит в очередь задачу по привязке продукта к профит репорту, где отсутствует связь. OZON и WB
GET /api/stat/addMatchUnregisteredProfitReportTask

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const response = await axios.get('https://api.selsup.ru/api/stat/addMatchUnregisteredProfitReportTask',
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

const response = await axios.get<any>('https://api.selsup.ru/api/stat/addMatchUnregisteredProfitReportTask',
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

response = requests.get(
    'https://api.selsup.ru/api/stat/addMatchUnregisteredProfitReportTask',
    headers=headers
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/addMatchUnregisteredProfitReportTask", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/addMatchUnregisteredProfitReportTask"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.selsup.ru/api/stat/addMatchUnregisteredProfitReportTask',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/addMatchUnregisteredProfitReportTask' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Матчинг дат операций в продукт

Метод ставит в очередь задачу по обновлению последних дат операций по маркетплейсам, метод принимает список МП
GET /api/stat/addMatchProductLastOperationDate

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/addMatchProductLastOperationDate',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/addMatchProductLastOperationDate',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/addMatchProductLastOperationDate',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/addMatchProductLastOperationDate?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/addMatchProductLastOperationDate?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/addMatchProductLastOperationDate?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/addMatchProductLastOperationDate?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Excel план поставок и закупка товаров

Создает задачу на скачивание Excel файла по плату поставок и закупок товаровОбязательно нужно передать в запросе dateTo, dateFrom, planDayCount Не обязательные поля clientOrganizationId, services
GET /api/stat/addDownloadReportSupplyPlanTask

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/addDownloadReportSupplyPlanTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/addDownloadReportSupplyPlanTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/addDownloadReportSupplyPlanTask',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/addDownloadReportSupplyPlanTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/addDownloadReportSupplyPlanTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/addDownloadReportSupplyPlanTask?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/addDownloadReportSupplyPlanTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Excel проблемные товары

Создает задачу на скачивание Excel файла с данными по проблемным товарам.Остаток есть, но продаж за период не было.Обязательно нужно передать в запросе dateTo, dateFrom.Не обязательные поля clientOrganizationId.
GET /api/stat/addDownloadReportProblematicProductsTask

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/addDownloadReportProblematicProductsTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/addDownloadReportProblematicProductsTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/addDownloadReportProblematicProductsTask',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/addDownloadReportProblematicProductsTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/addDownloadReportProblematicProductsTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/addDownloadReportProblematicProductsTask?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/addDownloadReportProblematicProductsTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Excel товарной аналитики

Создает задачу на скачивание Excel файла с данными по товарной аналитике.Обязательно нужно передать в запросе dateTo, dateFrom.Не обязательные поля clientOrganizationId, serviceIds.Поле - period и productAnalyticField не используются.Добавлена возможность отсортировать список по полю sortBy и по порядку ascending.
GET /api/stat/addDownloadProductAnalyticsFileTask

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/addDownloadProductAnalyticsFileTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/addDownloadProductAnalyticsFileTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/addDownloadProductAnalyticsFileTask',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/addDownloadProductAnalyticsFileTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/addDownloadProductAnalyticsFileTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/addDownloadProductAnalyticsFileTask?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/addDownloadProductAnalyticsFileTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Excel выгрузка цен по проблемным товарам

Создает задачу на скачивание Excel файла по выгрузке проблемных товаров в Excel файлНе обязательные поля clientOrganizationId, services, query для поиска
GET /api/stat/addDownloadProblematicProductPriceFileTask

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/addDownloadProblematicProductPriceFileTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/addDownloadProblematicProductPriceFileTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/addDownloadProblematicProductPriceFileTask',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/addDownloadProblematicProductPriceFileTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/addDownloadProblematicProductPriceFileTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/addDownloadProblematicProductPriceFileTask?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/addDownloadProblematicProductPriceFileTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Excel план/факт продаж

Создает задачу на скачивание Excel файла с отчетом план/факт продажОбязательно нужно передать в запросе dateTo, dateFrom.Не обязательные поля clientOrganizationId.
GET /api/stat/addDownloadPlanFactSalesReportFileTask

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticFields Array of string Нет Параметр productAnalyticFields
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticFields: '',
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/addDownloadPlanFactSalesReportFileTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticFields?: string;
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticFields: '',
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/addDownloadPlanFactSalesReportFileTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticFields': '',
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/addDownloadPlanFactSalesReportFileTask',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/addDownloadPlanFactSalesReportFileTask?productAnalyticFields=&productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/addDownloadPlanFactSalesReportFileTask?productAnalyticFields=&productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticFields' => '',
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/addDownloadPlanFactSalesReportFileTask?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/addDownloadPlanFactSalesReportFileTask?productAnalyticFields=&productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Экспорт позаказного Excel файла

Создает задачу на скачивание Excel файла с данными по заказам
GET /api/stat/addDownloadOrderReportFile

Параметры запроса QUERY

Название Тип Обязательный Описание
actual boolean Нет Отображать только актуальные заказы - не закрытые?
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
serviceWarehouseId integer Нет Внешний номер склада
externalOrderId integer Нет Внешний номер заказа
invoiceNumber integer Нет ID Номера счета
article string Нет Фильтр по артикулу модели товара в заказе
product string Нет Фильтр по названию товара в заказе
organizations integer Нет Фильтр по ID организации. Можно передавать несколько значений organizations=123&organizations=345
query string Нет Поисковый запрос для фильтрации заказов по номеру или названию
userId integer Нет ID пользователя который брал на сборку заказ
service "NONE""WILDBERRIES""OZON""YANDEX_MARKET""FAMILIYA""NATIONAL_CATALOG""ALIEXPRESS""OTHER""MOY_SKLAD""SBER_MEGA_MARKET""CISLINK""ONE_C""AVITO""LEROY_MERLIN""DETMIR""KAZAN_EXPRESS""EVOTOR""WEBASYST""AMAZON""EBAY""SIMALAND""INSALES""LAMODA""OZON_PERFORMANCE""WALMART""GOOGLE""YANDEX_DISC""EMAIL""WOOCOMMERCE" Нет Фильтр заказа по маркетплейсу
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
statuses Array of string Нет Фильтр по статусам заказа. Можно передавать несколько значений statuses=CREATED&statuses=PACKING
withoutSupply boolean Нет Фильтр по заказам не прикрепленным к поставке?
orderProductId integer Нет Фильтр по ID позиции в заказе
productId integer Нет Фильтр по ID товара из заказа
hasCollectTask boolean Нет Фильтр по наличию у заказа сборочного задания?
organizationId integer Нет Фильтр по ID организации заказа
updateInService boolean Нет Заказы, которые стоят в очереди на изменение статуса на маркетплейсе?
hasServiceError boolean Нет Заказы с ошибкой обновления статуса на маркетплейсе?
noLabel boolean Нет Фильтрует заказы без этикетки?
noMsOrder boolean Нет Фильтрует по заказам не созданным в Моем складе?
noMsDemand boolean Нет Фильтрует по заказам с несозданными отгрузками в Моем складе?
ids integer Нет ID заказов. Можно передавать несколько значений ids=123&ids=345
supplyId integer Нет ID поставки, в которой отгружается заказ
notCollected boolean Нет Заказы, которые не собирались через SelSup?
dbs boolean Нет DBS заказы?
express boolean Нет Express заказы?
fbs boolean Нет FBS заказы?
noWarehouse boolean Нет Заказы без склада?
closeDate Date Нет Фильтр по дате сборки заказа - конкретный день
modifiedDate Date Нет Фильтр по дате изменения заказа - статуса или любой информации о заказе начиная с этой даты
modifiedDateTo Date Нет Фильтр по дате изменения заказа - статуса или любой информации о заказе до этой даты
incomeId integer Нет ID закупки из которого создан заказ
bindingOrderId integer Нет ID заказа, которому делаем возврат
closeDateFrom Date Нет Фильтр по дате сборки заказа от - ISO
closeDateTo Date Нет Фильтр по дате сборки заказа до - ISO
orderDate Date Нет Фильтр по дате заказа
deliveryDate Date Нет Фильтр по дате доставки заказа
deliveryDateFrom Date Нет Фильтр по дате доставки заказа от
deliveryDateTo Date Нет Фильтр по дате доставки заказа до
forMoySklad boolean Нет Для создания в МойСклад?
warehouseId integer Нет Фильтр по ID склада, с которого отгружается заказ
warehouseIds integer Нет Фильтр по ID складам, с которого отгружается заказ. Можно передавать несколько значений warehouseIds=123&warehouseIds=345
dateFrom Date Нет Фильтр по дате заказа - от
dateTo Date Нет Фильтр по дате заказа - до
timeZone integer Нет ID часового пояса клиента по UTC в часах, например 3
markingStatus "UNKNOWN""CARDS_SEND""CARDS_CREATED""SUZ_ORDERS_CREATED""MARKS_RECEIVED""CARDS_SIGNED""DOCUMENT_CREATED""SUCCESS""NO_NEED_MARKING" Нет Фильтр по статусу в честном знаке
deleted boolean Нет Показать удаленные заказы?
collectLabel boolean Нет Только для печати в PDF. Признак необходимости распечатать сборочную этикетку для "умной ленты"?
sortOrdersByDate Date Нет Только для печати в PDF. Признак необходимости распечатать сборочную этикетку для "умной ленты"?
sortBySku boolean Нет Только для печати в PDF. Признак необходимости использовать в сортировке данные о товарах объединенных по SKU?
notGroupByOrganization boolean Нет Только для печати в PDF. Признак того, что все организации сортируются одним списком?
notGroupByService boolean Нет Только для печати в PDF. Признак того, что все маркетплейсы сортируются одним списком?
productLabel boolean Нет Только для печати в PDF. Признак необходимости распечатать этикетку товара в ленте?
servicesForLabel Array of string Нет Сервисы для которых нужна печать в PDF
infoLabel boolean Нет Только для печати в PDF. Признак необходимости распечатать информационную этикетку для ленты заказов?
grouped boolean Нет Отдает сгруппированные позиции из заказов. Только для выгрузки в Excel?
replaceSetByComponent boolean Нет Заменяет в заказах комплекты на компоненты?
replaceSetsByComponentsIncome boolean Нет Заменяет в заказах комплекты на компоненты в файле закупки?
collectDeliveryLabel boolean Нет Только для печати в PDF. Признак необходимости распечатать накладную службы доставки для "умной ленты"?
shippingServicesForLabel Array of string Нет Сервисы доставки для которых нужна печать накладной в PDF
orderId integer Нет ID заказа
hasVideoFixation boolean Нет Идентификатор была ли видео фиксация?
withProducts boolean Нет Признак, что заказы необходимо отдать c товарами?
passageIds integer Нет Фильтр по ID проходов. Можно передавать несколько значений passageIds=123&passageIds=345
withContractor boolean Нет Включить информацию о поставщиках в выгрузку?
limit integer Нет Ограничение на количество записей. Максимальное значение - 500
page integer Нет Номер страницы начиная с 1
count boolean Нет Возвратить в ответе общее количество записей
sortBy "ID""CREATEDDATE""ORDERCREATED""CREATED""CREATEDUSER""STATUS""SERVICE""TYPE""BOXTYPE""NAME""ORGANIZATIONID""WAREHOUSE""INVOICENUMBER""EXTERNALORDERID""QUEUE""SUPPLYID""CLOSEDATE""STARTCOLLECTDATE""CLOSEUSERID""USERID""PRICE""PRODUCT""COLLECTORDERTASKID""DELIVERYDATE""MARKINGSTATUS""QUANTITY""DATE""SERVICEWAREHOUSEID" Нет Поле для сортировки
ascending boolean Нет Порядок сортировки - по возрастанию?. Работает только при получении списка.

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  actual: 'true',
  type: 'standard',
  serviceWarehouseId: 'Пример serviceWarehouseId',
  externalOrderId: 'Пример externalOrderId',
  invoiceNumber: '1',
  article: 'ART-001',
  product: 'Товар №1',
  organizations: 'АО "Торговый дом"',
  query: 'Пример query',
  userId: '123',
  service: 'NONE',
  status: 'active',
  statuses: 'active',
  withoutSupply: 'true',
  orderProductId: '123',
  productId: '123',
  hasCollectTask: 'true',
  organizationId: 'АО "Торговый дом"',
  updateInService: 'true',
  hasServiceError: 'true',
  noLabel: 'true',
  noMsOrder: 'true',
  noMsDemand: 'true',
  ids: '',
  supplyId: '123',
  notCollected: 'true',
  dbs: 'true',
  express: 'true',
  fbs: 'true',
  noWarehouse: 'true',
  closeDate: 'Пример closeDate',
  modifiedDate: '2024-01-15T10:30:00Z',
  modifiedDateTo: '2024-01-15T10:30:00Z',
  incomeId: '123',
  bindingOrderId: '123',
  closeDateFrom: '2024-01-15T10:30:00Z',
  closeDateTo: '2024-01-15T10:30:00Z',
  orderDate: 'Пример orderDate',
  deliveryDate: 'Пример deliveryDate',
  deliveryDateFrom: 'Пример deliveryDateFrom',
  deliveryDateTo: 'Пример deliveryDateTo',
  forMoySklad: 'true',
  warehouseId: '123',
  warehouseIds: '',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  timeZone: '1',
  markingStatus: 'active',
  deleted: 'false',
  collectLabel: 'true',
  sortOrdersByDate: 'true',
  sortBySku: 'SKU-12345',
  notGroupByOrganization: 'АО "Торговый дом"',
  notGroupByService: 'true',
  productLabel: 'true',
  servicesForLabel: '',
  infoLabel: 'true',
  grouped: 'true',
  replaceSetByComponent: 'true',
  replaceSetsByComponentsIncome: 'true',
  collectDeliveryLabel: 'true',
  shippingServicesForLabel: '',
  orderId: '123',
  hasVideoFixation: 'true',
  withProducts: 'true',
  passageIds: '',
  withContractor: 'true',
  limit: '100',
  page: '1',
  count: 'Россия',
  sortBy: 'ID',
  ascending: 'true',
};

const response = await axios.get('https://api.selsup.ru/api/stat/addDownloadOrderReportFile',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  actual?: string;
  type?: string;
  serviceWarehouseId?: string;
  externalOrderId?: string;
  invoiceNumber?: number;
  article?: string;
  product?: string;
  organizations?: string;
  query?: string;
  userId?: number;
  service?: string;
  status?: string;
  statuses?: string;
  withoutSupply?: string;
  orderProductId?: number;
  productId?: number;
  hasCollectTask?: string;
  organizationId?: number;
  updateInService?: string;
  hasServiceError?: string;
  noLabel?: string;
  noMsOrder?: string;
  noMsDemand?: string;
  ids?: string;
  supplyId?: number;
  notCollected?: string;
  dbs?: string;
  express?: string;
  fbs?: string;
  noWarehouse?: string;
  closeDate?: string;
  modifiedDate?: string;
  modifiedDateTo?: string;
  incomeId?: number;
  bindingOrderId?: number;
  closeDateFrom?: string;
  closeDateTo?: string;
  orderDate?: string;
  deliveryDate?: string;
  deliveryDateFrom?: string;
  deliveryDateTo?: string;
  forMoySklad?: string;
  warehouseId?: number;
  warehouseIds?: string;
  dateFrom?: string;
  dateTo?: string;
  timeZone?: number;
  markingStatus?: string;
  deleted?: string;
  collectLabel?: string;
  sortOrdersByDate?: string;
  sortBySku?: string;
  notGroupByOrganization?: string;
  notGroupByService?: string;
  productLabel?: string;
  servicesForLabel?: string;
  infoLabel?: string;
  grouped?: string;
  replaceSetByComponent?: string;
  replaceSetsByComponentsIncome?: string;
  collectDeliveryLabel?: string;
  shippingServicesForLabel?: string;
  orderId?: number;
  hasVideoFixation?: string;
  withProducts?: string;
  passageIds?: string;
  withContractor?: string;
  limit?: number;
  page?: number;
  count?: string;
  sortBy?: string;
  ascending?: string;
}

const params: QueryParams = {
  actual: 'true',
  type: 'standard',
  serviceWarehouseId: 'Пример serviceWarehouseId',
  externalOrderId: 'Пример externalOrderId',
  invoiceNumber: '1',
  article: 'ART-001',
  product: 'Товар №1',
  organizations: 'АО "Торговый дом"',
  query: 'Пример query',
  userId: '123',
  service: 'NONE',
  status: 'active',
  statuses: 'active',
  withoutSupply: 'true',
  orderProductId: '123',
  productId: '123',
  hasCollectTask: 'true',
  organizationId: 'АО "Торговый дом"',
  updateInService: 'true',
  hasServiceError: 'true',
  noLabel: 'true',
  noMsOrder: 'true',
  noMsDemand: 'true',
  ids: '',
  supplyId: '123',
  notCollected: 'true',
  dbs: 'true',
  express: 'true',
  fbs: 'true',
  noWarehouse: 'true',
  closeDate: 'Пример closeDate',
  modifiedDate: '2024-01-15T10:30:00Z',
  modifiedDateTo: '2024-01-15T10:30:00Z',
  incomeId: '123',
  bindingOrderId: '123',
  closeDateFrom: '2024-01-15T10:30:00Z',
  closeDateTo: '2024-01-15T10:30:00Z',
  orderDate: 'Пример orderDate',
  deliveryDate: 'Пример deliveryDate',
  deliveryDateFrom: 'Пример deliveryDateFrom',
  deliveryDateTo: 'Пример deliveryDateTo',
  forMoySklad: 'true',
  warehouseId: '123',
  warehouseIds: '',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  timeZone: '1',
  markingStatus: 'active',
  deleted: 'false',
  collectLabel: 'true',
  sortOrdersByDate: 'true',
  sortBySku: 'SKU-12345',
  notGroupByOrganization: 'АО "Торговый дом"',
  notGroupByService: 'true',
  productLabel: 'true',
  servicesForLabel: '',
  infoLabel: 'true',
  grouped: 'true',
  replaceSetByComponent: 'true',
  replaceSetsByComponentsIncome: 'true',
  collectDeliveryLabel: 'true',
  shippingServicesForLabel: '',
  orderId: '123',
  hasVideoFixation: 'true',
  withProducts: 'true',
  passageIds: '',
  withContractor: 'true',
  limit: '100',
  page: '1',
  count: 'Россия',
  sortBy: 'ID',
  ascending: 'true',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/addDownloadOrderReportFile',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'actual': 'true',
    'type': 'standard',
    'serviceWarehouseId': 'Пример serviceWarehouseId',
    'externalOrderId': 'Пример externalOrderId',
    'invoiceNumber': '1',
    'article': 'ART-001',
    'product': 'Товар №1',
    'organizations': 'АО "Торговый дом"',
    'query': 'Пример query',
    'userId': '123',
    'service': 'NONE',
    'status': 'active',
    'statuses': 'active',
    'withoutSupply': 'true',
    'orderProductId': '123',
    'productId': '123',
    'hasCollectTask': 'true',
    'organizationId': 'АО "Торговый дом"',
    'updateInService': 'true',
    'hasServiceError': 'true',
    'noLabel': 'true',
    'noMsOrder': 'true',
    'noMsDemand': 'true',
    'ids': '',
    'supplyId': '123',
    'notCollected': 'true',
    'dbs': 'true',
    'express': 'true',
    'fbs': 'true',
    'noWarehouse': 'true',
    'closeDate': 'Пример closeDate',
    'modifiedDate': '2024-01-15T10:30:00Z',
    'modifiedDateTo': '2024-01-15T10:30:00Z',
    'incomeId': '123',
    'bindingOrderId': '123',
    'closeDateFrom': '2024-01-15T10:30:00Z',
    'closeDateTo': '2024-01-15T10:30:00Z',
    'orderDate': 'Пример orderDate',
    'deliveryDate': 'Пример deliveryDate',
    'deliveryDateFrom': 'Пример deliveryDateFrom',
    'deliveryDateTo': 'Пример deliveryDateTo',
    'forMoySklad': 'true',
    'warehouseId': '123',
    'warehouseIds': '',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'timeZone': '1',
    'markingStatus': 'active',
    'deleted': 'false',
    'collectLabel': 'true',
    'sortOrdersByDate': 'true',
    'sortBySku': 'SKU-12345',
    'notGroupByOrganization': 'АО "Торговый дом"',
    'notGroupByService': 'true',
    'productLabel': 'true',
    'servicesForLabel': '',
    'infoLabel': 'true',
    'grouped': 'true',
    'replaceSetByComponent': 'true',
    'replaceSetsByComponentsIncome': 'true',
    'collectDeliveryLabel': 'true',
    'shippingServicesForLabel': '',
    'orderId': '123',
    'hasVideoFixation': 'true',
    'withProducts': 'true',
    'passageIds': '',
    'withContractor': 'true',
    'limit': '100',
    'page': '1',
    'count': 'Россия',
    'sortBy': 'ID',
    'ascending': 'true',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/addDownloadOrderReportFile',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/addDownloadOrderReportFile?actual=true&type=standard&serviceWarehouseId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20serviceWarehouseId&externalOrderId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20externalOrderId&invoiceNumber=1&article=ART-001&product=%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%20%E2%84%961&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&userId=123&service=NONE&status=active&statuses=active&withoutSupply=true&orderProductId=123&productId=123&hasCollectTask=true&organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&updateInService=true&hasServiceError=true&noLabel=true&noMsOrder=true&noMsDemand=true&ids=&supplyId=123&notCollected=true&dbs=true&express=true&fbs=true&noWarehouse=true&closeDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20closeDate&modifiedDate=2024-01-15T10%3A30%3A00Z&modifiedDateTo=2024-01-15T10%3A30%3A00Z&incomeId=123&bindingOrderId=123&closeDateFrom=2024-01-15T10%3A30%3A00Z&closeDateTo=2024-01-15T10%3A30%3A00Z&orderDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20orderDate&deliveryDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20deliveryDate&deliveryDateFrom=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20deliveryDateFrom&deliveryDateTo=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20deliveryDateTo&forMoySklad=true&warehouseId=123&warehouseIds=&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&timeZone=1&markingStatus=active&deleted=false&collectLabel=true&sortOrdersByDate=true&sortBySku=SKU-12345&notGroupByOrganization=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&notGroupByService=true&productLabel=true&servicesForLabel=&infoLabel=true&grouped=true&replaceSetByComponent=true&replaceSetsByComponentsIncome=true&collectDeliveryLabel=true&shippingServicesForLabel=&orderId=123&hasVideoFixation=true&withProducts=true&passageIds=&withContractor=true&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=ID&ascending=true", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/addDownloadOrderReportFile?actual=true&type=standard&serviceWarehouseId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20serviceWarehouseId&externalOrderId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20externalOrderId&invoiceNumber=1&article=ART-001&product=%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%20%E2%84%961&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&userId=123&service=NONE&status=active&statuses=active&withoutSupply=true&orderProductId=123&productId=123&hasCollectTask=true&organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&updateInService=true&hasServiceError=true&noLabel=true&noMsOrder=true&noMsDemand=true&ids=&supplyId=123&notCollected=true&dbs=true&express=true&fbs=true&noWarehouse=true&closeDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20closeDate&modifiedDate=2024-01-15T10%3A30%3A00Z&modifiedDateTo=2024-01-15T10%3A30%3A00Z&incomeId=123&bindingOrderId=123&closeDateFrom=2024-01-15T10%3A30%3A00Z&closeDateTo=2024-01-15T10%3A30%3A00Z&orderDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20orderDate&deliveryDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20deliveryDate&deliveryDateFrom=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20deliveryDateFrom&deliveryDateTo=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20deliveryDateTo&forMoySklad=true&warehouseId=123&warehouseIds=&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&timeZone=1&markingStatus=active&deleted=false&collectLabel=true&sortOrdersByDate=true&sortBySku=SKU-12345&notGroupByOrganization=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&notGroupByService=true&productLabel=true&servicesForLabel=&infoLabel=true&grouped=true&replaceSetByComponent=true&replaceSetsByComponentsIncome=true&collectDeliveryLabel=true&shippingServicesForLabel=&orderId=123&hasVideoFixation=true&withProducts=true&passageIds=&withContractor=true&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=ID&ascending=true"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'actual' => 'true',
    'type' => 'standard',
    'serviceWarehouseId' => 'Пример serviceWarehouseId',
    'externalOrderId' => 'Пример externalOrderId',
    'invoiceNumber' => '1',
    'article' => 'ART-001',
    'product' => 'Товар №1',
    'organizations' => 'АО "Торговый дом"',
    'query' => 'Пример query',
    'userId' => '123',
    'service' => 'NONE',
    'status' => 'active',
    'statuses' => 'active',
    'withoutSupply' => 'true',
    'orderProductId' => '123',
    'productId' => '123',
    'hasCollectTask' => 'true',
    'organizationId' => 'АО "Торговый дом"',
    'updateInService' => 'true',
    'hasServiceError' => 'true',
    'noLabel' => 'true',
    'noMsOrder' => 'true',
    'noMsDemand' => 'true',
    'ids' => '',
    'supplyId' => '123',
    'notCollected' => 'true',
    'dbs' => 'true',
    'express' => 'true',
    'fbs' => 'true',
    'noWarehouse' => 'true',
    'closeDate' => 'Пример closeDate',
    'modifiedDate' => '2024-01-15T10:30:00Z',
    'modifiedDateTo' => '2024-01-15T10:30:00Z',
    'incomeId' => '123',
    'bindingOrderId' => '123',
    'closeDateFrom' => '2024-01-15T10:30:00Z',
    'closeDateTo' => '2024-01-15T10:30:00Z',
    'orderDate' => 'Пример orderDate',
    'deliveryDate' => 'Пример deliveryDate',
    'deliveryDateFrom' => 'Пример deliveryDateFrom',
    'deliveryDateTo' => 'Пример deliveryDateTo',
    'forMoySklad' => 'true',
    'warehouseId' => '123',
    'warehouseIds' => '',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'timeZone' => '1',
    'markingStatus' => 'active',
    'deleted' => 'false',
    'collectLabel' => 'true',
    'sortOrdersByDate' => 'true',
    'sortBySku' => 'SKU-12345',
    'notGroupByOrganization' => 'АО "Торговый дом"',
    'notGroupByService' => 'true',
    'productLabel' => 'true',
    'servicesForLabel' => '',
    'infoLabel' => 'true',
    'grouped' => 'true',
    'replaceSetByComponent' => 'true',
    'replaceSetsByComponentsIncome' => 'true',
    'collectDeliveryLabel' => 'true',
    'shippingServicesForLabel' => '',
    'orderId' => '123',
    'hasVideoFixation' => 'true',
    'withProducts' => 'true',
    'passageIds' => '',
    'withContractor' => 'true',
    'limit' => '100',
    'page' => '1',
    'count' => 'Россия',
    'sortBy' => 'ID',
    'ascending' => 'true',
];

$url = 'https://api.selsup.ru/api/stat/addDownloadOrderReportFile?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/addDownloadOrderReportFile?actual=true&type=standard&serviceWarehouseId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20serviceWarehouseId&externalOrderId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20externalOrderId&invoiceNumber=1&article=ART-001&product=%D0%A2%D0%BE%D0%B2%D0%B0%D1%80%20%E2%84%961&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&userId=123&service=NONE&status=active&statuses=active&withoutSupply=true&orderProductId=123&productId=123&hasCollectTask=true&organizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&updateInService=true&hasServiceError=true&noLabel=true&noMsOrder=true&noMsDemand=true&ids=&supplyId=123&notCollected=true&dbs=true&express=true&fbs=true&noWarehouse=true&closeDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20closeDate&modifiedDate=2024-01-15T10%3A30%3A00Z&modifiedDateTo=2024-01-15T10%3A30%3A00Z&incomeId=123&bindingOrderId=123&closeDateFrom=2024-01-15T10%3A30%3A00Z&closeDateTo=2024-01-15T10%3A30%3A00Z&orderDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20orderDate&deliveryDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20deliveryDate&deliveryDateFrom=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20deliveryDateFrom&deliveryDateTo=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20deliveryDateTo&forMoySklad=true&warehouseId=123&warehouseIds=&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&timeZone=1&markingStatus=active&deleted=value&collectLabel=true&sortOrdersByDate=true&sortBySku=SKU-12345&notGroupByOrganization=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&notGroupByService=true&productLabel=true&servicesForLabel=&infoLabel=true&grouped=true&replaceSetByComponent=true&replaceSetsByComponentsIncome=true&collectDeliveryLabel=true&shippingServicesForLabel=&orderId=123&hasVideoFixation=true&withProducts=true&passageIds=&withContractor=true&limit=100&page=1&count=%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D1%8F&sortBy=ID&ascending=true' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Excel отчет динамики продаж

Создает задачу на скачивание Excel файла с данными по динамике продаж.Обязательно нужно передать в запросе dateTo, dateFrom, periodНе обязательные поля clientOrganizationId, serviceIds
GET /api/stat/addDownloadFileSalesDynamicReportByPeriodTask

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/addDownloadFileSalesDynamicReportByPeriodTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/addDownloadFileSalesDynamicReportByPeriodTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/addDownloadFileSalesDynamicReportByPeriodTask',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/addDownloadFileSalesDynamicReportByPeriodTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/addDownloadFileSalesDynamicReportByPeriodTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/addDownloadFileSalesDynamicReportByPeriodTask?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/addDownloadFileSalesDynamicReportByPeriodTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Excel динамика остатков

Создает задачу на скачивание Excel файла с данными по динамике остаткам за период.Обязательно нужно передать в запросе dateTo, dateFrom, periodНе обязательные поля clientOrganizationId, serviceIds
GET /api/stat/addDownloadFileProductBalanceDynamicsTask

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/addDownloadFileProductBalanceDynamicsTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/addDownloadFileProductBalanceDynamicsTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/addDownloadFileProductBalanceDynamicsTask',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/addDownloadFileProductBalanceDynamicsTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/addDownloadFileProductBalanceDynamicsTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/addDownloadFileProductBalanceDynamicsTask?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/addDownloadFileProductBalanceDynamicsTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Excel финансового отчета

Создает задачу на скачивание Excel файла с данными по финансовой аналитике.Обязательно нужно передать в запросе dateTo, dateFrom, periodНе обязательные поля clientOrganizationId, serviceIds
GET /api/stat/addDownloadFileFinancesReportByPeriodTask

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/addDownloadFileFinancesReportByPeriodTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/addDownloadFileFinancesReportByPeriodTask',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/addDownloadFileFinancesReportByPeriodTask',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/addDownloadFileFinancesReportByPeriodTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/addDownloadFileFinancesReportByPeriodTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/addDownloadFileFinancesReportByPeriodTask?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/addDownloadFileFinancesReportByPeriodTask?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Excel отчет по остаткам

Создает задачу на скачивание Excel файла с данными по остаткам на текущий момент.Обязательно нужно передать в запросе dateTo, dateFrom, для расчетов.Не обязательное поле clientOrganizationId
GET /api/stat/addDownloadFileCurrentProductBalance

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/addDownloadFileCurrentProductBalance',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/addDownloadFileCurrentProductBalance',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/addDownloadFileCurrentProductBalance',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/addDownloadFileCurrentProductBalance?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/addDownloadFileCurrentProductBalance?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/addDownloadFileCurrentProductBalance?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/addDownloadFileCurrentProductBalance?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Excel файл ABC анализа

Ставит в очередь задачу на создание Excel файла с ABC анализом по выручке и валовой прибыли.
GET /api/stat/addDownloadFileAbcReport

Параметры запроса QUERY

Название Тип Обязательный Описание
productAnalyticField "BARCODE""COLOR""ARTICLE""BRAND""CATEGORY" Нет Агрегировать данные по сущности
query string Нет Поисковый запрос для фильтрации аналитики
withDuplicate boolean Нет Отдавать аналитику по дубликатам товаров
limit integer Нет Количество записей в ответе
page integer Нет Страница для навигации по страницам, начиная с 1
sortBy string Нет Поле сортировки
ascending boolean Нет Сортировать по возрастанию по полю sortBy
id integer Нет Уникальный идентификатор
isMarketPlaceStructure boolean Нет Идентификатор, получать данные только по маркетплейсу или по всем.
isDashboard boolean Нет Идентификатор, запрос с дашборда или нет.
analyticsField "PRODUCT""MODEL""GROUP""ORGANIZATION""CLIENT""CATEGORY""PRODUCT_VIEW""BRAND""REGION""WAREHOUSE" Нет Агрегировать данные по model/product/view
planDayCount integer Нет Кол-во дней для отчетов
groupByView boolean Нет Сгруппировать по цвету
warehouses Array of integer Нет Список идентификаторов складов
regions Array of string Нет Список регионов
group boolean Нет Сгруппировать данные
calculationByOrders boolean Нет Делать расчет по заказанному количеству
sourceReport "DEFAULT""ORDER""SALES""PROFIT""OZON""YANDEX_MARKET""WB_REALIZATION_FILE""WB_DETAILED_REPORT_FILE""OZON_REALIZATION_FILE""OZON_REALIZATION_FILE_NEW""OZON_COMPENSATIONS_FILE""OZON_SERVICES_FILE""OZON_CASH_FLOW_STATEMENT""WB_CAMPAIGN""SBER_MEGA_MARKET_FILES""YANDEX_MARKET_FILE_DETAILS""WB_RETURNS_REPORT""OWN_DELIVERY""OZON_CAMPAIGN_SKU_REPORT""WB_PAID_STORAGE" Нет Операция по которой выводить данные
skipDayWithoutStocks boolean Нет Пропускать дни без остатков
isSaleStructure boolean Нет Идентификатор, что нужно получить структуру по продажам
isAveragePerOneUnit boolean Нет Идентификатор, получить среднее за 1 единицу
updateDate Date Нет Обновлять даты
useWeightedGroup boolean Нет Использовать группы по весу
isFindirRequest boolean Нет Является ли запрос - запросом для Задачника
brandIds integer Нет Фильтр по идентификаторам брендов (список)
categoryIds integer Нет Фильтр по идентификаторам категорий (список)
articles Array of string Нет Фильтр по артикулу (список)
colors Array of string Нет Фильтр по цвету (список)
sizes Array of string Нет Фильтр по размеру (список)
barcodes Array of string Нет Фильтр по штрих-коду (список)
penaltyFrom number Нет Фильтр по штрафам (от)
penaltyTo number Нет Фильтр по штрафам (до)
logisticsFrom number Нет Фильтр по логистике (от)
logisticsTo number Нет Фильтр по логистике (до)
marginFrom number Нет Фильтр по маржинальности (от)
marginTo number Нет Фильтр по маржинальности (до)
totalSalesAmountFrom number Нет Фильтр по сумме продаж (от)
totalSalesAmountTo number Нет Фильтр по сумме продаж (до)
grossProfitFrom number Нет Фильтр по валовой прибыли (от)
grossProfitTo number Нет Фильтр по валовой прибыли (до)
taxNds integer Нет Налог ндс
period "DAY""WEEK""MONTH""QUARTER""YEAR""MONTH_3""MONTH_6""END_OF_TARIFF""MONTH_7""MONTH_14""YEAR_2" Нет Период агрегации
dateFrom Date Нет Дата начала отчета
dateTo Date Нет Дата окончания отчета
services Array of string Нет Список маркетплейсов для которых отдать данные
categories Array of integer Нет Фильтр категорий для которых отдать данные
brands Array of integer Нет Фильтр брендов для которых отдать данные
clientOrganizationId integer Нет Идентификатор организации, для которой отдать данные
organizations Array of integer Нет Идентификаторы организаций клиента
ids Array of integer Нет Список идентификаторов
type "FBM""FBS""INCOME""RETAIL""WHOLESALE""FBO""MOVEMENT""WRITE_OFF""PRODUCTION" Нет Тип заказа
types Array of string Нет Типы заказа
status "CREATED""REVOKING""REVOKED""ORDER_CREATED""CARDS_CREATED""BOX_BARCODES""IMAGES_UPLOADED""INVOICE_UPLOADED""READY_TO_SUPPLY""SUPPLIED""FINISHED""COLLECTED""SEND""DELIVERY""REFUND""COLLECTING""PACKING""PAYMENT_REQUIRED""CANCELED""CONTROVERSIAL""OVERDUE""READY_FOR_PICKUP""WAITING_SUPPLY""PICK_UP_REFUND""REFUND_RECEIVED""DELETED""RESTORE""PRODUCTION_CONFIRMED" Нет Фильтр по статусу заказа
timeZone integer Нет Часовой пояс клиента по UTC
previousDateFrom Date Нет Дата начала периода для сравнения

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
id integer Идентификатор задачи
status string Текущий статус задачи
type string Тип задачи
name string Данные задачи в json - могут быть пустыми
clientId integer
entityId integer Сущность, к которой относится задача
progress integer Прогресс выполнения задачи в процентах
processedQuantity integer Количество обработанных записей задачи
organizationId integer Организация задачи, может быть 0, если не зависит от организации
priority integer Приоритет задачи - чем выше тем быстрее задача запустится
properties string Параметры задачи
message string Сообщение с результатом выполнения задачи
messageParams string Параметры сообщения с результатом выполнения задачи
createdDate string Дата добавления задачи в очередь
startDate string Дата запуска задачи
finishDate string Дата завершения задачи
url string Ссылка на скачивание файла с результатом задачи
inputFileUrl string Ссылка на загруженный файл
retryNumber integer Счётчик перезапуска задачи.
userId integer Пользователь запустивший задачу
retryDate string Запланированная дата перезапуска
debug boolean Запуск задачи в режиме отладки с большим логированием
forcedStart boolean Ручной запуск задачи
service string Сервис
lang string Язык на котором сейчас запущена таска
⚠ 400 Ошибка с данными запроса
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
localMessage Обязательный string Текст ошибки на языке пользователя
params object Дополнительные параметры ошибки
⚠ 403 Доступ запрещен
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
✗ 500 Внутренняя ошибка сервера
Content-Type: application/json
Поле Тип Описание
error Обязательный string Код ошибки
message string Описание ошибки
system string Системная ошибки парсинга данных запроса
Укажите ключ API в правом верхнем углу, чтобы попробовать использовать метод

Примеры кода

const axios = require('axios');

const params = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get('https://api.selsup.ru/api/stat/addDownloadFileAbcReport',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import axios from 'axios';

interface QueryParams {
  productAnalyticField?: string;
  query?: string;
  withDuplicate?: string;
  limit?: number;
  page?: number;
  sortBy?: string;
  ascending?: string;
  id?: number;
  isMarketPlaceStructure?: string;
  isDashboard?: string;
  analyticsField?: string;
  planDayCount?: number;
  groupByView?: string;
  warehouses?: string;
  regions?: string;
  group?: string;
  calculationByOrders?: string;
  sourceReport?: string;
  skipDayWithoutStocks?: string;
  isSaleStructure?: string;
  isAveragePerOneUnit?: string;
  updateDate?: string;
  useWeightedGroup?: string;
  isFindirRequest?: string;
  brandIds?: string;
  categoryIds?: string;
  articles?: string;
  colors?: string;
  sizes?: string;
  barcodes?: string;
  penaltyFrom?: number;
  penaltyTo?: number;
  logisticsFrom?: number;
  logisticsTo?: number;
  marginFrom?: number;
  marginTo?: number;
  totalSalesAmountFrom?: number;
  totalSalesAmountTo?: number;
  grossProfitFrom?: number;
  grossProfitTo?: number;
  taxNds?: number;
  period?: string;
  dateFrom?: string;
  dateTo?: string;
  services?: string;
  categories?: string;
  brands?: string;
  clientOrganizationId?: number;
  organizations?: string;
  ids?: string;
  type?: string;
  types?: string;
  status?: string;
  timeZone?: number;
  previousDateFrom?: string;
}

const params: QueryParams = {
  productAnalyticField: 'BARCODE',
  query: 'Пример query',
  withDuplicate: 'true',
  limit: '100',
  page: '1',
  sortBy: 'Пример sortBy',
  ascending: 'true',
  id: 'Иванович',
  isMarketPlaceStructure: 'true',
  isDashboard: 'true',
  analyticsField: 'PRODUCT',
  planDayCount: '42',
  groupByView: 'true',
  warehouses: '',
  regions: 'Московская область',
  group: 'true',
  calculationByOrders: 'true',
  sourceReport: 'DEFAULT',
  skipDayWithoutStocks: 'true',
  isSaleStructure: 'true',
  isAveragePerOneUnit: 'true',
  updateDate: 'true',
  useWeightedGroup: 'true',
  isFindirRequest: 'true',
  brandIds: '',
  categoryIds: '',
  articles: 'ART-001',
  colors: '',
  sizes: '',
  barcodes: '4600123456789',
  penaltyFrom: '1',
  penaltyTo: '1',
  logisticsFrom: '1',
  logisticsTo: '1',
  marginFrom: '1',
  marginTo: '1',
  totalSalesAmountFrom: '2500',
  totalSalesAmountTo: '2500',
  grossProfitFrom: '1',
  grossProfitTo: '1',
  taxNds: '20',
  period: 'DAY',
  dateFrom: '2024-01-15T10:30:00Z',
  dateTo: '2024-01-15T10:30:00Z',
  services: '',
  categories: '',
  brands: '',
  clientOrganizationId: 'АО "Торговый дом"',
  organizations: 'АО "Торговый дом"',
  ids: '',
  type: 'standard',
  types: 'standard',
  status: 'active',
  timeZone: '1',
  previousDateFrom: '2024-01-15T10:30:00Z',
};

const response = await axios.get<any>('https://api.selsup.ru/api/stat/addDownloadFileAbcReport',
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

headers = {
    'Authorization': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}

params = {
    'productAnalyticField': 'BARCODE',
    'query': 'Пример query',
    'withDuplicate': 'true',
    'limit': '100',
    'page': '1',
    'sortBy': 'Пример sortBy',
    'ascending': 'true',
    'id': 'Иванович',
    'isMarketPlaceStructure': 'true',
    'isDashboard': 'true',
    'analyticsField': 'PRODUCT',
    'planDayCount': '42',
    'groupByView': 'true',
    'warehouses': '',
    'regions': 'Московская область',
    'group': 'true',
    'calculationByOrders': 'true',
    'sourceReport': 'DEFAULT',
    'skipDayWithoutStocks': 'true',
    'isSaleStructure': 'true',
    'isAveragePerOneUnit': 'true',
    'updateDate': 'true',
    'useWeightedGroup': 'true',
    'isFindirRequest': 'true',
    'brandIds': '',
    'categoryIds': '',
    'articles': 'ART-001',
    'colors': '',
    'sizes': '',
    'barcodes': '4600123456789',
    'penaltyFrom': '1',
    'penaltyTo': '1',
    'logisticsFrom': '1',
    'logisticsTo': '1',
    'marginFrom': '1',
    'marginTo': '1',
    'totalSalesAmountFrom': '2500',
    'totalSalesAmountTo': '2500',
    'grossProfitFrom': '1',
    'grossProfitTo': '1',
    'taxNds': '20',
    'period': 'DAY',
    'dateFrom': '2024-01-15T10:30:00Z',
    'dateTo': '2024-01-15T10:30:00Z',
    'services': '',
    'categories': '',
    'brands': '',
    'clientOrganizationId': 'АО "Торговый дом"',
    'organizations': 'АО "Торговый дом"',
    'ids': '',
    'type': 'standard',
    'types': 'standard',
    'status': 'active',
    'timeZone': '1',
    'previousDateFrom': '2024-01-15T10:30:00Z',
}

response = requests.get(
    'https://api.selsup.ru/api/stat/addDownloadFileAbcReport',
    headers=headers,
    params=params
)

print(response.json())
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "net/http"
)

func main() {
    client := &http.Client{}

    req, _ := http.NewRequest("get", "https://api.selsup.ru/api/stat/addDownloadFileAbcReport?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z", nil)
    req.Header.Set("Authorization", "YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    var result map[string]interface{}
    json.NewDecoder(resp.Body).Decode(&result)
    fmt.Println(result)
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;

HttpClient client = HttpClient.newHttpClient();

HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create("https://api.selsup.ru/api/stat/addDownloadFileAbcReport?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .get(HttpRequest.BodyPublishers.noBody())
    .build();

HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();

$params = [
    'productAnalyticField' => 'BARCODE',
    'query' => 'Пример query',
    'withDuplicate' => 'true',
    'limit' => '100',
    'page' => '1',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'true',
    'id' => 'Иванович',
    'isMarketPlaceStructure' => 'true',
    'isDashboard' => 'true',
    'analyticsField' => 'PRODUCT',
    'planDayCount' => '42',
    'groupByView' => 'true',
    'warehouses' => '',
    'regions' => 'Московская область',
    'group' => 'true',
    'calculationByOrders' => 'true',
    'sourceReport' => 'DEFAULT',
    'skipDayWithoutStocks' => 'true',
    'isSaleStructure' => 'true',
    'isAveragePerOneUnit' => 'true',
    'updateDate' => 'true',
    'useWeightedGroup' => 'true',
    'isFindirRequest' => 'true',
    'brandIds' => '',
    'categoryIds' => '',
    'articles' => 'ART-001',
    'colors' => '',
    'sizes' => '',
    'barcodes' => '4600123456789',
    'penaltyFrom' => '1',
    'penaltyTo' => '1',
    'logisticsFrom' => '1',
    'logisticsTo' => '1',
    'marginFrom' => '1',
    'marginTo' => '1',
    'totalSalesAmountFrom' => '2500',
    'totalSalesAmountTo' => '2500',
    'grossProfitFrom' => '1',
    'grossProfitTo' => '1',
    'taxNds' => '20',
    'period' => 'DAY',
    'dateFrom' => '2024-01-15T10:30:00Z',
    'dateTo' => '2024-01-15T10:30:00Z',
    'services' => '',
    'categories' => '',
    'brands' => '',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'organizations' => 'АО "Торговый дом"',
    'ids' => '',
    'type' => 'standard',
    'types' => 'standard',
    'status' => 'active',
    'timeZone' => '1',
    'previousDateFrom' => '2024-01-15T10:30:00Z',
];

$url = 'https://api.selsup.ru/api/stat/addDownloadFileAbcReport?' . http_build_query($params);

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'get',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

$response = curl_exec($curl);
curl_close($curl);

echo $response;
?>
curl -X get \
  'https://api.selsup.ru/api/stat/addDownloadFileAbcReport?productAnalyticField=BARCODE&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=true&limit=100&page=1&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=true&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=true&isDashboard=true&analyticsField=PRODUCT&planDayCount=42&groupByView=true&warehouses=&regions=%D0%9C%D0%BE%D1%81%D0%BA%D0%BE%D0%B2%D1%81%D0%BA%D0%B0%D1%8F%20%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&logisticsFrom=1&logisticsTo=1&marginFrom=1&marginTo=1&totalSalesAmountFrom=2500&totalSalesAmountTo=2500&grossProfitFrom=1&grossProfitTo=1&taxNds=20&period=DAY&dateFrom=2024-01-15T10%3A30%3A00Z&dateTo=2024-01-15T10%3A30%3A00Z&services=&categories=&brands=&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=&type=standard&types=standard&status=active&timeZone=1&previousDateFrom=2024-01-15T10%3A30%3A00Z' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'