Аналитика
Методы для работы с аналитическими отчетами: товарный, финансовый по всем маркетплейсам. Лимит запросов: 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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| article > | string | Артикул | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| warehouseStocks > | Array of WarehouseStock | Остатки по складам | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура WarehouseStock
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=Московская область&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&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=®ions=Московская область&group=true&calculationByOrders=true&sourceReport=DEFAULT&skipDayWithoutStocks=true&isSaleStructure=true&isAveragePerOneUnit=true&updateDate=true&useWeightedGroup=true&isFindirRequest=true&brandIds=&categoryIds=&articles=ART-001&colors=&sizes=&barcodes=4600123456789&penaltyFrom=1&penaltyTo=1&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=®ions=%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=®ions=%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=®ions=%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=®ions=%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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| costStructure > | GetFinanceStructureResult | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура GetFinanceStructureResult
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| profitStructure > | GetFinanceStructureResult | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура GetFinanceStructureResult
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| penaltyStructure > | Array of RowStructureForFinanceTable | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура RowStructureForFinanceTable
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| serviceStructure > | Array of RowStructureForFinanceTable | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура RowStructureForFinanceTable
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| financesReportByPeriod > | FindResponseFinanceReport | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура FindResponseFinanceReport
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| previousFinancesReportByPeriod > | FindResponseFinanceReport | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура FindResponseFinanceReport
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Тело ответа
✓ 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=®ions=%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=®ions=%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=®ions=%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
|
||||||||||||
⚠ 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=®ions=%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=®ions=%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=®ions=%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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=%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
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=%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
|
||||||||||||
| 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
|
||||||||||||
| 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
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=%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
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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
|
||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=%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
|
||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=%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
|
||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=%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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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
|
|||||||||||||||||||||||||||||||||||||||||||||
| 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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=%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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=%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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=%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
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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¬Collected=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¬GroupByOrganization=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22¬GroupByService=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¬Collected=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¬GroupByOrganization=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22¬GroupByService=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¬Collected=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¬GroupByOrganization=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22¬GroupByService=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
|
||||||||||||
| 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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=%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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=%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
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=%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
|
||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=%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
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=%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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| rows > | Array of AbcReport | Статистика по артикулам | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура AbcReport
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=%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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| rows > | Array of AbcReport | Статистика по артикулам | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура AbcReport
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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=®ions=%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=®ions=%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=®ions=%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
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| costStructure > | GetFinanceStructureResult | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура GetFinanceStructureResult
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| profitStructure > | GetFinanceStructureResult | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура GetFinanceStructureResult
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| penaltyStructure > | Array of RowStructureForFinanceTable | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура RowStructureForFinanceTable
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| serviceStructure > | Array of RowStructureForFinanceTable | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура RowStructureForFinanceTable
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| financesReportByPeriod > | FindResponseFinanceReport | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура FindResponseFinanceReport
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| previousFinancesReportByPeriod > | FindResponseFinanceReport | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура FindResponseFinanceReport
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
⚠ 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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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¬CurrentCurrency=%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¬CurrentCurrency=%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¬CurrentCurrency=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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¬Collected=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¬GroupByOrganization=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22¬GroupByService=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¬Collected=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¬GroupByOrganization=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22¬GroupByService=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¬Collected=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¬GroupByOrganization=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22¬GroupByService=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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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=®ions=%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'
Управление API ключом
Ключ будет сохранен локально в браузере