API Smart-shop

Материал из SmartWIKI

Описание

API smart-shop.pro предназначено для автоматизированного обмена данными между вашей системой и каталогом Smart Shop. С его помощью вы можете получать актуальную информацию о товарах, остатках на складах и ценах без ручной выгрузки или обращения к менеджеру.

Данное техническое задание описывает основные принципы работы API, доступные методы, формат запросов и ответов, а также требования к авторизации и обработке данных. Документ предназначен для технических специалистов, которые будут выполнять интеграцию с сервисом smart-shop.pro.

Интеграция работает через стандартный HTTPS-протокол и описана с помощью Swagger.

Swagger

Формат обмена данными

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 Цена товара при поставке под заказ.