Импорт
Запуск различных импортов данных в SelSup
Базовый URL:
https://api.selsup.ru
🔗 Обновление файла с товарами для Яндекс.Маркета
Добавляет в файл колонки из товаров
POST
/api/import/ymUpdateColumns
Тело запроса
Content-Type:
multipart/form-data
| Поле | Тип | Описание |
|---|---|---|
| file Обязательный > | string |
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
Тип ответа:
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/import/ymUpdateColumns', {
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/import/ymUpdateColumns', {
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/import/ymUpdateColumns',
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/import/ymUpdateColumns", &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/import/ymUpdateColumns"))
.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/import/ymUpdateColumns',
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/import/ymUpdateColumns' \ -H 'Authorization: YOUR_API_KEY' \ -F 'file=@/path/to/file.pdf'
🔗 Импорт фотографий из ссылок
Сохраняет фотографии из ссылок в карточку товара
POST
/api/import/uploadImagesFromLinks
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| viewId | integer | Да |
Цвет для которого загрузить картинки
|
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание | ||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| success > | integer | |||||||||||||||||||||||||||||||||||||||||||||
| fail > | integer | |||||||||||||||||||||||||||||||||||||||||||||
| images > | Array of ProductImage | |||||||||||||||||||||||||||||||||||||||||||||
Структура ProductImage
|
||||||||||||||||||||||||||||||||||||||||||||||
⚠ 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 = {
viewId: '123',
};
const response = await axios.post('https://api.selsup.ru/api/import/uploadImagesFromLinks',
{
params,
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import axios from 'axios';
interface QueryParams {
viewId?: number;
}
const params: QueryParams = {
viewId: '123',
};
const response = await axios.post<any>('https://api.selsup.ru/api/import/uploadImagesFromLinks',
{
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 = {
'viewId': '123',
}
response = requests.post(
'https://api.selsup.ru/api/import/uploadImagesFromLinks',
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/import/uploadImagesFromLinks?viewId=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/import/uploadImagesFromLinks?viewId=123"))
.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 = [
'viewId' => '123',
];
$url = 'https://api.selsup.ru/api/import/uploadImagesFromLinks?' . 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/import/uploadImagesFromLinks?viewId=123' \ -H 'Authorization: YOUR_API_KEY' \ -H 'Content-Type: application/json'
🔗 Обновление карточек Ozon
Позволяет массово запустить обновление статуса отправленных карточек
POST
/api/import/updateTasks
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| organizationId | integer | Да |
Параметр organizationId
|
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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.post('https://api.selsup.ru/api/import/updateTasks',
{
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.post<any>('https://api.selsup.ru/api/import/updateTasks',
{
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.post(
'https://api.selsup.ru/api/import/updateTasks',
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/import/updateTasks?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/import/updateTasks?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")
.post(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/import/updateTasks?' . 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/import/updateTasks?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'
🔗 Массово редактировать комплекты по excel файлу
Запускает массовое редактирование комплектов по excel файлу
POST
/api/import/updateSetsByExcel
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| organizationId | integer | Да |
Параметр organizationId
|
Тело запроса
Content-Type:
multipart/form-data
| Поле | Тип | Описание |
|---|---|---|
| file Обязательный > | string |
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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/import/updateSetsByExcel?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', {
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/import/updateSetsByExcel?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', {
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 = {
'organizationId': 'АО "Торговый дом"',
}
response = requests.post(
'https://api.selsup.ru/api/import/updateSetsByExcel',
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/import/updateSetsByExcel?organizationId=АО "Торговый дом"", &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/import/updateSetsByExcel?organizationId=АО "Торговый дом""))
.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 = [
'organizationId' => 'АО "Торговый дом"',
];
$url = 'https://api.selsup.ru/api/import/updateSetsByExcel?' . 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/import/updateSetsByExcel?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' \ -F 'file=@/path/to/file.pdf'
🔗 Сверка остатков с маркетплейсами
Запускает сверку остатков FBS с маркетплейсом. Работает только для маркетплейсов, которые отдают остатки по FBS
POST
/api/import/runStockReconciliation
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| organizationId | integer | Да |
Параметр organizationId
|
| 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" | Да |
Параметр service
|
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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: 'АО "Торговый дом"',
service: 'NONE',
};
const response = await axios.post('https://api.selsup.ru/api/import/runStockReconciliation',
{
params,
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import axios from 'axios';
interface QueryParams {
organizationId?: number;
service?: string;
}
const params: QueryParams = {
organizationId: 'АО "Торговый дом"',
service: 'NONE',
};
const response = await axios.post<any>('https://api.selsup.ru/api/import/runStockReconciliation',
{
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': 'АО "Торговый дом"',
'service': 'NONE',
}
response = requests.post(
'https://api.selsup.ru/api/import/runStockReconciliation',
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/import/runStockReconciliation?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", 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/import/runStockReconciliation?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"))
.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 = [
'organizationId' => 'АО "Торговый дом"',
'service' => 'NONE',
];
$url = 'https://api.selsup.ru/api/import/runStockReconciliation?' . 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/import/runStockReconciliation?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' \ -H 'Authorization: YOUR_API_KEY' \ -H 'Content-Type: application/json'
🔗 Сверка остатков с маркетплейсами
Запускает сверку остатков FBO с маркетплейсом. Работает только для маркетплейсов, которые отдают остатки по FBO
POST
/api/import/runFboStockReconciliation
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| organizationId | integer | Да |
Параметр organizationId
|
| 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" | Да |
Параметр service
|
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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: 'АО "Торговый дом"',
service: 'NONE',
};
const response = await axios.post('https://api.selsup.ru/api/import/runFboStockReconciliation',
{
params,
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import axios from 'axios';
interface QueryParams {
organizationId?: number;
service?: string;
}
const params: QueryParams = {
organizationId: 'АО "Торговый дом"',
service: 'NONE',
};
const response = await axios.post<any>('https://api.selsup.ru/api/import/runFboStockReconciliation',
{
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': 'АО "Торговый дом"',
'service': 'NONE',
}
response = requests.post(
'https://api.selsup.ru/api/import/runFboStockReconciliation',
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/import/runFboStockReconciliation?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", 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/import/runFboStockReconciliation?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"))
.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 = [
'organizationId' => 'АО "Торговый дом"',
'service' => 'NONE',
];
$url = 'https://api.selsup.ru/api/import/runFboStockReconciliation?' . 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/import/runFboStockReconciliation?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' \ -H 'Authorization: YOUR_API_KEY' \ -H 'Content-Type: application/json'
🔗 Объединение карточек
Позволяет массово объединить карточки с одинаковыми атрибутами
POST
/api/import/mergeProducts
Тело запроса *Обязательно
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| check > | boolean | Только проверить объединение, подсчитав количество товаров |
| debug > | boolean | Режим отладки, для записи в логи всей информации, что объединяем |
| ignoreDuplicate > | boolean | Игнорировать дубликаты с одинаковым ключом объединения |
| fields > | object | Для каждого маркетплейса поля по которым объединять карточки |
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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/import/mergeProducts',
{
"check": true,
"debug": true,
"ignoreDuplicate": true,
"fields": {}
},
{
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/import/mergeProducts',
{
"check": true,
"debug": true,
"ignoreDuplicate": true,
"fields": {}
},
{
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/import/mergeProducts',
headers=headers,
json={
'check': true,
'debug': true,
'ignoreDuplicate': true,
'fields': {}
}
)
print(response.json())
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
client := &http.Client{}
payload := map[string]interface{}{
`check`: true,
`debug`: true,
`ignoreDuplicate`: true,
`fields`: {}
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("post", "https://api.selsup.ru/api/import/mergeProducts", 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/import/mergeProducts"))
.header("Authorization", "YOUR_API_KEY")
.header("Content-Type", "application/json")
.post(HttpRequest.BodyPublishers.ofString(
"{\"check\":true,\"debug\":true,\"ignoreDuplicate\":true,\"fields\":{}}"
))
.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/import/mergeProducts',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'post',
CURLOPT_POSTFIELDS => json_encode({
'check': true,
'debug': true,
'ignoreDuplicate': true,
'fields': {}
}),
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/import/mergeProducts' \
-H 'Authorization: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"check": true,
"debug": true,
"ignoreDuplicate": true,
"fields": {}
}'
🔗 Импорт изображений с Wildberries
Сохраняет в карточку товара изображения с сайта Wildberries
POST
/api/import/importWbImages
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| modelId | integer | Да |
Идентификатор модели
|
Тело ответа
✓ 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 = {
modelId: '123',
};
const response = await axios.post('https://api.selsup.ru/api/import/importWbImages',
{
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.post<any>('https://api.selsup.ru/api/import/importWbImages',
{
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.post(
'https://api.selsup.ru/api/import/importWbImages',
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/import/importWbImages?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/import/importWbImages?modelId=123"))
.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 = [
'modelId' => '123',
];
$url = 'https://api.selsup.ru/api/import/importWbImages?' . 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/import/importWbImages?modelId=123' \ -H 'Authorization: YOUR_API_KEY' \ -H 'Content-Type: application/json'
🔗 Импорт статистики по рекламным кампаниям WB
⚠️ Этот метод устарел и будет удален в будущих версиях
Запускает импорт статистики по рекламным кампаниям из excel файла
POST
/api/import/importWBStatCampaignsByExcel
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| productAnalyticField | string | Нет |
Агрегировать данные по сущности
|
| query | string | Нет |
Поисковый запрос для фильтрации аналитики
|
| withDuplicate | string | Нет |
Отдавать аналитику по дубликатам товаров
|
| limit | integer | Нет |
Количество записей в ответе
|
| page | integer | Нет |
Страница для навигации по страницам, начиная с 1
|
| sortBy | string | Нет |
Поле сортировки
|
| ascending | boolean | Нет |
Сортировать по возрастанию по полю sortBy
|
| id | integer | Нет |
Уникальный идентификатор
|
| isMarketPlaceStructure | boolean | Нет |
Идентификатор, получать данные только по маркетплейсу или по всем.
|
| isDashboard | boolean | Нет |
Идентификатор, запрос с дашборда или нет.
|
| analyticsField | string | Нет |
Агрегировать данные по model/product/view
|
| planDayCount | string | Нет |
Кол-во дней для отчетов
|
| groupByView | string | Нет |
Сгруппировать по цвету
|
| warehouses | string | Нет |
Список идентификаторов складов
|
| regions | string | Нет |
Список регионов
|
| group | string | Нет |
Сгруппировать данные
|
| calculationByOrders | string | Нет |
Делать расчет по заказанному количеству
|
| sourceReport | string | Нет |
Операция по которой выводить данные
|
| skipDayWithoutStocks | string | Нет |
Пропускать дни без остатков
|
| isSaleStructure | boolean | Нет |
Идентификатор, что нужно получить структуру по продажам
|
| isAveragePerOneUnit | boolean | Нет |
Идентификатор, получить среднее за 1 единицу
|
| updateDate | Date | Нет |
Обновлять даты
|
| period | string | Нет |
Период агрегации
|
| dateFrom | Date | Нет |
Дата начала отчета
|
| dateTo | Date | Нет |
Дата окончания отчета
|
| services | string | Нет |
Список маркетплейсов для которых отдать данные
|
| categories | string | Нет |
Фильтр категорий для которых отдать данные
|
| brands | string | Нет |
Фильтр брендов для которых отдать данные
|
| clientOrganizationId | integer | Нет |
Идентификатор организации, для которой отдать данные
|
| organizations | string | Нет |
Идентификаторы организаций клиента
|
| ids | string | Нет |
Список идентификаторов
|
| timeZone | string | Нет |
Часовой пояс клиента по UTC
|
| previousDateFrom | Date | Нет |
Дата начала периода для сравнения
|
Тело запроса
Content-Type:
multipart/form-data
| Поле | Тип | Описание |
|---|---|---|
| file Обязательный > | string |
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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/import/importWBStatCampaignsByExcel?productAnalyticField=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20productAnalyticField&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20withDuplicate&limit=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20limit&page=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20page&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20ascending&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20isMarketPlaceStructure&isDashboard=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20isDashboard&analyticsField=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20analyticsField&planDayCount=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20planDayCount&groupByView=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20groupByView&warehouses=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20warehouses®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=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20group&calculationByOrders=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20calculationByOrders&sourceReport=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sourceReport&skipDayWithoutStocks=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20skipDayWithoutStocks&isSaleStructure=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20isSaleStructure&isAveragePerOneUnit=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20isAveragePerOneUnit&updateDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20updateDate&period=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20period&dateFrom=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20dateFrom&dateTo=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20dateTo&services=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20services&categories=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20categories&brands=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20brands&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20ids&timeZone=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20timeZone&previousDateFrom=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20previousDateFrom', {
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/import/importWBStatCampaignsByExcel?productAnalyticField=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20productAnalyticField&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20withDuplicate&limit=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20limit&page=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20page&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20ascending&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20isMarketPlaceStructure&isDashboard=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20isDashboard&analyticsField=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20analyticsField&planDayCount=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20planDayCount&groupByView=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20groupByView&warehouses=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20warehouses®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=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20group&calculationByOrders=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20calculationByOrders&sourceReport=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sourceReport&skipDayWithoutStocks=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20skipDayWithoutStocks&isSaleStructure=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20isSaleStructure&isAveragePerOneUnit=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20isAveragePerOneUnit&updateDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20updateDate&period=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20period&dateFrom=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20dateFrom&dateTo=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20dateTo&services=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20services&categories=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20categories&brands=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20brands&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20ids&timeZone=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20timeZone&previousDateFrom=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20previousDateFrom', {
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': 'Пример productAnalyticField',
'query': 'Пример query',
'withDuplicate': 'Пример withDuplicate',
'limit': 'Пример limit',
'page': 'Пример page',
'sortBy': 'Пример sortBy',
'ascending': 'Пример ascending',
'id': 'Иванович',
'isMarketPlaceStructure': 'Пример isMarketPlaceStructure',
'isDashboard': 'Пример isDashboard',
'analyticsField': 'Пример analyticsField',
'planDayCount': 'Пример planDayCount',
'groupByView': 'Пример groupByView',
'warehouses': 'Пример warehouses',
'regions': 'Московская область',
'group': 'Пример group',
'calculationByOrders': 'Пример calculationByOrders',
'sourceReport': 'Пример sourceReport',
'skipDayWithoutStocks': 'Пример skipDayWithoutStocks',
'isSaleStructure': 'Пример isSaleStructure',
'isAveragePerOneUnit': 'Пример isAveragePerOneUnit',
'updateDate': 'Пример updateDate',
'period': 'Пример period',
'dateFrom': 'Пример dateFrom',
'dateTo': 'Пример dateTo',
'services': 'Пример services',
'categories': 'Пример categories',
'brands': 'Пример brands',
'clientOrganizationId': 'АО "Торговый дом"',
'organizations': 'АО "Торговый дом"',
'ids': 'Пример ids',
'timeZone': 'Пример timeZone',
'previousDateFrom': 'Пример previousDateFrom',
}
response = requests.post(
'https://api.selsup.ru/api/import/importWBStatCampaignsByExcel',
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/import/importWBStatCampaignsByExcel?productAnalyticField=Пример productAnalyticField&query=Пример query&withDuplicate=Пример withDuplicate&limit=Пример limit&page=Пример page&sortBy=Пример sortBy&ascending=Пример ascending&id=Иванович&isMarketPlaceStructure=Пример isMarketPlaceStructure&isDashboard=Пример isDashboard&analyticsField=Пример analyticsField&planDayCount=Пример planDayCount&groupByView=Пример groupByView&warehouses=Пример warehouses®ions=Московская область&group=Пример group&calculationByOrders=Пример calculationByOrders&sourceReport=Пример sourceReport&skipDayWithoutStocks=Пример skipDayWithoutStocks&isSaleStructure=Пример isSaleStructure&isAveragePerOneUnit=Пример isAveragePerOneUnit&updateDate=Пример updateDate&period=Пример period&dateFrom=Пример dateFrom&dateTo=Пример dateTo&services=Пример services&categories=Пример categories&brands=Пример brands&clientOrganizationId=АО "Торговый дом"&organizations=АО "Торговый дом"&ids=Пример ids&timeZone=Пример timeZone&previousDateFrom=Пример previousDateFrom", &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/import/importWBStatCampaignsByExcel?productAnalyticField=Пример productAnalyticField&query=Пример query&withDuplicate=Пример withDuplicate&limit=Пример limit&page=Пример page&sortBy=Пример sortBy&ascending=Пример ascending&id=Иванович&isMarketPlaceStructure=Пример isMarketPlaceStructure&isDashboard=Пример isDashboard&analyticsField=Пример analyticsField&planDayCount=Пример planDayCount&groupByView=Пример groupByView&warehouses=Пример warehouses®ions=Московская область&group=Пример group&calculationByOrders=Пример calculationByOrders&sourceReport=Пример sourceReport&skipDayWithoutStocks=Пример skipDayWithoutStocks&isSaleStructure=Пример isSaleStructure&isAveragePerOneUnit=Пример isAveragePerOneUnit&updateDate=Пример updateDate&period=Пример period&dateFrom=Пример dateFrom&dateTo=Пример dateTo&services=Пример services&categories=Пример categories&brands=Пример brands&clientOrganizationId=АО "Торговый дом"&organizations=АО "Торговый дом"&ids=Пример ids&timeZone=Пример timeZone&previousDateFrom=Пример previousDateFrom"))
.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' => 'Пример productAnalyticField',
'query' => 'Пример query',
'withDuplicate' => 'Пример withDuplicate',
'limit' => 'Пример limit',
'page' => 'Пример page',
'sortBy' => 'Пример sortBy',
'ascending' => 'Пример ascending',
'id' => 'Иванович',
'isMarketPlaceStructure' => 'Пример isMarketPlaceStructure',
'isDashboard' => 'Пример isDashboard',
'analyticsField' => 'Пример analyticsField',
'planDayCount' => 'Пример planDayCount',
'groupByView' => 'Пример groupByView',
'warehouses' => 'Пример warehouses',
'regions' => 'Московская область',
'group' => 'Пример group',
'calculationByOrders' => 'Пример calculationByOrders',
'sourceReport' => 'Пример sourceReport',
'skipDayWithoutStocks' => 'Пример skipDayWithoutStocks',
'isSaleStructure' => 'Пример isSaleStructure',
'isAveragePerOneUnit' => 'Пример isAveragePerOneUnit',
'updateDate' => 'Пример updateDate',
'period' => 'Пример period',
'dateFrom' => 'Пример dateFrom',
'dateTo' => 'Пример dateTo',
'services' => 'Пример services',
'categories' => 'Пример categories',
'brands' => 'Пример brands',
'clientOrganizationId' => 'АО "Торговый дом"',
'organizations' => 'АО "Торговый дом"',
'ids' => 'Пример ids',
'timeZone' => 'Пример timeZone',
'previousDateFrom' => 'Пример previousDateFrom',
];
$url = 'https://api.selsup.ru/api/import/importWBStatCampaignsByExcel?' . 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/import/importWBStatCampaignsByExcel?productAnalyticField=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20productAnalyticField&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&withDuplicate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20withDuplicate&limit=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20limit&page=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20page&sortBy=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sortBy&ascending=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20ascending&id=%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%B8%D1%87&isMarketPlaceStructure=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20isMarketPlaceStructure&isDashboard=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20isDashboard&analyticsField=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20analyticsField&planDayCount=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20planDayCount&groupByView=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20groupByView&warehouses=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20warehouses®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=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20group&calculationByOrders=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20calculationByOrders&sourceReport=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20sourceReport&skipDayWithoutStocks=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20skipDayWithoutStocks&isSaleStructure=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20isSaleStructure&isAveragePerOneUnit=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20isAveragePerOneUnit&updateDate=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20updateDate&period=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20period&dateFrom=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20dateFrom&dateTo=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20dateTo&services=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20services&categories=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20categories&brands=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20brands&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&organizations=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&ids=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20ids&timeZone=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20timeZone&previousDateFrom=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20previousDateFrom' \ -H 'Authorization: YOUR_API_KEY' \ -F 'file=@/path/to/file.pdf'
🔗 Импорт изображений с Wildberries
Сохраняет в карточку товара изображения с сайта Wildberries
POST
/api/import/importViewWbImages
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| viewId | integer | Да |
Идентификатор цвета
|
Тело ответа
✓ 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 = {
viewId: '123',
};
const response = await axios.post('https://api.selsup.ru/api/import/importViewWbImages',
{
params,
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import axios from 'axios';
interface QueryParams {
viewId?: number;
}
const params: QueryParams = {
viewId: '123',
};
const response = await axios.post<any>('https://api.selsup.ru/api/import/importViewWbImages',
{
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 = {
'viewId': '123',
}
response = requests.post(
'https://api.selsup.ru/api/import/importViewWbImages',
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/import/importViewWbImages?viewId=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/import/importViewWbImages?viewId=123"))
.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 = [
'viewId' => '123',
];
$url = 'https://api.selsup.ru/api/import/importViewWbImages?' . 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/import/importViewWbImages?viewId=123' \ -H 'Authorization: YOUR_API_KEY' \ -H 'Content-Type: application/json'
🔗 Импорт товаров
Создает новые товары по данным из Excel файла
POST
/api/import/importProducts
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| organizationId | integer | Да |
Организация, для которой импортируются товары
|
| services | string | Да |
Список сервисов, в которые отправить карточки, после импорта
|
| debug | boolean | Да |
Отладка в дебаге
|
| replaceEmptyValues | boolean | Да |
Замена пустых значений
|
Тело запроса
Content-Type:
multipart/form-data
| Поле | Тип | Описание |
|---|---|---|
| file Обязательный > | string | Файл |
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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/import/importProducts?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&services=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20services&debug=true&replaceEmptyValues=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/import/importProducts?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&services=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20services&debug=true&replaceEmptyValues=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 = {
'organizationId': 'АО "Торговый дом"',
'services': 'Пример services',
'debug': 'true',
'replaceEmptyValues': 'true',
}
response = requests.post(
'https://api.selsup.ru/api/import/importProducts',
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/import/importProducts?organizationId=АО "Торговый дом"&services=Пример services&debug=true&replaceEmptyValues=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/import/importProducts?organizationId=АО "Торговый дом"&services=Пример services&debug=true&replaceEmptyValues=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 = [
'organizationId' => 'АО "Торговый дом"',
'services' => 'Пример services',
'debug' => 'true',
'replaceEmptyValues' => 'true',
];
$url = 'https://api.selsup.ru/api/import/importProducts?' . 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/import/importProducts?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&services=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20services&debug=true&replaceEmptyValues=true' \ -H 'Authorization: YOUR_API_KEY' \ -F 'file=@/path/to/file.pdf'
🔗 Импорт товаров с различных сервисов
Запускает импорт товаров с различных сервисов и маркетплейсов. Отдает в ответе номер задачи, по которому можно проверять ее статус. Задача выполняется асинхронно. Статус можно получить через метод task/getTask?id=. После выполнения в ответе будет указан status: FINISHED и можно будет получить результат импорта в параметре messageParams
POST
/api/import/importProductsFrom
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| organizationId | integer | Нет |
Параметр organizationId
|
| 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" | Да |
Параметр service
|
| onlyCreatedCards | boolean | Нет |
Параметр onlyCreatedCards
|
| debug | boolean | Нет |
Параметр debug
|
| wbUpdateCardArticles | boolean | Нет |
Параметр wbUpdateCardArticles
|
| uniqCards | boolean | Нет |
Параметр uniqCards
|
| fullUpdate | boolean | Нет |
Параметр fullUpdate
|
| useWbName | boolean | Нет |
Параметр useWbName
|
| useWbArticle | boolean | Нет |
Параметр useWbArticle
|
| useOzonArticle | boolean | Нет |
Параметр useOzonArticle
|
| useYmArticle | boolean | Нет |
Параметр useYmArticle
|
| withStock | boolean | Нет |
Параметр withStock
|
| warehouseExternalId | integer | Нет |
Параметр warehouseExternalId
|
| amazonMarketplace | string | Нет |
Параметр amazonMarketplace
|
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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: 'АО "Торговый дом"',
service: 'NONE',
onlyCreatedCards: 'true',
debug: 'true',
wbUpdateCardArticles: 'ART-001',
uniqCards: 'true',
fullUpdate: 'true',
useWbName: 'true',
useWbArticle: 'ART-001',
useOzonArticle: 'ART-001',
useYmArticle: 'ART-001',
withStock: 'true',
warehouseExternalId: '123',
amazonMarketplace: 'Пример amazonMarketplace',
};
const response = await axios.post('https://api.selsup.ru/api/import/importProductsFrom',
{
params,
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import axios from 'axios';
interface QueryParams {
organizationId?: number;
service?: string;
onlyCreatedCards?: string;
debug?: string;
wbUpdateCardArticles?: string;
uniqCards?: string;
fullUpdate?: string;
useWbName?: string;
useWbArticle?: string;
useOzonArticle?: string;
useYmArticle?: string;
withStock?: string;
warehouseExternalId?: number;
amazonMarketplace?: string;
}
const params: QueryParams = {
organizationId: 'АО "Торговый дом"',
service: 'NONE',
onlyCreatedCards: 'true',
debug: 'true',
wbUpdateCardArticles: 'ART-001',
uniqCards: 'true',
fullUpdate: 'true',
useWbName: 'true',
useWbArticle: 'ART-001',
useOzonArticle: 'ART-001',
useYmArticle: 'ART-001',
withStock: 'true',
warehouseExternalId: '123',
amazonMarketplace: 'Пример amazonMarketplace',
};
const response = await axios.post<any>('https://api.selsup.ru/api/import/importProductsFrom',
{
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': 'АО "Торговый дом"',
'service': 'NONE',
'onlyCreatedCards': 'true',
'debug': 'true',
'wbUpdateCardArticles': 'ART-001',
'uniqCards': 'true',
'fullUpdate': 'true',
'useWbName': 'true',
'useWbArticle': 'ART-001',
'useOzonArticle': 'ART-001',
'useYmArticle': 'ART-001',
'withStock': 'true',
'warehouseExternalId': '123',
'amazonMarketplace': 'Пример amazonMarketplace',
}
response = requests.post(
'https://api.selsup.ru/api/import/importProductsFrom',
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/import/importProductsFrom?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&onlyCreatedCards=true&debug=true&wbUpdateCardArticles=ART-001&uniqCards=true&fullUpdate=true&useWbName=true&useWbArticle=ART-001&useOzonArticle=ART-001&useYmArticle=ART-001&withStock=true&warehouseExternalId=123&amazonMarketplace=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20amazonMarketplace", 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/import/importProductsFrom?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&onlyCreatedCards=true&debug=true&wbUpdateCardArticles=ART-001&uniqCards=true&fullUpdate=true&useWbName=true&useWbArticle=ART-001&useOzonArticle=ART-001&useYmArticle=ART-001&withStock=true&warehouseExternalId=123&amazonMarketplace=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20amazonMarketplace"))
.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 = [
'organizationId' => 'АО "Торговый дом"',
'service' => 'NONE',
'onlyCreatedCards' => 'true',
'debug' => 'true',
'wbUpdateCardArticles' => 'ART-001',
'uniqCards' => 'true',
'fullUpdate' => 'true',
'useWbName' => 'true',
'useWbArticle' => 'ART-001',
'useOzonArticle' => 'ART-001',
'useYmArticle' => 'ART-001',
'withStock' => 'true',
'warehouseExternalId' => '123',
'amazonMarketplace' => 'Пример amazonMarketplace',
];
$url = 'https://api.selsup.ru/api/import/importProductsFrom?' . 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/import/importProductsFrom?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&onlyCreatedCards=true&debug=true&wbUpdateCardArticles=ART-001&uniqCards=true&fullUpdate=true&useWbName=true&useWbArticle=ART-001&useOzonArticle=ART-001&useYmArticle=ART-001&withStock=true&warehouseExternalId=123&amazonMarketplace=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20amazonMarketplace' \ -H 'Authorization: YOUR_API_KEY' \ -H 'Content-Type: application/json'
🔗 Импорт товаров из YML
Создает новые товары по данным из YML файла
POST
/api/import/importProductsFromYml
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| organizationId | integer | Да |
Организация, для которой импортируются товары
|
| url | string | Нет |
Параметр url
|
| login | string | Нет |
Параметр login
|
| password | string | Нет |
Параметр password
|
| importParams | boolean | Нет |
Параметр importParams
|
| articleField | "NAME""BRAND""ARTICLE""COLOR""SIZE""OZON_ARTICLE""YANDEX_MARKET_SKU""CATEGORY""MODEL_NAME""ALIEXPRESS_SKU""LEROY_MERLIN""SBER_MEGA_MARKET_ARTICLE""ONE_C""ONE_C_ID""WB_ARTICLE""EBAY_ARTICLE""PROMO_NAME""NONE""ANY_ARTICLE""SITE""EXTERNAL_ARTICLE" | Нет |
Параметр articleField
|
| articleName | string | Нет |
Параметр articleName
|
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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: 'АО "Торговый дом"',
url: 'https://example.com/resource',
login: 'user123',
password: 'SecurePass123!',
importParams: 'true',
articleField: 'ART-001',
articleName: 'ART-001',
};
const response = await axios.post('https://api.selsup.ru/api/import/importProductsFromYml',
{
params,
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import axios from 'axios';
interface QueryParams {
organizationId?: number;
url?: string;
login?: string;
password?: string;
importParams?: string;
articleField?: string;
articleName?: string;
}
const params: QueryParams = {
organizationId: 'АО "Торговый дом"',
url: 'https://example.com/resource',
login: 'user123',
password: 'SecurePass123!',
importParams: 'true',
articleField: 'ART-001',
articleName: 'ART-001',
};
const response = await axios.post<any>('https://api.selsup.ru/api/import/importProductsFromYml',
{
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': 'АО "Торговый дом"',
'url': 'https://example.com/resource',
'login': 'user123',
'password': 'SecurePass123!',
'importParams': 'true',
'articleField': 'ART-001',
'articleName': 'ART-001',
}
response = requests.post(
'https://api.selsup.ru/api/import/importProductsFromYml',
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/import/importProductsFromYml?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&url=https%3A%2F%2Fexample.com%2Fresource&login=user123&password=SecurePass123!&importParams=true&articleField=ART-001&articleName=ART-001", 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/import/importProductsFromYml?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&url=https%3A%2F%2Fexample.com%2Fresource&login=user123&password=SecurePass123!&importParams=true&articleField=ART-001&articleName=ART-001"))
.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 = [
'organizationId' => 'АО "Торговый дом"',
'url' => 'https://example.com/resource',
'login' => 'user123',
'password' => 'SecurePass123!',
'importParams' => 'true',
'articleField' => 'ART-001',
'articleName' => 'ART-001',
];
$url = 'https://api.selsup.ru/api/import/importProductsFromYml?' . 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/import/importProductsFromYml?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&url=https%3A%2F%2Fexample.com%2Fresource&login=user123&password=SecurePass123!&importParams=true&articleField=ART-001&articleName=ART-001' \ -H 'Authorization: YOUR_API_KEY' \ -H 'Content-Type: application/json'
🔗 Импорт товаров по excel шаблону Wildberries
Запускает импорт товаров по excel шаблону Wildberries
POST
/api/import/importProductsFromWildberriesExcel
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| organizationId | integer | Да |
Параметр organizationId
|
| importFromApi | boolean | Нет |
Параметр importFromApi
|
Тело запроса
Content-Type:
multipart/form-data
| Поле | Тип | Описание |
|---|---|---|
| file Обязательный > | string |
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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/import/importProductsFromWildberriesExcel?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&importFromApi=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/import/importProductsFromWildberriesExcel?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&importFromApi=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 = {
'organizationId': 'АО "Торговый дом"',
'importFromApi': 'true',
}
response = requests.post(
'https://api.selsup.ru/api/import/importProductsFromWildberriesExcel',
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/import/importProductsFromWildberriesExcel?organizationId=АО "Торговый дом"&importFromApi=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/import/importProductsFromWildberriesExcel?organizationId=АО "Торговый дом"&importFromApi=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 = [
'organizationId' => 'АО "Торговый дом"',
'importFromApi' => 'true',
];
$url = 'https://api.selsup.ru/api/import/importProductsFromWildberriesExcel?' . 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/import/importProductsFromWildberriesExcel?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&importFromApi=true' \ -H 'Authorization: YOUR_API_KEY' \ -F 'file=@/path/to/file.pdf'
🔗 Импорт товаров по excel шаблону SberMegaMarket
Запускает импорт товаров по excel шаблону MegaMarket в формате multipart
POST
/api/import/importProductsFromSberMegaMarketExcel
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| organizationId | integer | Да |
Параметр organizationId
|
Тело запроса
Content-Type:
multipart/form-data
| Поле | Тип | Описание |
|---|---|---|
| file Обязательный > | string |
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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/import/importProductsFromSberMegaMarketExcel?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', {
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/import/importProductsFromSberMegaMarketExcel?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', {
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 = {
'organizationId': 'АО "Торговый дом"',
}
response = requests.post(
'https://api.selsup.ru/api/import/importProductsFromSberMegaMarketExcel',
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/import/importProductsFromSberMegaMarketExcel?organizationId=АО "Торговый дом"", &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/import/importProductsFromSberMegaMarketExcel?organizationId=АО "Торговый дом""))
.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 = [
'organizationId' => 'АО "Торговый дом"',
];
$url = 'https://api.selsup.ru/api/import/importProductsFromSberMegaMarketExcel?' . 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/import/importProductsFromSberMegaMarketExcel?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' \ -F 'file=@/path/to/file.pdf'
🔗 Импорт товаров по excel шаблону SberMegaMarket
Запускает импорт товаров по excel шаблону SberMegaMarket
POST
/api/import/importProductsFromMegaMarketExcelBody
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| organizationId | integer | Да |
Параметр organizationId
|
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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.post('https://api.selsup.ru/api/import/importProductsFromMegaMarketExcelBody',
{
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.post<any>('https://api.selsup.ru/api/import/importProductsFromMegaMarketExcelBody',
{
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.post(
'https://api.selsup.ru/api/import/importProductsFromMegaMarketExcelBody',
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/import/importProductsFromMegaMarketExcelBody?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/import/importProductsFromMegaMarketExcelBody?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")
.post(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/import/importProductsFromMegaMarketExcelBody?' . 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/import/importProductsFromMegaMarketExcelBody?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'
🔗 Импорт товаров по excel шаблону Avito
Запускает импорт товаров по excel шаблону Avito
POST
/api/import/importProductsFromAvitoExcel
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| organizationId | integer | Да |
Параметр organizationId
|
Тело запроса
Content-Type:
multipart/form-data
| Поле | Тип | Описание |
|---|---|---|
| file Обязательный > | string |
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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/import/importProductsFromAvitoExcel?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', {
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/import/importProductsFromAvitoExcel?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', {
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 = {
'organizationId': 'АО "Торговый дом"',
}
response = requests.post(
'https://api.selsup.ru/api/import/importProductsFromAvitoExcel',
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/import/importProductsFromAvitoExcel?organizationId=АО "Торговый дом"", &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/import/importProductsFromAvitoExcel?organizationId=АО "Торговый дом""))
.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 = [
'organizationId' => 'АО "Торговый дом"',
];
$url = 'https://api.selsup.ru/api/import/importProductsFromAvitoExcel?' . 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/import/importProductsFromAvitoExcel?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' \ -F 'file=@/path/to/file.pdf'
🔗 Импорт товаров с ресурса с различных API
Импортирует товары с указанного API
POST
/api/import/importProductsFromApi
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| organizationId | integer | Нет |
Параметр organizationId
|
| services | string | Нет |
Параметр services
|
| url | string | Нет |
Параметр url
|
| apiKey | string | Нет |
Параметр apiKey
|
| articleField | "NAME""BRAND""ARTICLE""COLOR""SIZE""OZON_ARTICLE""YANDEX_MARKET_SKU""CATEGORY""MODEL_NAME""ALIEXPRESS_SKU""LEROY_MERLIN""SBER_MEGA_MARKET_ARTICLE""ONE_C""ONE_C_ID""WB_ARTICLE""EBAY_ARTICLE""PROMO_NAME""NONE""ANY_ARTICLE""SITE""EXTERNAL_ARTICLE" | Нет |
Параметр articleField
|
| articleName | string | Нет |
Параметр articleName
|
| addSelsupImages | boolean | Нет |
Параметр addSelsupImages
|
| updateProducts | boolean | Нет |
Параметр updateProducts
|
| apiType | "PRESTA_SHOP" | Нет |
Параметр apiType
|
| warehouseId | integer | Нет |
Параметр warehouseId
|
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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: 'АО "Торговый дом"',
services: 'Пример services',
url: 'https://example.com/resource',
apiKey: 'key_0w8987ncl',
articleField: 'ART-001',
articleName: 'ART-001',
addSelsupImages: 'https://example.com/image.jpg',
updateProducts: 'true',
apiType: 'standard',
warehouseId: '123',
};
const response = await axios.post('https://api.selsup.ru/api/import/importProductsFromApi',
{
params,
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import axios from 'axios';
interface QueryParams {
organizationId?: number;
services?: string;
url?: string;
apiKey?: string;
articleField?: string;
articleName?: string;
addSelsupImages?: string;
updateProducts?: string;
apiType?: string;
warehouseId?: number;
}
const params: QueryParams = {
organizationId: 'АО "Торговый дом"',
services: 'Пример services',
url: 'https://example.com/resource',
apiKey: 'key_0w8987ncl',
articleField: 'ART-001',
articleName: 'ART-001',
addSelsupImages: 'https://example.com/image.jpg',
updateProducts: 'true',
apiType: 'standard',
warehouseId: '123',
};
const response = await axios.post<any>('https://api.selsup.ru/api/import/importProductsFromApi',
{
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': 'АО "Торговый дом"',
'services': 'Пример services',
'url': 'https://example.com/resource',
'apiKey': 'key_0w8987ncl',
'articleField': 'ART-001',
'articleName': 'ART-001',
'addSelsupImages': 'https://example.com/image.jpg',
'updateProducts': 'true',
'apiType': 'standard',
'warehouseId': '123',
}
response = requests.post(
'https://api.selsup.ru/api/import/importProductsFromApi',
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/import/importProductsFromApi?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&services=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20services&url=https%3A%2F%2Fexample.com%2Fresource&apiKey=key_0w8987ncl&articleField=ART-001&articleName=ART-001&addSelsupImages=https%3A%2F%2Fexample.com%2Fimage.jpg&updateProducts=true&apiType=standard&warehouseId=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/import/importProductsFromApi?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&services=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20services&url=https%3A%2F%2Fexample.com%2Fresource&apiKey=key_0w8987ncl&articleField=ART-001&articleName=ART-001&addSelsupImages=https%3A%2F%2Fexample.com%2Fimage.jpg&updateProducts=true&apiType=standard&warehouseId=123"))
.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 = [
'organizationId' => 'АО "Торговый дом"',
'services' => 'Пример services',
'url' => 'https://example.com/resource',
'apiKey' => 'key_0w8987ncl',
'articleField' => 'ART-001',
'articleName' => 'ART-001',
'addSelsupImages' => 'https://example.com/image.jpg',
'updateProducts' => 'true',
'apiType' => 'standard',
'warehouseId' => '123',
];
$url = 'https://api.selsup.ru/api/import/importProductsFromApi?' . 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/import/importProductsFromApi?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&services=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20services&url=https%3A%2F%2Fexample.com%2Fresource&apiKey=key_0w8987ncl&articleField=ART-001&articleName=ART-001&addSelsupImages=https%3A%2F%2Fexample.com%2Fimage.jpg&updateProducts=true&apiType=standard&warehouseId=123' \ -H 'Authorization: YOUR_API_KEY' \ -H 'Content-Type: application/json'
🔗 Импорт фотографий из архива
Сохраняет фотографии из архива в карточки товара. Названия папок внутри архива должэны быть штрих-коды
POST
/api/import/importImages
Тело запроса
Content-Type:
multipart/form-data
| Поле | Тип | Описание |
|---|---|---|
| file Обязательный > | string | Содержимое файла ZIP-архива |
Тело ответа
✓ 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 formData = new FormData();
formData.append('file', fileInput.files[0]); // File input element
fetch('https://api.selsup.ru/api/import/importImages', {
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/import/importImages', {
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/import/importImages',
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/import/importImages", &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/import/importImages"))
.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/import/importImages',
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/import/importImages' \ -H 'Authorization: YOUR_API_KEY' \ -F 'file=@/path/to/file.pdf'
🔗 Импорт остатков с маркетплейса
Запускает импорт остатков с маркетплейса
POST
/api/import/importFbsStocks
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| 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" | Да |
Маркетплейс
|
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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: 'АО "Торговый дом"',
service: 'NONE',
};
const response = await axios.post('https://api.selsup.ru/api/import/importFbsStocks',
{
params,
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import axios from 'axios';
interface QueryParams {
organizationId?: number;
service?: string;
}
const params: QueryParams = {
organizationId: 'АО "Торговый дом"',
service: 'NONE',
};
const response = await axios.post<any>('https://api.selsup.ru/api/import/importFbsStocks',
{
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': 'АО "Торговый дом"',
'service': 'NONE',
}
response = requests.post(
'https://api.selsup.ru/api/import/importFbsStocks',
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/import/importFbsStocks?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", 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/import/importFbsStocks?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"))
.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 = [
'organizationId' => 'АО "Торговый дом"',
'service' => 'NONE',
];
$url = 'https://api.selsup.ru/api/import/importFbsStocks?' . 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/import/importFbsStocks?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' \ -H 'Authorization: YOUR_API_KEY' \ -H 'Content-Type: application/json'
🔗 Импорт FBO остатков с маркетплейса
Запускает импорт FBO остатков с маркетплейса по API
POST
/api/import/importFboStocks
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| organizationId | integer | Да |
Идентификатор организации
|
| service | string | Да |
Маркетплейс, с которого импортировать остатки по FBO
|
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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: 'АО "Торговый дом"',
service: 'Пример service',
};
const response = await axios.post('https://api.selsup.ru/api/import/importFboStocks',
{
params,
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import axios from 'axios';
interface QueryParams {
organizationId?: string;
service?: string;
}
const params: QueryParams = {
organizationId: 'АО "Торговый дом"',
service: 'Пример service',
};
const response = await axios.post<any>('https://api.selsup.ru/api/import/importFboStocks',
{
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': 'АО "Торговый дом"',
'service': 'Пример service',
}
response = requests.post(
'https://api.selsup.ru/api/import/importFboStocks',
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/import/importFboStocks?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=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20service", 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/import/importFboStocks?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=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20service"))
.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 = [
'organizationId' => 'АО "Торговый дом"',
'service' => 'Пример service',
];
$url = 'https://api.selsup.ru/api/import/importFboStocks?' . 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/import/importFboStocks?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=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20service' \ -H 'Authorization: YOUR_API_KEY' \ -H 'Content-Type: application/json'
🔗 Импорт FBO остатков файлом
Запускает импорт FBO остатков с маркетплейса из файла
POST
/api/import/importFboStocksByFile
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| organizationId | integer | Да |
Параметр organizationId
|
| 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" | Да |
Параметр service
|
Тело запроса
Content-Type:
multipart/form-data
| Поле | Тип | Описание |
|---|---|---|
| file Обязательный > | string |
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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/import/importFboStocksByFile?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', {
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/import/importFboStocksByFile?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', {
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 = {
'organizationId': 'АО "Торговый дом"',
'service': 'NONE',
}
response = requests.post(
'https://api.selsup.ru/api/import/importFboStocksByFile',
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/import/importFboStocksByFile?organizationId=АО "Торговый дом"&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/import/importFboStocksByFile?organizationId=АО "Торговый дом"&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 = [
'organizationId' => 'АО "Торговый дом"',
'service' => 'NONE',
];
$url = 'https://api.selsup.ru/api/import/importFboStocksByFile?' . 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/import/importFboStocksByFile?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' \ -H 'Authorization: YOUR_API_KEY' \ -F 'file=@/path/to/file.pdf'
🔗 Импорт категорий
Создает и обновляет категории и по данным из Excel файла
POST
/api/import/importCategories
Тело запроса
Content-Type:
multipart/form-data
| Поле | Тип | Описание |
|---|---|---|
| file Обязательный > | string |
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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/import/importCategories', {
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/import/importCategories', {
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/import/importCategories',
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/import/importCategories", &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/import/importCategories"))
.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/import/importCategories',
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/import/importCategories' \ -H 'Authorization: YOUR_API_KEY' \ -F 'file=@/path/to/file.pdf'
🔗 Импорт карточки из Wildberries
Импортирует одну единственную карточку из Wildberries обновляя ее в SelSup
POST
/api/import/importCard
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| 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" | Да |
Маркетплейс с которого обновить данные
|
| modelId | integer | Да |
Идентификатор модели
|
| updateAll | boolean | Нет |
Обновить название, описание и пр
|
| debug | boolean | Нет |
Режим отладки, при котором записывается дополнительная информация в логи
|
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| article > | string | Уникальный артикул модели | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| organizationId > | integer | Организация для товара | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| category > | Category | Категория | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура Category
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| manufacturer > | Manufacturer | Производитель товара | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура Manufacturer
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| brand > | Brand | Бренд | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура Brand
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| id > | integer | Идентификатор модели. Проставляется автоматически | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| name > | string | Название модели внутренее | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| promoName > | string | Название модели для продвижения товара. Используется в качестве названия на Wildberries | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| title > | string | Название модели для печати и автоматического формирования названий товаров | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| wildberriesImtId > | integer | Идентификатор карточки товара Wildberries | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| description > | string | Описание товара | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| gender > | string | Пол | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| packWidth > | integer | Ширина упаковки товара в мм | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| packHeight > | integer | Высота упаковки товара в мм | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| packDepth > | integer | Глубина упаковки товара в мм | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| packWeight > | integer | Вес упаковки товара в гр | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| season > | string | Сезон товара. Используется для фильтрации товара в заказах поставщикам | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| materials > | string | Состав товара, нужен для одежды и обуви | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| laundry > | string | Правила ухода за вещами для одежды и обуви. Через запятую необходимо перечислить возможные значения | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| versionId > | integer | Поле нужно передавать при изменении,для предотвращения одновременной перезаписи | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| clientId > | integer | Идентификатор клиента | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| deleted > | boolean | Признак удаления модели | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| vat > | string | НДС | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| createdDate > | string | Дата создания модели | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| createdUser > | string | Пользователь, создавший модель | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| countryId > | integer | Страна производства товара. По умолчанию проставляется из производителя | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| countryName > | string | Название страны производства | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| keywords > | string | Ключевые слова для поиска | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| favourite > | boolean | Пометка товара избранным для фильтрации | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| params > | string | JSON со списком значений параметров для модели | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| values > | Array of ParamValue | Значения параметров карточки. Отдаются при запросе модели, если передать params=true | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура ParamValue
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sourceModelId > | integer | Модель из которой была создана данная модель как дубликат карточки | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| additionalInfo > | string | Дополнительная информация о товаре | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| createIndex > | integer | Индекс создания карточки - для ограничения бесплатного тарифа | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| bulk > | boolean | Признак сборки товара по штрих-кодам, безуникальных кодов | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| oneCId > | string | Идентификатор товара в 1С | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| site > | string | Адрес сайта | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| shelfLife > | integer | Срок годности в единице измерения | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| shelfLifeUnit > | string | Срок годности в единице измерения | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| shelfLifeComment > | string | Комментарий срока годности | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lifeTime > | integer | Срок службы в единице измерения | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lifeTimeUnit > | string | Срок службы в единице измерения | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lifeTimeComment > | string | Комментарий срока службы | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| modelGuarantee > | integer | Гарантийный срок в единице измерения | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| modelGuaranteeUnit > | string | Единица гарантийного срока | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| modelGuaranteeComment > | 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 = {
service: 'NONE',
modelId: '123',
updateAll: 'true',
debug: 'true',
};
const response = await axios.post('https://api.selsup.ru/api/import/importCard',
{
params,
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import axios from 'axios';
interface QueryParams {
service?: string;
modelId?: number;
updateAll?: string;
debug?: string;
}
const params: QueryParams = {
service: 'NONE',
modelId: '123',
updateAll: 'true',
debug: 'true',
};
const response = await axios.post<any>('https://api.selsup.ru/api/import/importCard',
{
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 = {
'service': 'NONE',
'modelId': '123',
'updateAll': 'true',
'debug': 'true',
}
response = requests.post(
'https://api.selsup.ru/api/import/importCard',
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/import/importCard?service=NONE&modelId=123&updateAll=true&debug=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/import/importCard?service=NONE&modelId=123&updateAll=true&debug=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 = [
'service' => 'NONE',
'modelId' => '123',
'updateAll' => 'true',
'debug' => 'true',
];
$url = 'https://api.selsup.ru/api/import/importCard?' . 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/import/importCard?service=NONE&modelId=123&updateAll=true&debug=true' \ -H 'Authorization: YOUR_API_KEY' \ -H 'Content-Type: application/json'
🔗 Импорт брендов
Создает новые бренды по данным из Excel файла
POST
/api/import/importBrands
Тело запроса
Content-Type:
multipart/form-data
| Поле | Тип | Описание |
|---|---|---|
| file Обязательный > | string | Содержимое файла для импорта брендов |
Тело ответа
✓ 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 formData = new FormData();
formData.append('file', fileInput.files[0]); // File input element
fetch('https://api.selsup.ru/api/import/importBrands', {
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/import/importBrands', {
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/import/importBrands',
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/import/importBrands", &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/import/importBrands"))
.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/import/importBrands',
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/import/importBrands' \ -H 'Authorization: YOUR_API_KEY' \ -F 'file=@/path/to/file.pdf'
🔗 Шаблоны доставки Aliexpress
Возвращает информацию о файлах импорта
POST
/api/import/getAliexpressTemplates
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| organizationId | integer | Да |
Параметр organizationId
|
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
Тип ответа:
DeliveryMethod
Элементы массива
| Поле | Тип | Описание | |
|---|---|---|---|
| delivery_method_id | integer | Нет | Идентификатор способа доставки. |
| delivery_method_name | string | Нет | Название способа доставки. |
| tpl_provider | string | Нет | Служба доставки. |
| tpl_provider_id | integer | Нет | Идентификатор службы доставки. |
| warehouse_name | string | Нет | Название склада. |
| warehouse_id | integer | Нет | Идентификатор склада |
| has_entrusted_acceptance | boolean | Нет |
⚠ 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.post('https://api.selsup.ru/api/import/getAliexpressTemplates',
{
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.post<any>('https://api.selsup.ru/api/import/getAliexpressTemplates',
{
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.post(
'https://api.selsup.ru/api/import/getAliexpressTemplates',
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/import/getAliexpressTemplates?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/import/getAliexpressTemplates?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")
.post(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/import/getAliexpressTemplates?' . 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/import/getAliexpressTemplates?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'
🔗 Поиск карточки по артикулу и связывание с маркетплейсом
Пытаемся найти карточку и связать
POST
/api/import/findCard
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| modelId | integer | Да |
Параметр modelId
|
| 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" | Да |
Параметр service
|
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| article > | string | Уникальный артикул модели | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| organizationId > | integer | Организация для товара | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| category > | Category | Категория | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура Category
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| manufacturer > | Manufacturer | Производитель товара | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура Manufacturer
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| brand > | Brand | Бренд | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура Brand
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| id > | integer | Идентификатор модели. Проставляется автоматически | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| name > | string | Название модели внутренее | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| promoName > | string | Название модели для продвижения товара. Используется в качестве названия на Wildberries | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| title > | string | Название модели для печати и автоматического формирования названий товаров | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| wildberriesImtId > | integer | Идентификатор карточки товара Wildberries | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| description > | string | Описание товара | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| gender > | string | Пол | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| packWidth > | integer | Ширина упаковки товара в мм | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| packHeight > | integer | Высота упаковки товара в мм | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| packDepth > | integer | Глубина упаковки товара в мм | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| packWeight > | integer | Вес упаковки товара в гр | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| season > | string | Сезон товара. Используется для фильтрации товара в заказах поставщикам | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| materials > | string | Состав товара, нужен для одежды и обуви | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| laundry > | string | Правила ухода за вещами для одежды и обуви. Через запятую необходимо перечислить возможные значения | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| versionId > | integer | Поле нужно передавать при изменении,для предотвращения одновременной перезаписи | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| clientId > | integer | Идентификатор клиента | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| deleted > | boolean | Признак удаления модели | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| vat > | string | НДС | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| createdDate > | string | Дата создания модели | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| createdUser > | string | Пользователь, создавший модель | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| countryId > | integer | Страна производства товара. По умолчанию проставляется из производителя | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| countryName > | string | Название страны производства | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| keywords > | string | Ключевые слова для поиска | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| favourite > | boolean | Пометка товара избранным для фильтрации | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| params > | string | JSON со списком значений параметров для модели | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| values > | Array of ParamValue | Значения параметров карточки. Отдаются при запросе модели, если передать params=true | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Структура ParamValue
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sourceModelId > | integer | Модель из которой была создана данная модель как дубликат карточки | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| additionalInfo > | string | Дополнительная информация о товаре | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| createIndex > | integer | Индекс создания карточки - для ограничения бесплатного тарифа | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| bulk > | boolean | Признак сборки товара по штрих-кодам, безуникальных кодов | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| oneCId > | string | Идентификатор товара в 1С | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| site > | string | Адрес сайта | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| shelfLife > | integer | Срок годности в единице измерения | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| shelfLifeUnit > | string | Срок годности в единице измерения | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| shelfLifeComment > | string | Комментарий срока годности | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lifeTime > | integer | Срок службы в единице измерения | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lifeTimeUnit > | string | Срок службы в единице измерения | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| lifeTimeComment > | string | Комментарий срока службы | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| modelGuarantee > | integer | Гарантийный срок в единице измерения | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| modelGuaranteeUnit > | string | Единица гарантийного срока | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| modelGuaranteeComment > | 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 = {
modelId: '123',
service: 'NONE',
};
const response = await axios.post('https://api.selsup.ru/api/import/findCard',
{
params,
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import axios from 'axios';
interface QueryParams {
modelId?: number;
service?: string;
}
const params: QueryParams = {
modelId: '123',
service: 'NONE',
};
const response = await axios.post<any>('https://api.selsup.ru/api/import/findCard',
{
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',
'service': 'NONE',
}
response = requests.post(
'https://api.selsup.ru/api/import/findCard',
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/import/findCard?modelId=123&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/import/findCard?modelId=123&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 = [
'modelId' => '123',
'service' => 'NONE',
];
$url = 'https://api.selsup.ru/api/import/findCard?' . 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/import/findCard?modelId=123&service=NONE' \ -H 'Authorization: YOUR_API_KEY' \ -H 'Content-Type: application/json'
🔗 Проверке карточки по TaskId
Пытаемся получить статус создания карточки
POST
/api/import/checkCardTasks
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| 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" | Да |
Параметр service
|
Тело запроса *Обязательно
Content-Type:
application/json
Тип данных:
integer
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
Тип ответа:
Product
Товар - уникальный с точки зрения подтребительских свойств товар.
Элементы массива
| Поле | Тип | Описание | |
|---|---|---|---|
| id | integer | Нет | Идентификатор товара. Проставляется автоматически |
| productType | string | Нет | Тип товара |
| name | string | Нет | Наименование товара внутренее |
| deleted | boolean | Нет | Признак удаления товара |
| printName | string | Нет | Название товара для внешних сервисов. Если не задано, проставляется равным наименованию товара |
| realSize | string | Нет | Российский размер товара для одежды или характеристики для других категорий |
| vendorSize | string | Нет | Размер производителя или характеристики производителя. Не обязательно заполнять |
| size | string | Нет | Размер для одежды или характеристики для внешних сервисов. Должен быть уникальным в рамках цвета |
| wildberriesImtId | integer | Нет | Используется для категорий, у которых не предусмотрен размер |
| wildberriesStockCount | integer | Нет | Остатки товара на Вайлдбериз |
| ozonId | integer | Нет | Идентификатор товара Озон на сайте |
| ozonRealFbs | boolean | Нет | Признак использования RealFbs для товара |
| ozonProductId | integer | Нет | Идентификатор товара Озон в кабинете API |
| wildberriesSizeId | integer | Нет | Идентификатор размера на Вайлдбериз |
| ozonArticle | string | Нет | Уникальный артикул товара для озон |
| externalArticle | string | Нет | Уникальный артикул товара для стороннего сервиса |
| ozonStockCount | integer | Нет | Остаток товара на складах Озон |
| ozonStockBetweenWarehouses | integer | Нет | Остаток товара в Озон, которые перемещаются между складами |
| removeFbsStock | boolean | Нет | Не выгружать остатки товара на маркетплейсы |
| purchaseCurrency | 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 = {
service: 'NONE',
};
const response = await axios.post('https://api.selsup.ru/api/import/checkCardTasks',
[
1
],
{
params,
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import axios from 'axios';
interface QueryParams {
service?: string;
}
const params: QueryParams = {
service: 'NONE',
};
const response = await axios.post<any>('https://api.selsup.ru/api/import/checkCardTasks',
[
1
],
{
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 = {
'service': 'NONE',
}
response = requests.post(
'https://api.selsup.ru/api/import/checkCardTasks',
headers=headers,
params=params,
json=[
1
]
)
print(response.json())
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
client := &http.Client{}
payload := map[string]interface{}[
1
]
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("post", "https://api.selsup.ru/api/import/checkCardTasks?service=NONE", 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/import/checkCardTasks?service=NONE"))
.header("Authorization", "YOUR_API_KEY")
.header("Content-Type", "application/json")
.post(HttpRequest.BodyPublishers.ofString(
"[1]"
))
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
<?php
$curl = curl_init();
$params = [
'service' => 'NONE',
];
$url = 'https://api.selsup.ru/api/import/checkCardTasks?' . http_build_query($params);
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'post',
CURLOPT_POSTFIELDS => json_encode([
1
]),
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/import/checkCardTasks?service=NONE' \ -H 'Authorization: YOUR_API_KEY' \ -H 'Content-Type: application/json' \ -d '[ 1 ]'
🔗 Проверке карточки по TaskId
Пытаемся получить статус создания карточки. Сейчас поддерживается только OZON
POST
/api/import/checkCardTask
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| productId | 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" | Да |
Параметр service
|
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор товара. Проставляется автоматически |
| productType > | string | Тип товара |
| name > | string | Наименование товара внутренее |
| deleted > | boolean | Признак удаления товара |
| printName > | string | Название товара для внешних сервисов. Если не задано, проставляется равным наименованию товара |
| realSize > | string | Российский размер товара для одежды или характеристики для других категорий |
| vendorSize > | string | Размер производителя или характеристики производителя. Не обязательно заполнять |
| size > | string | Размер для одежды или характеристики для внешних сервисов. Должен быть уникальным в рамках цвета |
| wildberriesImtId > | integer | Используется для категорий, у которых не предусмотрен размер |
| wildberriesStockCount > | integer | Остатки товара на Вайлдбериз |
| ozonId > | integer | Идентификатор товара Озон на сайте |
| ozonRealFbs > | boolean | Признак использования RealFbs для товара |
| ozonProductId > | integer | Идентификатор товара Озон в кабинете API |
| wildberriesSizeId > | integer | Идентификатор размера на Вайлдбериз |
| ozonArticle > | string | Уникальный артикул товара для озон |
| externalArticle > | string | Уникальный артикул товара для стороннего сервиса |
| ozonStockCount > | integer | Остаток товара на складах Озон |
| ozonStockBetweenWarehouses > | integer | Остаток товара в Озон, которые перемещаются между складами |
| removeFbsStock > | boolean | Не выгружать остатки товара на маркетплейсы |
| purchaseCurrency > | string | Валюта закупочной цены товара |
| purchasePriceInCurrency > | number | Цена закупки в валюте |
| deliveryCostInCurrency > | number | Цена на доставку в валюте |
| versionId > | integer | Поле нужно передавать при изменении,для предотвращения одновременной перезаписи |
| createdDate > | string | Дата создания товара на МП |
| created > | string | Дата создания товара в SelSup |
| createdUser > | string | Пользователь, который создал товар |
| sourceIncomeItemId > | integer | Идентификатор товара из заказа поставщика по данным которого был создан товар |
| ozonRequiredStock > | integer | Расчитанное количество товара, для поставки на склад Озон |
| wildberriesRequiredStock > | integer | Расчитанное количество товара, для поставки на склад Wildberries |
| wildberriesProfit > | number | Профит с продажи товара на Вайлдбериз по FBM |
| wildberriesProfitFbs > | number | Профит с продажи товара на Вайлдбериз по FBS |
| wildberriesOrderQuantity > | integer | Количество заказов по FBO товара на Вайлдбериз за 2 недели |
| wildberriesSupplyingQuantity > | integer | Поставляемое количество товара на Вайлдбериз по FBM заказам |
| wildberriesSaleQuantity > | integer | Продажи товара на Вайлдбериз по FBM за 2 недели |
| wildberriesQuantityInWay > | integer | Количество товаров на Вайлдбериз в пути |
| wildberriesNoSale > | boolean | Признак неликвидного товара на Вайлдбериз |
| lastStockChange > | string | Дата последнего изменения стока на Вайлдбериз по FBM |
| ozonOrderQuantity > | integer | Количество заказов товара по FBO на Озон по FBM и FBS за 2 недели |
| ozonSupplyingQuantity > | integer | Поставляемое количество товара на Озон по FBM |
| ozonProfit > | integer | Чистая маржа продажи товара на Озон по FBM |
| instockQuantity > | integer | Остатки товара на складах клиента |
| ozonFbsSku > | integer | Идентификатор товара в Озон по FBS |
| ozonFboSku > | integer | Идентификатор товара в Озон по FBO |
| sellerSku > | string | Идентификатор товара на Amazon |
| clientId > | integer | Идентификатор клиента |
| organizationId > | integer | Идентификатор организации |
| productViewId > | integer | Идентификатор цвета |
| suzId > | string | GTIN товара |
| cisType > | 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 = {
productId: '123',
service: 'NONE',
};
const response = await axios.post('https://api.selsup.ru/api/import/checkCardTask',
{
params,
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import axios from 'axios';
interface QueryParams {
productId?: number;
service?: string;
}
const params: QueryParams = {
productId: '123',
service: 'NONE',
};
const response = await axios.post<any>('https://api.selsup.ru/api/import/checkCardTask',
{
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 = {
'productId': '123',
'service': 'NONE',
}
response = requests.post(
'https://api.selsup.ru/api/import/checkCardTask',
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/import/checkCardTask?productId=123&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/import/checkCardTask?productId=123&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 = [
'productId' => '123',
'service' => 'NONE',
];
$url = 'https://api.selsup.ru/api/import/checkCardTask?' . 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/import/checkCardTask?productId=123&service=NONE' \ -H 'Authorization: YOUR_API_KEY' \ -H 'Content-Type: application/json'
🔗 Применение сверки остатков с маркетплейсами
Запускает изменение остатков по FBS в SelSup или маркетплейсе
POST
/api/import/applyStockReconciliation
Тело запроса *Обязательно
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| limit > | integer | Ограничение на количество записей. Максимальное значение - 500 |
| page > | integer | Номер страницы начиная с 1 |
| count > | boolean | Возвратить в ответе общее количество записей |
| sortBy > | string | Поле сортировки записей. Работает только при получении списка. |
| ascending > | boolean | Порядок сортировки - по возрастанию?. Работает только при получении списка. |
| query > | string | Запрос для фильтрации |
| service > | string | Сервис |
| organizationId > | integer | Организация |
| hasProduct > | boolean | Фильтр по результатам сверки остатков, в которых был найден товар в SelSup |
| ourLess > | boolean | Остаток в SelSup меньше, чем на сервисе |
| ourGreater > | boolean | Остаток в SelSup больше, чем на сервисе |
| error > | string | |
| noProduct > | boolean | Фильтр по результатам сверки остатков, в которых не был найден товар в SelSup |
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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/import/applyStockReconciliation',
{
"limit": 100,
"page": 1,
"count": "Россия",
"sortBy": "PRODUCTID",
"ascending": true,
"query": "Пример query",
"service": "NONE",
"organizationId": "АО \"Торговый дом\"",
"hasProduct": true,
"ourLess": "https://example.com/resource"
},
{
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/import/applyStockReconciliation',
{
"limit": 100,
"page": 1,
"count": "Россия",
"sortBy": "PRODUCTID",
"ascending": true,
"query": "Пример query",
"service": "NONE",
"organizationId": "АО \"Торговый дом\"",
"hasProduct": true,
"ourLess": "https://example.com/resource"
},
{
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/import/applyStockReconciliation',
headers=headers,
json={
'limit': 100,
'page': 1,
'count': 'Россия',
'sortBy': 'PRODUCTID',
'ascending': true,
'query': 'Пример query',
'service': 'NONE',
'organizationId': 'АО \'Торговый дом\'',
'hasProduct': true,
'ourLess': 'https://example.com/resource'
}
)
print(response.json())
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
client := &http.Client{}
payload := map[string]interface{}{
`limit`: 100,
`page`: 1,
`count`: `Россия`,
`sortBy`: `PRODUCTID`,
`ascending`: true,
`query`: `Пример query`,
`service`: `NONE`,
`organizationId`: `АО \`Торговый дом\``,
`hasProduct`: true,
`ourLess`: `https://example.com/resource`
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("post", "https://api.selsup.ru/api/import/applyStockReconciliation", 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/import/applyStockReconciliation"))
.header("Authorization", "YOUR_API_KEY")
.header("Content-Type", "application/json")
.post(HttpRequest.BodyPublishers.ofString(
"{\"limit\":100,\"page\":1,\"count\":\"Россия\",\"sortBy\":\"PRODUCTID\",\"ascending\":true,\"query\":\"Пример query\",\"service\":\"NONE\",\"organizationId\":\"АО \\"Торговый дом\\"\",\"hasProduct\":true,\"ourLess\":\"https://example.com/resource\"}"
))
.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/import/applyStockReconciliation',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'post',
CURLOPT_POSTFIELDS => json_encode({
'limit': 100,
'page': 1,
'count': 'Россия',
'sortBy': 'PRODUCTID',
'ascending': true,
'query': 'Пример query',
'service': 'NONE',
'organizationId': 'АО \'Торговый дом\'',
'hasProduct': true,
'ourLess': 'https://example.com/resource'
}),
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/import/applyStockReconciliation' \
-H 'Authorization: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"limit": 100,
"page": 1,
"count": "Россия",
"sortBy": "PRODUCTID",
"ascending": true,
"query": "Пример query",
"service": "NONE",
"organizationId": "АО \"Торговый дом\"",
"hasProduct": true,
"ourLess": "https://example.com/resource"
}'
🔗 Применение сверки остатков с маркетплейсами
Запускает изменение остатков по FBO в SelSup или маркетплейсе
POST
/api/import/applyFboStockReconciliation
Тело запроса *Обязательно
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| limit > | integer | Ограничение на количество записей. Максимальное значение - 500 |
| page > | integer | Номер страницы начиная с 1 |
| count > | boolean | Возвратить в ответе общее количество записей |
| sortBy > | string | Поле сортировки записей. Работает только при получении списка. |
| ascending > | boolean | Порядок сортировки - по возрастанию?. Работает только при получении списка. |
| query > | string | Запрос для фильтрации |
| service > | string | Сервис |
| organizationId > | integer | Организация |
| hasProduct > | boolean | Фильтр по результатам сверки остатков, в которых был найден товар в SelSup |
| ourLess > | boolean | Остаток в SelSup меньше, чем на сервисе |
| ourGreater > | boolean | Остаток в SelSup больше, чем на сервисе |
| error > | string | |
| noProduct > | boolean | Фильтр по результатам сверки остатков, в которых не был найден товар в SelSup |
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание |
|---|---|---|
| id > | integer | Идентификатор задачи |
| status > | string | Текущий статус задачи |
| type > | string | Тип задачи |
| name > | string | Данные задачи в json - могут быть пустыми |
| clientId > | integer | |
| entityId > | integer | Сущность, к которой относится задача |
| progress > | integer | Прогресс выполнения задачи в процентах |
| organizationId > | integer | Организация задачи, может быть 0, если не зависит от организации |
| priority > | integer | Приоритет задачи - чем выше тем быстрее задача запустится |
| properties > | string | Параметры задачи |
| rand > | integer | Используется для контроля уникальности задач в очереди. Не проставлять |
| message > | string | Сообщение с результатом выполнения задачи |
| messageParams > | string | Параметры сообщения с результатом выполнения задачи |
| createdDate > | string | Дата добавления задачи в очередь |
| startDate > | string | Дата запуска задачи |
| finishDate > | string | Дата завершения задачи |
| file > | string | Путь к результирующему файлу для скачивания. Путь строится к /files/file?path=... |
| url > | string | Ссылка на скачивание файла с результатом задачи |
| inputFilePath > | string | Пусть к файлу, не отдается по умолчанию |
| inputFileUrl > | string | Ссылка на загруженный файл |
| retryNumber > | integer | Счётчик перезапуска задачи. |
| userId > | integer | Пользователь запустивший задачу |
| retryDate > | string | Запланировання дата перезапуска |
| debug > | boolean | Запуск задачи в режиме отладки с большим логированием |
| forcedStart > | boolean | Ручной запуск задачи |
⚠ 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/import/applyFboStockReconciliation',
{
"limit": 100,
"page": 1,
"count": "Россия",
"sortBy": "PRODUCTID",
"ascending": true,
"query": "Пример query",
"service": "NONE",
"organizationId": "АО \"Торговый дом\"",
"hasProduct": true,
"ourLess": "https://example.com/resource"
},
{
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/import/applyFboStockReconciliation',
{
"limit": 100,
"page": 1,
"count": "Россия",
"sortBy": "PRODUCTID",
"ascending": true,
"query": "Пример query",
"service": "NONE",
"organizationId": "АО \"Торговый дом\"",
"hasProduct": true,
"ourLess": "https://example.com/resource"
},
{
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/import/applyFboStockReconciliation',
headers=headers,
json={
'limit': 100,
'page': 1,
'count': 'Россия',
'sortBy': 'PRODUCTID',
'ascending': true,
'query': 'Пример query',
'service': 'NONE',
'organizationId': 'АО \'Торговый дом\'',
'hasProduct': true,
'ourLess': 'https://example.com/resource'
}
)
print(response.json())
package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
)
func main() {
client := &http.Client{}
payload := map[string]interface{}{
`limit`: 100,
`page`: 1,
`count`: `Россия`,
`sortBy`: `PRODUCTID`,
`ascending`: true,
`query`: `Пример query`,
`service`: `NONE`,
`organizationId`: `АО \`Торговый дом\``,
`hasProduct`: true,
`ourLess`: `https://example.com/resource`
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("post", "https://api.selsup.ru/api/import/applyFboStockReconciliation", 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/import/applyFboStockReconciliation"))
.header("Authorization", "YOUR_API_KEY")
.header("Content-Type", "application/json")
.post(HttpRequest.BodyPublishers.ofString(
"{\"limit\":100,\"page\":1,\"count\":\"Россия\",\"sortBy\":\"PRODUCTID\",\"ascending\":true,\"query\":\"Пример query\",\"service\":\"NONE\",\"organizationId\":\"АО \\"Торговый дом\\"\",\"hasProduct\":true,\"ourLess\":\"https://example.com/resource\"}"
))
.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/import/applyFboStockReconciliation',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'post',
CURLOPT_POSTFIELDS => json_encode({
'limit': 100,
'page': 1,
'count': 'Россия',
'sortBy': 'PRODUCTID',
'ascending': true,
'query': 'Пример query',
'service': 'NONE',
'organizationId': 'АО \'Торговый дом\'',
'hasProduct': true,
'ourLess': 'https://example.com/resource'
}),
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/import/applyFboStockReconciliation' \
-H 'Authorization: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"limit": 100,
"page": 1,
"count": "Россия",
"sortBy": "PRODUCTID",
"ascending": true,
"query": "Пример query",
"service": "NONE",
"organizationId": "АО \"Торговый дом\"",
"hasProduct": true,
"ourLess": "https://example.com/resource"
}'
🔗 Импорт изображений с Wildberries
Сохраняет в карточку товара изображения с сайта Wildberries
GET
/api/import/importWildberriesImages
Тело ответа
✓ 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 response = await axios.get('https://api.selsup.ru/api/import/importWildberriesImages',
{
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/import/importWildberriesImages',
{
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/import/importWildberriesImages',
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/import/importWildberriesImages", 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/import/importWildberriesImages"))
.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/import/importWildberriesImages',
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/import/importWildberriesImages' \ -H 'Authorization: YOUR_API_KEY' \ -H 'Content-Type: application/json'
🔗 Поиск файлов импорта
Возвращает информацию о файлах импорта
GET
/api/import/findImportFile
Параметры запроса QUERY
| Название | Тип | Обязательный | Описание |
|---|---|---|---|
| organizationId | integer | Нет |
Параметр organizationId
|
| status | "CREATED""READY""PROCESSING""SUCCESS""ERROR" | Нет |
Параметр status
|
| limit | integer | Нет |
Ограничение на количество записей. Максимальное значение - 500
|
| page | integer | Нет |
Номер страницы начиная с 1
|
| count | boolean | Нет |
Возвратить в ответе общее количество записей
|
| sortBy | string | Нет |
Поле сортировки записей. Работает только при получении списка.
|
| ascending | boolean | Нет |
Порядок сортировки - по возрастанию?. Работает только при получении списка.
|
Тело ответа
✓ 200
OK
▶
Content-Type:
application/json
| Поле | Тип | Описание | |||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| rows > | Array of ImportFile | Строки с результатом поиска | |||||||||||||||||||||||||||||||||||||||||||
Структура ImportFile
|
|||||||||||||||||||||||||||||||||||||||||||||
| total > | integer | Общее количество найденных записей. Возвращается только, когда count = true | |||||||||||||||||||||||||||||||||||||||||||
| page > | 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: 'АО "Торговый дом"',
status: 'active',
limit: 'Пример limit',
page: 'Пример page',
count: 'Россия',
sortBy: 'Пример sortBy',
ascending: 'Пример ascending',
};
const response = await axios.get('https://api.selsup.ru/api/import/findImportFile',
{
params,
headers: {
'Authorization': 'YOUR_API_KEY',
'Content-Type': 'application/json'
}
}
);
console.log(response.data);
import axios from 'axios';
interface QueryParams {
organizationId?: number;
status?: string;
limit?: string;
page?: string;
count?: string;
sortBy?: string;
ascending?: string;
}
const params: QueryParams = {
organizationId: 'АО "Торговый дом"',
status: 'active',
limit: 'Пример limit',
page: 'Пример page',
count: 'Россия',
sortBy: 'Пример sortBy',
ascending: 'Пример ascending',
};
const response = await axios.get<any>('https://api.selsup.ru/api/import/findImportFile',
{
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': 'АО "Торговый дом"',
'status': 'active',
'limit': 'Пример limit',
'page': 'Пример page',
'count': 'Россия',
'sortBy': 'Пример sortBy',
'ascending': 'Пример ascending',
}
response = requests.get(
'https://api.selsup.ru/api/import/findImportFile',
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/import/findImportFile?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&status=active&limit=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20limit&page=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20page&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=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20ascending", 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/import/findImportFile?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&status=active&limit=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20limit&page=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20page&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=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20ascending"))
.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' => 'АО "Торговый дом"',
'status' => 'active',
'limit' => 'Пример limit',
'page' => 'Пример page',
'count' => 'Россия',
'sortBy' => 'Пример sortBy',
'ascending' => 'Пример ascending',
];
$url = 'https://api.selsup.ru/api/import/findImportFile?' . 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/import/findImportFile?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&status=active&limit=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20limit&page=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20page&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=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20ascending' \ -H 'Authorization: YOUR_API_KEY' \ -H 'Content-Type: application/json'