Подключение магазинов через API
API-эндпоинты управления магазинами
SalesFinder предоставляет 4 эндпоинта для программного управления подключениями магазинов.
Список подключённых магазинов
POST /api/2025_09/get_user_keys
Authorization: Bearer {token}
Возвращает все подключённые магазины с их статусами и параметрами.
Добавить магазин
POST /api/2025_09/create_user_keys
Authorization: Bearer {token}
Content-Type: application/json
Подключает новый магазин маркетплейса.
Обновить настройки магазина
POST /api/2025_09/update_user_keys
Authorization: Bearer {token}
Content-Type: application/json
Обновляет API-токены или настройки существующего подключения.
Удалить магазин
POST /api/2025_09/destroy_user_keys
Authorization: Bearer {token}
Content-Type: application/json
Удаляет подключение магазина.
Необходимые данные по маркетплейсам
Wildberries
| Параметр | Описание |
|---|---|
| API-токен WB | Генерируется в личном кабинете продавца Wildberries |
Один параметр — API-токен. Доступ к данным о продажах, заказах и остатках.
Получение токена:
- Войдите в личный кабинет продавца WB
- Настройки → Доступ к API
- Создайте новый токен с необходимыми правами
- Скопируйте сгенерированный токен
Ozon
| Параметр | Описание |
|---|---|
| API-токен Ozon | Генерируется в личном кабинете продавца |
| Client ID | Идентификатор клиента (выдаётся вместе с токеном) |
Два параметра — API-токен и Client ID.
Получение токена:
- Войдите в личный кабинет продавца Ozon
- Настройки → Seller API
- Создайте новый ключ API
- Скопируйте Client ID и API-ключ
Безопасность
Токены отображаются только один раз при создании. Сохраните их в надёжном месте. При утере придётся генерировать новые.
Лимиты по тарифам
| Тариф | Магазинов | API-доступ |
|---|---|---|
| Start | 2 | Нет |
| Business | 4 | Нет |
| Pro | 8 | Да |
Ограничение
Программное управление магазинами (эндпоинты create_user_keys, update_user_keys, destroy_user_keys) доступно только через API на тарифе Pro.
Процесс подключения
1. auth/login → Получить JWT-токен
2. create_user_keys → Добавить магазин (WB/Ozon токен)
3. Ожидание синхронизации (от минут до нескольких часов)
4. get_user_keys → Проверить статус подключения
5. Аналитика и репрайсер готовы к работе
Что доступно после подключения
- Данные о продажах — выручка, количество заказов, динамика
- Остатки на складах — текущие остатки по всем складам
- Заказы — история и статусы
- Цены — текущие и история изменений
- Репрайсинг — автоматическое обновление цен
Пример: Python-клиент
class SalesFinderStores:
BASE_URL = "https://api.salesfinder.ru/api/2025_09"
def __init__(self, token: str):
self.token = token
def _request(self, endpoint: str, data: dict = None):
import httpx, time
time.sleep(5)
resp = httpx.post(
f"{self.BASE_URL}/{endpoint}",
headers={
"Authorization": f"Bearer {self.token}",
"Content-Type": "application/json"
},
json=data or {}
)
return resp.json()
def list_stores(self):
"""Список всех подключённых магазинов."""
return self._request("get_user_keys")
def add_wb_store(self, wb_token: str, name: str = "WB Store"):
"""Подключить магазин Wildberries."""
return self._request("create_user_keys", {
"marketplace": "wb",
"token": wb_token,
"name": name
})
def add_ozon_store(self, ozon_token: str, client_id: str, name: str = "Ozon Store"):
"""Подключить магазин Ozon."""
return self._request("create_user_keys", {
"marketplace": "ozon",
"token": ozon_token,
"client_id": client_id,
"name": name
})
def remove_store(self, store_id: int):
"""Удалить подключение магазина."""
return self._request("destroy_user_keys", {
"id": store_id
})
Безопасность
- Токены хранятся в зашифрованном виде на серверах SalesFinder
- Используются для чтения данных, кроме операций репрайсера (запись цен)
- Доступ к токенам имеет только основной аккаунт
- При отзыве токена на маркетплейсе SalesFinder теряет доступ