Акции
Методы для контроля акций и товаров в них
Базовый 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
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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'
Управление API ключом
Ключ будет сохранен локально в браузере