Акции

Методы для контроля акций и товаров в них

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

🔗 Обновить акцию

Метод обновляет данные акцию
PUT /api/promotion/{promotionId}

Параметры пути PATH

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

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

Content-Type: application/json
ПолеТипОписание
clientId integer
promotionId integer Идентификатор акции
id integer Порядковый номер в списке запроса
totalCount integer Общее кол-во акций
name string Название акции
dateStart string Дата и время начало
dateEnd string Дата и время окончания
changeCommission boolean Меняется ли комиссия или нет
changeCommissionAmount number На какой процент сокращается комиссия
createdDate string Дата создания
service string Маркетплейс акции
isDeleted boolean Идентификатор удаления
description string Описание акции
promotionIdOnMp integer Идентификатор акции на МП
candidateCount integer Кол-во кандидатов в акцию
inPromotionCount integer Кол-во участников в акции

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
clientId integer
promotionId integer Идентификатор акции
id integer Порядковый номер в списке запроса
totalCount integer Общее кол-во акций
name string Название акции
dateStart string Дата и время начало
dateEnd string Дата и время окончания
changeCommission boolean Меняется ли комиссия или нет
changeCommissionAmount number На какой процент сокращается комиссия
createdDate string Дата создания
service string Маркетплейс акции
isDeleted boolean Идентификатор удаления
description string Описание акции
promotionIdOnMp integer Идентификатор акции на МП
candidateCount integer Кол-во кандидатов в акцию
inPromotionCount 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 response = await axios.put('https://api.selsup.ru/api/promotion/${promotionId}',
  {
    "clientId": 123,
    "promotionId": 123,
    "id": "Иванович",
    "totalCount": 10000,
    "name": "Иван",
    "dateStart": "2024-01-15T10:30:00Z",
    "dateEnd": "2024-01-15T10:30:00Z",
    "changeCommission": true,
    "changeCommissionAmount": 2500,
    "createdDate": "2024-01-15T10:30:00Z"
  },
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

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

const response = await axios.put<any>('https://api.selsup.ru/api/promotion/${promotionId}',
  {
    "clientId": 123,
    "promotionId": 123,
    "id": "Иванович",
    "totalCount": 10000,
    "name": "Иван",
    "dateStart": "2024-01-15T10:30:00Z",
    "dateEnd": "2024-01-15T10:30:00Z",
    "changeCommission": true,
    "changeCommissionAmount": 2500,
    "createdDate": "2024-01-15T10:30:00Z"
  },
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

console.log(response.data);
import requests

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

response = requests.put(
    'https://api.selsup.ru/api/promotion/${promotionId}',
    headers=headers,
    json={
    'clientId': 123,
    'promotionId': 123,
    'id': 'Иванович',
    'totalCount': 10000,
    'name': 'Иван',
    'dateStart': '2024-01-15T10:30:00Z',
    'dateEnd': '2024-01-15T10:30:00Z',
    'changeCommission': true,
    'changeCommissionAmount': 2500,
    'createdDate': '2024-01-15T10:30:00Z'
}
)

print(response.json())
package main

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

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

    payload := map[string]interface{}{
        `clientId`: 123,
        `promotionId`: 123,
        `id`: `Иванович`,
        `totalCount`: 10000,
        `name`: `Иван`,
        `dateStart`: `2024-01-15T10:30:00Z`,
        `dateEnd`: `2024-01-15T10:30:00Z`,
        `changeCommission`: true,
        `changeCommissionAmount`: 2500,
        `createdDate`: `2024-01-15T10:30:00Z`
}
    jsonData, _ := json.Marshal(payload)

    req, _ := http.NewRequest("put", "https://api.selsup.ru/api/promotion/${promotionId}", 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/promotion/${promotionId}"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .put(HttpRequest.BodyPublishers.ofString(
        "{\"clientId\":123,\"promotionId\":123,\"id\":\"Иванович\",\"totalCount\":10000,\"name\":\"Иван\",\"dateStart\":\"2024-01-15T10:30:00Z\",\"dateEnd\":\"2024-01-15T10:30:00Z\",\"changeCommission\":true,\"changeCommissionAmount\":2500,\"createdDate\":\"2024-01-15T10:30:00Z\"}"
    ))
    .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/promotion/${promotionId}',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'put',
    CURLOPT_POSTFIELDS => json_encode({
    'clientId': 123,
    'promotionId': 123,
    'id': 'Иванович',
    'totalCount': 10000,
    'name': 'Иван',
    'dateStart': '2024-01-15T10:30:00Z',
    'dateEnd': '2024-01-15T10:30:00Z',
    'changeCommission': true,
    'changeCommissionAmount': 2500,
    'createdDate': '2024-01-15T10:30:00Z'
}),
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

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

echo $response;
?>
curl -X put \
  'https://api.selsup.ru/api/promotion/{promotionId}' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "clientId": 123,
  "promotionId": 123,
  "id": "Иванович",
  "totalCount": 10000,
  "name": "Иван",
  "dateStart": "2024-01-15T10:30:00Z",
  "dateEnd": "2024-01-15T10:30:00Z",
  "changeCommission": true,
  "changeCommissionAmount": 2500,
  "createdDate": "2024-01-15T10:30:00Z"
}'

🔗 Удалить акцию

Метод удаляет акцию
DELETE /api/promotion/{promotionId}

Параметры пути PATH

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

Тело ответа

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

Примеры кода

const axios = require('axios');

const response = await axios.delete('https://api.selsup.ru/api/promotion/${promotionId}',
  {
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

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

const response = await axios.delete<any>('https://api.selsup.ru/api/promotion/${promotionId}',
  {
    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.delete(
    'https://api.selsup.ru/api/promotion/${promotionId}',
    headers=headers
)

print(response.json())
package main

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

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

    req, _ := http.NewRequest("delete", "https://api.selsup.ru/api/promotion/${promotionId}", 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/promotion/${promotionId}"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .delete(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/promotion/${promotionId}',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'delete',
    CURLOPT_HTTPHEADER => [
        'Authorization: YOUR_API_KEY',
        'Content-Type: application/json'
    ]
]);

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

echo $response;
?>
curl -X delete \
  'https://api.selsup.ru/api/promotion/{promotionId}' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Обновить данные

Метод ставит задачу обновления данных по акциям ОЗОН в очередь
POST /api/promotion/ozon/update

Тело ответа

✓ 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/promotion/ozon/update',
  {
    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/promotion/ozon/update',
  {
    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/promotion/ozon/update',
    headers=headers
)

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/promotion/ozon/update", 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/promotion/ozon/update"))
    .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();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://api.selsup.ru/api/promotion/ozon/update',
    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/promotion/ozon/update' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json'

🔗 Добавить удаляет товары из акции

Метод удаляет товары из акции
POST /api/promotion/deleteProductsInPromotion

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

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

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

Content-Type: application/json
Тип данных: ProductPromotion
Структура элемента:
ПолеТипОписание
categoryName string Категория
brandName string Бренд
subject string
purchasePrice number
deliveryCost number
additionalCost number
barcode string
instockQuantity integer
wildberriesStockCount integer
createdDate string
minPrice number
isDuplicate boolean
ozonArticle string
ozonStockCount integer
salesExpensesOnMpPercent number
taxeRate number
width integer
height integer
depth integer
ozonPurchasePercent number

Тело ответа

✓ 200 OK
Content-Type: application/json
Тип ответа: OzonProduct
Элементы массива
Поле Тип Описание
product_id integer Нет Идентификатор товара.
action_price number Нет Цена товара по акции.
stock integer Нет Количество единиц товара в акции типа «Скидка на сток».
reason 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 = {
  promotionId: '123',
  clientOrganizationId: 'АО "Торговый дом"',
};

const response = await axios.post('https://api.selsup.ru/api/promotion/deleteProductsInPromotion',
  [
    {
      "categoryName": "Электроника",
      "brandName": "Бренд А",
      "subject": "Пример subject",
      "purchasePrice": 1999.99,
      "deliveryCost": 1500,
      "additionalCost": 1500,
      "barcode": "4600123456789",
      "instockQuantity": 10,
      "wildberriesStockCount": 42,
      "createdDate": "2024-01-15T10:30:00Z"
    }
  ],
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

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

interface QueryParams {
  promotionId?: number;
  clientOrganizationId?: number;
}

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

const response = await axios.post<any>('https://api.selsup.ru/api/promotion/deleteProductsInPromotion',
  [
    {
      "categoryName": "Электроника",
      "brandName": "Бренд А",
      "subject": "Пример subject",
      "purchasePrice": 1999.99,
      "deliveryCost": 1500,
      "additionalCost": 1500,
      "barcode": "4600123456789",
      "instockQuantity": 10,
      "wildberriesStockCount": 42,
      "createdDate": "2024-01-15T10:30:00Z"
    }
  ],
  {
    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 = {
    'promotionId': '123',
    'clientOrganizationId': 'АО "Торговый дом"',
}

response = requests.post(
    'https://api.selsup.ru/api/promotion/deleteProductsInPromotion',
    headers=headers,
    params=params,
    json=[
    {
        'categoryName': 'Электроника',
        'brandName': 'Бренд А',
        'subject': 'Пример subject',
        'purchasePrice': 1999.99,
        'deliveryCost': 1500,
        'additionalCost': 1500,
        'barcode': '4600123456789',
        'instockQuantity': 10,
        'wildberriesStockCount': 42,
        'createdDate': '2024-01-15T10:30:00Z'
    }
]
)

print(response.json())
package main

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

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

    payload := map[string]interface{}[
        {
                `categoryName`: `Электроника`,
                `brandName`: `Бренд А`,
                `subject`: `Пример subject`,
                `purchasePrice`: 1999.99,
                `deliveryCost`: 1500,
                `additionalCost`: 1500,
                `barcode`: `4600123456789`,
                `instockQuantity`: 10,
                `wildberriesStockCount`: 42,
                `createdDate`: `2024-01-15T10:30:00Z`
        }
]
    jsonData, _ := json.Marshal(payload)

    req, _ := http.NewRequest("post", "https://api.selsup.ru/api/promotion/deleteProductsInPromotion?promotionId=123&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22", 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/promotion/deleteProductsInPromotion?promotionId=123&clientOrganizationId=%D0%90%D0%9E%20%22%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.ofString(
        "[{\"categoryName\":\"Электроника\",\"brandName\":\"Бренд А\",\"subject\":\"Пример subject\",\"purchasePrice\":1999.99,\"deliveryCost\":1500,\"additionalCost\":1500,\"barcode\":\"4600123456789\",\"instockQuantity\":10,\"wildberriesStockCount\":42,\"createdDate\":\"2024-01-15T10:30:00Z\"}]"
    ))
    .build();

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

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

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

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'post',
    CURLOPT_POSTFIELDS => json_encode([
    {
        'categoryName': 'Электроника',
        'brandName': 'Бренд А',
        'subject': 'Пример subject',
        'purchasePrice': 1999.99,
        'deliveryCost': 1500,
        'additionalCost': 1500,
        'barcode': '4600123456789',
        'instockQuantity': 10,
        'wildberriesStockCount': 42,
        'createdDate': '2024-01-15T10:30:00Z'
    }
]),
    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/promotion/deleteProductsInPromotion?promotionId=123&clientOrganizationId=%D0%90%D0%9E%20%22%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' \
  -d '[
  {
    "categoryName": "Электроника",
    "brandName": "Бренд А",
    "subject": "Пример subject",
    "purchasePrice": 1999.99,
    "deliveryCost": 1500,
    "additionalCost": 1500,
    "barcode": "4600123456789",
    "instockQuantity": 10,
    "wildberriesStockCount": 42,
    "createdDate": "2024-01-15T10:30:00Z"
  }
]'

🔗 Добавить товары в акцию

Метод добавляет товары в акцию
POST /api/promotion/addProductsInPromotion

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

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

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

Content-Type: application/json
Тип данных: ProductPromotion
Структура элемента:
ПолеТипОписание
categoryName string Категория
brandName string Бренд
subject string
purchasePrice number
deliveryCost number
additionalCost number
barcode string
instockQuantity integer
wildberriesStockCount integer
createdDate string
minPrice number
isDuplicate boolean
ozonArticle string
ozonStockCount integer
salesExpensesOnMpPercent number
taxeRate number
width integer
height integer
depth integer
ozonPurchasePercent number

Тело ответа

✓ 200 OK
Content-Type: application/json
Тип ответа: OzonProduct
Элементы массива
Поле Тип Описание
product_id integer Нет Идентификатор товара.
action_price number Нет Цена товара по акции.
stock integer Нет Количество единиц товара в акции типа «Скидка на сток».
reason 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 = {
  promotionId: '123',
  clientOrganizationId: 'АО "Торговый дом"',
};

const response = await axios.post('https://api.selsup.ru/api/promotion/addProductsInPromotion',
  [
    {
      "categoryName": "Электроника",
      "brandName": "Бренд А",
      "subject": "Пример subject",
      "purchasePrice": 1999.99,
      "deliveryCost": 1500,
      "additionalCost": 1500,
      "barcode": "4600123456789",
      "instockQuantity": 10,
      "wildberriesStockCount": 42,
      "createdDate": "2024-01-15T10:30:00Z"
    }
  ],
  {
    params,
    headers: {
      'Authorization': 'YOUR_API_KEY',
      'Content-Type': 'application/json'
    }
  }
);

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

interface QueryParams {
  promotionId?: number;
  clientOrganizationId?: number;
}

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

const response = await axios.post<any>('https://api.selsup.ru/api/promotion/addProductsInPromotion',
  [
    {
      "categoryName": "Электроника",
      "brandName": "Бренд А",
      "subject": "Пример subject",
      "purchasePrice": 1999.99,
      "deliveryCost": 1500,
      "additionalCost": 1500,
      "barcode": "4600123456789",
      "instockQuantity": 10,
      "wildberriesStockCount": 42,
      "createdDate": "2024-01-15T10:30:00Z"
    }
  ],
  {
    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 = {
    'promotionId': '123',
    'clientOrganizationId': 'АО "Торговый дом"',
}

response = requests.post(
    'https://api.selsup.ru/api/promotion/addProductsInPromotion',
    headers=headers,
    params=params,
    json=[
    {
        'categoryName': 'Электроника',
        'brandName': 'Бренд А',
        'subject': 'Пример subject',
        'purchasePrice': 1999.99,
        'deliveryCost': 1500,
        'additionalCost': 1500,
        'barcode': '4600123456789',
        'instockQuantity': 10,
        'wildberriesStockCount': 42,
        'createdDate': '2024-01-15T10:30:00Z'
    }
]
)

print(response.json())
package main

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

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

    payload := map[string]interface{}[
        {
                `categoryName`: `Электроника`,
                `brandName`: `Бренд А`,
                `subject`: `Пример subject`,
                `purchasePrice`: 1999.99,
                `deliveryCost`: 1500,
                `additionalCost`: 1500,
                `barcode`: `4600123456789`,
                `instockQuantity`: 10,
                `wildberriesStockCount`: 42,
                `createdDate`: `2024-01-15T10:30:00Z`
        }
]
    jsonData, _ := json.Marshal(payload)

    req, _ := http.NewRequest("post", "https://api.selsup.ru/api/promotion/addProductsInPromotion?promotionId=123&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22", 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/promotion/addProductsInPromotion?promotionId=123&clientOrganizationId=%D0%90%D0%9E%20%22%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.ofString(
        "[{\"categoryName\":\"Электроника\",\"brandName\":\"Бренд А\",\"subject\":\"Пример subject\",\"purchasePrice\":1999.99,\"deliveryCost\":1500,\"additionalCost\":1500,\"barcode\":\"4600123456789\",\"instockQuantity\":10,\"wildberriesStockCount\":42,\"createdDate\":\"2024-01-15T10:30:00Z\"}]"
    ))
    .build();

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

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

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

curl_setopt_array($curl, [
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'post',
    CURLOPT_POSTFIELDS => json_encode([
    {
        'categoryName': 'Электроника',
        'brandName': 'Бренд А',
        'subject': 'Пример subject',
        'purchasePrice': 1999.99,
        'deliveryCost': 1500,
        'additionalCost': 1500,
        'barcode': '4600123456789',
        'instockQuantity': 10,
        'wildberriesStockCount': 42,
        'createdDate': '2024-01-15T10:30:00Z'
    }
]),
    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/promotion/addProductsInPromotion?promotionId=123&clientOrganizationId=%D0%90%D0%9E%20%22%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' \
  -d '[
  {
    "categoryName": "Электроника",
    "brandName": "Бренд А",
    "subject": "Пример subject",
    "purchasePrice": 1999.99,
    "deliveryCost": 1500,
    "additionalCost": 1500,
    "barcode": "4600123456789",
    "instockQuantity": 10,
    "wildberriesStockCount": 42,
    "createdDate": "2024-01-15T10:30:00Z"
  }
]'

🔗 Создать акцию

Метод создает акцию
POST /api/promotion/

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

Content-Type: application/json
ПолеТипОписание
clientId integer
promotionId integer Идентификатор акции
id integer Порядковый номер в списке запроса
totalCount integer Общее кол-во акций
name string Название акции
dateStart string Дата и время начало
dateEnd string Дата и время окончания
changeCommission boolean Меняется ли комиссия или нет
changeCommissionAmount number На какой процент сокращается комиссия
createdDate string Дата создания
service string Маркетплейс акции
isDeleted boolean Идентификатор удаления
description string Описание акции
promotionIdOnMp integer Идентификатор акции на МП
candidateCount integer Кол-во кандидатов в акцию
inPromotionCount integer Кол-во участников в акции

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
clientId integer
promotionId integer Идентификатор акции
id integer Порядковый номер в списке запроса
totalCount integer Общее кол-во акций
name string Название акции
dateStart string Дата и время начало
dateEnd string Дата и время окончания
changeCommission boolean Меняется ли комиссия или нет
changeCommissionAmount number На какой процент сокращается комиссия
createdDate string Дата создания
service string Маркетплейс акции
isDeleted boolean Идентификатор удаления
description string Описание акции
promotionIdOnMp integer Идентификатор акции на МП
candidateCount integer Кол-во кандидатов в акцию
inPromotionCount 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 response = await axios.post('https://api.selsup.ru/api/promotion/',
  {
    "clientId": 123,
    "promotionId": 123,
    "id": "Иванович",
    "totalCount": 10000,
    "name": "Иван",
    "dateStart": "2024-01-15T10:30:00Z",
    "dateEnd": "2024-01-15T10:30:00Z",
    "changeCommission": true,
    "changeCommissionAmount": 2500,
    "createdDate": "2024-01-15T10:30:00Z"
  },
  {
    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/promotion/',
  {
    "clientId": 123,
    "promotionId": 123,
    "id": "Иванович",
    "totalCount": 10000,
    "name": "Иван",
    "dateStart": "2024-01-15T10:30:00Z",
    "dateEnd": "2024-01-15T10:30:00Z",
    "changeCommission": true,
    "changeCommissionAmount": 2500,
    "createdDate": "2024-01-15T10:30:00Z"
  },
  {
    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/promotion/',
    headers=headers,
    json={
    'clientId': 123,
    'promotionId': 123,
    'id': 'Иванович',
    'totalCount': 10000,
    'name': 'Иван',
    'dateStart': '2024-01-15T10:30:00Z',
    'dateEnd': '2024-01-15T10:30:00Z',
    'changeCommission': true,
    'changeCommissionAmount': 2500,
    'createdDate': '2024-01-15T10:30:00Z'
}
)

print(response.json())
package main

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

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

    payload := map[string]interface{}{
        `clientId`: 123,
        `promotionId`: 123,
        `id`: `Иванович`,
        `totalCount`: 10000,
        `name`: `Иван`,
        `dateStart`: `2024-01-15T10:30:00Z`,
        `dateEnd`: `2024-01-15T10:30:00Z`,
        `changeCommission`: true,
        `changeCommissionAmount`: 2500,
        `createdDate`: `2024-01-15T10:30:00Z`
}
    jsonData, _ := json.Marshal(payload)

    req, _ := http.NewRequest("post", "https://api.selsup.ru/api/promotion/", 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/promotion/"))
    .header("Authorization", "YOUR_API_KEY")
    .header("Content-Type", "application/json")
    .post(HttpRequest.BodyPublishers.ofString(
        "{\"clientId\":123,\"promotionId\":123,\"id\":\"Иванович\",\"totalCount\":10000,\"name\":\"Иван\",\"dateStart\":\"2024-01-15T10:30:00Z\",\"dateEnd\":\"2024-01-15T10:30:00Z\",\"changeCommission\":true,\"changeCommissionAmount\":2500,\"createdDate\":\"2024-01-15T10:30:00Z\"}"
    ))
    .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/promotion/',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_CUSTOMREQUEST => 'post',
    CURLOPT_POSTFIELDS => json_encode({
    'clientId': 123,
    'promotionId': 123,
    'id': 'Иванович',
    'totalCount': 10000,
    'name': 'Иван',
    'dateStart': '2024-01-15T10:30:00Z',
    'dateEnd': '2024-01-15T10:30:00Z',
    'changeCommission': true,
    'changeCommissionAmount': 2500,
    'createdDate': '2024-01-15T10:30:00Z'
}),
    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/promotion/' \
  -H 'Authorization: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "clientId": 123,
  "promotionId": 123,
  "id": "Иванович",
  "totalCount": 10000,
  "name": "Иван",
  "dateStart": "2024-01-15T10:30:00Z",
  "dateEnd": "2024-01-15T10:30:00Z",
  "changeCommission": true,
  "changeCommissionAmount": 2500,
  "createdDate": "2024-01-15T10:30:00Z"
}'

🔗 Список акций

Метод возвращает все продукты в акции по фильтру
GET /api/promotion/getProductsInPromotion

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

Название Тип Обязательный Описание
dateFrom Date Нет Дата начала акции
dateTo Date Нет Дата окончания акции
promotionId integer Нет Идентификатор акции
service string Нет Сервис
reDownload string Нет Идентификатор, что нужно перезакачать данные с МП
clientOrganizationId integer Нет Идентификатор организации
minMargin string Нет Минимальная маржа, руб
minMarginPercent string Нет Минимальная маржинальность, %
isActive boolean Нет передавать только если надо вывести уже примененные акции, в таком случае передается true. В остальных случаях можно не передавать, по дефолту будет false
isDeleted boolean Нет Параметр isDeleted
query string Нет по названию или артикулу товара
promotionIdOnMp integer Нет Идентификатор акции на сервисе
categoryId integer Нет Идентификатор категории
categoryIds integer Нет Идентификатор категорий
clientId integer Нет Идентификатор клиента
inStock string Нет В наличии
limit integer Нет Ограничение на количество записей. Максимальное значение - 500
page integer Нет Номер страницы начиная с 1
count boolean Нет Возвратить в ответе общее количество записей
sortBy string Нет Поле сортировки записей. Работает только при получении списка.
ascending boolean Нет Порядок сортировки - по возрастанию?. Работает только при получении списка.

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of ProductPromotion Строки с результатом поиска
Структура ProductPromotion
Поле Тип Описание
categoryName string Категория
brandName string Бренд
subject string
purchasePrice number
deliveryCost number
additionalCost number
barcode string
instockQuantity integer
wildberriesStockCount integer
createdDate string
minPrice number
isDuplicate boolean
ozonArticle string
ozonStockCount integer
salesExpensesOnMpPercent number
taxeRate number
width integer
height integer
depth integer
ozonPurchasePercent number
warehouseRatio number
wildberriesCommission number
wildberriesAdditionalExpenses number
ozonAdditionalExpenses number
ozonCommission number
wildberriesId integer
productId integer Идентификатор продукта
promotionId integer Идентификатор акции
ozonFbsCommission number Озон ФБС комиссия
ozonFboCommission number Озон ФБО комиссия
service string Сервис
currentPrice number Текущая цена со скидкой
currentPriceWithoutDiscount number Текущая цена без скидкой
plannedPrice number Планируемая цена под акцию
totalStockCount integer
commissionReduction number
profitDifference number
marginDifference number
markupDifference number
plannedAndMinPriceDiff number
incomeDifference number
currentDiscount number
productCreatedDate string
mainImageUrl string Ссылка на основное изображение
isProfitably boolean
taskId integer Идентификатор задачи
serviceArticle string Артикул на сервисе
article string Модель артикул
daysCountOnService integer Кол-во дней на сервисе
turnover integer Оборачиваемость
fboStock integer ФБО остаток
fbsStock integer ФБС остаток
newDiscountForPromotion number
saleLogistics number Логистика при продаже
returnLogistics number Обратная логистика
purchasePercent number Процент выкупа
totalLogistics number Логистика
commissions number Комиссия
currentProfit number Текущая прибыль
promotionProfit number Прибыль под акцию
currentMarginality number Текущая маржинальность
promotionMarginality number Маржинальность под акцию
currentMarkUp number Текущая наценка
promotionMarkUp number Наценка под акцию
additionalDiscountForPromotionRub number Дополнительная скидка под акции в руб
additionalDiscountForPromotionPercent number Дополнительная скидка под акции в %
isDeleted boolean Удаленный?
organizationId integer Идентификатор организации
clientId integer Идентификатор клиента
addMode string Тип добавления товара в акцию: автоматически или вручную продавцом.
ozonAverageExpenses number
isActive boolean Товар в акции или нет
changeName string Кто вносил корректировки
changeDate string Дата когда вносили изменения
productName string Название продукта
id integer Порядковый номер в общем списке, для фронта
totalCount integer Общее кол-во
serviceCard string Идентификатор продукта на сервисе
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 = {
  dateFrom: 'Пример dateFrom',
  dateTo: 'Пример dateTo',
  promotionId: 'Пример promotionId',
  service: 'Пример service',
  reDownload: 'Пример reDownload',
  clientOrganizationId: 'АО "Торговый дом"',
  minMargin: 'Пример minMargin',
  minMarginPercent: 'Пример minMarginPercent',
  isActive: 'true',
  isDeleted: 'false',
  query: 'Пример query',
  promotionIdOnMp: 'Пример promotionIdOnMp',
  categoryId: 'Пример categoryId',
  categoryIds: 'Пример categoryIds',
  clientId: '123',
  inStock: 'Пример inStock',
  limit: 'Пример limit',
  page: 'Пример page',
  count: 'Россия',
  sortBy: 'Пример sortBy',
  ascending: 'Пример ascending',
};

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

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

interface QueryParams {
  dateFrom?: string;
  dateTo?: string;
  promotionId?: string;
  service?: string;
  reDownload?: string;
  clientOrganizationId?: string;
  minMargin?: string;
  minMarginPercent?: string;
  isActive?: string;
  isDeleted?: string;
  query?: string;
  promotionIdOnMp?: string;
  categoryId?: string;
  categoryIds?: string;
  clientId?: number;
  inStock?: string;
  limit?: string;
  page?: string;
  count?: string;
  sortBy?: string;
  ascending?: string;
}

const params: QueryParams = {
  dateFrom: 'Пример dateFrom',
  dateTo: 'Пример dateTo',
  promotionId: 'Пример promotionId',
  service: 'Пример service',
  reDownload: 'Пример reDownload',
  clientOrganizationId: 'АО "Торговый дом"',
  minMargin: 'Пример minMargin',
  minMarginPercent: 'Пример minMarginPercent',
  isActive: 'true',
  isDeleted: 'false',
  query: 'Пример query',
  promotionIdOnMp: 'Пример promotionIdOnMp',
  categoryId: 'Пример categoryId',
  categoryIds: 'Пример categoryIds',
  clientId: '123',
  inStock: 'Пример inStock',
  limit: 'Пример limit',
  page: 'Пример page',
  count: 'Россия',
  sortBy: 'Пример sortBy',
  ascending: 'Пример ascending',
};

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

console.log(response.data);
import requests

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

params = {
    'dateFrom': 'Пример dateFrom',
    'dateTo': 'Пример dateTo',
    'promotionId': 'Пример promotionId',
    'service': 'Пример service',
    'reDownload': 'Пример reDownload',
    'clientOrganizationId': 'АО "Торговый дом"',
    'minMargin': 'Пример minMargin',
    'minMarginPercent': 'Пример minMarginPercent',
    'isActive': 'true',
    'isDeleted': 'false',
    'query': 'Пример query',
    'promotionIdOnMp': 'Пример promotionIdOnMp',
    'categoryId': 'Пример categoryId',
    'categoryIds': 'Пример categoryIds',
    'clientId': '123',
    'inStock': 'Пример inStock',
    'limit': 'Пример limit',
    'page': 'Пример page',
    'count': 'Россия',
    'sortBy': 'Пример sortBy',
    'ascending': 'Пример ascending',
}

response = requests.get(
    'https://api.selsup.ru/api/promotion/getProductsInPromotion',
    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/promotion/getProductsInPromotion?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&promotionId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20promotionId&service=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20service&reDownload=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20reDownload&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&minMargin=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20minMargin&minMarginPercent=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20minMarginPercent&isActive=true&isDeleted=false&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&promotionIdOnMp=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20promotionIdOnMp&categoryId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20categoryId&categoryIds=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20categoryIds&clientId=123&inStock=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20inStock&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/promotion/getProductsInPromotion?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&promotionId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20promotionId&service=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20service&reDownload=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20reDownload&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&minMargin=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20minMargin&minMarginPercent=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20minMarginPercent&isActive=true&isDeleted=false&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&promotionIdOnMp=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20promotionIdOnMp&categoryId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20categoryId&categoryIds=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20categoryIds&clientId=123&inStock=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20inStock&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 = [
    'dateFrom' => 'Пример dateFrom',
    'dateTo' => 'Пример dateTo',
    'promotionId' => 'Пример promotionId',
    'service' => 'Пример service',
    'reDownload' => 'Пример reDownload',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'minMargin' => 'Пример minMargin',
    'minMarginPercent' => 'Пример minMarginPercent',
    'isActive' => 'true',
    'isDeleted' => 'false',
    'query' => 'Пример query',
    'promotionIdOnMp' => 'Пример promotionIdOnMp',
    'categoryId' => 'Пример categoryId',
    'categoryIds' => 'Пример categoryIds',
    'clientId' => '123',
    'inStock' => 'Пример inStock',
    'limit' => 'Пример limit',
    'page' => 'Пример page',
    'count' => 'Россия',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'Пример ascending',
];

$url = 'https://api.selsup.ru/api/promotion/getProductsInPromotion?' . 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/promotion/getProductsInPromotion?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&promotionId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20promotionId&service=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20service&reDownload=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20reDownload&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&minMargin=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20minMargin&minMarginPercent=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20minMarginPercent&isActive=true&isDeleted=value&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&promotionIdOnMp=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20promotionIdOnMp&categoryId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20categoryId&categoryIds=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20categoryIds&clientId=123&inStock=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20inStock&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'

🔗 Список акций

Метод возвращает все акции по фильтру
GET /api/promotion/getAllPromotionByFilter

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

Название Тип Обязательный Описание
dateFrom Date Нет Дата начала акции
dateTo Date Нет Дата окончания акции
promotionId integer Нет Идентификатор акции
service string Нет Сервис
reDownload string Нет Идентификатор, что нужно перезакачать данные с МП
clientOrganizationId integer Нет Идентификатор организации
minMargin string Нет Минимальная маржа, руб
minMarginPercent string Нет Минимальная маржинальность, %
isActive boolean Нет передавать только если надо вывести уже примененные акции, в таком случае передается true. В остальных случаях можно не передавать, по дефолту будет false
isDeleted boolean Нет Параметр isDeleted
query string Нет по названию или артикулу товара
promotionIdOnMp integer Нет Идентификатор акции на сервисе
categoryId integer Нет Идентификатор категории
categoryIds integer Нет Идентификатор категорий
clientId integer Нет Идентификатор клиента
inStock string Нет В наличии
limit integer Нет Ограничение на количество записей. Максимальное значение - 500
page integer Нет Номер страницы начиная с 1
count boolean Нет Возвратить в ответе общее количество записей
sortBy string Нет Поле сортировки записей. Работает только при получении списка.
ascending boolean Нет Порядок сортировки - по возрастанию?. Работает только при получении списка.

Тело ответа

✓ 200 OK
Content-Type: application/json
Поле Тип Описание
rows Array of Promotion Строки с результатом поиска
Структура Promotion
Поле Тип Описание
clientId integer
promotionId integer Идентификатор акции
id integer Порядковый номер в списке запроса
totalCount integer Общее кол-во акций
name string Название акции
dateStart string Дата и время начало
dateEnd string Дата и время окончания
changeCommission boolean Меняется ли комиссия или нет
changeCommissionAmount number На какой процент сокращается комиссия
createdDate string Дата создания
service string Маркетплейс акции
isDeleted boolean Идентификатор удаления
description string Описание акции
promotionIdOnMp integer Идентификатор акции на МП
candidateCount integer Кол-во кандидатов в акцию
inPromotionCount integer Кол-во участников в акции
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 = {
  dateFrom: 'Пример dateFrom',
  dateTo: 'Пример dateTo',
  promotionId: 'Пример promotionId',
  service: 'Пример service',
  reDownload: 'Пример reDownload',
  clientOrganizationId: 'АО "Торговый дом"',
  minMargin: 'Пример minMargin',
  minMarginPercent: 'Пример minMarginPercent',
  isActive: 'true',
  isDeleted: 'false',
  query: 'Пример query',
  promotionIdOnMp: 'Пример promotionIdOnMp',
  categoryId: 'Пример categoryId',
  categoryIds: 'Пример categoryIds',
  clientId: '123',
  inStock: 'Пример inStock',
  limit: 'Пример limit',
  page: 'Пример page',
  count: 'Россия',
  sortBy: 'Пример sortBy',
  ascending: 'Пример ascending',
};

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

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

interface QueryParams {
  dateFrom?: string;
  dateTo?: string;
  promotionId?: string;
  service?: string;
  reDownload?: string;
  clientOrganizationId?: string;
  minMargin?: string;
  minMarginPercent?: string;
  isActive?: string;
  isDeleted?: string;
  query?: string;
  promotionIdOnMp?: string;
  categoryId?: string;
  categoryIds?: string;
  clientId?: number;
  inStock?: string;
  limit?: string;
  page?: string;
  count?: string;
  sortBy?: string;
  ascending?: string;
}

const params: QueryParams = {
  dateFrom: 'Пример dateFrom',
  dateTo: 'Пример dateTo',
  promotionId: 'Пример promotionId',
  service: 'Пример service',
  reDownload: 'Пример reDownload',
  clientOrganizationId: 'АО "Торговый дом"',
  minMargin: 'Пример minMargin',
  minMarginPercent: 'Пример minMarginPercent',
  isActive: 'true',
  isDeleted: 'false',
  query: 'Пример query',
  promotionIdOnMp: 'Пример promotionIdOnMp',
  categoryId: 'Пример categoryId',
  categoryIds: 'Пример categoryIds',
  clientId: '123',
  inStock: 'Пример inStock',
  limit: 'Пример limit',
  page: 'Пример page',
  count: 'Россия',
  sortBy: 'Пример sortBy',
  ascending: 'Пример ascending',
};

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

console.log(response.data);
import requests

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

params = {
    'dateFrom': 'Пример dateFrom',
    'dateTo': 'Пример dateTo',
    'promotionId': 'Пример promotionId',
    'service': 'Пример service',
    'reDownload': 'Пример reDownload',
    'clientOrganizationId': 'АО "Торговый дом"',
    'minMargin': 'Пример minMargin',
    'minMarginPercent': 'Пример minMarginPercent',
    'isActive': 'true',
    'isDeleted': 'false',
    'query': 'Пример query',
    'promotionIdOnMp': 'Пример promotionIdOnMp',
    'categoryId': 'Пример categoryId',
    'categoryIds': 'Пример categoryIds',
    'clientId': '123',
    'inStock': 'Пример inStock',
    'limit': 'Пример limit',
    'page': 'Пример page',
    'count': 'Россия',
    'sortBy': 'Пример sortBy',
    'ascending': 'Пример ascending',
}

response = requests.get(
    'https://api.selsup.ru/api/promotion/getAllPromotionByFilter',
    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/promotion/getAllPromotionByFilter?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&promotionId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20promotionId&service=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20service&reDownload=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20reDownload&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&minMargin=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20minMargin&minMarginPercent=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20minMarginPercent&isActive=true&isDeleted=false&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&promotionIdOnMp=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20promotionIdOnMp&categoryId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20categoryId&categoryIds=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20categoryIds&clientId=123&inStock=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20inStock&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/promotion/getAllPromotionByFilter?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&promotionId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20promotionId&service=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20service&reDownload=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20reDownload&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&minMargin=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20minMargin&minMarginPercent=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20minMarginPercent&isActive=true&isDeleted=false&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&promotionIdOnMp=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20promotionIdOnMp&categoryId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20categoryId&categoryIds=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20categoryIds&clientId=123&inStock=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20inStock&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 = [
    'dateFrom' => 'Пример dateFrom',
    'dateTo' => 'Пример dateTo',
    'promotionId' => 'Пример promotionId',
    'service' => 'Пример service',
    'reDownload' => 'Пример reDownload',
    'clientOrganizationId' => 'АО "Торговый дом"',
    'minMargin' => 'Пример minMargin',
    'minMarginPercent' => 'Пример minMarginPercent',
    'isActive' => 'true',
    'isDeleted' => 'false',
    'query' => 'Пример query',
    'promotionIdOnMp' => 'Пример promotionIdOnMp',
    'categoryId' => 'Пример categoryId',
    'categoryIds' => 'Пример categoryIds',
    'clientId' => '123',
    'inStock' => 'Пример inStock',
    'limit' => 'Пример limit',
    'page' => 'Пример page',
    'count' => 'Россия',
    'sortBy' => 'Пример sortBy',
    'ascending' => 'Пример ascending',
];

$url = 'https://api.selsup.ru/api/promotion/getAllPromotionByFilter?' . 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/promotion/getAllPromotionByFilter?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&promotionId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20promotionId&service=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20service&reDownload=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20reDownload&clientOrganizationId=%D0%90%D0%9E%20%22%D0%A2%D0%BE%D1%80%D0%B3%D0%BE%D0%B2%D1%8B%D0%B9%20%D0%B4%D0%BE%D0%BC%22&minMargin=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20minMargin&minMarginPercent=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20minMarginPercent&isActive=true&isDeleted=value&query=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20query&promotionIdOnMp=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20promotionIdOnMp&categoryId=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20categoryId&categoryIds=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20categoryIds&clientId=123&inStock=%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%20inStock&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'