● Архитектура - REST
● Формат обмена данными - JSON
● Авторизация происходит путем валидации на каждом запросе переданного ключа в заголовке (Authorization)/параметрах/теле.
Ключ генерируется менеджером для каждого клиента, либо клиентом в личном кабинете на сайте.
● Структура:
○ Метод валидации ключа. Принимает ключ авторизации (Basic-авторизация от логина:пароля или другой хэш). Возвращает
success со значением true, либо false и message с детализацией причины.
○ Метод получения вариантов брендов (уточнений) для переданного артикула. Принимает артикул, в ответ возвращает варианты
вида:
■ Артикул
■ Бренд
■ Наименование
■ Идентификатор уточнения (для использования на следующем шаге, необязательный, если есть вариант раскрытия
уточнения с артикулом/брендом)
○ Метод получения остатков и цен. Принимает артикул/бренд или идентификатор уточнения с предыдущего шага. Возвращает
результаты поиска (искомые артикулы, аналоги, кроссы (если есть сайт, результатам на API и сайте желательно быть идентичными))
с положительными остатками и ценами вида:
■ Артикул
■ Бренд
■ Наименование
■ Количество на остатке
■ Цена
■ Признак наличия на складе (true/false)
■ Срок доставки на склад, если это заказная позиция
■ Наименование склада
■ Примечание поставщика (доп. информация, что товарневозвратный и т.д.)
■ Идентификатор товара для использования в методе добавления в корзину
○ Методы работы с корзиной:
■ Метод добавления в корзину. Принимает идентификатор товара с предыдущего метода, кол-во и комментарий к
позиции (если предполагается работа с ним). Возвращает true в случае успеха, либо false и причину, по которой не
удалось добавить товар в корзину.
■ Метод получения корзины. Не принимает ничего. В ответ возвращает текущую корзину пользователя вида:
● Артикул
● Бренд
● Наименование
● Количество
● Цена
● Наименование склада
● Комментарий клиента
● Идентификатор товара в корзине для дальнейших манипуляций с ним
■ Метод изменения количества позиции. Принимает идентификатор товара и количество, на которое нужно изменить.
Возвращает корзину с уже внесенными изменениями.
■ Метод изменения комментария позиции. Принимает идентификатор товара и комментарий. Возвращает корзину с уже
внесенными изменениями.
■ Метод удаления позиции из корзины. Принимает идентификатор товара. Возвращает корзину с уже внесенными изменениями.
■ Метод очистки корзины. Не принимает ничего. Возвращает true, если удалось очистить корзину, или false,
если не удалось.
■ Метод получения реквизитов, которые необходимо передать при оформлении заказа. Не принимает ничего. В ответ
возвращает реквизиты оформления заказа для клиента
(доступные способы оплаты, договоры, способы доставки, комментарий)
■ Метод оформления заказа из корзины. Принимает идентификаторы товаров из корзины, которые нужно отправить в
заказ, и реквизиты оформления с предыдущего шага. Возвращает true, если заказ успешно оформлен, или false, если не
удалось оформить, а также message с детализацией причины.
○ Метод получения истории заказов (всех (текущих, архивных)). Может принимать количество возвращаемых заказов или начало
периода, за который нужно вернуть заказы, или не принимает ничего, в этом случае возвращаются все заказы.
Возвращает список заказов с детализацией по товарам вида:
■ Номер заказа
■ Статус заказа (Новый, В работе, Доставлен, Отказ и т.д.)
■ Дата заказа
■ Сумма заказа
■ Комментарий
■ Список товаров заказа:
● Артикул
● Бренд
● Наименование
● Статус
● Количество
● Цена
● Склад
● Комментарий