API Smart-shop
Описание
API smart-shop.pro предназначено для автоматизированного обмена данными между вашей системой и каталогом Smart Shop. С его помощью вы можете получать актуальную информацию о товарах, остатках на складах и ценах без ручной выгрузки или обращения к менеджеру.
Данное техническое задание описывает основные принципы работы API, доступные методы, формат запросов и ответов, а также требования к авторизации и обработке данных. Документ предназначен для технических специалистов, которые будут выполнять интеграцию с сервисом smart-shop.pro.
Интеграция работает через стандартный HTTPS-протокол и описана с помощью Swagger.
Swagger
- Боевая среда - https://api.smart-shop.pro/
- Тестовая среда - https://api-test.smart-shop.pro/
Формат обмена данными
API работает только с форматом данных JSON.
Все запросы, должны передаваться с заголовком:
Content-Type: application/json
Доступ
В API предусмотрено два вида доступа:
- Базовый доступ — передается информация о наличии товара со сроком более 1 дня, срок поставки в рабочих днях и ваша цена на товар.
- Расширенный доступ — включает данные базового доступа, а также информацию о товаре по классификации ETIM.
Для запроса доступа необходимо обратиться по адресу: tishko@smart-shop.pro.
Вам будет выдан постоянный токен для аутентификации в API.
Аутентификация
Для работы с API необходимо получить временный Bearer-токен.
Запрос выполняется методом:
POST /auth
Параметры запроса:
| Параметр | Описание |
|---|---|
token
|
Постоянный токен, выданный при предоставлении доступа к API |
Пример ответа:
{
"bearer_token": "XXX",
"expires_at": "2024-01-01T00:00:00Z"
}
Полученный bearer_token необходимо использовать для дальнейших запросов к API.
Временный токен действителен в течение 24 часов.
Важно: при повторном получении временного токена ранее выданный bearer_token становится недействительным.
Получение информации о товарах
Получение остатков, цен и сроков поставки
Метод позволяет получить информацию по одному или нескольким товарам: остатки, цены и сроки поставки.
Запрос выполняется методом:
POST /v1/get-item-with-stock-and-price
Тело запроса:
{
"include_prices": 1,
"items": [
{
"supplier_item_number": "77494",
"brand": "КВТ"
},
{
"supplier_item_number": "ЯЯС25256",
"brand": "Узола"
}
]
}
Параметры тела запроса:
| Параметр | Описание |
|---|---|
include_prices
|
Определяет, нужно ли возвращать цены. Цены возвращаются для резервации из наличия и для поставки под заказ. |
items
|
Массив товаров, по которым необходимо вернуть данные. |
supplier_item_number
|
Номер товара поставщика. |
brand
|
Бренд товара. |
Пример ответа:
{
"found_items": [
{
"supplier_item_number": "ABB123",
"brand": "ABB",
"unit": "шт.",
"avaliable_ss": 21.99,
"avaliable_vendor": 11,
"delivery_time": 5,
"prices": {
"price_from_stock": 21.99,
"price_from_vendor": 11
}
}
],
"not_found_items": [
{
"supplier_item_number": "string",
"brand": "string"
}
]
}
Поля ответа:
| Поле | Описание |
|---|---|
found_items
|
Массив найденных товаров. |
not_found_items
|
Массив товаров, по которым данные не были найдены. |
supplier_item_number
|
Номер товара поставщика. |
brand
|
Бренд товара. |
unit
|
Единица измерения товара. |
avaliable_ss
|
Количество товара в наличии. |
avaliable_vendor
|
Количество товара, доступное под заказ у поставщика. |
delivery_time
|
Срок поставки в рабочих днях. |
prices
|
Объект с ценами товара. |
price_from_stock
|
Цена товара при резервации из наличия. |
price_from_vendor
|
Цена товара при поставке под заказ. |