Sportmaster OpenAPI with speca ext import

Responses
400 EmptyResponse

Пустой ответ сервера

Body
application/json
Object
data
Object required
Operations: DEP Добавить товар в избранное DEP Отменить заказ DEP Отменить редактируемый заказ DEP Создать обращение DEP Удалить товар из избранного DEPRECATED Прислать колбэк о создании сегмента пользователей Активировать бонусную акцию Активировать вознаграждение Выбрать любимый вид спорта Добавить адрес доставки Добавить товар в список сравнения Задать вопрос о товаре Зарегистрировать индивидуального спортсмена Изменить адрес доставки Конвертировать бонусы Открыть спор по возврату Отменить возврат Отменить заказ Отметить уведомление как прочитанное Отправить push token Отправить анкету тренера Отправить документы тренера на верификацию Отправить заявку ГЛЦ Отправить интересы Отправить письмо подтверждения на почту Отправить причину редактирования заказа Отправить событие неактивности чата Подписаться на стрим Подтвердить успешную оплату Пожаловаться на вопрос Пожаловаться на отзыв Поместить магазин в избранное Привязать соцсеть Применить подарочную карту Продлить хранение заказа Событие в BFF Событие в PersGate Создать корзину услуг Создать отзыв Сообщить об изменении статуса стрима Сохранить местоположение пользователя Удаление списка избранных товаров Удалить адрес доставки Удалить магазин из избранного Удалить признак Я в магазине Удалить связь спортсмена с тренером Удалить товары из избранного Удалить товары из списка сравнения Установить признак Я в магазине
400 EmptyRequestParamError

Ошибка, которая возникает, если фронт не передаёт обязательный параметр запроса.

Body
application/json
Object
error
Object required
code
string required
Enumeration:
EMPTY_REQUEST_PARAM
message
string required
Example:
"Один из обязательных параметров запроса null или отсутствует."
400 ErrorUnderMaintenance

Проходит сервисное обслуживание серверов.

Body
application/json
Object
error
Object
code
string
Example:
UNDER_MAINTENANCE
message
string
Example:
Попробуйте зайти через 15 минут, должно получиться
400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

Body
application/json
Object
error
Object required
code
string required

Меняется в зависимости от условия

message
string required

Меняется в зависимости от условия

Operations: DEP v1 Восстановить удаленный товар cart2 DEP v1 Изменить чекбоксы товаров в корзине cart2 DEP v1 Скрыть удаленный товар cart2 DEP v1 Установить количество товара в корзине cart2 DEP Сохранить выбранную услугу товара cart2 DEP Удалить выбранную услугу товара cart2 v2 Восстановить удаленный товар cart2 v2 Изменить чекбоксы товаров в корзине cart2 v2 Скрыть удаленный товар cart2 v2 Установить количество товара в корзине cart2 Детальные данные о наличии товаров в ПВЗ cart2 Добавить товар в корзину cart2 Изменить список избранных сервисов Изменить флаг использования бонусов cart2 Получить адрес по местоположению Получить данные о товарах стрима Получить корзину cart2 Получить секции экрана сервисов Получить список секций по идентификаторам Применить промокод cart2 Применить слепок корзины cart2 Проведение оплаты по подписке СБП Расформировать потенциальные заказы cart2 Редактировать адрес доставки потенциальных заказов cart2 Сохранить выбранные сервисные услуги cart2 Список магазинов с доступностью товаров cart2 Список ПВЗ с доступностью товаров cart2 Удалить выбранные услуги cart2 Удалить товары из корзины cart2 Установить дату и время у потенциального заказа cart2 Установить получателя корзины cart2 Установить способ доставки у товаров курьерская доставка cart2 Установить способ доставки у товаров ПВЗ cart2
400 ErrorBannerNotFound

Баннер не найден.

Body
application/json
Object
error
Object
code
string
Example:
BANNER_NOT_FOUND
message
string
Example:
Не удалось найти баннер.
400 ErrorFileIsBad

ErrorFileIsBad

Body
application/json
Object
error
string

Код ошибки

Enumeration:
FILE_IS_BAD
message
string

Текст ошибки

Example:
Ошибка передачи файла
400 ErrorMaxFilesLimitExceeded

ErrorMaxFilesLimitExceeded

Body
application/json
Object
error
string

Код ошибки

Enumeration:
MAX_FILES_LIMIT_EXCEEDED
message
string

Текст ошибки

Example:
Превышено допустимое количество файлов
400 ProfileConfigurationResponse

Конфигурация для модуля Профиля пользователя

Body
application/json
Object
400 OrderingConfigResponse

Конфигурация для модуля оформления и корзины.

Body
application/json
Object
400 AppConfigResponse

Конфигурация для общих вещей приложения.

Body
application/json
Object
data
Object required
servicesItems
Array of ServiceItem

Элементы на экране сервисов. Сортируются согласно приоритету баннеров на стороне бекенда. Отправляются только включенные сервисы

bannerBonuses
bannerSliderTimer
integer

Время (в секундах) переключения баннеров в слайдере на Главной (не в шапке)

useBigQrForBonuses
boolean required

[Начиная с 4.21]

Флаг, использовать ли большой QR код или нет.

Если true, то бэкенд должен исключить бонусы из servicesItems

amountBonus
integer required

Количество бонусов

Example:
500
geoFencesEnabled
boolean required

Фича тоггл геозон

400 AppConfigResponseV4

Конфигурация для общих вещей приложения. Версия (v4).

Body
application/json
Object
data
400 CatalogConfigResponse

CatalogConfigResponse

Body
application/json
Object
400 StoresConfigResponse

StoresConfigResponse

Body
application/json
Object
data
400 StreamsConfigResponse

Конфигурация для модуля Streams

Body
application/json
Object
400 AfishaConfigResponse

Конфигурация для модуля Afisha

Body
application/json
Object
400 ChatConfigurationResponse

ChatConfigurationResponse

Body
application/json
Object
data
400 AllConfigurationsResponse

Ответ на общий запрос конфигурации модулей.

Body
application/json
Object
400 PopupsConfigResponse

Конфигурация для модуля всплывающих окон

Body
application/json
Object
400 ErrorOrderCostIsExceeded

ErrorOrderCostIsExceeded

Body
application/json
Object
error
Object
code
string
Enumeration:
ORDER_COST_IS_EXCEEDED
message
string
Example:
Превышена максимально допустимая стоимость заказа. Пожалуйста, измените состав заказа или выберите другой способ получения.
400 ErrorPromocodForInstallment

ErrorPromocodForInstallment

Body
application/json
Object
error
Object
code
string
Enumeration:
PROMOCODE_IS_NOT_AVAILABLE_FOR_INSTALLMENT
message
string
Example:
"Невозможно применить промокод для способа оплаты "Рассрочка"."
400 ErrorPromocodeIsNotValid

ErrorPromocodeIsNotValid

Body
application/json
Object
error
Object
code
string
Enumeration:
PROMOCODE_IS_NOT_VALID
message
string

Значение берется из Запрос к гейту. Response body. errorMessage, если значение отсутствует, то “Невозможно применить указанный промокод. Возможно, в нем допущена ошибка или его срок годности истек.”

Example:
Купон [BV64SMC7GT] зарезервирован в другом заказе [2700923-993085].
400 ErrorDeletedLinesAreNotFound

ErrorDeletedLinesAreNotFound

Body
application/json
Object
error
Object
code
string
Enumeration:
DELETED_ITEM_IS_NOT_FOUND
message
string
Example:
"Невозможно скрыть указанный товар. Данный товар отсутствует в корзине."
400 ErrorFio

ErrorFio

Body
application/json
Object
error
Object
code
string
Enumeration:
FIO_MUST_CONTAIN_2_WORDS
message
string
Example:
"Поле ФИО получателя должно содержать как минимум два слова."
400 ErrorReceiverDataIsRequired

ErrorReceiverDataIsRequired

Body
application/json
Object
error
Object
code
string
Enumeration:
RECEIVER_DATA_IS_REQUIRED
message
string
Example:
"Не заполнены данные получателя."
400 ErrorAdressIsRequired

ErrorAdressIsRequired

Body
application/json
Object
error
Object
code
string
Enumeration:
ADRESS_FIELDS_IS_REQUIRED
message
string
Example:
"Адрес доставки не указан."
400 ErrorDeliveryTimeIsRequired

ErrorDeliveryTimeIsRequired

Body
application/json
Object
error
Object
code
string
Enumeration:
DELIVERY_TIME_IS_REQUIRED
message
string
Example:
"Время доставки не указано."
400 ErrorDeliveryDateIsRequired

ErrorDeliveryDateIsRequired

Body
application/json
Object
error
Object
code
string
Enumeration:
DELIVERY_DATE_IS_REQUIRED
message
string
Example:
Дата доставки не выбрана.
400 ErrorPaymentMethodIsRequired

ErrorPaymentMethodIsRequired

Body
application/json
Object
error
Object
code
string
Enumeration:
PAYMENT_METHOD_IS_REQUIRED
message
string
Example:
"Не выбран способ оплаты."
400 ErrorAgreeToTerms

ErrorAgreeToTerms

Body
application/json
Object
error
Object
code
string
Enumeration:
AGREE_TO_TERMS_IS_REQUIRED
message
string
Example:
"Необходимо дать согласие на обработку персональных данных."
400 ErrorProfileIdIsEmpty

ErrorProfileIdIsEmpty

Body
application/json
Object
error
Object
code
string
Enumeration:
PROFILE_ID_IS_EMPTY
message
string
Example:
"ID профиля не может быть пустым."
400 ErrorOwnerDataIsRequired

ErrorOwnerDataIsRequired

Body
application/json
Object
error
Object
code
string
Enumeration:
OWNER_DATA_IS_REQUIRED
message
string
Example:
Контактные данные должны быть заполнены
400 ErrorEmailIsRequired

ErrorEmailIsRequired

Body
application/json
Object
error
Object
code
string
Enumeration:
EMAIL_IS_REQUIRED
message
string
Example:
Email покупателя должен быть заполнен.
400 ErrorBasketVersionIsNotValid

ErrorBasketVersionIsNotValid

Body
application/json
Object
error
Object
code
string
Enumeration:
BASKET_VERSION_IS_NOT_VALID
message
string
Example:
"Версия корзины неактуальна."
400 ErrorRestoredItemIfNotFound

ErrorRestoredItemIfNotFound

Body
application/json
Object
error
Object
code
string
Enumeration:
RESTORED_ITEM_IS_NOT_FOUND
message
string
Example:
"Невозможно восстановить указанный товар. Данный товар не числится среди удаленных."
400 ErrorEmptyPromocode

ErrorEmptyPromocode

Body
application/json
Object
error
Object
code
string
Enumeration:
EMPTY_PROMOCODE
message
string
Example:
"Невозможно применить этот промокод. Введена пустая строка или недопустимые символы."
400 ErrorTooManyLinesInBasket

ErrorTooManyLinesInBasket

Body
application/json
Object
error
Object
code
string
Enumeration:
TOO_MANY_LINES_IN_BASKET
message
string
Example:
"Невозможно добавить в корзину товар в указанном количестве."
400 ErrorBasketState

ErrorBasketState

Body
application/json
Object
error
Object
code
string
Enumeration:
BASKET_STATE_IS_NOT_VALID
message
string
Example:
"Данное действие с корзиной невозможно выполнить. Её состояние не соответствует ожидаемому (в рамках выполняемого запроса)."
Operations: DEP v1 Восстановить удаленный товар cart2 DEP v1 Изменить чекбоксы товаров в корзине cart2 DEP v1 Скрыть удаленный товар cart2 DEP v1 Удалить промокод в корзине cart2 DEP v1 Установить количество товара в корзине cart2 DEP Сохранить выбранную услугу товара cart2 DEP Удалить выбранную услугу товара cart2 v2 Восстановить удаленный товар cart2 v2 Изменить чекбоксы товаров в корзине cart2 v2 Скрыть удаленный товар cart2 v2 Удалить промокод в корзине cart2 v2 Установить количество товара в корзине cart2 Восстановить удаленный товар в корзине редактирования Детальные данные о наличии товаров в ПВЗ cart2 Добавить товар в корзину cart2 Изменить флаг использования бонусов cart2 Оформить корзину Оформить корзину редактирования Получить доступность адресов получения cart2 Применить промокод cart2 Применить слепок корзины cart2 Распределить товары на самовывоз из текущего магазина Расформировать потенциальные заказы cart2 Редактировать адрес доставки потенциальных заказов cart2 Скрыть удаленный товар в корзине редактирования Создать слепок корзины Сохранить выбранные сервисные услуги cart2 Список магазинов с доступностью товаров cart2 Список ПВЗ с доступностью товаров cart2 Способы оплаты потенциального заказа cart2 Удалить выбранные услуги cart2 Удалить товары из корзины cart2 Удалить товары из корзины редактирования Установить дату и время у потенциального заказа cart2 Установить количество товара в корзине редактирования Установить получателя корзины cart2 Установить способ доставки у товаров курьерская доставка cart2 Установить способ доставки у товаров ПВЗ cart2 Установить способ доставки у товаров самовывоз cart2 Установить способ оплаты у заказа cart2 Установить уровень сервиса у потенциального заказа
400 ErrorProductIsNotAvailable

ErrorProductIsNotAvailable

Body
application/json
Object
error
Object
code
string
Enumeration:
PRODUCT_IS_NOT_AVAILABLE
message
string
Example:
"Интересующий вас товар недоступен для покупки."
400 ErrorProductIsNotActive

ErrorProductIsNotActive

Body
application/json
Object
error
Object
code
string
Enumeration:
PRODUCT_IS_NOT_ACTIVE
message
string
Example:
"Интересующий вас товар неактивен."
400 ErrorProductIsNotFound

ErrorProductIsNotFound

Body
application/json
Object
error
Object
code
string
Enumeration:
PRODUCT_ID_IS_NOT_FOUND
message
string
Example:
"Интересующий вас товар не найден."
400 ErrorDeliveryDateIsExpired

ErrorDeliveryDateIsExpired

Body
application/json
Object
error
Object
code
string
Enumeration:
DELIVERY_DATE_IS_EXPIRED
message
string
Example:
"Невозможно выполнить оформление заказов, так как выбрана недоступная дата или недоступное время доставки."
400 SubmitCartResponse

SubmitCartResponse

Body
application/json
Object
data
Object required
orders
Array of OrderSimpleModel required
400 SnapshotResponse

SnapshotResponse

Body
application/json
Object
data
Object required
snapshotUrl
string required

Ссылка на слепок корзины

Example:
https://www.sportmaster.ru/basket/checkout.do?specificationId=1f9dea2e-68d7-4b14-ad8f-88a8a619e46c
400 CartResponse2

Возвращает корзину (основную корзину). Возвращется только одна из моделей. Какая - зависит от входного параметра в запрос.

Body
application/json
Object
data
Object required
cartFull
cartLite
400 FullCartResponse2

FullCartResponse2

Body
application/json
Object
data
Object required
cart
CartFull2 required
Operations: DEP v1 Восстановить удаленный товар cart2 DEP v1 Изменить чекбоксы товаров в корзине cart2 DEP v1 Скрыть удаленный товар cart2 DEP v1 Удалить промокод в корзине cart2 DEP Сохранить выбранную услугу товара cart2 DEP Удалить выбранную услугу товара cart2 v2 Восстановить удаленный товар cart2 v2 Изменить чекбоксы товаров в корзине cart2 v2 Скрыть удаленный товар cart2 v2 Удалить промокод в корзине cart2 Изменить флаг использования бонусов cart2 Применить промокод cart2 Применить слепок корзины cart2 Распределить товары на самовывоз из текущего магазина Расформировать потенциальные заказы cart2 Редактировать адрес доставки потенциальных заказов cart2 Сохранить выбранные сервисные услуги cart2 Удалить выбранные услуги cart2 Установить дату и время у потенциального заказа cart2 Установить получателя корзины cart2 Установить способ доставки у товаров курьерская доставка cart2 Установить способ доставки у товаров ПВЗ cart2 Установить способ доставки у товаров самовывоз cart2 Установить способ оплаты у заказа cart2 Установить уровень сервиса у потенциального заказа
400 EmptyPhoneErrorResponse

EmptyPhoneErrorResponse

Body
application/json
Object
error
Object
code
string required
Example:
OWNER_EMPTY_PHONE
message
string
Example:
Укажите номер телефона
400 ErrorApplicationSnapshot

ErrorApplicationSnapshot

Body
application/json
Object
error
Object
code
string
Example:
ERROR_APPLICATION_SNAPSHOT
message
string
Example:
Невозможно применить слепок корзины
400 CartItemsDeliveryTypes

CartItemsDeliveryTypes

Body
application/json
Object
data
Object required
list
Array of DeliveryTypeEnum required
400 ErrorPhoneInBasket

Кейс 1. Ошибка, если для неавторизованного пользователя не передан токен и у владельца корзины нет телефона // Кейс 2. Ошибка, если для авторизованного пользователя не передан номер телефона

Body
application/json
Object
error
Object
code
string
Example:
ERROR_PHONE_IN_BASKET
string
string
Example:
У владельца корзины нет номера телефона
400 ErrorInvalidQuantity

Ошибка, возвращаемая при некорректном значение количества товара.

Body
application/json
Object
error
Object
code
string required
Enumeration:
INVALID_QUANTITY
message
string required
Example:
Невозможно установить количество товара. Минимальное значение - 1, максимальное - 50.
400 ErrorOrderWeightExceeded

ErrorOrderWeightExceeded

Body
application/json
Object
error
Object
code
string
Enumeration:
ORDER_WEIGHT_EXCEEDED
message
string
Example:
Превышен максимально допустимый вес заказа. Пожалуйста, измените состав заказа или выберите другой способ получения.
400 ErrorExceedLimitOnActiveOrders

ErrorExceedLimitOnActiveOrders

Body
application/json
Object
error
Object
code
string

Код ошибки

Enumeration:
EXCEED_LIMIT_ON_ACTIVE_ORDERS
message
string

Текст ошибки

Example:
Лимит на заказы. Выкупите или отмените текущий
400 InternalPickupErrorResponse

InternalPickupErrorResponse

Body
application/json
Object
error
Object
code
string
Enumeration:
INT_PICKUP_FROM_SHOP_IS_NOT_AVAILABLE
message
string
Example:
"Невозможно выбрать получение всех указанных товаров в данном магазине."
400 ErrorInternalPickupAvailability

ErrorInternalPickupAvailability

Body
application/json
Object
error
Object
code
string
Enumeration:
EMPTY_INTERNAL_PICKUP_AVAILABILITY
message
string
Example:
"Для выбранных товаров нет доступных магазинов с возможностью самовывоза."
400 InternalPickupAvailabilityResponse2

InternalPickupAvailabilityResponse2

Body
application/json
Object
data
Object required
400 ErrorObtainPointIsNotSelfDelivery

ErrorObtainPointIsNotSelfDelivery

Body
application/json
Object
error
Object
code
string
Enumeration:
OBTAIN_POINT_IS_NOT_SELF_DELIVERY
message
string
Example:
Выбранный заказ не является заказом на самовывоз
400 ErrorServiceLevelCodeIsNotValid

ErrorServiceLevelCodeIsNotValid

Body
application/json
Object
error
Object
code
string
Enumeration:
SERVICE_LEVEL_CODE_IS_NOT_VALID
message
string
Example:
"Некорректный уровень сервиса"
400 ExternalPickupAvailabilityResponse2

ExternalPickupAvailabilityResponse2

Body
application/json
Object
data
Object required
list
serviceIconsList
Array of PickpointServiceIcons required

Иконки услуг, доступных в ПВЗ

400 ExternalPickupAvailabilityDetailResponse

ExternalPickupAvailabilityDetailResponse

Body
application/json
Object
data
Object required
400 ReceivingAddressAvailabilityResponse

ReceivingAddressAvailabilityResponse

Body
application/json
Object
data
Object required

Список сущностей (адрес получения и какие товары доступны по этому адресу)

400 ErrorAddressesListIncorrect

ErrorAddressesListIncorrect

Body
application/json
Object
error
Object
code
string required
Enumeration:
ADDRESSES_LIST_INCORRECT
message
string required
Example:
Ошибка в составе переданных адресов
400 ErrorMethodIsDisabled

ErrorMethodIsDisabled

Body
application/json
Object
error
Object
code
string required
Enumeration:
METHOD_IS_DISABLED
message
string required
Example:
Метод временно недоступен
400 ErrorServiceIsNotValid

ErrorServiceIsNotValid

Body
application/json
Object
error
Object
code
string
Enumeration:
SERVICE_IS_NOT_VALID
message
string
Example:
"Сервисная услуга недоступна"
400 ErrorDateTimeReceiptAreOutdated

ErrorDateTimeReceiptAreOutdated

Body
application/json
Object
error
Object
code
string
Enumeration:
DATE_TIME_RECEIPT_ARE_OUTDATED
message
string
Example:
"Дата и время доставки заказа уже устарели"
400 ErrorObtainPointDelivery

ErrorObtainPointDelivery

Body
application/json
Object
error
Object
code
string

Если на фронт вернулась ошибка с таком кодом, необходимо показать всплывающее окошко с кнопкой “Создать еще один заказ”.

Enumeration:
SET_OBTAINPOINT_ERROR_CREATE_OBTAINPOINT
message
string
Example:
"Невозможно добавить выбранный товар в один из существующих заказов на доставку."
400 ErrorCreditMinSum

ErrorCreditMinSum

Body
application/json
Object
error
Object
code
string
Enumeration:
CREDIT_SUM_LESS_MINIMUM_VALUE
message
string
Example:
"Сумма данного заказа меньше минимальной суммы, на которую можно оформить кредит."
400 ErrorPaymentMethodIsNotValid

ErrorPaymentMethodIsNotValid

Body
application/json
Object
error
Object
code
string
Enumeration:
PAYMENT_METHOD_IS_NOT_VALID
message
string
Example:
"Для выбранного потенциального заказа неправильный способ оплаты"
400 ErrorPotentialOrderIsNotFound

ErrorPotentialOrderIsNotFound

Body
application/json
Object
error
Object
code
string
Enumeration:
POTENTIAL_ORDER_ID_IS_NOT_FOUND
message
string
Example:
"Выбранный потенциальный заказ не найден среди заказов корзины."
400 ErrorInvalidProccessParameters

ErrorInvalidProccessParameters

Body
application/json
Object
error
Object
code
string required
Enumeration:
INVALID_PROCESS_PARAMETERS
message
string required
Example:
"Не удалось выполнить запрос, т.к. переданы некорректные данные."
400 ErrorLocationIsNotMatch

Ошибка, возвращаемая если координаты в x-location не совпадают с координатами в receivingAddress.

Body
application/json
Object
error
Object
code
string required
Enumeration:
LOCATION_IS_NOT_MATCH
message
string required
Example:
"Местоположение на устройстве не совпадает с местоположением указанного адреса."
400 ErrorUserLocationHasChanged

Ошибка, возвращаемая при расформировании МСП после смены местоположения на корзине (OrderGate, после вызова CALCULATE-BASKET).

Body
application/json
Object
error
Object
code
string required
Enumeration:
LOCATION_HAS_CHANGED
message
string required
Example:
"Адрес доставки изменен. Стоимость и наличие товаров могли измениться"
400 ErrorHouseIsNull

Ошибка, возвращаемая, когда при установке МСП курьерской доставки / редактирования адреса курьерской доставки в структуре адреса отсутствует дом (геозоны).

Body
application/json
Object
error
Object
code
string required
Enumeration:
HOUSE_IS_NULL
message
string required
Example:
"Для установки адреса доставки необходимо указать дом."
400 ErrorPinCodeIncorrect

Неправильный пин-код

Body
application/json
Object
error
Object
code
string
Example:
EGC_INVALID_PINCODE
message
string
Example:
Неверный код. Попробуйте еще раз
400 ErrorEgcExpired

Срок действия подарочной карты истек

Body
application/json
Object
error
Object
code
string
Example:
EGC_EXPIRED
message
string
Example:
Истек срок действия
400 PaymentUrlResponse

Ответ на получение ссылки на оплату банковской картой

Body
application/json
Object
data
Object required
paymentUrl
string required
400 MerchantSettingsResponse

MerchantSettingsResponse

Body
application/json
Object
data
Object required
payMerchant
string required
400 MakeMobilePaymentResponse

MakeMobilePaymentResponse

Body
application/json
Object
data
Object required
url3DS
string

URL для прохождения проверки 3DS

400 ErrorInvalidSubmitPaymentParameters

ErrorInvalidSubmitPaymentParameters

Body
application/json
Object
error
Object
code
string
Enumeration:
INVALID_SUBMIT_PAYMENT_PARAMETERS
message
string
Example:
"Для подтверждения платежа не указаны обязательные параметры."
400 ErrorOrderNumberIsEmpty

ErrorOrderNumberIsEmpty

Body
application/json
Object
error
Object
code
string
Example:
ORDER_NUMBER_IS_EMPTY
message
string
Example:
"Для выполнения запроса необходимо передавать номер заказа."
400 ErrorOrderNumberIsBad

Гейт ответил 400й ошибкой при orderNumber != null

Body
application/json
Object
error
Object
code
string
Example:
ORDER_NUMBER_IS_BAD
message
string

Текст ошибки проксируется с гейта

400 ErrorPaymentToolIsEmpty

ErrorPaymentToolIsEmpty

Body
application/json
Object
error
Object
code
string
Example:
PAYMENTTOOL_IS_EMPTY
message
string
Example:
"Для выполнения запроса необходимо передать платежную систему"
400 ErrorRedirectURLIsEmpty

ErrorRedirectURLIsEmpty

Body
application/json
Object
error
Object
code
string
Example:
REDIRECT_URL_IS_EMPTY
message
string
Example:
"Для выполнения запроса необходимо передать URL перенаправления"
400 ErrorPaymentUrlInvalidParameters

ErrorPaymentUrlInvalidParameters

Body
application/json
Object
error
Object
code
string
Enumeration:
INVALID_PARAMETERS
message
string
Example:
"Невозможно выполнить запрос, отсутствует один из обязательных параметров."
400 ErrorMerchantNotFound

ErrorMerchantNotFound

Body
application/json
Object
error
Object
code
string
Example:
MERCHANT_NOT_FOUND
message
string
Example:
"Для успешного выполнения запроса не был получен необходимый настроенный мерчант"
400 CreditUrlResponse

Ответ на получение ссылки на оформление кредита

Body
application/json
Object
data
Object required
creditUrl
string required
400 ErrorPaymentMethodIsNotCredit

ErrorPaymentMethodIsNotCredit

Body
application/json
Object
error
Object
code
string
Example:
PAYMENT_METHOD_IS_NOT_CREDIT
message
string
Example:
"Некорректный тип оплаты заказа"
400 ErrorNotAllProductsFound

ErrorNotAllProductsFound

Body
application/json
Object
error
Object
code
string
Enumeration:
NOT_ALL_PRODUCTS_FOUND
message
string
Example:
"Невозможно сформировать ссылку на кредит, так как в составе заказа зафиксирован удаленный товар"
400 ErrorProductIsNotCreditOrInstallment

ErrorProductIsNotCreditOrInstallment

Body
application/json
Object
error
Object
code
string
Example:
PRODUCT_IS_NOT_CREDIT_OR_INSTALLMENT
message
string
Example:
"Невозможно получить ссылку на оформление кредита или рассрочки для этих товаров."
400 ErrorMerchantNotCorrect

ErrorMerchantNotCorrect

Body
application/json
Object
Error
Object
code
string
Example:
MERCHANT_NOT_CORRECT
message
string
Example:
"Получен некорректный настроенный мерчант"
400 SamsungPayMerchantResponse

SamsungPayMerchantResponse

Body
application/json
Object
data
Object
merchantId
string

Айди мерчанта. Берется из запроса гейта

Example:
sportmaster8
serviceId
string

Айди сервиса оплаты. Зашивается на сервере для каждого merchantId, который может прийти с гейта

Example:
693909957010406cbd08b6
merchantName
string

Название мерчанта. Зашивается на сервере

Example:
Sportmaster
400 GooglePayMerchantResponse

GooglePayMerchantResponse

Body
application/json
Object
data
Object

Объект с настроенным содержимым

gateway
string

Зашивается на сервере

Example:
sberbank
gatewayMerchantId
string

Получается из гейта, см. ТЗ

Example:
sportmaster8
400 QrcResponse

Ответ на формирование ссылки на оплату через СБП

Body
application/json
Object
data
Object required
paymentIntentionId
string required

Идентификатор намерения платежа

url
string required

Payload зарегистрированного QR кода в СБП

memberBanks
Array of MemberBank

Список банков-участников СБП

400 CheckPaymentIntentionResponse

Статус платежа

Body
application/json
Object
data
Object required
status
400 ErrorPaymentIntentionIdIsEmpty

ErrorPaymentIntentionIdIsEmpty

Body
application/json
Object
error
Object
code
string
Example:
PAYMENT_INTENTION_ID_IS_EMPTY
message
string
Example:
"Для выполнения запроса необходимо передавать номер намерения оплатить."
400 ErrorPaymentIntentionIdIsBad

Гейт ответил 400й ошибкой при paymentIntentionId != null

Body
application/json
Object
error
Object
code
string
Example:
PAYMENT_INTENTION_ID_IS_BAD
message
string

Текст ошибки проксируется с гейта

400 ErrorPaymentStatusUnknown

ErrorPaymentStatusUnknown

Body
application/json
Object
error
Object
code
string
Example:
PAYMENT_STATUS_UNKNOWN
message
string
Example:
"Неизвестный статус платежа"
400 ValidateGiftCardResponse

Ответ на успешную валидацию подарочной карты

Body
application/json
Object
data
Object
giftCardNominal
Price required
comparisonResultText
string

Текст результата сравнения номинала подарочной карты и суммы заказа

400 ErrorEgcAlreadyUsed

Карта уже использована

Body
application/json
Object
error
Object
code
string
Example:
EGC_ALREADY_USED
message
string
Example:
Карта уже использована
400 ErrorEgcTemporarlyBlocked

Карта заблокирована на 30 минут

Body
application/json
Object
error
Object
code
string
Example:
EGC_TEMPORARILY_BLOCKED
message
string
Example:
Карта заблокирована на 30 минут
400 ErrorEgcNotFound

Неправильный номер карты

Body
application/json
Object
error
Object
code
string
Example:
EGC_NOT_FOUND
message
string
Example:
Неверный номер карты
400 ErrorIncorrectGiftCardType

Неправильный тип подарочной карты

Body
application/json
Object
error
Object
code
string
Example:
GC_INCORRECT_TYPE
message
string
Example:
Неправильный тип карты
400 SendPinResponse

Ответ об отправке СМС

Body
application/json
Object
data
Object
resendIn
integer required

Количество секунд, по истечению которых станет доступен повторный запрос пин-кода

400 SberPayResponse

SberPayResponse

Body
application/json
Object
data
Object
bankInvoiceId
string required

Уникальный идентификатор заказа, сгенерированный Банком

Example:
b19e126d61de4e209db86131778022c1
payload
string required

Закодированный объект из двух атрибутов apiKey и merchantLogin. Перед передачей на фронт объект переводится в строку, убираются пробелы и переносы строк в неконтентной части, строка перегоняется в Base64. К сформированной строке в начало добавляется соль.

400 FpsSubscriptionResponse

FpsSubscriptionResponse

Body
application/json
Object
data
Object required
paymentIntentionId
string required

Идентификатор намерения платежа

Example:
8a69e5968949bab101894eda11793579
400 EgcResponse

EgcResponse

Body
application/json
Object
data
Object
invoiceNumber
string required

Номер заказа

400 EgcInfoResponse

EgcInfoResponse

Body
application/json
Object
data
Object
egcValues
EgcValue required
egcImages
Array of EgcImage

Дизайны ЭПК

400 OrderHistoryResponse

OrderHistoryResponse

Body
application/json
Object
data
Object required
orders
Array of OrderItem required
filters
Array of OrderFilter

Какие варианты фильтрации бывают. Вшиты на нашем БЭ

400 OrderResponse

OrderResponse

Body
application/json
Object
data
Object required
order
Order required
400 OrdersByNumbersResponse

OrdersByNumbersResponse

Body
application/json
Object
data
Object required
list
Array of Order
400 PickUpAutoResponse

PickUpAutoResponse

Body
application/json
Object
data
Object required
queueNumber
integer required
Example:
1
400 ThanksForOrderResponse

ThanksForOrderResponse

Body
application/json
Object
data
Object required
thanksForOrderBanner
isUserInStore
boolean required

Находится ли пользователь в магазине

screenMode
string required

Состояние, в котором нужно отрисовать экран. На данный момент настроен только SERVICE_ORDER для заказа услуг. Для всех остальных пока отправляется DEFAULT_ORDER, чтобы не делать атрибут nullable

Enumeration:
DEFAULT_ORDER
EGC_ORDER
IN_STORE
RETAIL_SELF_DELIVERY
SERVICE_ORDER
crossborderShortInfo
string

Информация о таможенном брокере

400 ErrorOrderIllegalAction

ErrorOrderIllegalAction

Body
application/json
Object
error
Object
code
string
Enumeration:
ORDER_ILLEGAL_ACTION
message
string
Example:
"Действие не доступно для данного заказа"
400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

Body
application/json
Object
error
Object
code
string
Enumeration:
ORDER_ILLEGAL_ACCESS
name
string
Example:
"Невозможно получить доступ к данным по указанному заказу."
400 PickUpAutoDuplicationError

PickUpAutoDuplicationError

Body
application/json
Object
error
Object
code
string
Enumeration:
DUPLICATION_ERROR
name
string
Example:
"Задание по заказу 222222-222222 уже создано. Номер очереди 1."
400 PickUpAutoNotEnabledError

Ошибка, когда FeatureToggles.isPickUpAutoEnabled == false.

Body
application/json
Object
error
Object
code
string required

Код ошибки

Enumeration:
PICKUP_AUTO_NOT_ENABLED
message
string required
Example:
"Услуга PickUp Auto выключена."
400 ErrorProductIdMustNotBeNull

ErrorProductIdMustNotBeNull

Body
application/json
Object
error
Object
code
string required

Код ошибки.

Enumeration:
PRODUCTID_MUST_NOT_BE_NULL
message
string required

Сообщение ошибки.

Example:
"Не удалось получить данные о товарах. Попробуйте позже."
400 ErrorWareIdMustNotBeNull

ErrorWareIdMustNotBeNull

Body
application/json
Object
error
Object
code
string required

Код ошибки.

Enumeration:
WAREID_MUST_NOT_BE_NULL
message
string required

Сообщение ошибки.

Example:
"Не удалось получить данные о товарах. Попробуйте позже."
400 FaqResponse

FaqResponse

Body
application/json
Object
data
Object
questionList
Array of FrequentlyAskedQuestion required

Список вопросов

buttonName
string required

Название кнопки

Example:
Начать чат
buttonDeeplink
string required

Диплинк кнопки

Example:
sportmaster://chat
400 EgcOrderResponse

EgcOrderResponse

Body
application/json
Object
data
Object required
order
EgcOrder required
400 ErrorRefundMethodIsNotValid

ErrorRefundMethodIsNotValid

Body
application/json
Object
code
string

Код ошибки

Enumeration:
REFUND_METHOD_IS_NOT_VALID
message
string

Текст ошибки

Example:
Неправильный способ возврата денежных средств
400 ErrorRefundMethodIsRequired

ErrorRefundMethodIsRequired

Body
application/json
Object
code
string

Код ошибки

Enumeration:
REFUND_METHOD_IS_REQUIRED
message
string

Текст ошибки

Example:
Не выбран способ возврата денежных средств
400 ErrorReturnReasonIsRequired

ErrorReturnReasonIsRequired

Body
application/json
Object
code
string

Код ошибки

Enumeration:
RETURN_REASON_IS_REQUIRED
message
string

Текст ошибки

Example:
Не выбрана причина возврата товара
400 ErrorPotentialOrderIsRequired

ErrorPotentialOrderIsRequired

Body
application/json
Object
code
string

Код ошибки

Enumeration:
POTENTIAL_ORDER_IS_REQUIRED
message
string

Текст ошибки

Example:
Не найден потенциальный заказ
400 DropOffDeliveryPointAvailabilityResponse

DropOffDeliveryPointAvailabilityResponse

Body
application/json
Object
data
Object required
pickpoints
Array of Pickpoint required

Доступные ПВз для возврата товара

400 ReturnHistoryResponse

ReturnHistoryResponse

Body
application/json
Object
data
Object
returns
Array of ReturnItem required

Заказы на возврат

filters
Array of OrderFilter

Фильтрация статусов заказа на возврат

400 ReturnResponse

ReturnResponse

Body
application/json
Object
data
Object required
returnDetails
ReturnDetails required
400 ErrorServiceIsNotFound

ErrorServiceIsNotFound

Body
application/json
Object
error
Object required
code
string required
Enumeration:
SERVICE_ID_IS_NOT_FOUND
string
string required
Example:
"Интересующая вас услуга не найдена"
400 ErrorServicesCategoryMismatch

ErrorServicesCategoryMismatch

Body
application/json
Object
error
Object required
code
string required
Enumeration:
SERVICES_CATEGORY_MISMATCH
message
string required
Example:
"Переданные услуги относятся к разным категориям"
400 ServiceCenterAvailabilityResponse

ServiceCenterAvailabilityResponse

Body
application/json
Object
data
Object required
list
Array of ServiceCenter required
400 ErrorServiceCenterIsNotAvailable

ErrorServiceCenterIsNotAvailable

Body
application/json
Object
error
Object required
code
string required
Enumeration:
SERVICE_CENTER_IS_NOT_AVAILABLE
message
string required
Example:
Сервисный центр недоступен
400 ErrorSomeServicesAreUnavailable

Ошибка, которая возникает, когда одна или несколько услуг не доступны

Body
application/json
Object
error
Object required
code
string required
Enumeration:
SOME_SERVICES_ARE_UNAVAILABLE
message
string required
Example:
Одна или несколько услуг недоступны
400 ErrorServicesExceedMaxDuration

Ошибка, которая возникает, когда общая продолжительность выбранных услуг превышает максимально допустимый временной диапазон

Body
application/json
Object
error
Object required
code
string required
Enumeration:
SERVICES_EXCEED_MAX_DURATION
message
string required
Example:
Выбранные услуги превышают максимально допустимый временной интервал
400 ErrorSelectedDateIsUnavailable

Ошибка, которая возникает, когда выбранная пользователем дата стала недоступна

Body
application/json
Object
error
Object required
code
string required
Enumeration:
SELECTED_DATE_IS_UNAVAILABLE
message
string required
Example:
Выбранный день не доступен
400 ErrorSelectedTimeIsUnavailable

Ошибка, которая возникает, когда выбранное пользователем время стало недоступно

Body
application/json
Object
error
Object required
code
string required
Enumeration:
SELECTED_TIME_IS_UNAVAILABLE
message
string required
Example:
Выбранное время не доступно
400 ErrorTotalCostBelowThreshold

Когда был выбран способ оплаты, у которого минимальная сумма заказа превышает фактическую сумму

Body
application/json
Object
error
Object required
code
string required
Enumeration:
TOTAL_COST_BELOW_THRESHOLD
message
string required
Example:
Сумма заказа меньше минимальной суммы, для которой допустим выбранный способ оплаты
400 ErrorSelectedDateTimeIsUnavailable

Ошибка, которая возникает, когда выбранные пользователем дата и время стали недоступны

Body
application/json
Object
error
Object required
code
string required
Enumeration:
SELECTED_DATETIME_IS_UNAVAILABLE
message
string required
Example:
Дату и время уже заняли — выберите ещё раз
400 ErrorTooManyServicesInBasket

ErrorTooManyServicesInBasket

Body
application/json
Object
error
Object required
code
string required

Код ошибки

Enumeration:
TOO_MANY_SERVICES_IN_BASKET
message
string required

Текст ошибки

Example:
Достигнут лимит. Можно выбрать не более 10 услуг.
400 ErrorEditingIsNotAvailable

ErrorEditingIsNotAvailable

Body
application/json
Object
error
string

EDITING_IS_NOT_AVAILABLE

message
string

Редактирование по заказу недоступно

400 SubmitEditCartResponse

SubmitEditCartResponse

Body
application/json
Object
data
Object required
order
string required
400 ErrorFieldValidation

ErrorFieldValidation

Body
application/json
Object
error
Object
code
string
Enumeration:
VALIDATION_ERROR
message
string

Значение берется из POST /validation/rules. Response body. validationRules[i]. frontError того правила, которые было нарушено.

400 ErrorAnonymUser

ErrorAnonymUser

Body
application/json
Object
error
Object
code
string
Enumeration:
USER_IS_ANONYM
message
string
Example:
"Для выполнения этого действия необходимо войти в учетную запись или создать новую."
Operations: DEP Получить адреса доставки НП ID персональных скидок v3 История заказов Активировать вознаграждение Добавить адрес доставки Изменить имя участника семейного счёта Изменить флаг использования бонусов cart2 Изменить флаг использования бонусов корзины услуг История возвратов Конвертировать бонусы Ответить на приглашение в семью Отправить приглашение в семью Оформить заказ ЭПК Подписаться на стрим Получение созданной скидки Получить адреса получения геозоны Получить выбранный ЛВС Получить данные о вознаграждениях Получить доступность адресов получения cart2 Получить информацию о семье Получить признак Я в магазине Получить часто задаваемые вопросы для семейного счёта Список персональных скидок Удалить признак Я в магазине Удалить семейный счёт Удалить участника семейного счёта Установить признак Я в магазине
400 CheckClubProResponse

CheckClubProResponse

Body
application/json
Object
data
Object
profileId
string

Актуальный/измененный идентификатор профиля

usergateUid
string

Актуальный/измененный идентификатор клубной программы

isClubproIdCorrect
boolean required

Признак смены clubproId

400 CallcenterPhoneResponse

CallcenterPhoneResponse

Body
application/json
Object
data
Object required
phone
string required

Номер телефона КЦ

Example:
8 800 777-777-1
400 SubscriptionResponse

SubscriptionResponse

Body
application/json
Object
data
Object required
infoForClient
string

Строка с сообщением для блока неподтвержденной почты для экрана подписок

400 ProfileResponse

ProfileResponse

Body
application/json
Object
data
Object required
profile
Profile required
400 WelcomeBonusResponse

WelcomeBonusResponse

Body
application/json
Object
data
Object required
bonusAmount
integer required

Сколько бонусов начисляют за запролнение анкеты после регистрации

400 ProfileIdResponse

ProfileIdResponse

Body
application/json
Object
data
Object required
profile
ProfileId required
400 UserGateTokenResponse

UserGateTokenResponse

Body
application/json
Object
data
Object
userGateToken
string

Токен пользователя в UserGate

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

Body
application/json
Object
error
Object
code
string
Enumeration:
GATE_EXCEPTION
message
string
Operations: DEP v1 Восстановить удаленный товар cart2 DEP v1 Изменить чекбоксы товаров в корзине cart2 DEP Получить тип обращения по коду DEP Удалить выбранную услугу товара cart2 v2 Восстановить удаленный товар cart2 v2 Изменить чекбоксы товаров в корзине cart2 v2 Поиск магазинов по номерам v2 Создать обращение v2 Список магазинов v3 Список магазинов Активация скидки Добавить товар в корзину cart2 Избранные магазины Изменить имя участника семейного счёта Изменить номер телефона с разлогином Изменить профиль Копировать пользовательский список избранных товаров Отправить приглашение в семью Отправить спортсменам приглашение Получить баннер по слоту Получить баннеры по слоту Получить данные о товарах стрима Получить информацию о заполненности профиля Получить секции экрана акций Получить список промокодов и бонусов Получить статусы подписок Получить темы и тематики обращения Получить товарный чек Применить промокод cart2 Список магазинов с доступностью товаров cart2 Удалить выбранные услуги cart2
400 ProfileBannersResponse

ProfileBannersResponse

Body
application/json
Object
data
Object required
list
Array of Banner
400 SubscriptionsResponse

SubscriptionsResponse

Body
application/json
Object
data
Object required
groups
Array of Group required

Массив групп подписок

isChangesAvailable
boolean required

Флаг, показывающий доступно ли изменение статуса подписок

subscriptionReceiptAvailable
boolean required

Флаг доступности подписки на эл. чеки

advertisingAgreement
boolean

Признак согласия на рекламную рассылку

400 SocialsResponse

SocialsResponse

Body
application/json
Object
data
Object required
list
Array of Social
400 DeliveryAddressesResponse

DeliveryAddressesResponse

Body
application/json
Object
data
Object required
list
Array of DeliveryAdress
400 ProfileFilledInfoResponse

ProfileFilledInfoResponse

Body
application/json
Object
data
Object
profileFilled
boolean required

Флаг заполненности профиля

descriptionForButton
string

Описание для кнопки заполнения профиля (получаем из статической страницы cmsGate, id=89168901)

400 ClientLabelsResponse

ClientLabelsResponse

Body
application/json
Object
Data
Object
clientLabels
Array of string

Метки клиента

400 ErrorAddressAlreadyExists

Ошибка, если в профиле уже есть такой адрес доставки. Независимо есть или нет геозоны

Body
application/json
Object
error
Object required
code
string required
Example:
ADDRESS_ALREADY_EXISTS
message
string required
Example:
Этот адрес уже сохранён
400 ErrorPhoneAlreadyUsed

Ошибка, возвращаемая из BFF, когда при смене номера телефона уже существует профиль с таким номером

Body
application/json
Object
error
Object
code
string
Enumeration:
PHONE_ALREADY_USED
message
string
400 CheckUserGateUidAndClubProIdResponse

CheckUserGateUidAndClubProIdResponse

Body
application/json
Object
data
Object
userGateUid
string

Старое или новое значение userGateUid

isUserGateUidCorrect
boolean

Признак корректности userGateUid

clubProId
string

Старое или новое значение clubpro_Id

isClubProIdCorrect
boolean

Признак корректности clubproId

400 NoContent

Ответ, когда у бэкэнда в БД не нашлись записи по профайлу

400 ErrorEmailValidation

Бизнес-ошибка валидации email со стороны гейта

Body
application/json
Object
error
Object
code
string required
Enumeration:
INVALID_EMAIL_FORMAT
message
string required

При получении ошибки в методах UserGate с типом BUSINESS_VALIDATION_ERROR или VALIDATION_ERROR, проверять наличие detail == “Invalid data provided”, в этом случае возвращать фронту ошибку “EMAIL_VALIDATION_ERROR” и текст брать из error.violations[0].userMessage

400 MetroListResponse

MetroListResponse

Body
application/json
Object
data
Object required
list
Array of CartMetro required
400 GeoSuggestResponse

GeoSuggestResponse

Body
application/json
Object
data
Object
addressSuggestList
Array of addressSuggest

Список подсказок адресов

400 GeoFencesResponse

Массив геозон

Body
application/json
Object
data
Object
geoFences
Array of GeoFence

Массив геозон

locationUpdate
400 CitiesResponse

CitiesResponse

Body
application/json
Object
data
Object required
list
Array of City required
400 CityResponse

CityResponse

Body
application/json
Object
data
Object required
city
location
locationUpdate
locationAvailability
400 StreetsResponse

StreetsResponse

Body
application/json
Object
data
Object required
list
Array of Street required
400 HousesResponse

HousesResponse

Body
application/json
Object
data
Object required
list
Array of House required
Operations: Поиск дома
400 AddressResponse

AddressResponse

Body
application/json
Object
data
Object required
location
Location required
locationUpdate
OffsetDateTime required
locationAvailability
address
Address required
400 AddressDecodeResponse

AddressDecodeResponse

Body
application/json
Object
data
Object required
address
Address required
400 ErrorNotSupportedArea

Данное местоположение не поддерживается в приложении

Body
application/json
Object
error
Object
code
string
Enumeration:
NOT_SUPPORTED_AREA
message
string
Enumeration:
Данное местоположение не поддерживается в приложении
400 LocationResponse

LocationResponse

Body
application/json
Object
data
Object required
location
Location required
400 ErrorProccess

ErrorProccess

Body
application/json
Object
error
Object
code
string required
Enumeration:
PROCCESS_ERROR
message
string required
Example:
"Ошибка в результате работы подпроцесса."
400 IsPhoneExistsResponse

IsPhoneExistsResponse

Body
application/json
Object
data
Object required
isPhoneExists
boolean

Если вдруг в гейте нашелся аккаунт и у него hasPersonalAcсount == fase, то мы считаем что в этом поле придет тоже false. Такой аккаунт потом можно зарегистрировать

400 RefreshTokenResponse

RefreshTokenResponse

Body
application/json
Object
data
Object required
token
Token required
400 ErrorRefreshToken

Передали невалидный/отозванный рефреш токен

Body
application/json
Object
error
Object
message
string
Enumeration:
Неправильный токен, необходимо повторно авторизоваться
code
string
Enumeration:
WRONG_TOKEN
400 IsSocialNetworkExistsResponse

IsSocialNetworkExistsResponse

Body
application/json
Object
data
Object required
isExists
boolean required

true, если по соцсети удается найти профиль и у данного профиля есть логин в виде телефона. Иначе false

phone
firstName
string

Имя пользователя, полученное из api сбера (актуально только для сценария регистрации через сбер, т.к. для вк имя возвращает sdk)

400 ErrorAuthByNetworkResponse

Если при попытке авторизации не удается найти аккаунт по заданной соцсети или у аккаунта такого нет номера, то кидается эта ошибка. Текст ошибки придумать самостоятельно

Body
application/json
Object
error
Object required
code
string required
Enumeration:
AUTH_BY_NETWORK_NOT_FOUND
400 GenerateParametersResponse

GenerateParametersResponse

Body
application/json
Object
data
Object required
state
string required

Сгенерированное значение для предотвращения подделки межсайтовых запросов

nonce
string required

Сгенерированное значение для предотвращения атак повторения

400 ExchangeSilentTokenResponse

ExchangeSilentTokenResponse

Body
application/json
Object
data
Object required
accessToken
string required

Access token пользователя VK ID

userId
integer required

тип данных Long, user_id пользователя VK

400 SberTokenResponse

SberTokenResponse

Body
application/json
Object
data
Object required
accessToken
string required

Access_token, полученный из Сбера

Example:
f213a511-58d7-4e7c-88b3-a6de380c81da
400 ErrorExchangeSilentToken

Ошибка обмена silent token на access token при регистрации через VK ID

Body
application/json
Object
error
Object
message
string
Enumeration:
Ошибка токена, необходимо повторно авторизоваться
code
string
Enumeration:
SILENT_TOKEN_EXCHANGE_ERROR
400 ErrorSberToken

Ошибка получения кода доступа в Сбер API

Body
application/json
Object
error
Object
code
string required
Enumeration:
SBER_TOKEN_ERROR
message
string required
Enumeration:
Ошибка получения токена, необходимо повторно авторизоваться
400 ErrorAuth

ErrorAuth

Body
application/json
Object
error
Object
code
string required
Enumeration:
AUTH_ERROR
message
string required
Example:
"Что-то пошло не так. Попробуйте позже."
400 ErrorIncorrectUserType

Ошибка, которая возвращается, если авторизоваться пытается уже авторизованный пользователь.

Body
application/json
Object
error
Object
code
string required
Enumeration:
INCORRECT_USER_TYPE
message
string required
Example:
"Не удалось выполнить авторизацию, так как данный пользователь уже авторизован."
400 ErrorLogout

ErrorLogout

Body
application/json
Object
error
Object
code
string required
Example:
LOGOUT_ERROR
message
string required
Example:
"Что-то пошло не так. Повторите действие позже"
400 PromoCodesResponse

PromoCodesResponse

Body
application/json
Object
data
Object required
list
Array of Promocode required
400 PromoResponse

PromoResponse

Body
application/json
Object
data
Object required
list
Array of Promo
400 AppealTypeListResponse

AppealTypeListResponse

Body
application/json
Object
data
Object required
list
AppealTypeItem required
400 AppealTypeResponse

AppealTypeResponse

Body
application/json
Object
data
Object required
appealType
AppealType required
400 AppealThematicListResponse

AppealThematicListResponse

Body
application/json
Object
data
Object
appeals
Array of Appeals required

Массив списка типов обращений

requiredFields
RequiredFields required
400 AppealOrderHistoryResponse

AppealOrderHistoryResponse

Body
application/json
Object
data
Object
orders

Массив заказов

400 ErrorFieldValidationPhoneGate

Не прошла валидация телефона на гейте

Body
application/json
Object
error
Object
code
string
Enumeration:
VALIDATION_ERROR
message
string

Значение берется из POST /validation/rules. Response body. validationRules[i]. frontError того правила, которые было нарушено.

400 ErrorAppealTypeNotFound

ErrorAppealTypeNotFound

Body
application/json
Object
error
Object
code
string required
Enumeration:
TYPE_NOT_FOUND
message
string required
400 AppealResponse

AppealResponse

Body
application/json
Object
data
Object
appealId
string required

Идентификатор созданного обращения

400 BonusHistoryResponse

BonusHistoryResponse

Body
application/json
Object
data
Object required
list
familyMemberStatus
familyStatus required
400 BonusShortInfoResponse

BonusShortInfoResponse

Body
application/json
Object
data
Object required
info
BonusBalance required
400 BonusProgressResponse

BonusProgressResponse

Body
application/json
Object
data
Object required
progress
400 BonusDetailsByTypeResponse

BonusDetailsByTypeResponse

Body
application/json
Object
data
Object required
list
Array of BonusInfoItem required
400 BonusDetailsResponse

BonusDetailsResponse

Body
application/json
Object
data
Object required
list
Array of BonusDetails required
400 BonusQRInfoResponse

BonusQRInfoResponse

Body
application/json
Object
data
Object required
bonusLevel
clubCard
400 [DEP] BonusDetailsResponse

[DEP] BonusDetailsResponse

Body
application/json
Object
data
Object
400 [DEP] BonusCouponsResponse

Массив бонусных акций

Body
application/json
Object
data
Object required
list
Array of BonusCoupon required
400 ErrorMetroIdIsNotValid

ErrorMetroIdIsNotValid

Body
application/json
Object
error
Object
code
string
Enumeration:
METRO_ID_IS_NOT_VALID
message
string
Example:
"Выбранная станция метро не относится к выбранному городу."
400 GetMessagesResponse

GetMessagesResponse

Body
application/json
Object
data
Object required
list
Array of Message required
hasMore
boolean
400 HasUnreadMessagesResponse

HasUnreadMessagesResponse

Body
application/json
Object
data
Object required
hasUnread
boolean required

Флаг наличия непрочитанных сообщений во всех разделах, кроме онлайн-чата

unreadMessagesAmount
integer required

Количество непрочитанных сообщений во всех разделах, кроме онлайн-чата

Example:
2
chatBotUnreadMessagesAmount
integer

Количество непрочитанных сообщений в онлайн-чате

Example:
1
400 [DEP] NotificationTabsResponse

DEPRECATED, можно удалить, когда будет выпилен ФТ newMessageCenterEnabled

Body
application/json
Object
data
Object required
list
Array of NotificationTab required

Массив вкладок со слотами для запроса уведомлений

400 NotificationsSectionsResponse

NotificationsSectionsResponse

Body
application/json
Object
data
Object
slots
Array of Slot required

Список разделов

400 TrainerInfoResponse

TrainerInfoResponse

Body
application/json
Object
data
Object
trainerId
string required

Идентификатор тренера

firstName
string required

Имя

lastName
string required

Фамилия

middleName
string

Отчество

status
TrainerStatus required
documentUrl
string required

URL документа статической страницы для отображения контента в блоке “Преимущества”

Example:
cardpro/advantages/trainer
400 SportsmanListResponse

SportsmanListResponse

Body
application/json
Object
sportsmanList
Array of Sportsman

Данные спортсменов

sportsmanMaxAmount
integer required

Максимальное количество спортсменов тренера

400 SportsmanInvitationResponse

SportsmanInvitationResponse

Body
application/json
Object
data
Object
sportsmanLink
string required

Ссылка для приглашения спортсмена

Example:
https://sportmaster.onelink.me/imJi/refpro?token=1123111221
errorText
string

Текст ошибки, если спортсмена не удалось добавить

400 FullLinkResponse

FullLinkResponse

Body
application/json
Object
data
Object
fullLink
string required

Полная ссылка для редиректа

Example:
https://www.sportmaster.ru/pro-invitation/?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpbnZpdGF0aW9uQ29kZSI6IjEwMDAwMDAwNDc3NDY3MzgwNiIsIm1vYmlsZVBob25lIjoiNzkxNTI1ODk4MTUiLCJ0eXBlIjoxfQ.buoRuVT42NBISBSwSlZY6PexzMyM3TUTHfzNiWZljRY
400 UploadMirResponse

UploadMirResponse

Body
application/json
Object
data
Object
docUrl
string required

Единая ссылка на документы тренера из МИР

Example:
https://mir-cd-uat.web.local/ea/faces/index?t oken=1EFB1C984511C286B2452598E097EA4DA2EF80B916A24909F39BA91E8F CEF5536D0E2CF7790C8A4A1A34C148971A8060FF8B45BC43347A960DB456366C76C99B
filesUrl
Array of FileUrl required

Массив документов

vrowid
string required

Идентификатор загруженных документов

Example:
1484681
400 ValidateResponse

ValidateResponse

Body
application/json
Object
data
Object
isValid
boolean required

Признак валидности кода приглашения Спортсмена

400 TrainerSportKindResponse

TrainerSportKindResponse

Body
application/json
Object
data
Object
trainerSportKindName
string

Наименование вида спорта Тренера

Example:
Футбол
trainerSportKindId
string

Идентификатор вида спорта тренера

Example:
14920299
400 ErrorInvitationNotExist

Код приглашения некорректный

Body
application/json
Object
error
Object
code
string

Код ошибки

Enumeration:
INVITATION_NOT_EXIST
message
string

Текст ошибки

Example:
"Приглашения не существует"
400 ErrorLinkIsInvalid

Ссылка невалидна

Body
application/json
Object
error
Object
code
string

Код ошибки

Enumeration:
LINK_IS_INVALID
message
string

Текст ошибки

Example:
"Ссылка недействительна"
400 SportKindsResponse

SportKindsResponse

Body
application/json
Object
data
Object
sportKinds
Array of SportKinds

Массив видов спорта

400 SportsmanInfoResponse

SportsmanInfoResponse

Body
application/json
Object
data
Object
firstName
string

Имя спортсмена

lastName
string

Фамилия спортсмена

middleName
string

Отчество спортсмена

sportKindName
string

Наименование вида спорта

Example:
Футбол
sportKindProductsUrl
string

Ссылка на товары

Example:
/catalog/vidy_sporta_/futbol/
documentUrl
string required

Ссылка на преимущества

Example:
cardpro/advantages/sportsman
400 ErrorNotAvailableForEmployee

Возвращается, когда пользователь является сотрудником и пытается зарегистрироваться в КП как индивидуальный спортсмен

Body
application/json
Object
error
Object
code
string
Enumeration:
NOT_AVAILABLE_FOR_EMPLOYEE
message
string
Example:
"Вы уже участвуете в программе как сотрудник"
400 ErrorNotAvailableForFamilyMember

Возвращается, когда пользователь входит в семью и пытается зарегистрироваться в КП как индивидуальный спортсмен

Body
application/json
Object
error
Object
code
string
Enumeration:
NOT_AVAILABLE_FOR_FAMILY_MEMBER
message
string
Example:
"Ошибка. Вы участник семейного счёта"
400 ErrorNotAvailableForIndividualSportsman

Возвращается, когда пользователь является индивидуальным спортсменом и пытается зарегистрироваться в КП как индивидуальный спортсмен

Body
application/json
Object
error
Object
code
string
Enumeration:
NOT_AVAILABLE_FOR_INDIVIDUAL_SPORTSMAN
message
string
Example:
"Вы уже участвуете в программе как спортсмен"
400 ErrorNotAvailableForSportsman

Возвращается, когда пользователь является тренерским спортсменом и пытается зарегистрироваться в КП как индивидуальный спортсмен

Body
application/json
Object
error
Object
code
string
Enumeration:
NOT_AVAILABLE_FOR_SPORTSMAN
message
string
Example:
Вы уже участвуете в программе как спортсмен
400 ErrorNotAvailableForTrainer

Возвращается, когда пользователь является тренером и пытается зарегистрироваться в КП как индивидуальный спортсмен

Body
application/json
Object
error
Object
code
string
Enumeration:
NOT_AVAILABLE_FOR_TRAINER
message
string
Example:
"Вы уже участвуете в программе как тренер"
400 ErrorLimitForSportsmanExceeded

Возвращается, когда для спортсмена исчерпан лимит смены вида спорта

Body
application/json
Object
error
Object
code
string
Enumeration:
LIMIT_FOR_SPORTSMAN_EXCEEDED
message
string
Example:
"Ошибка регистрации. Вид спорта можно менять только 1 раз в год"
400 NewChatMessagesResponse

NewChatMessagesResponse

Body
application/json
Object
data
Object required
count
integer required

Количество новых сообщений чата

400 ChatWidgetPropsResponse

ChatWidgetPropsResponse

Body
application/json
Object
data
Object required
config
string

Параметры конфига. jSON объект в строковом формате

400 LastChatMessageResponse

LastChatMessageResponse

Body
application/json
Object
data
Object
unreadMessagesCount
integer required

Количество новых сообщений чата

Example:
5
lastMessage
string

Текст последнего сообщения

Example:
"Текст сообщения"
lastMessageDate
string

Дата/время последнего сообщения

Example:
"2023-07-18T09:22:37.087Z"
400 SportKindResponse

SportKindResponse

Body
application/json
Object
data
Object
favouriteSportKind
400 ErrorSportKindNotFound

Ошибка, если Пользователь не выбирал ЛВС

Body
application/json
Object
error
Object
code
string
Enumeration:
SPORT_KIND_NOT_FOUND
message
string
Example:
"Вид спорта не был выбран"
400 ErrorSelectSportIsNotAvailable

Ошибка, если сегодня последний месяц и Пользователь еще не выбирал вид спорта (выбрать уже нельзя)

Body
application/json
Object
error
Object
code
string

Код ошибки

Enumeration:
SELECT_SPORT_IS_NOT_AVAILABLE
message
string

Текст ошибки

Example:
"Нельзя выбрать вид спорта"
400 SportKindListResponse

SportKindListResponse

Body
application/json
Object
data
Object
favouriteSportKinds
Array of FavoriteSportKinds required

Список видов спорта

documentConditionsUrl
string required

url для контента с условиями акции

Enumeration:
/conditions_fav_sport
successFavSportContent
string

Текст для экрана успеха выбора ЛВС

400 PublicationSportKindResponse

PublicationSportKindResponse

Body
application/json
Object
data
Object
contentSportKind
400 RewardsResponse

RewardsResponse

Body
application/json
Object
data
Object required
bonusLevel
BonusLevel required
bonusDetails

Детализация по имеющимся бонусам

currencyBalance
list
Array of Reward required

Список вознаграждений

aboutRewards
string required

url информации о вознаграждениях

promotionRules
string required

url правил акции

rewardBanner
400 ErrorRewardActivation

ErrorRewardActivation

Body
application/json
Object
error
Object required
code
string required
Enumeration:
REWARD_ACTIVATION_ERROR
message
string required

Ошибка активации. Уже работаем над исправлением

400 ErrorUserType

ErrorUserType

Body
application/json
Object
error
Object required
code
string required
Enumeration:
USER_TYPE_ACCESS_ERROR
message
string required
Example:
"Недоступно для вашей клубной программы"
400 ErrorRewardAlreadyActivated

ErrorRewardAlreadyActivated

Body
application/json
Object
error
Object required
code
string required
Enumeration:
REWARD_ALREADY_ACTIVATED
message
string required

Предложение уже было открыто

400 ErrorRewardNotEnoughPoints

ErrorRewardNotEnoughPoints

Body
application/json
Object
error
Object required
code
string required
Enumeration:
REWARD_NOT_ENOUGH_POINTS
message
string required

Недостаточно баллов для открытия предложения

400 ClientInterestsResponse

ClientInterestsResponse

Body
application/json
Object
data
Object required
clientInterests
clientSurvey
ClientSurvey required
400 ReferralProgramResponse

ReferralProgramResponse

Body
application/json
Object
data
Object
contentReferralProgram
400 PersonalDiscountsResponse

PersonalDiscountsResponse

Body
application/json
Object
data
Object required
list
Array of PersonalDiscount required
personalDiscountsInfo
string

Ссылка на информацию об акции “Мои скидки”

400 PersonalDiscountsBaseResponse

PersonalDiscountsBaseResponse

Body
application/json
Object
data
Object required
list
Array of PersonalDiscountBase required
400 PersonalDiscountActivationResponse

PersonalDiscountActivationResponse

Body
application/json
Object
badges
Array of BadgeParameters

Массив бейджей

buttonType
string

Тип кнопки

Enumeration:
CARD
400 PersonalDiscountStatusResponse

PersonalDiscountStatusResponse

Body
application/json
Object
interestsRequired
boolean required

Требуется заполнение интересов

interestsFilled
boolean required

Интересы заполнены

shopNumber
string

Номер магазина

400 PersonalDiscountTaskResponse

PersonalDiscountTaskResponse

Body
application/json
Object
discountCreationTaskId
string required

ID заявки

waitingTime
Duration required
message
string required

Сообщение

400 ErrorCheckingDiscount

ErrorCheckingDiscount

Body
application/json
Object
error
Object
title
string required

Заголовок

message
string

Текст ошибки

buttonText
string required

Текст кнопки

buttonUrl
string required

Диплинк для кнопки

code
string required

Код ошибки

Enumeration:
PERSONAL_DISCOUNT_NOT_AVAILABLE_FOR_CREATION
PERSONAL_DISCOUNT_SCRIPT_NOT_FOUND
PERSONAL_DISCOUNT_IS_CREATING
PERSONAL_DISCOUNT_ALREADY_CREATED
PERSONAL_DISCOUNT_NOT_AVAILABLE_IN_THIS_PERIOD
PERSONAL_DISCOUNT_NOT_AVAILABLE
400 CheckingCreationDiscountResponse

CheckingCreationDiscountResponse

Body
application/json
Object
data
Object required
discountCreationTaskId
string

ID заявки

400 FamilyResponse

FamilyResponse

Body
application/json
Object
data
Object
family
email
advertising
boolean required

Согласие подписки на рекламную рассылку

subscriptionReceiptAvailable
boolean required

Флаг доступности подписки на эл. чеки

400 FamilyQuestionsResponse

FamilyQuestionsResponse

Body
application/json
Object
data
Object
familyQuestions
Array of FamilyQuestion required

Информация о частозадаваемых вопросах семейного счёта

400 InviteFamilyMemberResponse

InviteFamilyMemberResponse

Body
application/json
Object
data
Object
isRegisteredMember
boolean required

Признак зарегистрированности участника в Sportmaster

Example:
true
shareLink
string required

Значение ссылки onelink

Example:
https://sportmaster.onelink.me/imJi
400 ErrorAnotherBonusProgram

ErrorAnotherBonusProgram

Body
application/json
Object
error
Object required
code
string required
Enumeration:
ERROR_ANOTHER_BONUS_PROGRAM
message
string required
Example:
Участник состоит в другой бонусной программе — его нельзя пригласить
400 ErrorFamilyIsExists

ErrorFamilyIsExists

Body
application/json
Object
error
Object required
code
string required
Enumeration:
FAMILY_IS_EXISTS
message
string required
Example:
Участник уже добавлен в другой семейный счёт
400 ErrorLimitFamilyInvitationsExceeded

Ошибка при превышении лимита на отправку приглашений в семейный аккаунт

Body
application/json
Object
error
Object
code
string required
Enumeration:
LIMIT_FAMILY_INVITATIONS_EXCEEDED
message
string required
Example:
Превышен лимит на отправку приглашений
400 ErrorLimitFamilyJoinsExceeded

Ошибка при превышении лимита на вступления в семейный счёт у пользователя

Body
application/json
Object
error
Object required
code
string required
Enumeration:
LIMIT_FAMILY_JOINS_EXCEEDED
message
string required
Example:
Вы израсходовали лимит на вступления: 2 за 90 дней
400 BenefitsResponse

BenefitsResponse

Body
application/json
Object
data
Object required
list
Array of BenefitSection required
400 ShopsResponse

ShopsResponse

Body
application/json
Object
data
Object required
list
Array of BaseShop
city
400 ShopsResponse2

ShopsResponse2

Body
application/json
Object
data
Object required
list
Array of BaseShop
400 ShopResponse

ShopResponse

Body
application/json
Object
data
Object required
shop
Shop required
400 FavouriteShopsResponse

FavouriteShopsResponse

Body
application/json
Object
data
Object required
list
Array of BaseShop required
400 FavouriteShopNumbersResponse

FavouriteShopNumbersResponse

Body
application/json
Object
data
Object required
list
Array of FavouriteShop required
400 ErrorShopNotFound

ErrorShopNotFound

Body
application/json
Object
error
Object
code
string
Enumeration:
SHOP_NOT_FOUND
message
string
Example:
"Не найден магазин с соответствующим номером"
400 InStoreMenuResponse

InStoreMenuResponse

Body
application/json
Object
data
Object required
list
Array of InStoreMenuItem required

Список разделов меню

400 InStoreShopInfoResponse

InStoreShopInfoResponse

Body
application/json
Object
data
Object required
shopInfo
400 CatalogMenuResponse

CatalogMenuResponse

Body
application/json
Object
data
Object required
sections
Array of CatalogMenuItem required
catalog
Array of CatalogMenuItem required
400 SubcategoriesResponse

SubcategoriesResponse

Body
application/json
Object
data
Object required
list
Array of Category required

список дочерних категорий

current
Category required
400 PopularSportsResponse

PopularSportsResponse

Body
application/json
Object
data
Object required
list
Array of PopularSport required
400 BrandsResponse

BrandsResponse

Body
application/json
Object
data
Object required
list
Array of Brand required
400 CatalogBannersResponse

Баннеры в модуле каталог

Body
application/json
Object
data
Object required
list
Array of Banner required

Список баннеров

400 AdBannerResponse

AdBannerResponse

Body
application/json
Object
data
Object required
adBanner
400 ContentPageResponse

ContentPageResponse

Body
application/json
Object
data
Object
caption
string

Заголовок контентной страницы

list
Array

Список сущностей для CLP

Object
subtype
string required

Тип сущности

Enumeration:
recommendations
registries
banners
html
lookzones
productSelection
content
One of required

Контент для сущности

400 UserPhotosResponse

UserPhotosResponse

Body
application/json
Object
data
Object required
list
Array of ImageUri required

Массив может быть пустым, если у товара отсутствуют фотографии из отзывов покупателей.

400 ProductsResponse

ProductsResponse

Body
application/json
Object
data
Object required
list
Array of ProductColorModel required
hasMore
boolean required
400 ProductsByIdResponse

ProductsByIdResponse

Body
application/json
Object
data
Object required
lite
full
400 ProductsBySkuIdResponse

ProductsBySkuIdResponse

Body
application/json
Object
data
Object
list
Array of ColorModelSizes

Массив ЦМ (супер light)

400 SearchAutocompleteResponse

SearchAutocompleteResponse

Body
application/json
Object
data
Object required
query
string required

Текущий поисковый запрос

correction
string

Исправленный поисковый запрос

hints
Array of string required

Список подсказок

taps
Array required
Object
tap
string required
relatedSearch
string required
products
Array of ProductColorModel required
categories
Array required

Массив хлебных крошек. Первый элемент рут категория. Пример [[“Обувь”, “Мужчинам”, “Кроссовки”], [“Обувь”, “Женщинам”, “Кроссовки”]]

Array of Category
artMedia
Array of artMedia required

Подсказки статей из медиа

searchHistory
Array of string required

История поисковых запросов

blocksOrder
Array of string required

Порядок вывода поисковых подсказок на фронте

historyLimit
integer required

Количество истории поисковых запросов, которые необходимо выводить

400 RecentProductsResponse

RecentProductsResponse

Body
application/json
Object
data
Object required
list
Array of RecentProductColorModel required
400 RecommendationResponse

RecommendationResponse

Body
application/json
Object
data
Object required
list
Array of RecommendationGroup required

Список групп рекомендаций

400 RecommendationProductsResponse

RecommendationProductsResponse

Body
application/json
Object
data
Object required
list
Array of RecommendationProductsGroup required

Список рекомендаций

400 InfiniteRecommendationProductsResponse

InfiniteRecommendationProductsResponse

Body
application/json
Object
data
Object required
hasMore
boolean required

Есть ли еще страницы

400 ProductColorModelResponse

ProductColorModelResponse

Body
application/json
Object
data
Object required
product
details
400 ProductSetResponse

Комплект

Body
application/json
Object
data
Object required
list
Array of ProductColorModel required

Товары комплекта

400 PersonalPriceResponse

PersonalPriceResponse

Body
application/json
Object
data
Object
personalPrice
400 ProductSizeTableResponse

ProductSizeTableResponse

Body
application/json
Object
data
Object required
size
classifyingAttributes

Характеристики товара (Классифицирующие атрибуты)

400 ProductSizeTableError

Ошибка, которую необходимо возвращать, если у запрашиваемой цветомодели отсутствует размерная сетка в формте HTML таблицы.

Body
application/json
Object
error
Object
code
string
Enumeration:
SIZE_TABLE_IS_NOT_EXISTS
message
string
Example:
Таблица размеров данного товара недоступна в данный момент.
400 ProductColorModelIsNotApproved

Ошибка, которую необходимо вернуть в случае, если гейт не нашел товар и вернул пустой ответ

Body
application/json
Object
error
Object
code
string
Enumeration:
COLORMODEL_IS_NOT_APPROVED
message
string

Данный товар недоступен для просмотра.

400 InvalidSlotsError

InvalidSlotsError

Body
application/json
Object
error
Object
code
string required

Код ошибки

Enumeration:
INVALID_SLOTS
message
string required

Сообщение ошибки

Example:
"Массив слотов рекомендаций невалидный или пустой."
400 ProductSetsResponse

ProductSetsResponse

Body
application/json
Object
data
Object required
list
Array of ProductSet required

Комплекты

400 CompareListTabResponse

CompareListTabResponse

Body
application/json
Object
data
Object
list
Array of CompareProduct
tabList
Array of compareTab

Массив табов

400 ProductMarkersResponse

ProductMarkersResponse

Body
application/json
Object
data
Object required
markers

Плашки товара

400 ProductAccessoriesResponse

Аксессуары

Body
application/json
Object
data
Object required
list

Список аксессуаров

400 ProductAccessoriesCategoriesResponse

Категории аксессуаров

Body
application/json
Object
data
Object required
list

Список категорий

400 DeliveryOptionError

Ошибка выбранного способа получения

Body
application/json
Object
error
Object
code
string
Enumeration:
WRONG_DELIVERY_OPTION
message
string
Enumeration:
Некорректный способ получения
400 PersonalPriceListResponse

PersonalPriceListResponse

Body
application/json
Object
data
Object
list
Array of ProductPersonalPrice required

Список персональных цен

400 BnplDetailsResponse

BnplDetailsResponse

Body
application/json
Object
data
Object required
paymentInfo
400 ReviewSummaryResponse

Общие данные по отзывам о товаре

Body
application/json
Object
data
Object required
summary
ReviewSummary required
isReviewAllowed
boolean required

Статус возможности пользователя оставить отзыв на товар

Body
application/json
Object
data
Object required
list
Array of Review required
hasMore
boolean required
sorting
Array of Sort required

Какие есть сортировки у этого списка. С признаком, по какой сейчас сортируется

400 ReviewsListResponse

ReviewsListResponse

Body
application/json
Object
list
Array of Review required
sorting
Array of Sort required

Какие есть сортировки у этого списка. С признаком, по какой сейчас сортируется

hasMore
boolean required
400 PromotedReviewResponse

PromotedReviewResponse

Body
application/json
Object
data
Object required
summary
ReviewSummary required
promotedReview
sizeMatch
reviewHighlights
[DEP] isReviewAllowed
boolean required

[DEP 4.75] Статус возможности пользователя оставить отзыв

400 PhotoUploadResponse

PhotoUploadResponse

Body
application/json
Object
data
Object required
photoId
string required
400 ReviewSchemaResponse

ReviewSchemaResponse

Body
application/json
Object
data
Object
ratingDetails
Array of ProductRaitingDetailParam required
authorDetails
Array of AuthorRatingDetailParam required
isBodyRequired
boolean required
isProsRequired
boolean required
isConsRequired
boolean required
dimensions
400 ErrorUserContentIdIsEmpty

ErrorUserContentIdIsEmpty

Body
application/json
Object
error
Object
code
string
Enumeration:
USER_CONTENT_ID_IS_EMPTY
message
string
Example:
"Для выполнения запроса необходимо передать идентификатор отзыва или вопроса."
400 QuestionsResponse

QuestionsResponse

Body
application/json
Object
data
Object required
list
Array of Question required

Массив может быть пустым.

hasMore
boolean required
sorting
Array of Sort required

Какие есть сортировки у этого списка. С признаком, по какой сейчас сортируется

total
integer required

Сколько всего вопросов

400 ErrorUserContentIsNotFound

ErrorUserContentIsNotFound

Body
application/json
Object
error
Object
code
string
Example:
USER_CONTENT_ID_IS_NOT_FOUND
message
string
Example:
"Для выполнения запроса необходимо передать корректный идентификатор отзыва или вопроса "
400 ErrorAplaut

ErrorAplaut

Body
application/json
Object
error
Object
code
string
Enumeration:
APLAUT_ERROR
message
string
Example:
Невозможно отправить вопрос о товаре, попробуйте позже или проверьте вводимые данные.
400 LightProductAvailabilityResponse

LightProductAvailabilityResponse

Body
application/json
Object
data
Object required
productAvailability
Array of SkuAvailabilityLight required
400 ProductsDeliveryResponse

ProductsDeliveryResponse

Body
application/json
Object
data
Object required
productsDelivery
Array of SkuAvailabilityDelivery required
400 ProductAvailabilitiesResponse

ProductAvailabilitiesResponse

Body
application/json
Object
data
Object required
productAvailability
400 SkuAvailabilityInShopResponse

SkuAvailabilityInShopResponse

Body
application/json
Object
data
Object required
list
Array of SkuAvailabilityInShop required
400 SkuAvailabilityCheckResponse

SkuAvailabilityCheckResponse

Body
application/json
Object
data
Object required
list
Array of SkuAvailabilityCheck required
400 FavouriteListCreateResponse

FavouriteListCreateResponse

Body
application/json
Object
data
Object
favouriteListId
string required

Идентификатор списка

Example:
150318
400 ErrorFavouriteListAlreadyExist

ErrorFavouriteListAlreadyExist

Body
application/json
Object
error
Object
code
string
Enumeration:
LIST_ALREADY_EXIST
message
string
Example:
Список с таким названием уже существует
400 FavouriteListsResponse

FavouriteListsResponse

Body
application/json
Object
data
Object required
list
Array of FavouriteList required

Массив пользовательских списков избранных товаров. Может быть пустым

400 ErrorFavouriteListName

ErrorFavouriteListName

Body
application/json
Object
error
Object required
code
string
Enumeration:
LIST_NAME_VALIDATION_ERROR
message
string
Example:
В названии списка должно быть не менее 1 и не более 40 символов
400 ErrorEmptyList

ErrorEmptyList

Body
application/json
Object
error
Object
code
string required
Enumeration:
EMPTY_LIST_ERROR
message
string required
Example:
Список избранного пуст
400 ErrorProductSubscription

ErrorProductSubscription

Body
application/json
Object
error
Object
code
string required
Enumeration:
PRODUCT_SUBSCRIPTION_ERROR
message
string required
Example:
Нельзя перенести в список товары, на которые вы подписаны
400 FavoriteProductsResponse

FavoriteProductsResponse

Body
application/json
Object
data
Object required
list
Array of FavoriteProduct required
productsTotalCount
integer

Общее количество товаров в списке. Отдается для списков с пагинацией

hasMore
boolean required

Есть ли еще элементы

400 FavouriteAddProductsResponse

FavouriteAddProductsResponse

Body
application/json
Object
data
Object required
list
Array of FavoriteProduct required

Список добавленных товаров

400 FavoriteListException

FavoriteListException

Body
application/json
Object
data
Object required
code
string

FAVORITELIST_EXCEPTION

message
string

“Должно быть заполнено хотя бы одно поле”

400 ErrorFavouriteAdding

ErrorFavouriteAdding

Body
application/json
Object
data
Object
code
string required
Enumeration:
FAVOURITE_ADDING_ERROR
message
string required
Example:
"Ошибка добавления в избранное"
400 CompareListResponse

CompareListResponse

Body
application/json
Object
data
Object required
list
Array of CompareProduct required
tabList
Array of compareTab

Массив табов

400 GuidesResponse

GuidesResponse

Body
application/json
Object
data
Object
list
Array of GuideShortInfo required
hasMore
boolean required
400 GuideResponse

GuideResponse

Body
application/json
Object
data
Object
guide
Guide required
400 GuideProgressResponse

GuideProgressResponse

Body
application/json
Object
data
Object required
productCount
integer required

Количество товаров

subquery
string required

URL для основной подборки

altSubquery
string

URL для альтернативной подборки

400 GuideAltProductsResponse

GuideAltProductsResponse

Body
application/json
Object
data
Object required
altProductList
Array of AltProductList

Альтернативная подборка

400 ProductKitsCategoriesResponse

Категории комплектов

На текущий момент возвращается только один тип категорий - “Жизненные ситуации”

Body
application/json
Object
data
Object
lifeSituations
Array of KitsCategory required

тип категории “Жизненные ситуации”

400 ProductKitListResponse

ProductKitListResponse

Body
application/json
Object
data
Object required
list
Array of ProductKit required

Список комплектов

allProductKitsUrl
string required

Ссылка на раздел “Все образы”

hasMore
boolean required

Флаг есть ли еще данные для загрузки

400 ErrorInvalidRequestParameters

ErrorInvalidRequestParameters

Body
application/json
Object
error
Object
code
string
Enumeration:
INVALID_REQUEST_PARAMETERS
message
string
Example:
"Некорретные параметры запроса"
400 ProductKitsResponse

ProductKitsResponse

Body
application/json
Object
data
Object required
list
Array of ProductKit required

Список комплектов для товара

400 ProductKitByIdResponse

ProductKitByIdResponse

Body
application/json
Object
data
Object
kit
ProductKit required
shareLink
string required

Ссылка для шаринга

relatedKits
Array of ProductKit

Связанные комплекты

400 ErrorKitNotFound

ErrorKitNotFound

Body
application/json
Object
error
Object required
code
string required
Enumeration:
KIT_NOT_FOUND_ERROR
message
string required
Example:
"Комплект не найден"
400 ServiceCategoriesResponse

ServiceCategoriesResponse

Body
application/json
Object
data
Object
list
Array of ServiceCategory required
banners
Array of Banner required
serviceCentersCount
integer required

Количество доступных сервисных центров

400 ServiceCategoryDetailResponse

ServiceCategoryDetailResponse

Body
application/json
Object
data
Object
serviceCategory
ServiceCategory required
children
Array of ServiceCategory required

Список подкатегорий

400 ServiceProductDetailResponse

ServiceProductDetailResponse

Body
application/json
Object
data
Object
serviceProduct
ServiceProduct required
400 ServiceCentersResponse

ServiceCentersResponse

Body
application/json
Object
data
Object
list
Array of ServiceCenter required

Список сервисных центров

400 BannerResponse

BannerResponse

Body
application/json
Object
data
Object required
banner
Banner required
400 MainResponse

MainResponse

Body
application/json
Object
data
Object required
list
Array of MainSection required
hasMore
boolean required

Есть ли еще страницы

400 ServicesSectionsResponse

ServicesSectionsResponse

Body
application/json
Object
data
Object required
list
Array of ServiceSection required
hasMore
boolean

Есть ли еще страницы

400 ServicesDashboardResponseOld

ServicesDashboardResponseOld

Body
application/json
Object
data
Object required
promosImage
ImageUri required
afishaImage
ImageUri required
streamsImage
ImageUri required
travelImage
ImageUri required
trainingsImage
ImageUri required
400 ServicesGroupsResponse

Список групп сервисов

Body
application/json
Object
data
Object

Объект верхнего уровня

groups
Array of ServicesGroup required

Список групп сервисов

400 FavoriteServicesListResponse

Список избранных пользователем сервисов

Body
application/json
Object
data
Object required

Объект верхнего уровян

favoriteServices
Array of ServicesEnum required

Список выбранных пользователем сервисов (существующих и включённых для конкретной версии МП и ОС устройства пользователя)

400 ServicesSectionsListResponse

ServicesSectionsListResponse

Body
application/json
Object
data
Object required

Объект верхнего уровня

sections
Array of ServiceSection required

Списко секций

400 BannersResponse

BannersResponse

Body
application/json
Object
data
Object required
list
Array of Banner
400 TickerResponse

TickerResponse

Body
application/json
Object
data
Object
list
Array of TickerBanner required
400 PersGateTagsResponse

Метки персонализации Pers Gate.

Body
application/json
Object
data
Object required
tags
Array of PersGateTag required
400 DocumentResponse

DocumentResponse

Body
application/json
Object
data
Object required
document
Document required
400 PublicationResponse

PublicationResponse

Body
application/json
Object
data
Object required
publication
Publication required
400 PublicationsResponse

PublicationsResponse

Body
application/json
Object
data
Object required
list
Publication required
hasMore
boolean required

Флаг непоказанных публикаций

Example:
true
400 ServiceFromUrlResponse

Если URL привёл на какой-то сервис – в ответе есть свойства сервиса. Иначе свойства NULL

Body
application/json
Object
data
Object required
serviceNameForAnalytics
string

Наименование сервиса для отправки события в PersGate, если:

  • URL принадлежит к сервису
  • Значение задано для сервиса
Example:
Checkup
serviceId
400 ErrorDocumentIsNotActive

Статическая страница неактивна в CMS Gate и её нельзя отображать пользователю.

Body
application/json
Object
error
Object
code
string

Код ошибки

Enumeration:
DOCUMENT_IS_NOT_ACTIVE
message
string

Сообщение

Example:
"В данный момент страница недоступна для просмотра."
400 ErrorDocumentIdIsNull

Отсутствует идентификатор статической страницы.

Body
application/json
Object
error
Object
code
string

Код ошибки

Enumeration:
DOCUMENTID_IS_NULL
message
string

Сообщение

Example:
"Невозможно выполнить запрос без идентификатора страницы."
400 ErrorDocumentNotFound

Статическая страница не найдена.

Body
application/json
Object
error
Object
code
string

Код ошибки

Enumeration:
DOCUMENT_NOT_FOUND
message
string

Сообщение

Example:
"Невозможно выполнить запрос, указанную страницу не удалось найти."
400 ErrorPublicationNotFound

Публикация не найдена.

Body
application/json
Object
error
Object
code
string

Код ошибки

Enumeration:
PUBLICATION_NOT_FOUND
message
string

Сообщение

Example:
"Не удалось найти публикацию."
400 ErrorPublicationIdentifier

Ошибка, генерируемая при отсутствии обоих параметров запроса на получение публикации по идентификатору или URL.

Body
application/json
Object
error
Object
code
string

Код ошибки

Enumeration:
PUBLICATION_IDENTIFIER_INVALID
message
string

Сообщение

Example:
"Невозможно выполнить запрос, отсутствует идентификатор публикации или указанный идентификатор не является корректным."
400 SendSmsResponse

SendSmsResponse

Body
application/json
Object
data
Object required
requestId
string required

requestId

resendIn
integer required

Длительность в секундах, через сколько можно отправить новую смс.

codeLength
integer required

Сколько символов в отправленном смс коде

400 CheckResponse

Ответ на запрос проверки кода введенного пользователем.

Body
application/json
Object
data
Object required
token
string required

Строка подтверждающая прохождение проверки.

400 ErrorDeviceBlocked

Девайс заблокирован, потому что много раз пытался выполнить одно и тоже действие

Body
application/json
Object
error
Object required
code
string required
Enumeration:
DEVICE_BLOCKED
message
string required
Example:
Ваш девайс заблокирован на 5 минут
400 ErrorSmsCodeIncorrect

Смс код непраивльный

Body
application/json
Object
error
Object required
code
string required
Enumeration:
SMS_CODE_INCORRECT
message
string required
Example:
Неверный смс код
400 ErrorVerifyCodeExpiry

Время проверки данного кода истекло.

Body
application/json
Object
error
Object required
code
string required
Enumeration:
VERIFY_CODE_EXPIRY
message
string required
Example:
Время действия вашего кода истекло
400 SendVerificationSmsResponse

SendVerificationSmsResponse

Body
application/json
Object
data
Object required
resendIn
integer required

Длительность в секундах, через сколько можно отправить новую смс.

requestId
string required

Идентификатор проверки кода вводимого пользователем

lastPhoneDigits
string required

Куда была отправлена смс. Последние 4 цифры номера

400 CheckSmsVerificationResponse

Ответ на запрос проверки кода введенного пользователем.

Body
application/json
Object
data
Object required
token
string required

Строка подтверждающая прохождение проверки.

400 ErrorTooManyDifferentPhonesToRequestCode

ErrorTooManyDifferentPhonesToRequestCode

Body
application/json
Object
error
Object
code
string
Enumeration:
TOO_MANY_DIFFERENT_PHONES_TO_REQUEST_CODE
message
string
Example:
Слишком много попыток запроса кода на разные номера телефонов. Повторите попытку позже.
400 ErrorTooManyIncorrectCodeInputs

ErrorTooManyIncorrectCodeInputs

Body
application/json
Object
error
Object
code
string
Enumeration:
TOO_MANY_INCORRECT_CODE_INPUTS
message
string
Example:
"Превышено количество неверно введенных смс-кодов"
400 ErrorFieldValidationPhoneOwn

Не прошла собственная валидация телефона на бэкенде

Body
application/json
Object
error
Object
code
string
Enumeration:
ERROR_FIELD_VALIDATION
message
string
Enumeration:
Такой код страны не поддерживается
Номер телефона после кода страны не должен превышать 10 символов
400 PopupResponse

PopupResponse

Body
application/json
Object
data
Object required
popup
PopupInfo required
contents
Array of PopupContent required

Информация об экранах в поп-апе, может быть один или несколько

400 ErrorPopupNotFound

Информация по всплывающему окну не была найдена

Body
application/json
Object
error
Object required
code
string

Код ошибки

Enumeration:
POPUP_NOT_FOUND
message
string required

Сообщение

Example:
"Невозможно выполнить запрос, информацию по всплывающему окну не удалось найти."
400 PopupSettingsResponse

Информация по правилам показа всплывающих окон для фронта.

Body
application/json
Object
data
Object required
list
Array of PopupSettings
popupDowntime
integer

Время простоя для показа всплывающего окна(в секундах). Всплывающее окно не может быть показано, пока не пройдёт указанное время с момента последнего показа.

sessionDisplayCount
integer

Сколько раз мы можем за сессию показывать любые окна

400 ActiveStreamResponse

ActiveStreamResponse

Body
application/json
Object
data
Object required
stream
liveButton
400 StreamsResponse

StreamsResponse

Body
application/json
Object
data
Object required
list
Array of Stream required

Список стримов

tags
Array of StreamTag required

Список возможных тэгов стримов

400 StreamResponse

StreamResponse

Body
application/json
Object
data
Object required
stream
400 StreamProductsResponse

StreamProductsResponse

Body
application/json
Object
data
Object required

Объект верхнего уровня

products
Array required

Массив товаров

Object
productId
string required

Идентификатор цветомодели товара

Example:
25939160299
sizeRatio
number required

Кол-во sku, доступных онлайн / Кол-во sku всего

Example:
0.25
availability
Object required

Доступность товара

isDelivery
boolean required

Доступность товара для доставки

isPickUp
boolean required

Доступность товара для самовывоза из магазина

isPickPoint
boolean required

Доступность товара для самовывоза из пункта самовывоза

isNow
boolean required

Доступность товара для получения сейчас

400 ErrorPhoneTypeLoginNotFound

ErrorPhoneTypeLoginNotFound

Body
application/json
Object
error
Object
error
string
Enumeration:
PHONE_NOT_FOUND
message
string
400 ErrorUserdAlreadySubscribed

Ошибка возращается в случае, если пользователь пытается подписаться на стрим, на которые он уже подписан

Body
application/json
Object
error
Object required

Объект верхнего уровня

code
string required
Enumeration:
ERROR_USER_ALREADY_SUBSCRIBED
message
string required

Мы пришлём уведомление когда трансляция начнется. Проверьте, пожалуйста, чтобы уведомления от приложения Спортмастер были включены

Operations
POST /v1/profile/configuration
POST /v1/ordering/configuration
POST /v1/catalog/configuration/
POST /v1/stores/configuration
POST /v1/cart/createSnapshot
POST /v1/cart2/obtainPoint/{obtainPointId}/_service-level-code
POST /v1/cart2/obtainPoint/receivingAddressAvailability
POST /v2/cart2/obtainPoint/{obtainPointId}/deliveryService
DELETE /v2/cart2/obtainPoint/{obtainPointId}/deliveryService
POST /v1/cart2/obtainPoint/{obtainPointId}/deliveryService
DELETE /v1/cart2/obtainPoint/{obtainPointId}/deliveryService
GET /cart2/order/{potentialOrderId}/paymentMethods
POST /v1/cart2/order/{potentialOrderId}/paymentMethods
POST /v1/cart/submit
GET /v3/orderHistory
POST /v4/order/{orderNumber}
GET /order/receipt/{receiptCode}
POST /orderHistory/thanksForOrder
POST /order/{orderNumber}/pickUpAutoRequest
POST /order/{orderNumber}
POST /order/{orderNumber}/_cancel
GET /egcorder/{orderNumber}
POST /order/{orderNumber}/prolongate
POST /v1/return-cart/order/{potentialOrderId}/refundMethods
POST /v1/return-cart/obtain-point/to-delivery-point
POST /v2/return-cart/obtain-point/to-delivery-point
GET /v1/return-orders
GET /v1/return-orders/{returnCode}
POST /v1/return-orders/{returnCode}/_cancel
POST /v1/return-orders/{returnCode}/_start-quarrel
POST /v1/service-cart/submit
GET /v1/profile/client-labels
POST /profile/deleteAccount
POST /profile/avatar
DELETE /profile/avatar
POST /profile/pushToken
GET /profile/userGateToken
GET /v1/info/callCenterPhone
POST /v1/profile/_check-user-gate-uid-and-club-pro-id
GET /geo/street
GET /geo/house
POST /auth/signInBySms
POST /auth/signUpBySms
POST /auth/signInBySocialNetwork
POST /v2/auth/signUpBySocialNetwork
POST /auth/refresh
POST /auth/logout
POST /auth/logout/all/
POST /auth/exchangeSilentAuthTokenVK
POST /auth/attachSocialNetwork
POST /auth/sber/token
PUT /profile/deliveryAddresses/{deliveryAddressId}
DELETE /profile/deliveryAddresses/{deliveryAddressId}
POST /profile/deliveryAddresses
GET /v2/notifications/getMessages
POST /v1/cardPro/sportsman-invitation/validate
GET /v1/cardPro/sport-kinds
POST /v1/workingWithLinks/openShortLink
GET /v1/favourite-sport-kind
PUT /v1/favourite-sport-kinds/{sportKindId}/_select
GET /v1/favourite-sport-kinds
GET /v1/favourite-sport-kind/publication
POST /v1/rewards/_convert-bonuses
GET /profile/client-interests
POST /profile/client-interests
GET /v1/personal-discount/base
POST /v1/personal-discount/_activation
GET /v1/personal-discount/{scriptCode}/status
POST /v1/personal-discount/task
GET /v1/personal-discount/{discountCreationTaskId}
POST /v1/profile/family/{familyId}/_answer
PUT /v1/profile/family/{familyId}/members/{memberId}
DELETE /v1/profile/family/{familyId}/members/{memberId}
DELETE /v1/profile/family/{familyId}
GET /v2/shop/favourite
DELETE /shop/favourite/{shopNumber}
POST /v2/catalog/categories/subcategories
POST /v3/catalog/categories/sports
POST /v2/catalog/brands
GET /catalog/brands/top
GET /catalog/categories/sports/top
GET /products/{productId}/reviews/photos
POST /v2/products/search
POST /v2/products/search/autocomplete
POST /products/search/photo
POST /v2/products/{productId}
POST /v2/products/{productId}/personalPrice
POST /v1/products/_personal-price-list
POST /products/search-ids
POST /v2/products/{productId}/sizeTable
POST /v2/products/{productId}/productSet
POST /v1/products/productSet
POST /v1/products/{productId}/productMarkers
POST /v1/products/{productId}/accessories
POST /v1/products/{productId}/accessories/categories
POST /v1/bnpl/payment-details
POST /v1/products/search-skuId
POST /appeal/createBestPrice
POST /reviews/{id}/report
POST /reviews/create
POST /reviews/uploadPhoto
POST /questions/{id}/report
POST /v3/products/{productId}/availability
POST /v2/products/{productId}/availability
POST /v4/products/{productId}/availability
POST /v1/products/{productId}/delivery-availability
POST /v3/skus/{skuId}/shop-availability
POST /v1/skus/_availability
DELETE /v1/favourite-lists/{favouriteListId}
POST /v1/products/favorite/_delete
GET /v1/products/{productId}/productKits
POST /v1/service-center/centers
POST /internal-analytics/bff/event
POST /analytics/event
GET /v2/documents/{documentId}
GET /v2/service/verification/increaseCount
POST /streams/{id}/subscribe
GET /api/support/streams/insider/get-csv-for-user-segment/{streamId}
POST /api/support/streams/streamerce/stream-notification
DEP Конфигурация модуля Profile
GET /configuration/profile

Responses

400 ProfileConfigurationResponse

Конфигурация для модуля Профиля пользователя

v1 Конфигурация модуля Profile
POST /v1/profile/configuration

Документация: https://confluence.app.local/pages/viewpage.action?pageId=804637395

Недоступен из-вне, только через POST /v1/configurations

Responses

400 ProfileConfigurationResponse

Конфигурация для модуля Профиля пользователя

v1 Конфигурация модуля Ordering
POST /v1/ordering/configuration

Конфигурация фича тоглов, параметров для модуля оформления заказа

Многие параметры в админке зависят от версии мобильного приложения. Бекенд должен брать версию из заголовка и нормализовать её до вида х.у.z , т.к. там могут быть разные дебаг суффиксы.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=489470354

Недоступен из-вне, только через POST /v1/configurations

Request body

application/json
Object
osVersion
string required

Номер версии

Example:
5.1.1

Responses

400 OrderingConfigResponse

Конфигурация для модуля оформления и корзины.

DEP v4 Конфигурация модуля App
POST /v4/configuration/app

Request body

application/json
Object
osVersion
string required

Номер версии

Example:
5.1.1

Responses

400 AppConfigResponseV4

Конфигурация для общих вещей приложения. Версия (v4).

400 ErrorUnderMaintenance

Проходит сервисное обслуживание серверов.

DEP Конфигурация модуля App
POST /v3/configuration/app

Конфигурация фича тоглов, параметров из админки и тд.

Многие параметры в админке зависят от версии мобильного приложения. Бекенд должен брать версию из заголовка и нормализовать её до вида х.у.z , т.к. там могут быть разные дебаг суффиксы.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=489470358

Request body

application/json
Object
osVersion
string required

Номер версии

Example:
5.1.1
persGateTags
location

Responses

400 AppConfigResponse

Конфигурация для общих вещей приложения.

400 ErrorUnderMaintenance

Проходит сервисное обслуживание серверов.

Конфигурация модуля Catalog
POST /v1/catalog/configuration/

Конфигурация фича тоглов, параметров для модуля каталога

Документация: https://confluence.app.local/pages/viewpage.action?pageId=752063445

Request body

application/json
Object
osVersion
string required

Номер версии

Example:
5.1.1

Responses

400 CatalogConfigResponse

CatalogConfigResponse

DEP Конфигурация модуля Catalog
POST /configuration/catalog

DEPRECATED в рамках перехода на новый метод получения конфигурации

Конфигурация фича тоглов, параметров для модуля каталога

Документация: https://confluence.app.local/pages/viewpage.action?pageId=526163957

Request body

application/json
Object
osVersion
string required

Номер версии

Example:
5.1.1

Responses

400 CatalogConfigResponse

CatalogConfigResponse

Конфигурация модуля Stores
POST /v1/stores/configuration

Конфигурация фича тоглов, параметров для модуля stores

Документация: https://confluence.app.local/pages/viewpage.action?pageId=891604464

Недоступен из-вне, только через POST /v1/configurations

Responses

400 StoresConfigResponse

StoresConfigResponse

DEP Конфигурация модуля Streams
POST /configuration/streams

Конфигурация фича тоглов, параметров для модуля стримов

Документация: https://confluence.app.local/pages/viewpage.action?pageId=601088119

Responses

400 StreamsConfigResponse

Конфигурация для модуля Streams

400 ErrorUnderMaintenance

Проходит сервисное обслуживание серверов.

DEP Конфигурация модуля Afisha
POST /v1/configuration/afisha

Конфигурация фича тоглов, параметров для модуля Афиши

Документация: https://confluence.app.local/pages/viewpage.action?pageId=601090413

Responses

400 AfishaConfigResponse

Конфигурация для модуля Afisha

400 ErrorUnderMaintenance

Проходит сервисное обслуживание серверов.

DEP Конфигурация модуля Chat
GET /v1/configuration/chat

Responses

400 ChatConfigurationResponse

ChatConfigurationResponse

Получить конфигурации модулей
POST /v1/configurations

Запрос на получение всех конфигураций. Параметры в запросе определяют, конфигурации каких модулей будут возвращены в ответе. Если не подавать в запросе параметр конфигурации определенного модуля, то он не будет запрошен. Сопоставление возможных параметров для модулей и конфигураций, которая будет возвращена на эти параметры, представлено в таблице ниже.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=804632039

Сервис ModuleConfigurationRequest.version ModuleConfigurationRequest.request Ответ
catalog 1 OsVersionConfigurationRequest CatalogConfiguration
ordering 1 OsVersionConfigurationRequest OrderingConfiguration
profile 1 null ProfileConfiguration
stores 1 null StoresConfiguration
app 4 OsVersionConfigurationRequest AppConfiguration
streams 1 null StreamsConfiguration
afisha 1 null AfishaConfiguration
chat 1 null ChatConfiguration
tracker 1 null TrackerConfiguration
popups 1 OsVersionConfigurationRequest PopupsConfiguration

Responses

400 AllConfigurationsResponse

Ответ на общий запрос конфигурации модулей.

400 ErrorInvalidProccessParameters

ErrorInvalidProccessParameters

v1 Конфигурация модуля Popups
POST /v1/popups/configuration

Конфигурация фича тоглов для модуля всплывающих окон

Многие параметры в админке зависят от версии мобильного приложения. Бекенд должен брать версию из заголовка и нормализовать её до вида х.у.z , т.к. там могут быть разные дебаг суффиксы.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=961969710

Недоступен из-вне, только через POST /v1/configurations

Request body

application/json
Object
osVersion
string

Номер версии

Example:
4.65.0

Responses

400 default

default response

Получить корзину cart2
POST /v1/cart2

Request body

application/json
Object
clearDeletedLines
boolean

Если этот параметр передан в true, то бекенд не должен никогда нам возвращать те айтемы, что были в массиве deletedItems на момент вызова. При этом новые удаления там вполне могут копиться до тех пор, пока мы не вызовем опять метод получения корзины с этим флагом.

ДЛЯ БЭ: у корзины есть айди, получается на беке нужно хрнаить айди линий и айди корзины, чтобы не выдавать их нам.

cartResponse

Responses

400 CartResponse2

Возвращает корзину (основную корзину). Возвращется только одна из моделей. Какая - зависит от входного параметра в запрос.

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

Добавить товар в корзину cart2
POST /v1/cart2/add
  • версия понижена до v1
  • ендпоинт сменен на cart2
  • параметр cartFormat сменен на CartFormatResponse2
  • ответ CartResponse сменен на CartResponse2

Добавленный товар попадает в нераспределенные.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=673430818

Request body

application/json
Object
productList
Array of ProductShortInfo required

Товары

promoCode
string

Промокод на товар

Responses

400 CartResponse2

Возвращает корзину (основную корзину). Возвращется только одна из моделей. Какая - зависит от входного параметра в запрос.

400 ErrorProductIsNotFound

ErrorProductIsNotFound

400 ErrorProductIsNotActive

ErrorProductIsNotActive

400 ErrorProductIsNotAvailable

ErrorProductIsNotAvailable

400 ErrorBasketState

ErrorBasketState

400 ErrorTooManyLinesInBasket

ErrorTooManyLinesInBasket

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

400 ErrorPromocodeIsNotValid

ErrorPromocodeIsNotValid

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

DEP v1 Установить количество товара в корзине cart2
POST /v1/cart2/set

DEP с версии 4.65

  • ендпоинт стал cart2
  • параметр cartFormat стал CartFormatResponse2
  • ответ стал CartResponse2
  • ошибки не трогал, мб будут изменения

Количество товара можно установить от 1 до 50.

Если количество товара прибавляется, то товар попадет в нераспределенные. Если уменьшается, то сначала удаляется необходимое количество из нераспределенных, затем из МСП (при выборе МСП нет условий для фильтрации, берутся первые подходящие).

Документация: https://confluence.app.local/pages/viewpage.action?pageId=673429877

Request body

application/json
Object
id
CartItemId required
quantity
integer required

Количество товара, которое должно стать в корзине

Responses

400 CartResponse2

Возвращает корзину (основную корзину). Возвращется только одна из моделей. Какая - зависит от входного параметра в запрос.

400 ErrorInvalidQuantity

Ошибка, возвращаемая при некорректном значение количества товара.

400 ErrorBasketState

ErrorBasketState

400 ErrorTooManyLinesInBasket

ErrorTooManyLinesInBasket

400 ErrorLinesAreNotFound

ErrorLinesAreNotFound

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

v2 Установить количество товара в корзине cart2
POST /v2/cart2/set
  • изменен объект в теле запроса с CartItemId на CartItemIdWithLines

Количество товара можно установить от 1 до 50.

Если количество товара прибавляется, то товар попадет в нераспределенные. Если уменьшается, то сначала удаляется необходимое количество из нераспределенных, затем из МСП (при выборе МСП нет условий для фильтрации, берутся первые подходящие).

Документация: https://confluence.app.local/pages/viewpage.action?pageId=957061504

Request body

application/json
Object
quantity
integer required

Количество товара, которое должно стать в корзине

Responses

400 CartResponse2

Возвращает корзину (основную корзину). Возвращется только одна из моделей. Какая - зависит от входного параметра в запрос.

400 ErrorInvalidQuantity

Ошибка, возвращаемая при некорректном значение количества товара.

400 ErrorBasketState

ErrorBasketState

400 ErrorTooManyLinesInBasket

ErrorTooManyLinesInBasket

400 ErrorLinesAreNotFound

ErrorLinesAreNotFound

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

DEP v1 Изменить чекбоксы товаров в корзине cart2
POST /v1/cart2/select

DEP с версии 4.65

Документация: https://confluence.app.local/pages/viewpage.action?pageId=785662492

Request body

application/json
Object
ids
Array of CartItemId required

Список товаров, для которых нужно изменить значение чекбоксов

selected
boolean required

Значение, в которые нужно установить чекбоксы

Example:
true

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorBasketState

ErrorBasketState

400 ErrorLinesAreNotFound

ErrorLinesAreNotFound

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

v2 Изменить чекбоксы товаров в корзине cart2
POST /v2/cart2/select

Request body

application/json
Object
ids
Array of CartItemIdWithLines required

Список товаров, для которых нужно изменить значение чекбоксов

selected
boolean required

Значение, в которые нужно установить чекбоксы

Example:
true

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorBasketState

ErrorBasketState

400 ErrorLinesAreNotFound

ErrorLinesAreNotFound

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

Удалить товары из корзины cart2
POST /v1/cart2/remove
  • ендпоинт сменился на cart2
  • параметр cartFormat стал CartFormatResponse2
  • ответ стал CartResponse2
  • параметр ids стал CartItemIdWithLines, теперь умогут удаляться только переданные лайны

Товары удаляются по лайнам из нераспределенных и распределенных по МСП групп. Если для удаления передан распроданный товар, то он ищется в корзине по паре productId / sku.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=673429788

Request body

application/json
Object
ids
Array of CartItemIdWithLines required

Responses

400 CartResponse2

Возвращает корзину (основную корзину). Возвращется только одна из моделей. Какая - зависит от входного параметра в запрос.

400 ErrorBasketState

ErrorBasketState

400 ErrorLinesAreNotFound

ErrorLinesAreNotFound

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

DEP v1 Восстановить удаленный товар cart2
POST /v1/cart2/restoreDeletedItems

DEP c версии 4.67

http://ordergate-ru-by-kz.ordergateuat.web.local/swagger-ui/index.html?url=../openapi.yaml#/baskets/restoreDeletedLines

  • ендпоинт сменен на cart2
  • ответ сменен на FullCartResponse2

Документация: https://confluence.app.local/pages/viewpage.action?pageId=673430056

Request body

application/json
Object

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorBasketState

ErrorBasketState

400 ErrorRestoredItemIfNotFound

ErrorRestoredItemIfNotFound

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

v2 Восстановить удаленный товар cart2
POST /v2/cart2/restoreDeletedItems

Request body

application/json

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorBasketState

ErrorBasketState

400 ErrorRestoredItemIfNotFound

ErrorRestoredItemIfNotFound

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

DEP v1 Скрыть удаленный товар cart2
POST /v1/cart2/hideDeletedLines

DEP с версии 4.67

Метод исключает из выдачи корзины из списка удаленных товаров переданные в этом методе товары. Для подробностей смотри поле clearDeletedLines у метода получения корзины.

  • ендпоинт сменен на cart2
  • ответ сменен на FullCartReponse2

Документация: https://confluence.app.local/pages/viewpage.action?pageId=673429949

Request body

application/json
Object

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorBasketState

ErrorBasketState

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

400 ErrorDeletedLinesAreNotFound

ErrorDeletedLinesAreNotFound

v2 Скрыть удаленный товар cart2
POST /v2/cart2/hideDeletedLines

Метод исключает из выдачи корзины из списка удаленных товаров переданные в этом методе товары. Для подробностей смотри поле clearDeletedLines у метода получения корзины.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=965976656

Request body

application/json

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorBasketState

ErrorBasketState

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

400 ErrorDeletedLinesAreNotFound

ErrorDeletedLinesAreNotFound

Создать слепок корзины
POST /v1/cart/createSnapshot

Responses

400 SnapshotResponse

SnapshotResponse

400 ErrorBasketState

ErrorBasketState

Применить слепок корзины cart2
POST /v1/cart2/applySnapshot

Request body

application/json
Object
snapshotUrl
string required

Ссылка на слепок корзины

Example:
https://www.sportmaster.ru/basket/checkout.do?specificationId=1f9dea2e-68d7-4b14-ad8f-88a8a619e46c

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorBasketState

ErrorBasketState

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

400 ErrorTooManyLinesInBasket

ErrorTooManyLinesInBasket

400 ErrorApplicationSnapshot

ErrorApplicationSnapshot

Применить промокод cart2
POST /v1/cart2/promoCode

Request body

application/json
Object
promoCode
string required

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorBasketState

ErrorBasketState

400 ErrorPromocodeIsNotValid

ErrorPromocodeIsNotValid

400 ErrorPromocodForInstallment

ErrorPromocodForInstallment

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

400 ErrorEmptyPromocode

ErrorEmptyPromocode

DEP v1 Удалить промокод в корзине cart2
DELETE /v1/cart2/promoCode

DEP в рамках MPSM-11743

Документация: https://confluence.app.local/pages/viewpage.action?pageId=673430308

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorBasketState

ErrorBasketState

v2 Удалить промокод в корзине cart2
DELETE /v2/cart2/promoCode

Request body

application/json
Object
promoCode
string required

Промокод

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorBasketState

ErrorBasketState

Изменить флаг использования бонусов cart2
POST /v1/cart2/applyBonuses
  • изменен ответ на FullCartResponse2
  • изменен ендпоинт на cart2

Документация: https://confluence.app.local/pages/viewpage.action?pageId=673425501&moved=true

Request body

application/json
Object
applyBonuses
boolean required

Списывать или нет бонусы при оформлении корзины

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorAnonymUser

ErrorAnonymUser

400 ErrorBasketState

ErrorBasketState

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

Получить варианты доставки для товаров cart2
POST /v1/cart2/deliveryTypes

Request body

application/json
Object
cartItemsIds

Айди товаров, для которых рассчитать доступные варианты доставки

Responses

400 CartItemsDeliveryTypes

CartItemsDeliveryTypes

Установить получателя корзины cart2
POST /v1/cart2/receiver

Request body

application/json
Object
fio
string required

ФИО получателя

email
string required

Email получателя

Max length: 255
Pattern: ^[a-zA-Z0-9_.+-]+@([a-zA-Z0-9-]+\.)+[a-zA-Z0-9-]+$
phone
verificationToken
string

Код, полученный при проверке номера смс. Передавать не обязательно. Если не передан, то у овнера остается прошлое значение номера. Если номера не было, то возвращается специальная ошибка.

Передается только для анонима.

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorBasketState

ErrorBasketState

400 ErrorFieldValidation

ErrorFieldValidation

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

400 ErrorPhoneInBasket

Кейс 1. Ошибка, если для неавторизованного пользователя не передан токен и у владельца корзины нет телефона // Кейс 2. Ошибка, если для авторизованного пользователя не передан номер телефона

400 ErrorEmailValidation

Бизнес-ошибка валидации email со стороны гейта

Список магазинов с доступностью товаров cart2
POST /v1/cart2/internalPickupAvailability

Возвращает по данной позиции в корзине распределение по магазинам - когда можно будет забрать товар и на каких условиях.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=683242894

Request body

application/json
Object
cartItemIds
Array of CartItemIdWithLines required

Responses

400 InternalPickupAvailabilityResponse2

InternalPickupAvailabilityResponse2

400 ErrorBasketState

ErrorBasketState

400 ErrorSomeBasketLinesIsNotFound

ErrorSomeBasketLinesIsNotFound

400 ErrorInternalPickupAvailability

ErrorInternalPickupAvailability

400 ErrorSomeBasketLinesIsSoldout

ErrorSomeBasketLinesIsSoldout

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

Установить способ доставки у товаров самовывоз cart2
POST /v1/cart2/obtainPoint/internalPickup
  • в пути cart сменнился на cart2
  • как будто теперь не надо искать обтейн поинты с таким магазином, просто устанавливаем все переданые данные
  • в параметрах теперь сразу желаемое распределение по заказам
  • в ответе теперь FullCartResponse2
  • ошибки ответов я не трогал, оставляю это на тебя

Метод устаналивает для товаров МСП - самовывоз из магазина, при этом сразу отдает желаемое разбитие по заказам

Документация: https://confluence.app.local/pages/viewpage.action?pageId=683214916

Request body

application/json
Object
shopNumber
string required

Номер магазина

Example:
898
cartItemsByOrders
Array of SetInternalPickupParams required

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorBasketState

ErrorBasketState

400 ErrorSomeBasketLinesIsNotFound

ErrorSomeBasketLinesIsNotFound

400 InternalPickupErrorResponse

InternalPickupErrorResponse

400 ErrorSomeBasketLinesIsSoldout

ErrorSomeBasketLinesIsSoldout

Распределить товары на самовывоз из текущего магазина
POST /v1/cart2/obtainPoint/_set-in-store

По переданному id магазина распределяет товары корзины в МСДП на самовывоз из этого магазина

Документация: https://confluence.app.local/pages/viewpage.action?pageId=926830696

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorBasketState

ErrorBasketState

400 ErrorShopNotFound

ErrorShopNotFound

400 InternalPickupErrorResponse

InternalPickupErrorResponse

Установить уровень сервиса у потенциального заказа
POST /v1/cart2/obtainPoint/{obtainPointId}/_service-level-code

Пересоздает МСДП с заданным в запросе уровнем сервиса

Документация: https://confluence.app.local/pages/viewpage.action?pageId=936089018

Path variables

obtainPointId
string required

Идентикиатор потенциального заказа

Request body

application/json
Object
serviceLevelCode
string

Уровень сервиса, который нужно установить. null означает, что уровень сервиса нужно сбросить

Enumeration:
RETAIL_SELF_DELIVERY
SELF_DELIVERY

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorBasketState

ErrorBasketState

400 ErrorObtainPointIdIsNotFound

ErrorObtainPointIdIsNotFound

400 ErrorObtainPointIsNotSelfDelivery

ErrorObtainPointIsNotSelfDelivery

400 InternalPickupErrorResponse

InternalPickupErrorResponse

400 ErrorServiceLevelCodeIsNotValid

ErrorServiceLevelCodeIsNotValid

400 ErrorActionIsNotAvailable

ErrorActionIsNotAvailable

Список ПВЗ с доступностью товаров cart2
POST /v1/cart2/externalPickupAvailability/

Возвращет по данной позиции в корзине распределение по ПВЗ - когда можно будет забрать товар и на каких условиях.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=689123453

Request body

application/json
Object
cartItemIds
Array of CartItemIdWithLines required

Responses

400 ExternalPickupAvailabilityResponse2

ExternalPickupAvailabilityResponse2

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

400 ErrorBasketState

ErrorBasketState

400 ErrorSomeBasketLinesIsNotFound

ErrorSomeBasketLinesIsNotFound

400 ErrorSomeBasketLinesIsSoldout

ErrorSomeBasketLinesIsSoldout

400 ErrorExternalPickupAvailability

ErrorExternalPickupAvailability

400 ErrorBasketIsNotExist

Ошибка, которая возникает, когда корзина не найдена

Детальные данные о наличии товаров в ПВЗ cart2
POST /v1/cart2/externalPickupAvailability/detail

Выдает, какие лайны доступны и недоступны в ПВЗ

Документация: https://confluence.app.local/pages/viewpage.action?pageId=695243543

Request body

application/json
Object
pickPointId
string
cartItemIds

Responses

400 ExternalPickupAvailabilityDetailResponse

ExternalPickupAvailabilityDetailResponse

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

400 ErrorBasketState

ErrorBasketState

400 ErrorSomeBasketLinesIsNotFound

ErrorSomeBasketLinesIsNotFound

400 ErrorSomeBasketLinesIsSoldout

ErrorSomeBasketLinesIsSoldout

400 ErrorExternalPickupAvailability

ErrorExternalPickupAvailability

400 ErrorBasketIsNotExist

Ошибка, которая возникает, когда корзина не найдена

Установить способ доставки у товаров ПВЗ cart2
POST /cart2/obtainPoint/externalPickup

У данных товаров устанавливается способ получения - пвз.

  • изменились входные параметры, теперь это массив лайн йдишниками

Ошибки не трогал, их актуальность на тебе

Документация: https://confluence.app.local/pages/viewpage.action?pageId=680737702

Request body

application/json
Object
pickpointId
string required
cartItemIds
Array of CartItemIdWithLines required

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

400 ErrorBasketState

ErrorBasketState

400 ErrorSomeBasketLinesIsSoldout

ErrorSomeBasketLinesIsSoldout

400 ErrorSomeBasketLinesIsNotFound

ErrorSomeBasketLinesIsNotFound

400 ErrorObtainingMethodIsNotValid

ErrorObtainingMethodIsNotValid

400 ErrorInvalidProccessParameters

ErrorInvalidProccessParameters

Получить доступность адресов получения cart2
POST /v1/cart2/obtainPoint/receivingAddressAvailability

Работает только на геозонах. Метод для каждого адреса получения возвращает доступность товаров на доставку по этому адресу

Документация: https://confluence.app.local/pages/viewpage.action?pageId=839369276

Request body

application/json
Object
addressIds
Array of string required

Список ID адресов, для которых нужно рассчитать доступность

Example:
3514692b-a3f5-403b-b215-1d1045dff486
cartItemIds
Array of CartItemIdWithLines required

Список товаров, для которых нужно рассчитать доступность

Responses

400 ReceivingAddressAvailabilityResponse

ReceivingAddressAvailabilityResponse

400 ErrorAnonymUser

ErrorAnonymUser

400 ErrorBasketState

ErrorBasketState

400 ErrorSomeBasketLinesIsNotFound

ErrorSomeBasketLinesIsNotFound

400 ErrorSomeBasketLinesIsSoldout

ErrorSomeBasketLinesIsSoldout

400 ErrorAddressesListIncorrect

ErrorAddressesListIncorrect

400 ErrorMethodIsDisabled

ErrorMethodIsDisabled

Установить способ доставки у товаров курьерская доставка cart2
POST /v1/cart2/obtainPoint/delivery

Создает потенциальный заказ на доставку с заданными товарами

Документация: https://confluence.app.local/pages/viewpage.action?pageId=683222938

Request body

application/json
Object
cartItemIds
Array of CartItemIdWithLines required
deliveryAddressInfo
receivingAddressInfo
isExpress
boolean required
  • null/отуствие параметра - бекенд сам определяет, какую доставку ставить товарам. Ставится тот вариант, которым можно привести наибольшее количество товаров. Если экспрессом и обычной доставкой кол-во товров равно, что ставится обычная доставка
  • true - ставится экспресс доставка, при этом товары, которые нельзя привести экспресом упадут в нераспределенные товары
  • false - ставится обычная доставка

Все вараианты допускают, что часть товаров уйдет в нераспределенные.

Все варианты подразумевают, что может быть создано n заказов

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorSomeBasketLinesIsSoldout

ErrorSomeBasketLinesIsSoldout

400 ErrorSomeBasketLinesIsNotFound

ErrorSomeBasketLinesIsNotFound

400 ErrorBasketState

ErrorBasketState

400 ErrorObtainPointDelivery

ErrorObtainPointDelivery

400 ErrorObtainingMethodIsNotValid

ErrorObtainingMethodIsNotValid

400 ErrorInvalidProccessParameters

ErrorInvalidProccessParameters

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

400 ErrorLocationIsNotMatch

Ошибка, возвращаемая если координаты в x-location не совпадают с координатами в receivingAddress.

400 ErrorHouseIsNull

Ошибка, возвращаемая, когда при установке МСП курьерской доставки / редактирования адреса курьерской доставки в структуре адреса отсутствует дом (геозоны).

Редактировать адрес доставки потенциальных заказов cart2
POST /v1/cart2/obtainPoint/setAddress

Request body

application/json
Object
obtainPointIds
Array of string required

Массив айдишников обейтн поинтов, которым нужно поменять адрес.

deliveryAddressInfo
receivingAddressInfo

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorObtainPointIdIsNotFound

ErrorObtainPointIdIsNotFound

400 ErrorBasketState

ErrorBasketState

400 ErrorObtainingMethodIsNotValid

ErrorObtainingMethodIsNotValid

400 ErrorMetroIdIsNotValid

ErrorMetroIdIsNotValid

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

400 ErrorLocationIsNotMatch

Ошибка, возвращаемая если координаты в x-location не совпадают с координатами в receivingAddress.

400 ErrorUserLocationHasChanged

Ошибка, возвращаемая при расформировании МСП после смены местоположения на корзине (OrderGate, после вызова CALCULATE-BASKET).

400 ErrorHouseIsNull

Ошибка, возвращаемая, когда при установке МСП курьерской доставки / редактирования адреса курьерской доставки в структуре адреса отсутствует дом (геозоны).

Установить дату и время у потенциального заказа cart2
POST /v1/cart2/obtainPoint/{obtainPointId}/setDateTime

Метод применяется для установки даты и времени курьерской доставки у потенциального заказа.

  • ендпоинт сменился на cart2
  • ответ сменился на FullCartResponse2

Документация: https://confluence.app.local/pages/viewpage.action?pageId=683232170

Path variables

obtainPointId
string required

Request body

application/json
Object
receivingDateFrom
DateOnly required
receivingDateTo
receivingTimeSlot
string

Временной интервал доставки

receivingTimeSlotId
integer

ID временного слота доставки

deliveryServiceLevelId
integer required

ID MDM уровня сервиса доставки (справочник gt_service_level)

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

400 ErrorBasketState

ErrorBasketState

400 ErrorObtainPointIdIsNotFound

ErrorObtainPointIdIsNotFound

400 ErrorObtainingMethodIsNotValid

ErrorObtainingMethodIsNotValid

400 ErrorDateTimeReceiptAreOutdated

ErrorDateTimeReceiptAreOutdated

400 ErrorInvalidProccessParameters

ErrorInvalidProccessParameters

Сохранить выбранные сервисные услуги cart2
POST /v2/cart2/obtainPoint/{obtainPointId}/deliveryService

Привязывает к МСП услуги на уровне товара

Документация: https://confluence.app.local/pages/viewpage.action?pageId=804627486

Path variables

obtainPointId
string required

Request body

application/json
Object
serviceList
Array of ServiceData required

Данные по выбранным сервисным услугам

cleanServices
boolean required

Признак, что надо удалить не выбранные услуги

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

400 ErrorBasketState

ErrorBasketState

400 ErrorObtainPointIdIsNotFound

ErrorObtainPointIdIsNotFound

400 ErrorObtainingMethodIsNotValid

ErrorObtainingMethodIsNotValid

400 ErrorLinesAreNotFound

ErrorLinesAreNotFound

400 ErrorServiceIsNotValid

ErrorServiceIsNotValid

400 ErrorInvalidProccessParameters

ErrorInvalidProccessParameters

Удалить выбранные услуги cart2
DELETE /v2/cart2/obtainPoint/{obtainPointId}/deliveryService

Метод удаления выбранных услуг на уровне заказа и на уровне товара в корзине

  • эндпоинт cart2
  • ответ FullCartResponse2

Документация: https://confluence.app.local/pages/viewpage.action?pageId=797614476

Path variables

obtainPointId
string required

Request body

application/json
Object
serviceLineIds
Array of string

ИД лайнов услуг

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorBasketState

ErrorBasketState

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

400 ErrorServiceIsNotValid

ErrorServiceIsNotValid

DEP Сохранить выбранную услугу товара cart2
POST /v1/cart2/obtainPoint/{obtainPointId}/deliveryService

DEPRECATED: версия 4.48.0 - 05.02 - 22.02

Метод добавления к товару в корзине сервисной услуги

  • ендроинт cart2
  • ответ FullCartResponse2

Документация: https://confluence.app.local/pages/viewpage.action?pageId=673433713

Path variables

obtainPointId
string required

Request body

application/json
Object
lineId
string required

ИД штуки корзины, к которой требуется привязать услугу

mdmServiceId
string required

ИД МДМ сервисной услуги

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

400 ErrorBasketState

ErrorBasketState

400 ErrorObtainPointIdIsNotFound

ErrorObtainPointIdIsNotFound

400 ErrorObtainingMethodIsNotValid

ErrorObtainingMethodIsNotValid

400 ErrorLinesAreNotFound

ErrorLinesAreNotFound

400 ErrorServiceIsNotValid

ErrorServiceIsNotValid

400 ErrorInvalidProccessParameters

ErrorInvalidProccessParameters

DEP Удалить выбранную услугу товара cart2
DELETE /v1/cart2/obtainPoint/{obtainPointId}/deliveryService

DEPRECATED: версия 4.48.0 - 05.02 - 22.02

Метод удаления выбранной сервисной услуги у товара в корзине

  • эндпоинт cart2
  • ответ FullCartResponse2

Документация: https://confluence.app.local/pages/viewpage.action?pageId=673433670

Path variables

obtainPointId
string required

Request body

application/json
Object
serviceLineId
string required

ИД лайна услуги

Example:
fa537932-e755-42a0-bda3-aaa48cec724e

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorBasketState

ErrorBasketState

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

Способы оплаты потенциального заказа cart2
GET /cart2/order/{potentialOrderId}/paymentMethods

Path variables

potentialOrderId
string required

Responses

400 PaymentMethodsResponse2

PaymentMethodsResponse2

400 ErrorBasketState

ErrorBasketState

400 ErrorPotentialOrderIsNotFound

ErrorPotentialOrderIsNotFound

Установить способ оплаты у заказа cart2
POST /v1/cart2/order/{potentialOrderId}/paymentMethods

Path variables

potentialOrderId
string required

Request body

application/json
Object
paymentMethodId
string required

Берется из модели метода оплаты. Фактически это значение энама

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorPotentialOrderIsNotFound

ErrorPotentialOrderIsNotFound

400 ErrorBasketState

ErrorBasketState

400 ErrorPaymentMethodIsNotValid

ErrorPaymentMethodIsNotValid

400 ErrorCreditMinSum

ErrorCreditMinSum

Расформировать потенциальные заказы cart2
POST /v1/cart2/obtainPoint/delete

Расформировать потенциальные заказы - отвязать существующие распределенные заказы от МСДП.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=677961826

Request body

application/json
Object
obtainPointIds
Array of string

Массив айдишников обтейн поинтов. Если нулл, не передан или пустой - то расформировать все

Responses

400 FullCartResponse2

FullCartResponse2

400 ErrorObtainPointIdIsNotFound

ErrorObtainPointIdIsNotFound

400 ErrorBasketState

ErrorBasketState

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

Оформить корзину
POST /v1/cart/submit

Request body

application/json
Object
cartVersion
integer required

Параметр нужен, чтобы пользователь оформил ту версию корзины, что видел.

Responses

400 SubmitCartResponse

SubmitCartResponse

400 ErrorBasketVersionIsNotValid

ErrorBasketVersionIsNotValid

400 ErrorBasketState

ErrorBasketState

400 ErrorOwnerDataIsRequired

ErrorOwnerDataIsRequired

400 ErrorEmailIsRequired

ErrorEmailIsRequired

400 ErrorProfileIdIsEmpty

ErrorProfileIdIsEmpty

400 ErrorPaymentMethodIsRequired

ErrorPaymentMethodIsRequired

400 ErrorDeliveryDateIsRequired

ErrorDeliveryDateIsRequired

400 ErrorAdressIsRequired

ErrorAdressIsRequired

400 ErrorDeliveryDateIsExpired

ErrorDeliveryDateIsExpired

400 ErrorReceiverDataIsRequired

ErrorReceiverDataIsRequired

400 ErrorOrderWeightExceeded

ErrorOrderWeightExceeded

400 ErrorOrderCostIsExceeded

ErrorOrderCostIsExceeded

400 ErrorExceedLimitOnActiveOrders

ErrorExceedLimitOnActiveOrders

Получить ссылку на оплату банковской картой SberPay
POST /payment/url

Метод используется для оплаты банковской картой и через SberPay в приложении Сбера (для SberPay SDK используется отдельный метод)

Документация: https://confluence.app.local/pages/viewpage.action?pageId=494231986

Request body

application/json
Object
orderNumber
string required

Номер заказа

Для БЭ: это инвойс намбер

urlFail
string required

URL для возврата пользователя из эквайринга без успешной оплаты

urlSuccess
string required

URL для возврата пользователя из эквайринга после успешной оплаты

isSberPay
boolean

Если true, то идет оплата через СберПей

Responses

400 PaymentUrlResponse

Ответ на получение ссылки на оплату банковской картой

400 ErrorPaymentUrlIsEmpty

ErrorPaymentUrlIsEmpty

400 ErrorPaymentUrlInvalidParameters

ErrorPaymentUrlInvalidParameters

Подтвердить успешную оплату
POST /payment/confirm

Request body

application/json
Object
orderNumber
string required
acquiringParams
string required

Параметры, переданные эквайрингом на страницу успешной оплаты

Example:
orderId=f369bf51-3f16-7e09-864b-6dd20015bca7&lang=ru

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorInvalidSubmitPaymentParameters

ErrorInvalidSubmitPaymentParameters

Получить настроенные мерчанты
POST /payment/merchantSettings

Служебный метод, чтобы фронт мог интегрировать *Pay оплаты

Для БЭ: запрос строится на http://pgate-sm.pgateuat.web.local/pgate/rest/v2/swagger-ui/index.html?url=../openapi.yaml#/p-gate-rest/getMerchantSettings

Документация: https://confluence.app.local/pages/viewpage.action?pageId=494232016

Request body

application/json
Object
orderNumber
string required

Номер заказа

paymentTool
string required

Платежная система

Enumeration:
SAMSUNG_PAY
GOOGLE_PAY
APPLE_PAY

Responses

400 MerchantSettingsResponse

MerchantSettingsResponse

400 ErrorOrderNumberIsEmpty

ErrorOrderNumberIsEmpty

400 ErrorPaymentToolIsEmpty

ErrorPaymentToolIsEmpty

400 ErrorMerchantNotFound

ErrorMerchantNotFound

Получить настроенные данные для GPay
GET /payment/merchantSettings/gpay

Возвращает модель необходимых параметров для оплаты через GooglePay

Документация: https://confluence.app.local/pages/viewpage.action?pageId=494232026

Request parameters

orderNumber
string required

Номер заказа

Responses

400 GooglePayMerchantResponse

GooglePayMerchantResponse

400 ErrorOrderNumberIsEmpty

ErrorOrderNumberIsEmpty

400 ErrorMerchantNotFound

ErrorMerchantNotFound

Получить настроенные данные для SPay
GET /payment/merchantSettings/spay

Возвращает модель необходимых параметров для оплаты через SamsungPay

Документация: https://confluence.app.local/pages/viewpage.action?pageId=494232074

Request parameters

orderNumber
string required

Номер заказа

Responses

400 SamsungPayMerchantResponse

SamsungPayMerchantResponse

400 ErrorOrderNumberIsEmpty

ErrorOrderNumberIsEmpty

400 ErrorMerchantNotFound

ErrorMerchantNotFound

400 ErrorMerchantNotCorrect

ErrorMerchantNotCorrect

Провести оплату через Pay
POST /payment/mobile

Request body

application/json
Object
orderNumber
string required

Номер заказа

payToken
string required

Токен платежа (ApplePay, GooglePay, SamsungPay), обязательное поле

paymentTool
string required

Инструмент оплаты, обязательное поле

Enumeration:
GOOGLE_PAY
SAMSUNG_PAY
APPLE_PAY
successUrl
string required

Полный адрес, на который требуется перенаправить пользователя в случае успешной оплаты, включая используемый протокол

failUrl
string required

Полный адрес, на который требуется перенаправить пользователя в случае неуспешной оплаты, включая используемый протокол

Responses

400 MakeMobilePaymentResponse

MakeMobilePaymentResponse

400 ErrorOrderNumberIsEmpty

ErrorOrderNumberIsEmpty

400 ErrorPaymentToolIsEmpty

ErrorPaymentToolIsEmpty

400 ErrorRedirectURLIsEmpty

ErrorRedirectURLIsEmpty

Получить ссылку на оформление кредита и рассрочки
POST /payment/credit

Request body

application/json
Object
orderNumber
string required

Номер заказа

Для БЭ: это инвойс намбер

urlFail
string required

URL для возврата пользователя из эквайринга без успешного кредита

urlSuccess
string required

URL для возврата пользователя из эквайринга после успешного кредита

Responses

400 CreditUrlResponse

Ответ на получение ссылки на оформление кредита

400 ErrorPaymentMethodIsNotCredit

ErrorPaymentMethodIsNotCredit

400 ErrorNotAllProductsFound

ErrorNotAllProductsFound

400 ErrorProductIsNotCreditOrInstallment

ErrorProductIsNotCreditOrInstallment

Получить данные для оплаты через СБП
POST /payment/qrc

Request body

application/json
Object
orderNumber
string required

Номер заказа

Responses

400 QrcResponse

Ответ на формирование ссылки на оплату через СБП

400 ErrorOrderNumberIsEmpty

ErrorOrderNumberIsEmpty

400 ErrorOrderNumberIsBad

Гейт ответил 400й ошибкой при orderNumber != null

Получить ссылку на оплату частями Яндекс Сплит
POST /payment/bnpl/yandex

Request body

application/json
Object
orderNumber
string required

Номер заказа (инвойса)

urlFail
string required

URL для возврата пользователя из эквайринга без успешной оплаты

urlSuccess
string required

URL для возврата пользователя из эквайринга после успешной оплаты

Responses

400 BnplUrlResponse

Ответ на получение ссылки на оплату частями

400 ErrorPaymentUrlIsEmpty

ErrorPaymentUrlIsEmpty

400 ErrorPaymentUrlInvalidParameters

ErrorPaymentUrlInvalidParameters

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

Получить ссылку на оплату частями Плайт v2
POST /v2/payment/bnpl/sovcombank

Request body

application/json
Object
orderNumber
string required

Номер заказа (инвойса)

urlFail
string required

URL для возврата пользователя из эквайринга без успешной оплаты

urlSuccess
string required

URL для возврата пользователя из эквайринга после успешной оплаты

Responses

400 BnplUrlResponse

Ответ на получение ссылки на оплату частями

400 ErrorPaymentUrlIsEmpty

ErrorPaymentUrlIsEmpty

400 ErrorPaymentUrlInvalidParameters

ErrorPaymentUrlInvalidParameters

DEP Получить ссылку на оплату частями Плайт
POST /payment/bnpl

Request body

application/json
Object
orderNumber
string required

Номер заказа (инвойса)

urlFail
string required

URL для возврата пользователя из эквайринга без успешной оплаты

urlSuccess
string required

URL для возврата пользователя из эквайринга после успешной оплаты

Responses

400 BnplUrlResponse

Ответ на получение ссылки на оплату частями

400 ErrorPaymentUrlIsEmpty

ErrorPaymentUrlIsEmpty

400 ErrorPaymentUrlInvalidParameters

ErrorPaymentUrlInvalidParameters

Получить ссылку на оплату Тинькофф долями
POST /payment/bnpl/tinkoff

Request body

application/json
Object
orderNumber
string required

Номер заказа (инвойса)

urlFail
string required

URL для возврата пользователя из эквайринга без успешной оплаты

urlSuccess
string required

URL для возврата пользователя из эквайринга после успешной оплаты

Responses

400 BnplUrlResponse

Ответ на получение ссылки на оплату частями

400 ErrorPaymentUrlIsEmpty

ErrorPaymentUrlIsEmpty

400 ErrorPaymentUrlInvalidParameters

ErrorPaymentUrlInvalidParameters

Восстановить пинкод подарочной карты
POST /v1/giftCard/sendPin

Request body

application/json
Object
orderNumber
string required

Номер заказа

giftCardNumber
string required

Номер подарочной карты

isEgc
boolean required

Выбранный Пользователем тип подарочной карты. Передаетс true, если была выбрана Электронная подарочная карта, и false, если выбрана Подарочная карта

Responses

400 SendPinResponse

Ответ об отправке СМС

400 ErrorEgcExpired

Срок действия подарочной карты истек

400 ErrorEgcAlreadyUsed

Карта уже использована

400 ErrorEgcTemporarlyBlocked

Карта заблокирована на 30 минут

400 ErrorEgcNotFound

Неправильный номер карты

400 ErrorIncorrectGiftCardType

Неправильный тип подарочной карты

Применить подарочную карту
POST /v1/giftCard/payment

Request body

application/json
Object
orderNumber
string required

Номер заказа

giftCardNumber
string required

Номер подарочной карты

giftCardPin
string required

Пин-код подарочной карты

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorPinCodeIncorrect

Неправильный пин-код

400 ErrorEgcExpired

Срок действия подарочной карты истек

400 ErrorEgcAlreadyUsed

Карта уже использована

400 ErrorEgcTemporarlyBlocked

Карта заблокирована на 30 минут

400 ErrorEgcNotFound

Неправильный номер карты

Проверить статус платежа по намерению
POST /payment/checkIntention

Метод служит, чтобы понять статус платежа по намерению

Документация: https://confluence.app.local/pages/viewpage.action?pageId=494232102

Request body

application/json
Object
orderNumber
string required

Номер заказа

paymentIntentionId
string required

Идентификатор намерения платежа

Responses

400 CheckPaymentIntentionResponse

Статус платежа

400 ErrorOrderNumberIsEmpty

ErrorOrderNumberIsEmpty

400 ErrorPaymentIntentionIdIsEmpty

ErrorPaymentIntentionIdIsEmpty

400 ErrorPaymentIntentionIdIsBad

Гейт ответил 400й ошибкой при paymentIntentionId != null

400 ErrorPaymentStatusUnknown

ErrorPaymentStatusUnknown

Провести валидацию подарочной карты
POST /v1/giftCard/validate

Request body

application/json
Object
orderNumber
string required

Номер заказа

totalCost
Price required
giftCardNumber
string required

Номер подарочной карты

giftCardPin
string required

Пин-код подарочной карты

isEgc
boolean required

Выбранный Пользователем тип подарочной карты. Передаетс true, если была выбрана Электронная подарочная карта, и false, если выбрана Подарочная карта

Responses

400 ValidateGiftCardResponse

Ответ на успешную валидацию подарочной карты

400 ErrorPinCodeIncorrect

Неправильный пин-код

400 ErrorEgcExpired

Срок действия подарочной карты истек

400 ErrorEgcAlreadyUsed

Карта уже использована

400 ErrorEgcTemporarlyBlocked

Карта заблокирована на 30 минут

400 ErrorEgcNotFound

Неправильный номер карты

400 ErrorIncorrectGiftCardType

Неправильный тип подарочной карты

Получить данные для оплаты через SberPay
POST /payment/sberpay

Метод используется для SberPay SDK

Документация: https://confluence.app.local/pages/viewpage.action?pageId=804694928

Request body

application/json
Object
orderNumber
string required

Номер заказа

Example:
2700924-901450

Responses

400 SberPayResponse

SberPayResponse

Получить ссылку на оплату Яндекс Pay
POST /payment/yandexPay

Метод используется для инструмента оплаты Яндекс Pay

Документация: https://confluence.app.local/pages/viewpage.action?pageId=889128678

Request body

application/json
Object
orderNumber
string required

Номер заказа

Для БЭ: это инвойс намбер

urlFail
string required

URL для возврата пользователя из эквайринга без успешной оплаты

urlSuccess
string required

URL для возврата пользователя из эквайринга после успешной оплаты

Responses

400 PaymentUrlResponse

Ответ на получение ссылки на оплату банковской картой

400 ErrorPaymentUrlIsEmpty

ErrorPaymentUrlIsEmpty

400 ErrorPaymentUrlInvalidParameters

ErrorPaymentUrlInvalidParameters

Проведение оплаты по подписке СБП
POST /payment/_fps-subscription

Request body

application/json
Object
orderNumber
string required

Номер заказа

bankId
string required

ID банка на стороне СБП

Responses

400 FpsSubscriptionResponse

FpsSubscriptionResponse

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

Получить данные для покупки ЭПК
GET /v1/egc/info

Responses

400 EgcInfoResponse

EgcInfoResponse

Оформить заказ ЭПК
POST /v1/egc/invoice

Request body

application/json
Object
summ
Price required
senderEmail
string required

E-mail отправителя

receiver
EgcReceiver required
delayedSend
message
imageType
integer

Код дизайна ЭПК

Responses

400 EgcResponse

EgcResponse

400 ErrorAnonymUser

ErrorAnonymUser

v3 История заказов
GET /v3/orderHistory

Request parameters

filterId
string optional

Айди фильтра. Если не передан, то возвращаюстя все заказы

Responses

400 OrderHistoryResponse

OrderHistoryResponse

400 ErrorAnonymUser

ErrorAnonymUser

v2 Поиск заказов по номеру заказа
POST /v2/orderHistory/numbers

Request body

application/json
Object
numbers
Array of string required

Номера заказов

Responses

400 OrdersByNumbersResponse

OrdersByNumbersResponse

400 ErrorProductIdMustNotBeNull

ErrorProductIdMustNotBeNull

400 ErrorWareIdMustNotBeNull

ErrorWareIdMustNotBeNull

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

v4 Получить заказ
POST /v4/order/{orderNumber}

Path variables

orderNumber
string required

Responses

400 OrderResponse

OrderResponse

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

400 ErrorProductIdMustNotBeNull

ErrorProductIdMustNotBeNull

400 ErrorWareIdMustNotBeNull

ErrorWareIdMustNotBeNull

Получить товарный чек
GET /order/receipt/{receiptCode}

Path variables

receiptCode
string required

Responses

400 OrderResponse

OrderResponse

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

400 ErrorProductIdMustNotBeNull

ErrorProductIdMustNotBeNull

400 ErrorWareIdMustNotBeNull

ErrorWareIdMustNotBeNull

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

Получить Спасибо за заказ
POST /orderHistory/thanksForOrder

Проверяются условия оформления заказа, отдаются данные для экрана “Спасибо за заказ”

Документация: https://confluence.app.local/pages/viewpage.action?pageId=541904488

Request body

application/json
Object
orderNumbers
Array of string required

Номера заказов

Responses

400 ThanksForOrderResponse

ThanksForOrderResponse

Получить данные для FAQ по заказу
GET /order/faq

Request parameters

orderNumber
string required

Номер заказа

Responses

400 FaqResponse

FaqResponse

400 ErrorDocumentIsNotActive

Статическая страница неактивна в CMS Gate и её нельзя отображать пользователю.

Получить заказ на парковке
POST /order/{orderNumber}/pickUpAutoRequest

Path variables

orderNumber
string required

Номер заказа

Request body

application/json
Object
shopNumber
integer required

Номер магазина

carNumber
string required

Номер автомобиля

orderReceiveCode
string required

Смс код для получения заказа

Responses

400 PickUpAutoResponse

PickUpAutoResponse

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

400 PickUpAutoDuplicationError

PickUpAutoDuplicationError

400 PickUpAutoNotEnabledError

Ошибка, когда FeatureToggles.isPickUpAutoEnabled == false.

DEP Отменить заказ
POST /order/{orderNumber}

Документация: https://confluence.app.local/pages/viewpage.action?pageId=489484800 DEP в рамках MPSM-12464

Path variables

orderNumber
string required

Request body

application/json
Object
cancelReasonId
string required
comment
string
Max length: 2,000

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorOrderIllegalAction

ErrorOrderIllegalAction

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

Отменить заказ
POST /order/{orderNumber}/_cancel

Path variables

orderNumber
string required

Request body

application/json
Object
cancelReasonId
string

Идентификатор причины отмены

Example:
123
comment
string

Текстовое описание от пользователя с причиной отмены

Max length: 2,000
orderStage
string required

Контекст выполнения запроса

Enumeration:
DEFAULT
ON_PRODUCT_DELETE

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorOrderIllegalAction

ErrorOrderIllegalAction

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

Отправить причину редактирования заказа
POST /order/{orderNumber}/edit-reason

Path variables

orderNumber
string required

Request body

application/json
Object
editReasonMnemocode
string required

Мнемокод причины редактирования заказа

Example:
payment_change

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorActionIsNotAvailable

ErrorActionIsNotAvailable

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

400 ErrorOrderIllegalAction

ErrorOrderIllegalAction

Получить заказ ЭПК
GET /egcorder/{orderNumber}

Path variables

orderNumber
string required

Номер заказа ЭПК

Responses

400 EgcOrderResponse

EgcOrderResponse

Продлить хранение заказа
POST /order/{orderNumber}/prolongate

Метод продления срока хранения заказа

Документация: https://confluence.app.local/pages/viewpage.action?pageId=489484810

Path variables

orderNumber
string required

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

400 ErrorOrderIllegalAction

ErrorOrderIllegalAction

DEP Получить корзину возврата
GET /v1/return-cart

Responses

400 [DEP] CommonCartResponse

[DEP] CommonCartResponse

400 ErrorRefundIsNotAvailable

ErrorRefundIsNotAvailable

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

DEP Установить получателя корзины возврата
POST /v1/return-cart/receiver

Request body

application/json
Object
fio
string required

ФИО получателя

Example:
Иванов Иван Иванович
email
string required

Email получателя

Min length: 255
Pattern: ^[a-zA-Z0-9_.+-]+@([a-zA-Z0-9-]+\.)+[a-zA-Z0-9-]+$
Example:
iiivanov_00@sportaster.ru
phone
Phone required

Responses

400 [DEP] CommonCartResponse

[DEP] CommonCartResponse

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

400 ErrorRefundIsNotAvailable

ErrorRefundIsNotAvailable

400 ErrorFieldValidation

ErrorFieldValidation

DEP Установить способ возврата денежных средств
POST /v1/return-cart/order/{potentialOrderId}/refundMethods

Path variables

potentialOrderId
string required

Номер потенциального заказа

Example:
d2b631aa-63ce-446d-b9dc-ec9f82c48962

Request body

application/json
Object
refundMethods

Способы возврата денежных средств

Responses

400 [DEP] CommonCartResponse

[DEP] CommonCartResponse

400 ErrorRefundIsNotAvailable

ErrorRefundIsNotAvailable

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

400 ErrorPotentialOrderIsNotFound

ErrorPotentialOrderIsNotFound

400 ErrorRefundMethodIsNotValid

ErrorRefundMethodIsNotValid

DEP Редактировать информацию о возвращаемых товарах
POST /v1/return-cart/lines/_set-info

Метод передает список товаров с информацией о причинах возврата по каждому

Документация: https://confluence.app.local/pages/viewpage.action?pageId=990505663

Request body

application/json
Object
lines
Array of ReturnBasketLine required

Список товаров с информацией о причинах возврата

Responses

400 [DEP] CommonCartResponse

[DEP] CommonCartResponse

400 ErrorRefundIsNotAvailable

ErrorRefundIsNotAvailable

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

400 ErrorFileIsBad

ErrorFileIsBad

400 ErrorMaxFilesLimitExceeded

ErrorMaxFilesLimitExceeded

400 ErrorLinesAreNotFound

ErrorLinesAreNotFound

Получить корзину возврата v2
GET /v2/return-cart

Responses

400 ReturnCartResponse

Возвращает модель корзины возврата

400 ErrorRefundIsNotAvailable

ErrorRefundIsNotAvailable

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

Установить получателя корзины возврата v2
POST /v2/return-cart/receiver

Request body

application/json
Object
fio
string required

ФИО получателя

Example:
Иванов Иван Иванович
email
string required

Email получателя

Min length: 255
Pattern: ^[a-zA-Z0-9_.+-]+@([a-zA-Z0-9-]+\.)+[a-zA-Z0-9-]+$
Example:
iiivanov_00@sportaster.ru
phone
Phone required

Responses

400 ReturnCartResponse

Возвращает модель корзины возврата

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

400 ErrorRefundIsNotAvailable

ErrorRefundIsNotAvailable

400 ErrorFieldValidation

ErrorFieldValidation

Установить способ возврата денежных средств v2
POST /v2/return-cart/potential-order/refund-methods

Request body

application/json
Object
refundMethods

Способы возврата денежных средств

Responses

400 ReturnCartResponse

Возвращает модель корзины возврата

400 ErrorRefundIsNotAvailable

ErrorRefundIsNotAvailable

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

400 ErrorPotentialOrderIsNotFound

ErrorPotentialOrderIsNotFound

400 ErrorRefundMethodIsNotValid

ErrorRefundMethodIsNotValid

Редактировать информацию о возвращаемых товарах v2
POST /v2/return-cart/lines/_set-info

Request body

application/json
Object
lines
Array of ReturnBasketLine required

Список товаров с информацией о причинах возврата

Responses

400 ReturnCartResponse

Возвращает модель корзины возврата

400 ErrorRefundIsNotAvailable

ErrorRefundIsNotAvailable

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

400 ErrorFileIsBad

ErrorFileIsBad

400 ErrorMaxFilesLimitExceeded

ErrorMaxFilesLimitExceeded

400 ErrorLinesAreNotFound

ErrorLinesAreNotFound

Оформить корзину возврата
POST /v1/return-cart/submit

Request body

application/json
Object
cartVersion
integer required

Параметр нужен, чтобы пользователь оформил ту версию корзины, что видел.

Responses

400 SubmitCartResponse

SubmitCartResponse

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

400 ErrorRefundIsNotAvailable

ErrorRefundIsNotAvailable

400 ErrorBasketVersionIsNotValid

ErrorBasketVersionIsNotValid

400 ErrorRefundMethodIsRequired

ErrorRefundMethodIsRequired

400 ErrorReturnReasonIsRequired

ErrorReturnReasonIsRequired

400 ErrorPotentialOrderIsRequired

ErrorPotentialOrderIsRequired

400 ErrorOwnerDataIsRequired

ErrorOwnerDataIsRequired

DEP Установить способ возврата в магазин
POST /v1/return-cart/obtain-point/to-shop

Request body

application/json
Object
shopNumber
string required

Номер магазина

Example:
898

Responses

400 [DEP] CommonCartResponse

[DEP] CommonCartResponse

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

400 ErrorRefundIsNotAvailable

ErrorRefundIsNotAvailable

400 ErrorLinesAreNotFound

ErrorLinesAreNotFound

Установить способ возврата в магазин v2
POST /v2/return-cart/obtain-point/to-shop

Request body

application/json
Object
shopNumber
string required

Номер магазина

Example:
898

Responses

400 ReturnCartResponse

Возвращает модель корзины возврата

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

400 ErrorRefundIsNotAvailable

ErrorRefundIsNotAvailable

400 ErrorLinesAreNotFound

ErrorLinesAreNotFound

Список ПВЗ с доступностью товара для возврата
POST /v1/return-cart/_get-drop-off-delivery-points

Request body

application/json
Object
cartItemIds
Array of CartItemIdWithLines required

Responses

400 DropOffDeliveryPointAvailabilityResponse

DropOffDeliveryPointAvailabilityResponse

400 ErrorSomeBasketLinesIsNotFound

ErrorSomeBasketLinesIsNotFound

400 ErrorExternalPickupAvailability

ErrorExternalPickupAvailability

DEP Установить способ возврата ПВЗ
POST /v1/return-cart/obtain-point/to-delivery-point

Request body

application/json
Object
pickpointId
string required

id выбранного ПВЗ

cartItemIds
Array of CartItemIdWithLines required

Выбранные товары

Responses

400 [DEP] CommonCartResponse

[DEP] CommonCartResponse

400 ErrorSomeBasketLinesIsNotFound

ErrorSomeBasketLinesIsNotFound

400 ErrorObtainingMethodIsNotValid

ErrorObtainingMethodIsNotValid

400 ErrorExternalPickupAvailability

ErrorExternalPickupAvailability

Установить способ возврата ПВЗ v2
POST /v2/return-cart/obtain-point/to-delivery-point

Request body

application/json
Object
pickpointId
string required

id выбранного ПВЗ

cartItemIds
Array of CartItemIdWithLines required

Выбранные товары

Responses

400 ReturnCartResponse

Возвращает модель корзины возврата

400 ErrorSomeBasketLinesIsNotFound

ErrorSomeBasketLinesIsNotFound

400 ErrorObtainingMethodIsNotValid

ErrorObtainingMethodIsNotValid

400 ErrorExternalPickupAvailability

ErrorExternalPickupAvailability

DEP Установить способ возврата курьером
POST /v1/return-cart/obtain-point/to-courier

Request body

application/json
Object
cartItemIds
Array of CartItemIdWithLines required

Выбранные товары

receivingAddressInfo

Responses

400 [DEP] CommonCartResponse

[DEP] CommonCartResponse

400 ErrorSomeBasketLinesIsNotFound

ErrorSomeBasketLinesIsNotFound

400 ErrorObtainingMethodIsNotValid

ErrorObtainingMethodIsNotValid

400 ErrorLocationIsNotMatch

Ошибка, возвращаемая если координаты в x-location не совпадают с координатами в receivingAddress.

400 ErrorHouseIsNull

Ошибка, возвращаемая, когда при установке МСП курьерской доставки / редактирования адреса курьерской доставки в структуре адреса отсутствует дом (геозоны).

DEP Установить дату и время у потенциального заказа на возврат
POST /v1/return-cart/obtain-point/_set-date-time

Request body

application/json
Object
receivingDateFrom
DateOnly required
receivingDateTo
receivingTimeSlot
string required

Временной интервал возврата

receivingTimeSlotId
integer required

ID временного слота возврата

Responses

400 [DEP] CommonCartResponse

[DEP] CommonCartResponse

400 ErrorObtainPointIdIsNotFound

ErrorObtainPointIdIsNotFound

400 ErrorObtainingMethodIsNotValid

ErrorObtainingMethodIsNotValid

400 ErrorDateTimeReceiptAreOutdated

ErrorDateTimeReceiptAreOutdated

400 ErrorExternalPickupAvailability

ErrorExternalPickupAvailability

Установить способ возврата курьером v2
POST /v2/return-cart/obtain-point/to-courier

Request body

application/json
Object
cartItemIds
Array of CartItemIdWithLines required

Выбранные товары

receivingAddressInfo

Responses

400 ReturnCartResponse

Возвращает модель корзины возврата

400 ErrorSomeBasketLinesIsNotFound

ErrorSomeBasketLinesIsNotFound

400 ErrorObtainingMethodIsNotValid

ErrorObtainingMethodIsNotValid

400 ErrorLocationIsNotMatch

Ошибка, возвращаемая если координаты в x-location не совпадают с координатами в receivingAddress.

400 ErrorHouseIsNull

Ошибка, возвращаемая, когда при установке МСП курьерской доставки / редактирования адреса курьерской доставки в структуре адреса отсутствует дом (геозоны).

Установить дату и время у потенциального заказа на возврат v2
POST /v2/return-cart/obtain-point/_set-date-time

Request body

application/json
Object
receivingDateFrom
DateOnly required
receivingDateTo
receivingTimeSlot
string required

Временной интервал возврата

receivingTimeSlotId
integer required

ID временного слота возврата

Responses

400 ReturnCartResponse

Возвращает модель корзины возврата

400 ErrorObtainPointIdIsNotFound

ErrorObtainPointIdIsNotFound

400 ErrorObtainingMethodIsNotValid

ErrorObtainingMethodIsNotValid

400 ErrorDateTimeReceiptAreOutdated

ErrorDateTimeReceiptAreOutdated

400 ErrorExternalPickupAvailability

ErrorExternalPickupAvailability

История возвратов
GET /v1/return-orders

Request parameters

filterId
string optional

Айди фильтра. Если не передан, то возвращаюстя все возвраты

Responses

400 ReturnHistoryResponse

ReturnHistoryResponse

400 ErrorAnonymUser

ErrorAnonymUser

Получить возврат
GET /v1/return-orders/{returnCode}

Path variables

returnCode
string required

Responses

400 ReturnResponse

ReturnResponse

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

Отменить возврат
POST /v1/return-orders/{returnCode}/_cancel

Path variables

returnCode
string required

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorOrderIllegalAction

ErrorOrderIllegalAction

Открыть спор по возврату
POST /v1/return-orders/{returnCode}/_start-quarrel

Path variables

returnCode
string required

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorOrderIllegalAction

ErrorOrderIllegalAction

Получить корзину услуг
GET /v1/service-cart

Responses

400 ServiceCartResponse

Возвращает модель корзины услуг

400 ErrorBasketIsEmpty

Ошибка, которая возникает, когда корзина оказалась пустой

400 ErrorBasketIsNotExist

Ошибка, которая возникает, когда корзина не найдена

400 ErrorActionIsNotAvailable

ErrorActionIsNotAvailable

Создать корзину услуг
POST /v1/service-cart

Request body

application/json
Object
serviceList
Array of ServiceInCart required

Список услуг, которые нужно добавить в новую корзину

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorActionIsNotAvailable

ErrorActionIsNotAvailable

400 ErrorServiceIsNotFound

ErrorServiceIsNotFound

400 ErrorServicesCategoryMismatch

ErrorServicesCategoryMismatch

400 ErrorTooManyServicesInBasket

ErrorTooManyServicesInBasket

Применить промокод в корзине услуг
POST /v1/service-cart/promo

Request body

application/json
Object
promoCode
string required

Промокод, который нужно применить

Responses

400 ServiceCartResponse

Возвращает модель корзины услуг

400 ErrorBasketIsEmpty

Ошибка, которая возникает, когда корзина оказалась пустой

400 ErrorBasketIsNotExist

Ошибка, которая возникает, когда корзина не найдена

400 ErrorActionIsNotAvailable

ErrorActionIsNotAvailable

400 ErrorPromocodeIsNotValid

ErrorPromocodeIsNotValid

Удалить промокод в корзине услуг
DELETE /v1/service-cart/promo

Responses

400 ServiceCartResponse

Возвращает модель корзины услуг

400 ErrorBasketIsEmpty

Ошибка, которая возникает, когда корзина оказалась пустой

400 ErrorBasketIsNotExist

Ошибка, которая возникает, когда корзина не найдена

400 ErrorActionIsNotAvailable

ErrorActionIsNotAvailable

Изменить флаг использования бонусов корзины услуг
POST /v1/service-cart/_apply-bonuses

Request body

application/json
Object
applyBonuses
boolean required

Списывать или нет бонусы при оформлении корзины

Example:
true

Responses

400 ServiceCartResponse

Возвращает модель корзины услуг

400 ErrorBasketIsEmpty

Ошибка, которая возникает, когда корзина оказалась пустой

400 ErrorBasketIsNotExist

Ошибка, которая возникает, когда корзина не найдена

400 ErrorActionIsNotAvailable

ErrorActionIsNotAvailable

400 ErrorAnonymUser

ErrorAnonymUser

Установить получателя корзины услуг
POST /v1/service-cart/receiver

Request body

application/json
Object
fio
string required

ФИО получателя

email
string required

Email получателя

phone
verificationToken
string

Код, полученный при проверке номера смс. Передавать не обязательно. Если не передан, то у овнера остается прошлое значение номера. Если номера не было, то возвращается специальная ошибка.

Передается только для анонима.

Responses

400 ServiceCartResponse

Возвращает модель корзины услуг

400 ErrorBasketIsEmpty

Ошибка, которая возникает, когда корзина оказалась пустой

400 ErrorBasketIsNotExist

Ошибка, которая возникает, когда корзина не найдена

400 ErrorActionIsNotAvailable

ErrorActionIsNotAvailable

400 ErrorPhoneInBasket

Кейс 1. Ошибка, если для неавторизованного пользователя не передан токен и у владельца корзины нет телефона // Кейс 2. Ошибка, если для авторизованного пользователя не передан номер телефона

Список сервисных центров с доступностью услуг
GET /v1/service-cart/_service-center-availability

Responses

400 ServiceCenterAvailabilityResponse

ServiceCenterAvailabilityResponse

400 ErrorActionIsNotAvailable

ErrorActionIsNotAvailable

Установить способ оказания услуг в сервисном центре
POST /v1/service-cart/obtain-point/to-service-center

Request body

application/json
Object
serviceCenterId
string required

Номер сервисного центра

Example:
117
cartItemIds

Responses

400 ServiceCartResponse

Возвращает модель корзины услуг

400 ErrorBasketIsEmpty

Ошибка, которая возникает, когда корзина оказалась пустой

400 ErrorBasketIsNotExist

Ошибка, которая возникает, когда корзина не найдена

400 ErrorActionIsNotAvailable

ErrorActionIsNotAvailable

400 ErrorServiceIsNotFound

ErrorServiceIsNotFound

400 ErrorServiceCenterIsNotAvailable

ErrorServiceCenterIsNotAvailable

Установить дату и время у потенциального заказа корзины услуг
POST /v1/service-cart/obtain-point/_set-date-time

Request body

application/json
Object
availDate
DateOnly required
timeSlot
string required

Выбранное время начала оказания услуг

Example:
10:00

Responses

400 ServiceCartResponse

Возвращает модель корзины услуг

400 ErrorBasketIsEmpty

Ошибка, которая возникает, когда корзина оказалась пустой

400 ErrorBasketIsNotExist

Ошибка, которая возникает, когда корзина не найдена

400 ErrorActionIsNotAvailable

ErrorActionIsNotAvailable

400 ErrorObtainPointIdIsNotFound

ErrorObtainPointIdIsNotFound

400 ErrorSomeServicesAreUnavailable

Ошибка, которая возникает, когда одна или несколько услуг не доступны

400 ErrorServicesExceedMaxDuration

Ошибка, которая возникает, когда общая продолжительность выбранных услуг превышает максимально допустимый временной диапазон

400 ErrorSelectedDateIsUnavailable

Ошибка, которая возникает, когда выбранная пользователем дата стала недоступна

400 ErrorSelectedTimeIsUnavailable

Ошибка, которая возникает, когда выбранное пользователем время стало недоступно

Способы оплаты потенциального заказа корзины услуг
GET /v1/service-cart/order/payment-methods

Responses

400 PaymentMethodsResponse2

PaymentMethodsResponse2

400 ErrorBasketIsEmpty

Ошибка, которая возникает, когда корзина оказалась пустой

400 ErrorBasketIsNotExist

Ошибка, которая возникает, когда корзина не найдена

400 ErrorActionIsNotAvailable

ErrorActionIsNotAvailable

400 ErrorObtainPointIdIsNotFound

ErrorObtainPointIdIsNotFound

Установить способ оплаты у заказа корзины услуг
POST /v1/service-cart/order/payment-methods

Request body

application/json
Object
paymentMethodId
string required

Берется из модели метода оплаты. Фактически это значение энама

Responses

400 ServiceCartResponse

Возвращает модель корзины услуг

400 ErrorBasketIsEmpty

Ошибка, которая возникает, когда корзина оказалась пустой

400 ErrorBasketIsNotExist

Ошибка, которая возникает, когда корзина не найдена

400 ErrorActionIsNotAvailable

ErrorActionIsNotAvailable

400 ErrorObtainPointIdIsNotFound

ErrorObtainPointIdIsNotFound

400 ErrorPaymentMethodIsNotValid

ErrorPaymentMethodIsNotValid

400 ErrorTotalCostBelowThreshold

Когда был выбран способ оплаты, у которого минимальная сумма заказа превышает фактическую сумму

Оформить корзину услуг
POST /v1/service-cart/submit

Request body

application/json
Object
cartVersion
integer required

Параметр нужен, чтобы пользователь оформил ту версию корзины, что видел.

agreeToReceiveNews
boolean

Согласие на получение рассылки. Используется для анонимных пользователей

Responses

400 SubmitCartResponse

SubmitCartResponse

400 ErrorBasketIsEmpty

Ошибка, которая возникает, когда корзина оказалась пустой

400 ErrorBasketIsNotExist

Ошибка, которая возникает, когда корзина не найдена

400 ErrorActionIsNotAvailable

ErrorActionIsNotAvailable

400 ErrorBasketVersionIsNotValid

ErrorBasketVersionIsNotValid

400 ErrorPotentialOrderIsRequired

ErrorPotentialOrderIsRequired

400 ErrorOwnerDataIsRequired

ErrorOwnerDataIsRequired

400 ErrorPaymentMethodIsRequired

ErrorPaymentMethodIsRequired

400 ErrorServicesExceedMaxDuration

Ошибка, которая возникает, когда общая продолжительность выбранных услуг превышает максимально допустимый временной диапазон

400 ErrorSelectedDateTimeIsUnavailable

Ошибка, которая возникает, когда выбранные пользователем дата и время стали недоступны

Получить корзину редактирования
GET /v1/edit-cart

Responses

400 EditCartResponse

Возвращает модель корзины редактирования

400 ErrorEditingIsNotAvailable

ErrorEditingIsNotAvailable

Установить количество товара в корзине редактирования
POST /v1/edit-cart/lines/_set-quantity

Request body

application/json
Object
quantity
integer required

Количество товара, которое должно стать в корзине

Responses

400 EditCartResponse

Возвращает модель корзины редактирования

400 ErrorBasketState

ErrorBasketState

400 ErrorTooManyLinesInBasket

ErrorTooManyLinesInBasket

400 ErrorLinesAreNotFound

ErrorLinesAreNotFound

Удалить товары из корзины редактирования
POST /v1/edit-cart/lines/_delete

Request body

application/json
Object
ids
Array of CartItemIdWithLines required

Responses

400 EditCartResponse

Возвращает модель корзины редактирования

400 ErrorBasketState

ErrorBasketState

400 ErrorLinesAreNotFound

ErrorLinesAreNotFound

Скрыть удаленный товар в корзине редактирования
POST /v1/edit-cart/lines/_hide-deleted

Request body

application/json

Responses

400 EditCartResponse

Возвращает модель корзины редактирования

400 ErrorBasketState

ErrorBasketState

400 ErrorDeletedLinesAreNotFound

ErrorDeletedLinesAreNotFound

Восстановить удаленный товар в корзине редактирования
POST /v1/edit-cart/lines/_restore-deleted

Request body

application/json

Responses

400 EditCartResponse

Возвращает модель корзины редактирования

400 ErrorBasketState

ErrorBasketState

400 ErrorRestoredItemIfNotFound

ErrorRestoredItemIfNotFound

Оформить корзину редактирования
POST /v1/edit-cart/_submit

Request body

application/json
Object
cartVersion
integer required

Параметр нужен, чтобы пользователь оформил ту версию корзины, что видел.

Responses

400 SubmitEditCartResponse

SubmitEditCartResponse

400 ErrorBasketVersionIsNotValid

ErrorBasketVersionIsNotValid

400 ErrorBasketState

ErrorBasketState

400 ErrorPotentialOrderIsRequired

ErrorPotentialOrderIsRequired

400 ErrorOwnerDataIsRequired

ErrorOwnerDataIsRequired

400 ErrorPaymentMethodIsRequired

ErrorPaymentMethodIsRequired

DEP Отменить редактируемый заказ
POST /v1/edit-order/_cancel

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorOrderIllegalAction

ErrorOrderIllegalAction

400 ErrorOrderIllegalAccess

ErrorOrderIllegalAccess

Получить профиль
GET /profile

Responses

400 ProfileResponse

ProfileResponse

Изменить профиль
PATCH /profile

Меняются только те поля, что были переданы

Документация: https://confluence.app.local/pages/viewpage.action?pageId=489465099

Request body

application/json
Object
anketa
email
string
addSportsman
agreeToSubscriptions
boolean

Подписка пользователя на email-расссылку. Параметр может приходить только с экрана изменения почты!

agreeGetReceipts
boolean

Подписка пользователя на получение эл. чеков. Параметр может приходить только с экрана изменения почты!

Example:
true
agreements

Responses

400 ProfileResponse

ProfileResponse

400 ErrorFieldValidation

ErrorFieldValidation

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

400 ErrorInvitationNotExist

Код приглашения некорректный

400 ErrorEmailValidation

Бизнес-ошибка валидации email со стороны гейта

400 ErrorLimitForSportsmanExceeded

Возвращается, когда для спортсмена исчерпан лимит смены вида спорта

Получить метки клиента
GET /v1/profile/client-labels

Responses

400 ClientLabelsResponse

ClientLabelsResponse

Удалить профиль
POST /profile/deleteAccount

Request body

application/json
Object
name
string required

Имя пользователя

lastName
string

Фамилия Пользователя

phone
string required

Телефон пользователя

email
string required

Электронная почта

Responses

400 AuthResponse

AuthResponse

400 ErrorFieldValidation

ErrorFieldValidation

Изменить номер телефона
POST /profile/changePhone

Номер берется из токена, который выдали механизм подтверждения номера телефона.

Для БЭ: Изменение номера происходит через http://rest-app.usergatetst.marathon.mesos.sportmaster.ru/swagger-ui/index.html?url=/v3/api/openapi.yml#/Anketa/changeLogins

Документация: https://confluence.app.local/pages/viewpage.action?pageId=489465101

Request body

application/json
Object
token
string required

Номер, выданный при подверждении действия смской

Responses

400 ProfileResponse

ProfileResponse

400 ErrorFieldValidation

ErrorFieldValidation

400 ErrorPhoneAlreadyUsed

Ошибка, возвращаемая из BFF, когда при смене номера телефона уже существует профиль с таким номером

Изменить номер телефона с разлогином
POST /profile/_change-phone-with-logout

Производится смена номера телефона с разлогином со всех устройств (номер берется из токена, который был получен при подтверждении номера)

Документация - https://confluence.app.local/pages/viewpage.action?pageId=889128598

Request body

application/json
Object
token
string required

Токен, полученный в результате подтверждения номера телефона (по токену определяем номер телефона и используем для смены логина)

Responses

400 AuthResponse

AuthResponse

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

400 ErrorPhoneAlreadyUsed

Ошибка, возвращаемая из BFF, когда при смене номера телефона уже существует профиль с таким номером

Отправить письмо подтверждения на почту
POST /profile/sendEmailForConfirmation

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorEmailValidation

Бизнес-ошибка валидации email со стороны гейта

Установить аватар
POST /profile/avatar

Multipart запрос.

В User Gate нет работы с аватарами, этим должен заниматься наш бекенд

Документация: -

Request body

multipart/form-data
Object
avatar
string

Обрати внимание, что это не String, а File. В спеке нету такого

Responses

400 ProfileResponse

ProfileResponse

Удалить аватар
DELETE /profile/avatar

Multipart запрос

Документация: -

Responses

400 ProfileResponse

ProfileResponse

Отправить push token
POST /profile/pushToken

Request body

application/json
Object
pushToken
string required
pushService
string required
Enumeration:
apns
fcm
hms

Responses

400 EmptyResponse

Пустой ответ сервера

Получить id профиля
GET /profile/id

Получить айди и тип профиля (гость / авторизованный)

Документация: -

Responses

400 ProfileIdResponse

ProfileIdResponse

Получить usergate token
GET /profile/userGateToken

Authentication

Access token

Документация (до анонимов): https://confluence.app.local/pages/viewpage.action?pageId=478283543

Документация (после анонимов): https://confluence.app.local/pages/viewpage.action?pageId=570006207

Responses

400 UserGateTokenResponse

UserGateTokenResponse

v2 Получить баннеры для профиля
POST /v2/profile/banners

Responses

400 ProfileBannersResponse

ProfileBannersResponse

DEP v1 Получить баннеры для профиля
GET /profile/banners

DEPRECATED: версия 4.40.0 - 25.09 - 06.10

Документация: https://confluence.app.local/pages/viewpage.action?pageId=558308608

Responses

400 ProfileBannersResponse

ProfileBannersResponse

Получить телефон КЦ
GET /v1/info/callCenterPhone

Responses

400 CallcenterPhoneResponse

CallcenterPhoneResponse

Получить список социальных сетей
GET /v1/info/socials

Responses

400 SocialsResponse

SocialsResponse

Проверка и обновление clubpro_id
POST /v1/profile/checkClubProId

Request body

application/json
Object
clubProId
string

Значение clubpro_id из постоянной памяти МП

userGateUid
string

Значение profileId в памяти МП

Responses

400 CheckClubProResponse

CheckClubProResponse

Получить информацию о заполненности профиля
GET /profile/filledInfo

Возвращается информация о заполненности профиля для экрана QR-кода

Документация - https://confluence.app.local/pages/viewpage.action?pageId=884240714

Responses

400 ProfileFilledInfoResponse

ProfileFilledInfoResponse

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

Проверка и обновление userGateUidclubpro_id
POST /v1/profile/_check-user-gate-uid-and-club-pro-id

Request body

application/json
Object
clubProId
string

Значение clubpro_id из постоянной памяти МП

userGateUid
string

Значение profileId в памяти МП

Responses

400 CheckUserGateUidAndClubProIdResponse

CheckUserGateUidAndClubProIdResponse

Популярные города
GET /city/popular

Данные берутся из CmsGate

Метод https://confluence.app.local/display/CMSGATE/(API)+SEARCH-REGISTRY#tab-Сигнатура

slots = frontoffice_top_cities (если не выйдет, то попробовать popular_locality) скрин http://joxi.ru/zANGkg7i8o0BJr

consumer = любое значение, легаси

Документация: https://confluence.app.local/pages/viewpage.action?pageId=490062317

Responses

400 CitiesResponse

CitiesResponse

Поиск городов по названию
GET /city

Документация: https://confluence.app.local/pages/viewpage.action?pageId=490062320

Работает через Geogate POST /territories/search Поиск НП, улиц, домов

Читать это https://confluence.app.local/display/GEOGATE/(API)+SEARCH-TERRITORIES#tab-Логика

Request parameters

query
string required

Строка поиска города

Responses

400 CitiesResponse

CitiesResponse

400 UnauthorizedError

Ошибка, возвращаемая в случае невалидности (истечения срока жизни токена) Access Token.

Поиск города по координатам
GET /city/coord

Request parameters

lat
number required
lng
number required

Responses

400 CityResponse

CityResponse

Поиск города по ID
GET /city/{cityId}

Path variables

cityId
string required

Responses

400 CityResponse

CityResponse

400 UnauthorizedError

Ошибка, возвращаемая в случае невалидности (истечения срока жизни токена) Access Token.

Поиск города по IP
GET /city/ip

В настоящий момент метод нигде не используется МП. Предположительно создавался для тестирования.

Документация: -

Responses

400 CityResponse

CityResponse

Поиск улицы
GET /geo/street

Request parameters

query
string required
cityId
string required

Responses

400 StreetsResponse

StreetsResponse

Поиск дома
GET /geo/house

Request parameters

query
string required
streetId
string required

Responses

400 HousesResponse

HousesResponse

Получить станции метро
GET /city/{cityId}/metro

Для БЭ: http://rest-app.geogate-uat.k8s-dev.gksm.local/swagger-ui/index.html?url=../openapi.json#/territory/GetTerritoryMetros Возвращает пустой массив, если в городе нет метро

Документация: https://confluence.app.local/pages/viewpage.action?pageId=621833488

Path variables

cityId
string required

ID населенного пункта

Responses

400 MetroListResponse

MetroListResponse

Поиск адреса по названию или uri
GET /geo/address

Request parameters

query
string required

Строка поиска адреса

mode
AddressMode optional

Определение условия для поиска адреса.

Responses

400 AddressResponse

AddressResponse

Поиск адреса по координатам
GET /geo/geopoint

Request parameters

lat
number required

Широта

Example:
55.755864
lng
number required

Долгота

Example:
37.617698

Responses

400 AddressResponse

AddressResponse

Получить подсказки адресов
GET /geo/suggest

Получить подсказки адресов из сервиса Яндекс Геосаджест

Документация: https://confluence.app.local/pages/viewpage.action?pageId=677944629

Request parameters

query
string required

Строка поиска адреса

lat
number optional

Широта

Example:
59.988343
lng
number optional

Долгота

Example:
30.322345

Responses

400 GeoSuggestResponse

GeoSuggestResponse

Актуализировать геозоны
POST /v1/geo/geo-fences

Request body

application/json
Object
locationUpdate
location
Location required

Responses

400 GeoFencesResponse

Массив геозон

Сохранить местоположение пользователя
POST /v1/geo/location

Request body

application/json
Object
location
Location required

Responses

400 EmptyResponse

Пустой ответ сервера

Получить адрес по местоположению
GET /v1/geo/getAddressByLocation

Преобразует сохраненное местоположение пользователя из шапки (location) в адрес по структуре Яндекса для геозон. Для преобразования использует координаты location.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=793221628

Responses

400 AddressDecodeResponse

AddressDecodeResponse

400 UnauthorizedError

Ошибка, возвращаемая в случае невалидности (истечения срока жизни токена) Access Token.

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

Создать анонимного пользователя
POST /auth/anonym

Подумать: можно ли как-то проверять по девайс айди созданные аккаунты и позвращать уже готовые? Чтобы не плодить новые

Город пытаться определить по айпи, если не получается, то ставить Москву.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=490062663

Request body

application/json
Object
deviсe
Device required
aid
string

Идентификатор анонимного пользователя / идентификатор установки в UserGate

Передается, если ранее локально был сохранен. Если передан, бэк не должен создавать нового анонима

Example:
2be20f48-46ed-46c8-9232-2ceae1bd693e

Responses

400 AuthResponse

AuthResponse

Найти аккаунт по телефону
POST /auth/isPhoneExists

Request body

application/json
Object
token
string required

Токен, полученный при подтверждении номера телефона

Responses

400 IsPhoneExistsResponse

IsPhoneExistsResponse

400 ErrorIncorrectUserType

Ошибка, которая возвращается, если авторизоваться пытается уже авторизованный пользователь.

Найти аккаунт по социальной сети
POST /auth/isSocialNetworkExists

Бекенд по переданному токену должен получить нужные ему данные и методом

UserGate POST /profiles/_find-by-login Поиск профиля по логину

найти профиль, передав туда loginValue и loginType соотвествующей соцсети.

Если удается найти аккаунт по данной соцсети, нужно проверить, есть ли у данного аккаунта номер телефона методом UserGate GET /profiles/{profileId}/logins

и если номер есть, то вернуть true.

В остальных случаях вернуть false.

Итого: true возвращается, если по данной соцсети удается найти профиль и у данного профиля есть логин в виде телефона.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=490062667

Request body

application/json
Object
token
string required

Токен, полученный при авторизации в социальной сети

Responses

400 IsSocialNetworkExistsResponse

IsSocialNetworkExistsResponse

400 ErrorIncorrectUserType

Ошибка, которая возвращается, если авторизоваться пытается уже авторизованный пользователь.

Авторизация по смс
POST /auth/signInBySms

Авторизация по смс. При авторизации временный пользователь должен мержится в авторизованного. В т.ч. корзина

Документация: https://confluence.app.local/pages/viewpage.action?pageId=490062670

Request body

application/json
Object
token
string required

Токен, полученный при подверждении номера телефона

referrerCode
string

Код реферера

Example:
100000000000000000

Responses

400 AuthResponse

AuthResponse

400 UnauthorizedError

Ошибка, возвращаемая в случае невалидности (истечения срока жизни токена) Access Token.

400 ErrorProccess

ErrorProccess

400 ErrorAuth

ErrorAuth

400 ErrorIncorrectUserType

Ошибка, которая возвращается, если авторизоваться пытается уже авторизованный пользователь.

Регистрация по смс
POST /auth/signUpBySms

Регистрация по смс. При регистрации временный пользователь должен мержится в зарегистрированного. В т.ч. корзина

Документация: https://confluence.app.local/pages/viewpage.action?pageId=490062673

Request body

application/json
Object
token
string required

Токен, полученный при подверждении номера телефона

name
string required

Имя пользователя

unconfirmedEmail
string

Email пользователя

agreeToSubscriptions
boolean required

Согласие пользователя на рассылку

addSportsman
referrerCode
string

Код реферера

Example:
100000000000000000

Responses

400 AuthResponse

AuthResponse

400 UnauthorizedError

Ошибка, возвращаемая в случае невалидности (истечения срока жизни токена) Access Token.

400 ErrorInvitationNotExist

Код приглашения некорректный

400 ErrorProccess

ErrorProccess

400 ErrorAuth

ErrorAuth

400 ErrorIncorrectUserType

Ошибка, которая возвращается, если авторизоваться пытается уже авторизованный пользователь.

400 ErrorEmailValidation

Бизнес-ошибка валидации email со стороны гейта

400 ErrorLimitForSportsmanExceeded

Возвращается, когда для спортсмена исчерпан лимит смены вида спорта

Авторизация через соцсети
POST /auth/signInBySocialNetwork

После авторизации мержить данные из временного пользователя. В т.ч. корзину

Документация: https://confluence.app.local/pages/viewpage.action?pageId=490062675

Request body

application/json
Object
token
string required

Токен, полученный при авторизации через соцсеть

network
referrerCode
string

Код реферера

Example:
100000000000000000

Responses

400 AuthResponse

AuthResponse

400 ErrorAuthByNetworkResponse

Если при попытке авторизации не удается найти аккаунт по заданной соцсети или у аккаунта такого нет номера, то кидается эта ошибка. Текст ошибки придумать самостоятельно

400 UnauthorizedError

Ошибка, возвращаемая в случае невалидности (истечения срока жизни токена) Access Token.

400 ErrorProccess

ErrorProccess

400 ErrorAuth

ErrorAuth

400 ErrorIncorrectUserType

Ошибка, которая возвращается, если авторизоваться пытается уже авторизованный пользователь.

Регистрация через соцсети
POST /v2/auth/signUpBySocialNetwork

После регистрации мержить данные из временного пользователя. В т.ч. корзину.

Может быть ситуация, когда аккаунт не зарегистрирован по социальной сети, но зарегистрирован по номеру телефона. В таком случае нужно привязать к существующему аккаунту по номеру телефона аккаунт социальной сети (метод POST /profiles/{profileId}/logins Изменение Login'ов профиля (CHANGE-LOGINS))

Может быть ситуация, когда аккаунт был зарегистрирован через социальную сеть, но у него не было номера телефона. В этом случае уже нужно подвязать номер телефона к аккаунту.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=490062677

Request body

application/json
Object
networkToken
string required

Токен, полученный от соцсети при авторизации в ней

networkType
smsToken
string

Токен, полученный при подверждении номера телефона

name
string required

Имя пользователя

agreeToSubscriptions
boolean required

Согласие пользователя на рассылку

referrerCode
string

Код реферера

Example:
100000000000000000

Responses

400 AuthResponse

AuthResponse

400 UnauthorizedError

Ошибка, возвращаемая в случае невалидности (истечения срока жизни токена) Access Token.

400 ErrorProccess

ErrorProccess

400 ErrorAuth

ErrorAuth

400 ErrorIncorrectUserType

Ошибка, которая возвращается, если авторизоваться пытается уже авторизованный пользователь.

400 ErrorLimitForSportsmanExceeded

Возвращается, когда для спортсмена исчерпан лимит смены вида спорта

Обновить токен
POST /auth/refresh

Токены можно перевыпустить только для того девайса, с которого выдавались прошлые

Документация: https://confluence.app.local/pages/viewpage.action?pageId=494228050

Request body

application/json
Object
refreshToken
string required
deviceId
string required

Айди девайса, который передавали при создании анонимного пользователя

Responses

400 RefreshTokenResponse

RefreshTokenResponse

400 ErrorRefreshToken

Передали невалидный/отозванный рефреш токен

400 ErrorProccess

ErrorProccess

Логаут
POST /auth/logout

Делается разлогин пользователя.

При этом на беке создается анонимный пользователь.

Беку не забыть отвязывать пуш токены

Документация: https://confluence.app.local/pages/viewpage.action?pageId=490062679

Responses

400 AuthResponse

AuthResponse

400 UnauthorizedError

Ошибка, возвращаемая в случае невалидности (истечения срока жизни токена) Access Token.

400 ErrorProccess

ErrorProccess

400 ErrorLogout

ErrorLogout

Полный логаут
POST /auth/logout/all/

Делается разлогин пользователя.

При этом на беке создается анонимный пользователь.

Беку не забыть отвязывать пуш токены

Документация: https://confluence.app.local/pages/viewpage.action?pageId=1025419496

Responses

400 AuthResponse

AuthResponse

400 UnauthorizedError

Ошибка, возвращаемая в случае невалидности (истечения срока жизни токена) Access Token.

400 ErrorProccess

ErrorProccess

400 ErrorLogout

ErrorLogout

DEP Обменять silent token vk
POST /auth/exchangeSilentAuthTokenVK

DEPRECATED: версия 4.53 в рамках MPSM-8413

Документация: https://confluence.app.local/pages/viewpage.action?pageId=552899602

Request body

application/json
Object
silentToken
string required

Токен, полученный при авторизации через VK ID

uuid
string required

uuid, полученный при авторизациии через VK ID

Responses

400 ExchangeSilentTokenResponse

ExchangeSilentTokenResponse

400 ErrorExchangeSilentToken

Ошибка обмена silent token на access token при регистрации через VK ID

Привязать соцсеть
POST /auth/attachSocialNetwork

Request body

application/json
Object
token
string required

Токен, полученный при авторизации через соцсеть

socialNetwork

Responses

400 EmptyResponse

Пустой ответ сервера

400 400

Ошибка, когда профиль ВК уже привязан к другому аккаунту СМ

Body
application/json
Object
data
Object
message
string required
Enumeration:
Данный профиль ВК уже привязан к другому аккаунту
code
string required
Enumeration:
TEXT_ERROR
Сгенерировать параметры для интеграции со СберID
GET /auth/sber/_generate-parameters

Responses

400 GenerateParametersResponse

GenerateParametersResponse

Получить token Сбер
POST /auth/sber/token

Request body

application/json
Object
state
string required

Сгенерированное значение для предотвращения подделки межсайтовых запросов

authCode
string required

Код авторизации

codeVerifier
string required

Параметр безопасности

Responses

400 SberTokenResponse

SberTokenResponse

400 ErrorSberToken

Ошибка получения кода доступа в Сбер API

DEP Список всех промокодов пользователя
GET /v2/promocode

DEPRECATED с версии 4.63

Документация: https://confluence.app.local/pages/viewpage.action?pageId=519704792

Responses

400 PromoCodesResponse

PromoCodesResponse

Получить список промокодов и бонусов
GET /v1/promo

Метод для получения единого списка промокодов и бонусов пользователя

Документация - https://confluence.app.local/pages/viewpage.action?pageId=903302808

Responses

400 PromoResponse

PromoResponse

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

DEP Получить типы обращений
GET /appeal/types

Authentication

Access token

http://rest-app.usergateuat.marathon.mesos.sportmaster.ru/swagger-ui/index.html?url=/v3/api/openapi.yml#/Appeal/getAppealSubjects

Берутся уникальные значения по appealTypeCode

Документация: https://confluence.app.local/pages/viewpage.action?pageId=435922271 DEP в рамках MPSM-11965

Responses

400 AppealTypeListResponse

AppealTypeListResponse

DEP Получить тип обращения по коду
GET /appeal/types/{code}

Authentication

Access token

Path variables

code
string required

Код типа обращения

Responses

400 AppealTypeResponse

AppealTypeResponse

400 ErrorAppealTypeNotFound

ErrorAppealTypeNotFound

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

DEP Создать обращение
POST /appeal/create

Документация: https://confluence.app.local/pages/viewpage.action?pageId=494214381 DEP в рамках MPSM-11965

Request body

application/json
Object
appealCode
string required

Код типа обращения

subjectId
string required

Идентификатор темы обращения

name
string required

Имя

phone
string required

Номер телефона

email
string required

Электронная почта

orderNumber
string

Номер заказа

message
string required

Сообщение

sendToManager
boolean

Отправить руководителю клиентской службы (да или нет). Отправляется только с типом “Жалоба”

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorFieldValidationPhoneGate

Не прошла валидация телефона на гейте

v2 Создать обращение
POST /v2/appeal

Request body

application/json
Object
firstName
string required

Имя пользователя

lastName
string required

Фамилия пользователя

phone
string required

Номер телефона пользователя

email
string required

Email пользователя

appealThematicsId
string required

Идентификатор тематики обращения

Example:
1720920299
appealTypeId
string required

Идентификатор типа обращения

Example:
1720920299
needFeedback
boolean required

Признак, что нужна обратная связь

message
string required

Текст сообщения

orderNumber
string

Номер заказа

Example:
57007-218389
shopNumber
string

Номер магазина

Example:
5231
toCCDirector
boolean required

Признак, что необходимо отправить руководителю КЦ

Responses

400 AppealResponse

AppealResponse

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

400 ErrorEmailValidation

Бизнес-ошибка валидации email со стороны гейта

Удалено v3 Создать обращение
POST /v3/appeal

Responses

400 default

default response

Получить темы и тематики обращения
GET /appeal/thematics

Responses

400 AppealThematicListResponse

AppealThematicListResponse

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

Получить историю покупок
GET /appeal/order-history

Responses

400 AppealOrderHistoryResponse

AppealOrderHistoryResponse

История бонусных операций
GET /bonus/history

Request parameters

dateBegin
DateOnly required

Дата начала периода. Она должна быть раньше даты конца

dateEnd
DateOnly required

Дата окончания периода. Она должна быть позже (ближе к текущему дню) даты конца

filterId
string optional

Фильтр по семейным и личным бонусам. Если не передан, то возвращаются все транзации

Enumeration:
PERSONAL
FAMILY_WITHOUT_PERSONAL

Responses

400 BonusHistoryResponse

BonusHistoryResponse

Краткая информация о бонусной программе
GET /v2/bonus/shortInfo

Информация о текущем статусе в клубной программе и текуший баланс бонусов с детализацией по типам и датой сгорания.

Объект в основном формируется из http://rest-app.usergatetst.marathon.mesos.sportmaster.ru/swagger-ui/index.html?url=/v3/api/openapi.yml#/ClubPro/checkBalance

Документация: https://confluence.app.local/pages/viewpage.action?pageId=494231924

Responses

400 BonusShortInfoResponse

BonusShortInfoResponse

400 UnauthorizedError

Ошибка, возвращаемая в случае невалидности (истечения срока жизни токена) Access Token.

Данные о прогрессе в бонусной программе
GET /bonus/progress

Данные о текущем уровне, сколько до следующего уровня, сумма общих покупок и т.п. Запрос строится на http://rest-app.usergatetst.marathon.mesos.sportmaster.ru/swagger-ui/index.html?url=/v3/api/openapi.yml#/ClubPro/getCP

Документация: https://confluence.app.local/pages/viewpage.action?pageId=494231942

Responses

400 BonusProgressResponse

BonusProgressResponse

Активировать бонусную акцию
POST /bonus/activateBonuses

Request parameters

accrualCode
string required

Код активации

Responses

400 EmptyResponse

Пустой ответ сервера

Детализация бонусов по типу
GET /bonus/detailsByType

Информация о сроках начисления и сгорания бонусов, распределённая по типам «Кешбэк» и «Промо»

Объект формируется из http://rest-app.usergate-uat-ru.k8s-dev.gksm.local/swagger-ui/index.html?url=/v3/api/openapi.yml#/ClubPro/getBonusDetailsForPeriod

Документация: https://confluence.app.local/pages/viewpage.action?pageId=816375704

Request parameters

dateBegin
DateOnly required

Дата начала периода

dateEnd
DateOnly required

Дата окончания периода

Responses

400 BonusDetailsByTypeResponse

BonusDetailsByTypeResponse

Условия бонусных акций
GET /bonus/details

Детальная информация про условия бонусов: на что можно потратить, кол-во бонусов, дата сгорания, где можно списать

Объект формируется из http://rest-app.usergate-uat-ru.k8s-dev.gksm.local/swagger-ui/index.html?url=/v3/api/openapi.yml#/ClubPro/getBonusDetailsForPeriod

Документация: https://confluence.app.local/pages/viewpage.action?pageId=936085430

Request parameters

dateBegin
DateOnly required

Дата начала периода

dateEnd
DateOnly required

Дата окончания периода

Responses

400 BonusDetailsResponse

BonusDetailsResponse

DEP Детализация бонусов по дням
GET /bonus/detailsByDay

DEPRECATED: версия 4.51

Сколько бонусов будет в какой день.

Построено на http://rest-app.usergatetst.marathon.mesos.sportmaster.ru/swagger-ui/index.html?url=/v3/api/openapi.yml#/ClubPro/getBonusDetailsForPeriod.

БЭ должен самостоятельно сделать разбивку по дням. Для всех рассчетов нам нужны поля:

  • summa - сколько бонусов осталось по этому начислению. Если тут 0, то считается, что данная ячейка бонусов полностью израсходована.
  • dateBegin - дата, скоторой эти бонусы есть, начислены
  • dateEnd - дата, когда эти бонусы сгорят.

Алгоритм примерно такой - берем период и считаем, что в каждом дне этого периода есть summa бонусов. И таким образом складываем по всем айтемам из ответа суммы по дням и получаем ответ, который нужен мобильному приложению.

Задавал такой вопрос:

если запрошу бонусы за 25-27 мая, то в ответе мне придет сущность, которая была начислена 1 мая, а сгорит 30 мая? Ответ: придет

Для истории:

  • amount - количество начисленных бонусов
  • summa - количество бонусов, которые еще не потратили

Документация: https://confluence.app.local/pages/viewpage.action?pageId=494231917

Request parameters

dateBegin
Date required

Дата начала периода

dateEnd
Date required

Дата окончания периода

Responses

400 [DEP] BonusDetailsResponse

[DEP] BonusDetailsResponse

DEP Получить доступные к активации бонусы
GET /bonus/getAvailableBonusForActivation

DEPRECATED с версии 4.63

Документация: https://confluence.app.local/pages/viewpage.action?pageId=621825173

Responses

400 [DEP] BonusCouponsResponse

Массив бонусных акций

Данные об уровне программы и QRкоде
GET /v1/bonus/qr-info

Responses

400 BonusQRInfoResponse

BonusQRInfoResponse

Получить адреса получения геозоны
GET /v1/profile/receivingAddresses

Документация: https://confluence.app.local/pages/viewpage.action?pageId=736400274

Метод получения списка сохраненных адресов доставки пользователя В зависимости от фича тоггла геозон возвращает адреса доставки по 2 структурам: для города (deviveryAddress) и геозон (receivingAddress)

Responses

400 DeliveryAddressesResponse

DeliveryAddressesResponse

400 ErrorAnonymUser

ErrorAnonymUser

Изменить адрес доставки
PUT /profile/deliveryAddresses/{deliveryAddressId}

Документация: https://confluence.app.local/pages/viewpage.action?pageId=621821089

Метод изменения адреса в списке сохраненных адресов доставки пользователя

В Request body передается один из двух объектов (deliveryAddressInfo или receivingAddressInfo) в зависимости от фича тоггла геозон

Path variables

deliveryAddressId
string required

Идентификатор адреса

Request body

application/json
Object
deliveryAddressInfo
receivingAddressInfo

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorMetroIdIsNotValid

ErrorMetroIdIsNotValid

Удалить адрес доставки
DELETE /profile/deliveryAddresses/{deliveryAddressId}

Документация: https://confluence.app.local/pages/viewpage.action?pageId=621821070

Метод удаления адреса из списка сохраненных адресов доставки пользователя

Path variables

deliveryAddressId
string required

Идентификатор адреса

Responses

400 EmptyResponse

Пустой ответ сервера

Добавить адрес доставки
POST /profile/deliveryAddresses

Документация: https://confluence.app.local/pages/viewpage.action?pageId=621821084

Метод добавление адреса в список сохраненных адресов доставки пользователя

В Request body передается один из двух объектов (deliveryAddressInfo или receivingAddressInfo) в зависимости от фича тоггла геозон

Request body

application/json
Object
deliveryAddressInfo
receivingAddressInfo

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorMetroIdIsNotValid

ErrorMetroIdIsNotValid

400 ErrorAnonymUser

ErrorAnonymUser

400 ErrorAddressAlreadyExists

Ошибка, если в профиле уже есть такой адрес доставки. Независимо есть или нет геозоны

DEP Получить адреса доставки НП
GET /v1/profile/deliveryAddresses

Документация: https://confluence.app.local/pages/viewpage.action?pageId=621820860

Метод получения списка сохраненных адресов доставки пользователя. Может отдавать адреса под конкретный город

Request parameters

territoryId
string optional

id населенного пункта для фильтрации (используется для корзины)

Responses

400 DeliveryAddressesResponse

DeliveryAddressesResponse

400 ErrorAnonymUser

ErrorAnonymUser

Отметить уведомление как прочитанное
POST /notifications/markMessages

Request body

application/json
Object
communicationCode
string

Код коммуникации. Если параметр не передавать, то все сообщения в профиле будут помечены как прочитанные. Поскольку коммуникации помечаются как прочитанные только при клике (нет массового выбора), то отправляем параметр по одному (не массив)

Responses

400 EmptyResponse

Пустой ответ сервера

DEP Получить вкладки уведомлений
GET /notifications/tabs

DEPRECATED, можно удалить, когда будет выпилен ФТ newMessageCenterEnabled

Метод для получения вкладок в шапке Центра уведомлений. В данный момент получаем список из нашего БД, в дальнейшем будем получать от гейта

Документация https://confluence.app.local/pages/viewpage.action?pageId=552914211

Responses

400 [DEP] NotificationTabsResponse

DEPRECATED, можно удалить, когда будет выпилен ФТ newMessageCenterEnabled

Получить уведомления
GET /v2/notifications/getMessages

Request parameters

offset
integer optional
limit
integer optional
slot
string optional

Раздел, по которому запрашиваются уведомления

Example:
"message_center_order_status"

Responses

400 GetMessagesResponse

GetMessagesResponse

Проверка наличия непрочитанных сообщений
GET /notifications/hasUnreadMessages

Responses

400 HasUnreadMessagesResponse

HasUnreadMessagesResponse

Получить разделы с уведомлениями
GET /v1/notifications/sections

Метод возвращает список разделов для Центра уведомлений.

Документация https://confluence.app.local/pages/viewpage.action?pageId=1031245085

Responses

400 NotificationsSectionsResponse

NotificationsSectionsResponse

Получить информацию о статусе тренера
GET /cardPro/trainerInfo

Responses

400 TrainerInfoResponse

TrainerInfoResponse

Получить список спортсменов тренера
GET /cardPro/sportsmanList

Responses

400 SportsmanListResponse

SportsmanListResponse

Отправить спортсменам приглашение
POST /cardPro/inviteSportsman

Request body

application/json
Object
sportsmanInvitationList
Array of SportsmanInvitation required

Данные спортсменов для отправки приглашения

Responses

400 SportsmanInvitationResponse

SportsmanInvitationResponse

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

Удалить связь спортсмена с тренером
DELETE /cardPro/deleteSportsman

Request body

application/json
Object
phone
string required

Телефон спортсмена

Example:
79000000000
invitationCode
string required

Код приглашения

Example:
100000000216263150

Responses

400 EmptyResponse

Пустой ответ сервера

Валидация кода приглашения
POST /v1/cardPro/sportsman-invitation/validate

Request body

application/json
Object
invitationCode
string

Код приглашения Спортсмена

Responses

400 ValidateResponse

ValidateResponse

Отправить документы тренера на верификацию
POST /v1/cardPro/trainer/docs/verify

Документация - https://confluence.app.local/pages/viewpage.action?pageId=881133329

По методу отправляется docUrl + vrowid или registryLink, не может быть оба варианта

Request body

application/json
Object
docUrl
string

Единая ссылка на документы тренера из МИР

Example:
https://mir-cd-uat.web.local/ea/faces/index?t oken=1EFB1C984511C286B2452598E097EA4DA2EF80B916A24909F39BA91E8F CEF5536D0E2CF7790C8A4A1A34C148971A8060FF8B45BC43347A960DB456366C76C99B
vrowid
string

Идентификатор загруженных документов

Example:
1484681
registryLink
string

Ссылка на реестр тренеров

Example:
https://www.mos.ru/coachregister/Home/Search?specializationIds=3

Responses

400 EmptyResponse

Пустой ответ сервера

Отправить документы тренера в МИР
POST /v1/cardPro/trainer/docs/upload

Request body

application/json
Object
trainerFiles
Array of TrainerFile required

Массив загружаемых документов тренера

Responses

400 UploadMirResponse

UploadMirResponse

Получить вид спорта тренера
GET /cardPro/trainer/sportKind

Responses

400 TrainerSportKindResponse

TrainerSportKindResponse

Зарегистрировать индивидуального спортсмена
POST /v1/cardPro/individual-sportsman

Request body

application/json
Object
sportKind
string required

Идентификатор вида спорта

advertisingAgreement
boolean

Согласие пользователя на рекламу

address
Address required

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorNotAvailableForEmployee

Возвращается, когда пользователь является сотрудником и пытается зарегистрироваться в КП как индивидуальный спортсмен

400 ErrorNotAvailableForFamilyMember

Возвращается, когда пользователь входит в семью и пытается зарегистрироваться в КП как индивидуальный спортсмен

400 ErrorNotAvailableForIndividualSportsman

Возвращается, когда пользователь является индивидуальным спортсменом и пытается зарегистрироваться в КП как индивидуальный спортсмен

400 ErrorNotAvailableForSportsman

Возвращается, когда пользователь является тренерским спортсменом и пытается зарегистрироваться в КП как индивидуальный спортсмен

400 ErrorNotAvailableForTrainer

Возвращается, когда пользователь является тренером и пытается зарегистрироваться в КП как индивидуальный спортсмен

Отправить анкету тренера
POST /v1/cardPro/trainer

Request body

application/json
Object
form
TrainerForm required
document
sportKind
string required

Идентификатор вида спорта

agreeToSubscriptions
boolean

Согласие пользователя на рассылку

Responses

400 EmptyResponse

Пустой ответ сервера

Получить индивидуальные виды спорта
GET /v1/cardPro/individual-sport-kinds

Responses

400 SportKindsResponse

SportKindsResponse

Получить виды спорта
GET /v1/cardPro/sport-kinds

Responses

400 SportKindsResponse

SportKindsResponse

Получить информацию о спортсмене
GET /v1/cardPro/sportsman-info

Responses

400 SportsmanInfoResponse

SportsmanInfoResponse

Получить статусы подписок
GET /profile/subscriptions

Responses

400 SubscriptionsResponse

SubscriptionsResponse

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

Изменить статус подписки
POST /profile/subscriptions

Request body

application/json
Object
subscriptions
Array of Subscription required

Responses

400 SubscriptionResponse

SubscriptionResponse

Расшифровать короткую ссылку
POST /v1/workingWithLinks/openShortLink

Request body

application/json
Object
shortLinkParameter
string required

Параметры короткой ссылки

Example:
/-TRC4

Responses

400 FullLinkResponse

FullLinkResponse

400 ErrorLinkIsInvalid

Ссылка невалидна

v2 Получить данные для старта чата
POST /v2/chat/widgetProps

Request body

application/json
Object
page
Object required

Информация о странице

type
string required

Тип страницы МП

Example:
Orders
location
string

URL страницы (диплинк)

Example:
sportmaster://order/2908123-990212

Responses

400 ChatWidgetPropsResponse

ChatWidgetPropsResponse

DEP v1 Получить данные для старта чата
GET /v1/chat/widgetProps

Responses

400 ChatWidgetPropsResponse

ChatWidgetPropsResponse

Получить количество непрочитанных сообщений чата
GET /v1/chat/newMessages

Responses

400 NewChatMessagesResponse

NewChatMessagesResponse

Отправить событие неактивности чата
POST /v1/chat/device-events

Request body

application/json
Object
deviceEvent
string required

Мнемокод события неактивности чата

Enumeration:
BACK_BUTTON
HIDE_APP

Responses

400 EmptyResponse

Пустой ответ сервера

Получить последнее сообщение чата
GET /v1/chat/lastMessage

Responses

400 LastChatMessageResponse

LastChatMessageResponse

Получить выбранный ЛВС
GET /v1/favourite-sport-kind

Responses

400 SportKindResponse

SportKindResponse

400 ErrorAnonymUser

ErrorAnonymUser

400 ErrorSelectSportIsNotAvailable

Ошибка, если сегодня последний месяц и Пользователь еще не выбирал вид спорта (выбрать уже нельзя)

Выбрать любимый вид спорта
PUT /v1/favourite-sport-kinds/{sportKindId}/_select

Path variables

sportKindId
string required

id выбранного вида спорта

Responses

400 EmptyResponse

Пустой ответ сервера

Получить список ЛВС
GET /v1/favourite-sport-kinds

Responses

400 SportKindListResponse

SportKindListResponse

Получить контент по ЛВС
GET /v1/favourite-sport-kind/publication

Responses

400 PublicationSportKindResponse

PublicationSportKindResponse

Конвертировать бонусы
POST /v1/rewards/_convert-bonuses

Метод конвертации бонусов на баллы

Документация: https://confluence.app.local/pages/viewpage.action?pageId=651520373

Request body

application/json
Object
bonusAmount
number required

Бонусы

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorAnonymUser

ErrorAnonymUser

Активировать вознаграждение
POST /v1/rewards/{rewardCode}

Метод активации вознаграждения за баллы

Документация: https://confluence.app.local/pages/viewpage.action?pageId=651520374

Path variables

rewardCode
string required

Код вознаграждения

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorRewardActivation

ErrorRewardActivation

400 ErrorAnonymUser

ErrorAnonymUser

400 ErrorRewardAlreadyActivated

ErrorRewardAlreadyActivated

400 ErrorRewardNotEnoughPoints

ErrorRewardNotEnoughPoints

Получить данные о вознаграждениях
POST /v1/rewards

Метод получения данных о вознаграждениях для экрана “Нематериальные вознаграждения”

Документация: https://confluence.app.local/pages/viewpage.action?pageId=651516818

Responses

400 RewardsResponse

RewardsResponse

400 ErrorUserType

ErrorUserType

400 ErrorAnonymUser

ErrorAnonymUser

Получить интересы
GET /profile/client-interests

Responses

400 ClientInterestsResponse

ClientInterestsResponse

Отправить интересы
POST /profile/client-interests

Request body

application/json
Object
styles
Array of interest-style

Выбранные пользователем стили

forWhomShopping
Array of string

Для кого покупают

Example:
10190299
sportInterests
Array of string

Выбранные виды спорта

Example:
10040299
gender
string

Выбранный пол

Example:
MALE

Responses

400 EmptyResponse

Пустой ответ сервера

Получить контент для Пригласи друга
GET /v1/referral-program/document

Responses

400 ReferralProgramResponse

ReferralProgramResponse

Список персональных скидок
POST /v1/personal-discount

Responses

400 PersonalDiscountsResponse

PersonalDiscountsResponse

400 ErrorAnonymUser

ErrorAnonymUser

ID персональных скидок
GET /v1/personal-discount/base

Возвращает ID групп персональных скидок для локального сохранения на фронте

Документация: https://confluence.app.local/pages/viewpage.action?pageId=734868490

Responses

400 PersonalDiscountsBaseResponse

PersonalDiscountsBaseResponse

400 ErrorAnonymUser

ErrorAnonymUser

Активация скидки
POST /v1/personal-discount/_activation

Request body

application/json
Object
discountCode
string required

Код скидки

Responses

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

400 PersonalDiscountActivationResponse

PersonalDiscountActivationResponse

Проверка возможности создания скидки
GET /v1/personal-discount/{scriptCode}/status

Path variables

scriptCode
string required

Responses

400 PersonalDiscountStatusResponse

PersonalDiscountStatusResponse

400 ErrorCheckingDiscount

ErrorCheckingDiscount

Запрос на создание скидки
POST /v1/personal-discount/task

Request body

application/json
Object
scriptCode
string required

Код сценария

Responses

400 PersonalDiscountTaskResponse

PersonalDiscountTaskResponse

Получение созданной скидки
GET /v1/personal-discount/{discountCreationTaskId}

Path variables

discountCreationTaskId
string required

Responses

400 ErrorAnonymUser

ErrorAnonymUser

400 PersonalDiscountsResponse

PersonalDiscountsResponse

Получить информацию о семье
GET /v1/profile/family

Responses

400 FamilyResponse

FamilyResponse

400 ErrorAnonymUser

ErrorAnonymUser

Получить часто задаваемые вопросы для семейного счёта
GET /v1/profile/family/questions

Responses

400 FamilyQuestionsResponse

FamilyQuestionsResponse

400 ErrorAnonymUser

ErrorAnonymUser

Отправить приглашение в семью
POST /v1/profile/family/_invite

Документация: https://confluence.app.local/pages/viewpage.action?pageId=831770260 Если не указано значение “familyId”, то будет попытка создания новой семьи. И добавления участника в неё.

Request body

application/json
Object
familyId
string

Идентификатор семьи

memberPhone
string required

Телефон приглашённого участника

Example:
79999999999
memberName
string

Имя приглашённого участника

Example:
Матушка

Responses

400 InviteFamilyMemberResponse

InviteFamilyMemberResponse

400 ErrorAnonymUser

ErrorAnonymUser

400 ErrorAnotherBonusProgram

ErrorAnotherBonusProgram

400 ErrorFamilyIsExists

ErrorFamilyIsExists

400 ErrorLimitFamilyInvitationsExceeded

Ошибка при превышении лимита на отправку приглашений в семейный аккаунт

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

Ответить на приглашение в семью
POST /v1/profile/family/{familyId}/_answer

Path variables

familyId
string required

Идентификатор семьи

Request body

application/json
Object
answer
boolean required

Ответ на приглашение

Example:
false

Responses

400 FamilyResponse

FamilyResponse

400 ErrorAnonymUser

ErrorAnonymUser

400 ErrorLimitFamilyJoinsExceeded

Ошибка при превышении лимита на вступления в семейный счёт у пользователя

Изменить имя участника семейного счёта
PUT /v1/profile/family/{familyId}/members/{memberId}

Документация: https://confluence.app.local/pages/viewpage.action?pageId=1101336101 Метод может вызывать только владелец сем. счёта, чтобы изменить имя для приглашённых и уже действующих участников семьи.

Path variables

familyId
string required

Идентификатор семьи

memberId
string required

Идентификатор участника семьи

Request body

application/json
Object
name
string required

Новое имя участника семейного счёта

Responses

400 FamilyResponse

FamilyResponse

400 ErrorAnonymUser

ErrorAnonymUser

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

Удалить участника семейного счёта
DELETE /v1/profile/family/{familyId}/members/{memberId}

Документация: https://confluence.app.local/pages/viewpage.action?pageId=831770264 Методом можно удалить либо участника, либо приглашённого пользователя. На текущий момент удалить владельца сем. счёта этим методом нельзя.

Path variables

familyId
string required

Идентификатор семьи

memberId
string required

Идентификатор участника семьи

Responses

400 FamilyResponse

FamilyResponse

400 ErrorAnonymUser

ErrorAnonymUser

Удалить семейный счёт
DELETE /v1/profile/family/{familyId}

Документация: https://confluence.app.local/pages/viewpage.action?pageId=831770267 Методом может воспользоваться только владелец семейного счёта

Path variables

familyId
string required

Идентификатор семьи

Responses

400 FamilyResponse

FamilyResponse

400 ErrorAnonymUser

ErrorAnonymUser

Получить секции экрана акций
GET /v1/profile/benefits

Responses

400 BenefitsResponse

BenefitsResponse

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

v2 Список магазинов
GET /v2/shop

Вернуть все магазины города. Документация: https://confluence.app.local/pages/viewpage.action?pageId=427391093

Responses

400 ShopsResponse

ShopsResponse

400 UnauthorizedError

Ошибка, возвращаемая в случае невалидности (истечения срока жизни токена) Access Token.

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

v3 Список магазинов
POST /v3/shop

Вернуть все магазины города.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=721566306

Request body

application/json
Object
filterId
string

Идентификатор фильтра. Если не передан, то возвращаюстся все магазины

Example:
"INSTORE"

Responses

400 ShopsResponse2

ShopsResponse2

400 UnauthorizedError

Ошибка, возвращаемая в случае невалидности (истечения срока жизни токена) Access Token.

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

v2 Поиск магазинов по номерам
POST /v2/shop/search

Request body

application/json
Object
shopNumbers
Array of string required

Идентификаторы запрашиваемых магазинов

Responses

400 ShopsResponse2

ShopsResponse2

400 ErrorShopNotFound

ErrorShopNotFound

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

Детальная информация о магазине
GET /v2/shop/{shopNumber}

Path variables

shopNumber
string required

Responses

400 ShopResponse

ShopResponse

Избранные магазины
GET /v2/shop/favourite

избранное - юзергейт GET-FAVORITE-SHOPS-LIST сами магазины - см запрос “Список магазинов” в спеке

У анонима нет избранных магазинов

Документация: https://confluence.app.local/pages/viewpage.action?pageId=427391108

Responses

400 FavouriteShopsResponse

FavouriteShopsResponse

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

Номера избранных магазинов
GET /shop/favouriteNumbers

Только номера избранных магазинов. юзергейт GET-FAVORITE-SHOPS-LIST

Документация: https://confluence.app.local/pages/viewpage.action?pageId=427391111

Responses

400 FavouriteShopNumbersResponse

FavouriteShopNumbersResponse

Поместить магазин в избранное
POST /shop/favourite/{shopNumber}

Делается через UserGate.

Если запрос дергается анонимом, то должна быть ошибка с примерным текстом - “Авторизуйтесь, чтобы добавить магазин в избранное”

Документация: https://confluence.app.local/pages/viewpage.action?pageId=427391150

Path variables

shopNumber
string required

Responses

400 EmptyResponse

Пустой ответ сервера

Удалить магазин из избранного
DELETE /shop/favourite/{shopNumber}

Делается через UserGate

Документация: https://confluence.app.local/pages/viewpage.action?pageId=427391153

Path variables

shopNumber
string required

Responses

400 EmptyResponse

Пустой ответ сервера

Получить признак Я в магазине
GET /v1/in-store/profile-tag

Метод получения признака “Я в магазине” с профиля

Документация: https://confluence.app.local/pages/viewpage.action?pageId=891605675

Responses

400 InStoreShopInfoResponse

InStoreShopInfoResponse

400 ErrorAnonymUser

ErrorAnonymUser

Установить признак Я в магазине
POST /v1/in-store/profile-tag

Метод установки признака “Я в магазине” на профиль

Документация: https://confluence.app.local/pages/viewpage.action?pageId=891604456

Request body

application/json
Object
shopNumber
string required

Номер магазина

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorAnonymUser

ErrorAnonymUser

400 ErrorMethodIsDisabled

ErrorMethodIsDisabled

Удалить признак Я в магазине
DELETE /v1/in-store/profile-tag

Метод удаления признака “Я в магазине” с профиля

Документация: https://confluence.app.local/pages/viewpage.action?pageId=891604458

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorAnonymUser

ErrorAnonymUser

Определить магазин пользователя
GET /v1/in-store/user-shop

Метод определение магазина, в котором находится пользователь. Используется определение ближайшего магазина по координатам пользователя и минимального расстояния, которое считается что пользователь находится в магазине

Документация: https://confluence.app.local/pages/viewpage.action?pageId=891614938

Request parameters

lat
number required
lon
number required

Responses

400 InStoreShopInfoResponse

InStoreShopInfoResponse

Получить меню Я в магазине
GET /v1/in-store/menu

Метод получения меню раздела “Я в магазине”

Документация: https://confluence.app.local/pages/viewpage.action?pageId=891604560

Responses

400 InStoreMenuResponse

InStoreMenuResponse

Получить меню каталога
GET /catalog/menu

Authentication

Access token

Наши слоты в CMSGate:

Старое меню

  • frontoffice_menu_sections
  • frontoffice_menu_catalog

Новое меню

  • mobile_app_catalog_main_menu
  • mobile_app_catalog_header_menu

Бэк забирает данные либо по первой паре, либо по второй

Документация: https://confluence.app.local/pages/viewpage.action?pageId=427390791

Responses

400 CatalogMenuResponse

CatalogMenuResponse

Дочерние категории
POST /v2/catalog/categories/subcategories

Request body

application/json
Object
categoryUri
string required

Путь на родительский ресурс

Example:
brand/nike

Responses

400 SubcategoriesResponse

SubcategoriesResponse

Виды спорта
POST /v3/catalog/categories/sports

Responses

400 SubcategoriesResponse

SubcategoriesResponse

Бренды
POST /v2/catalog/brands

Responses

400 BrandsResponse

BrandsResponse

Получить рекламный баннер
POST /v1/banners/adBanners

Request body

application/json
Object
contextId
string

Экран, для которого вызываем рекламу

categoryId
string

ID категории (только для листинга, при наличии)

Responses

400 AdBannerResponse

AdBannerResponse

Популярные бренды
GET /catalog/brands/top

Бекенд разработчикам

curl -X 'GET' \
  'http://www.cmsgateuat.marathon.mesos.sportmaster.ru/api/v1/registry/mobile_app_brandspage_registry?site=sm&front=mobile_app&consumer=sm_mobileapp_ecom_ios_ru&locale=ru-RU&absRefs=false&stag=false' \
  -H 'accept: application/json'

Нам нужно изображение с “imageLabel” = “mobile_app_brandspage”

Документация: https://confluence.app.local/pages/viewpage.action?pageId=427390914

Responses

400 BrandsResponse

BrandsResponse

Популярные виды спорта
GET /catalog/categories/sports/top

Responses

400 PopularSportsResponse

PopularSportsResponse

Получить баннеры каталога
GET /v1/catalog/banners

Метод для получения баннеров в модуле каталог

Документация: https://confluence.app.local/pages/viewpage.action?pageId=809487515

Request parameters

slot
string required

Слот баннеров

url
string optional

ссылка на экран или ссылка баннера

Responses

400 CatalogBannersResponse

Баннеры в модуле каталог

400 ErrorBannerNotFound

Баннер не найден.

Получить контентную страницу
POST /v1/products/clp

Request body

application/json
Object
url
string required

Ссылка для CLP

Responses

400 ContentPageResponse

ContentPageResponse

Получить фотографии покупателей
GET /products/{productId}/reviews/photos

Получить фотографии из отзывов покупателей по товару с указанным id

Документация: https://confluence.app.local/pages/viewpage.action?pageId=434108699

Path variables

productId
string required

Responses

400 UserPhotosResponse

UserPhotosResponse

История просмотров товаров
POST /v2/products/recent

Request body

application/json
Object
persGateTags

Responses

400 RecentProductsResponse

RecentProductsResponse

Список товаров
POST /v2/products/search

Request parameters

limit
integer optional
offset
integer optional

Request body

application/json
Object
subquery
string

Параметры фильтрации

queryText
string

Текстовый поиск

persGateTags
woQueryTextCorrection
boolean

Флаг исправления полнотекстового запроса (поиск)

userInteraction
boolean

Флаг взаимодествия пользователя с листингом

facetAvailabilityApply
boolean

Флаг применения в запросе фильтров по способу получения

pageType
string

Тип страницы каталога

Responses

400 ProductsResponse

ProductsResponse

Подсказки поиска
POST /v2/products/search/autocomplete

Request body

application/json
Object
queryString
string required

Текст по которому будем искать подсказки

persGateTags

Responses

400 SearchAutocompleteResponse

SearchAutocompleteResponse

Поиск товаров по фото
POST /products/search/photo

Бекенд разработчикам

Поиск по фото делаем через староний сервис

curl https://visearch.visenze.com/uploadsearch \
       -F image=@example.png \
       -u 6d5864c1c91003b163cae1bdbd70d001:0f21f743e1e154386833126b0f2ef5de

Обрати внимание: запрос пагинируемый!

В ответе возвращаются results, содержащий массив id товаров. Для полученных id ищем данные о товарах в продукт гейте, запросом http://product-gate.productgatesmuat.marathon.mesos.sportmaster.ru/swagger-ui/index.html?url=../productGateApi.json#/Товары/getProductsFlexible

Обрати внимание: нужно фильтровать товары по доступности в городе, т.к. visenze не привязан к городу

Ответ фронту: не должен содержать мету, hasMore - всегда false (запрос с фронта не пагинируемый)

Документация: https://confluence.app.local/pages/viewpage.action?pageId=430745221

Request body

multipart/form-data
string binary

Responses

400 ProductsResponse

ProductsResponse

Рекомендации товара
POST /v3/products/recs

Если на экране несколько рекоблоков, то они должны загружаться одним запросом, в котором будут переданы все слоты с экрана (требования сервиса рекомендаций для расчета рекомендаций исходя из всех слотов на экране)

Запрос возвращает айдишники товаров, модели товаров ищем запросом [Product гейт] POST /products/_search-by-ids-flex

Документация: https://confluence.app.local/pages/viewpage.action?pageId=434079231

Request body

application/json
Object
slots
Array of RecommendationSlot required
productIds
Array of string

Массив идентификаторов товаров, для которых ищем рекомендации

Max items: 120
queryText
string

Текст поискового запроса. Для рекомендаций поиска

pageType
string

Тип страницы. Справочник http://mdm.app.local/MDM.aspx?entities=gt_frontend_pages

contextId
string

Идентификатор допустимого контекста для слотов рекомендации

Example:
ID ветки каталога, раздела меню, страницы ContentGate, товара
persGateTags

Responses

400 RecommendationProductsResponse

RecommendationProductsResponse

400 InvalidSlotsError

InvalidSlotsError

Индивидуальные рекомендации по товарам
POST /v1/products/individualRecs

Request body

application/json
Object
productIds
Array of string

Массив идентификаторов товаров, для которых ищем рекомендации

Max items: 120
pageType
string

Тип страницы. Справочник http://mdm.app.local/MDM.aspx?entities=gt_frontend_pages

persGateTags

Responses

400 RecommendationResponse

RecommendationResponse

400 InvalidSlotsError

InvalidSlotsError

v2 Бесконечная подборка рекомендаций
POST /v2/products/infiniteRecs

Request parameters

limit
integer optional

Количество товаров, загружаемых запросом

offset
integer optional

Количество загруженных(отображенных) элементов на клиенте

Request body

application/json
Object
slot
productIds
Array of string

Массив идентификаторов товаров, для которых ищем рекомендации

Max items: 120
queryText
string

Текст поискового запроса. Для рекомендаций поиска

pageType
string

Тип страницы. Справочник http://mdm.app.local/MDM.aspx?entities=gt_frontend_pages

contextId
string

Идентификатор допустимого контекста для слотов рекомендации

Example:
ID ветки каталога, раздела меню, страницы ContentGate, товара

Responses

400 InfiniteRecommendationProductsResponse

InfiniteRecommendationProductsResponse

DEP v1 Бесконечная подборка рекомендаций
POST /v1/products/infiniteRecs

DEPRECATED с версии 4.56

Документация: https://confluence.app.local/pages/viewpage.action?pageId=531660851

Request parameters

limit
integer optional

Количество товаров, загружаемых запросом

offset
integer optional

Количество загруженных(отображенных) элементов на клиенте

Request body

application/json
Object
slot
productId
string

Идентификатор товара, для которого ищем рекомендации

Example:
21555930299
pageType
string

Тип страницы. Справочник http://mdm.app.local/MDM.aspx?entities=gt_frontend_pages

contextId
string

Идентификатор допустимого контекста для слотов рекомендации

Example:
ID ветки каталога, раздела меню, страницы ContentGate, товара
persGateTags

Responses

400 InfiniteRecommendationProductsResponse

InfiniteRecommendationProductsResponse

Детали товара
POST /v2/products/{productId}

Path variables

productId
string required

Request body

application/json
Object
persGateTags

Responses

400 ProductColorModelResponse

ProductColorModelResponse

400 ProductColorModelIsNotApproved

Ошибка, которую необходимо вернуть в случае, если гейт не нашел товар и вернул пустой ответ

Персональная цена
POST /v2/products/{productId}/personalPrice

Path variables

productId
string required

Responses

400 PersonalPriceResponse

PersonalPriceResponse

DEP Персональная цена для списка
POST /v1/products/_personal-price-list

Документация: https://confluence.app.local/pages/viewpage.action?pageId=885886628

Метод получения персональной цены для списка товаров. Корзина пользователя в расчете не учитывается

Request body

application/json
Object
productIds
Array of string required

id товаров

Responses

400 PersonalPriceListResponse

PersonalPriceListResponse

Поиск товаров по id
POST /products/search-ids

Request body

application/json
Object
ids
Array of string required
persGateTags
onlyOnlineAvailable
boolean

Исключить ли товары, все sku которых имеют isOnlineAvailable == FALSE

calculatePersonalPrice
boolean

Рассчитать ли для товаров персональную цену

Responses

400 ProductsByIdResponse

ProductsByIdResponse

Таблица размеров товара
POST /v2/products/{productId}/sizeTable

Path variables

productId
string required

Responses

400 ProductSizeTableResponse

ProductSizeTableResponse

400 ProductSizeTableError

Ошибка, которую необходимо возвращать, если у запрашиваемой цветомодели отсутствует размерная сетка в формте HTML таблицы.

Получить комплекты товара
POST /v2/products/{productId}/productSet

Path variables

productId
string required

ИД товара

Responses

400 ProductSetsResponse

ProductSetsResponse

Получить комплект
POST /v1/products/productSet

Request body

application/json
Object
productList
Array required

Товары в комплекте

Object
productId
string required

ИД товара

Responses

400 ProductSetResponse

Комплект

DRAFT Получить плашки товара
POST /v1/products/{productId}/productMarkers

Path variables

productId
string required

Responses

400 ProductMarkersResponse

ProductMarkersResponse

Получить аксессуары
POST /v1/products/{productId}/accessories

Метод получения списка товаров - аксессуаров

Документация: https://confluence.app.local/pages/viewpage.action?pageId=734886888

Path variables

productId
string required

id основного товара

Request body

application/json
Object
categoryBranchId
string

ID товарной категории для фильтрации

limit
integer

Максимальное количество товаров

Responses

400 ProductAccessoriesResponse

Аксессуары

400 DeliveryOptionError

Ошибка выбранного способа получения

Получить категории аксессуаров
POST /v1/products/{productId}/accessories/categories

Метод получения веток каталога аксессуаров

Документация: https://confluence.app.local/pages/viewpage.action?pageId=745234875

Path variables

productId
string required

id основоного товара

Request body

application/json
Object
deliveryOption

Responses

400 ProductAccessoriesCategoriesResponse

Категории аксессуаров

400 DeliveryOptionError

Ошибка выбранного способа получения

Получить данные о BNPL
POST /v1/bnpl/payment-details

Request body

application/json
Object
price
integer required

Стоимость товара. Передается одно значение, которое актуально для пользователя

bnplType
string required

Тип сервиса BNPL

Example:
BNPL_SOVCOMBANK

Responses

400 BnplDetailsResponse

BnplDetailsResponse

Получить товары по skuId
POST /v1/products/search-skuId

Request body

application/json
Object
skuIds
Array of string required

Массив skuIds

Responses

400 ProductsBySkuIdResponse

ProductsBySkuIdResponse

Отправить заявку ГЛЦ
POST /appeal/createBestPrice

Request body

application/json
Object
companyProductId
string required

Идентификатор товара

Example:
23684280299
companyPrice
integer required

Цена товара в СМ в копейках

Example:
799000
competitorProductUrl
string required

Ссылка на товар конкурента

Example:
https://www.wildberries.ru/catalog/58957382/detail.aspx?targetUrl=XS
competitorPrice
integer required

Цена на товар у конкурента в копейках

Example:
699000
clientPhone
string required

Номер телефона

Example:
79000000000

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorFieldValidationPhoneGate

Не прошла валидация телефона на гейте

DEP Общие данные об отзывах по товару
GET /reviews/summary

DEPRECATED с версии 4.75

Для BE:

Соотвествует http://product-gate.productgateusrtst.marathon.mesos.sportmaster.ru/swagger-ui/index.html?url=../productGateApi.json#/Отзывы/getReviews модели colorModel . Соотвествие не прямое, некооторые поля нужно пересчитать.

на 25 мая 2021 года не все нужные поля есть в гейте. Обещали за 2 недели доработать

Документация: https://confluence.app.local/pages/viewpage.action?pageId=494217550

Request parameters

productId
string required

Responses

400 ReviewSummaryResponse

Общие данные по отзывам о товаре

Популярный отзыв товара
GET /review/promotedReview

Для карточки товара нужен отзыв, который считается самым популряным.

Для БЭ: Гейт должен доработать и сделть такой запрос. Для справки, в шопилоте это поле - acets.most_helpful_review. Если доработок не будет, то давайте просто брать первый отзыв с сортировкой RATING_DESC.

Данные актуальны на 25 мая 2021 года

Документация: https://confluence.app.local/pages/viewpage.action?pageId=494217560

Request parameters

productId
string required

Request headers

X-Pers-Tags
array of string optional

Метки персонализации

Example:
"no_stories,no_stream,cmsgate_banners"

Responses

400 PromotedReviewResponse

PromotedReviewResponse

DEP Отзывы по товару
GET /reviews

DEPRECATED с версии 4.75

Для БЭ: Сортировки такие: http://joxi.ru/DmBqxOKHglJpDr

Документация: https://confluence.app.local/pages/viewpage.action?pageId=494217569

Aplaut на одну страницу может вернуть максимум 20, поэтому сейчас максимальный limit в запросе это 20

Request parameters

productId
string required
sortId
string optional

Берется из ответа

offset
integer optional
limit
integer optional
Max: 20

Responses

Пожаловаться на отзыв
POST /reviews/{id}/report

Path variables

id
string required

Request body

application/json
Object
reason
string

Причина жалобы просто строкой

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorUserContentIdIsEmpty

ErrorUserContentIdIsEmpty

400 ErrorUserContentIsNotFound

ErrorUserContentIsNotFound

Получить схему отзыва
GET /reviews/schema

Импользуется для получения схемы, с помощью которой создается отзыв.

От этой схемы нам нужно присылать только (в виде, уже готом для клиента. Т.е. этот запрос сразу формирует ответ под клиента)

  • rating_details
  • author_details

Все остальные параметры вшиты на клиенте.

Основано на http://product-gate.productgatesmuat.marathon.mesos.sportmaster.ru/swagger-ui/index.html?url=../productGateApi.json#/Отзывы/getReviewsSchema

Документация: https://confluence.app.local/pages/viewpage.action?pageId=494217582

Request parameters

productId
string required

Responses

400 ReviewSchemaResponse

ReviewSchemaResponse

Создать отзыв
POST /reviews/create

Request body

application/json
Object
productId
string required
rating
integer required
ratingDetails
body
string required

Текст отзыва

proc
string

Преимущества

cons
string

Недостатки

isRecommend
boolean required

Рекомендую ли я этот товар

photoIds
Array of string

Айди загруженных фотографий

authorDetails
name
string required

Имя пользователя

location
string required

Локация пользователя

hideMyData
boolean

Скрыть мои данные при публикации отзыва.

dimensions
consumerToken
string

JWT Токен

Responses

400 EmptyResponse

Пустой ответ сервера

Загрузить фото отзыва
POST /reviews/uploadPhoto

Мультипарт запрос

Документация: https://confluence.app.local/pages/viewpage.action?pageId=494217587 Данным методом загружаем фото из отзывов и фото из вопросов

Request body

multipart/form-data
Object
photo
Object required

Тип File. В спекет просто нет такого типа

Responses

400 PhotoUploadResponse

PhotoUploadResponse

DEP Загрузить фото вопроса
POST /questions/uploadPhoto

DEPRECATED с версии 4.75

Мультипарт запрос

Документация: https://confluence.app.local/pages/viewpage.action?pageId=494217589

Request body

multipart/form-data
Object
photo
Object required

Тип File. В спекет просто нет такого типа

Responses

400 PhotoUploadResponse

PhotoUploadResponse

Список вопросов к товару
GET /questions

Request parameters

productId
string required
offset
integer optional
limit
integer optional
sortingId
QuestionsSort optional

В дальнейшем берутся из ответа

Responses

400 QuestionsResponse

QuestionsResponse

Задать вопрос о товаре
POST /questions

Request body

application/json
Object
productId
string required
photoIds
Array of string
text
string required

Текст вопроса

email
string required

Имейл пользователя

name
string required

Имя пользователя

hideMyData
boolean

Скрыть мои данные

Responses

400 EmptyResponse

Пустой ответ сервера

400 400

Если не найдены имя пользователя или email, то отправляется данная ошибка с указанием отсутствующих данных

Body
application/json
Object
error
Object
message
string
code
string
Пожаловаться на вопрос
POST /questions/{id}/report

Path variables

id
string required

Request body

application/json
Object
reason
string

Причина жалобы просто строкой

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorUserContentIdIsEmpty

ErrorUserContentIdIsEmpty

400 ErrorUserContentIsNotFound

ErrorUserContentIsNotFound

Список отзывов по товару
POST /v1/reviews/list

Ссылка на документацию: https://confluence.app.local/pages/viewpage.action?pageId=1016039559

Получение информации для экрана всех отзывов

Request parameters

productId
string required

Идентификатор товара

limit
integer optional
offset
integer optional

Request body

application/json
Object
sortId
string

Идентификатор сортировки

filter
string

Параметр фильтрации

Responses

400 ReviewsListResponse

ReviewsListResponse

v3 Доступность товара
POST /v3/products/{productId}/availability

Path variables

productId
string required

Responses

400 ProductAvailabilitiesResponse

ProductAvailabilitiesResponse

DEP v2 Доступность товара
POST /v2/products/{productId}/availability

[DEP] версия 4.52

Документация: https://confluence.app.local/pages/viewpage.action?pageId=677962866

Path variables

productId
string required

Responses

400 ProductAvailabilitiesResponse

ProductAvailabilitiesResponse

v4 Доступность товара
POST /v4/products/{productId}/availability

Path variables

productId
string required

Responses

400 LightProductAvailabilityResponse

LightProductAvailabilityResponse

Доступность доставки товара
POST /v1/products/{productId}/delivery-availability

Path variables

productId
string required

Request body

application/json
Object
price
number

Цена товара. Передаем целое число, как отображаем на карточке товара, без копеек

Responses

400 ProductsDeliveryResponse

ProductsDeliveryResponse

Доступность SKU в магазинах
POST /v3/skus/{skuId}/shop-availability

Path variables

skuId
string required

Request body

application/json
Object
price
number

Цена товара. Передаем целое число, как отображаем на карточке товара, без копеек

colorModelId
string

ID ЦМ

Responses

400 SkuAvailabilityInShopResponse

SkuAvailabilityInShopResponse

Проверка доступности SKU
POST /v1/skus/_availability

Метод проверки доступности sku в определенном МСП. У МАРСа нет возможности отдавать доступность по списку размеров, поэтому бэк будет запрашивать гейт 1 размер - 1 запрос

Документация: https://confluence.app.local/pages/viewpage.action?pageId=752067262

Request body

application/json
Object
skus
Array of string required

Список размеров

deliveryType

Responses

400 SkuAvailabilityCheckResponse

SkuAvailabilityCheckResponse

400 DeliveryOptionError

Ошибка выбранного способа получения

Создание списка избранных товаров
POST /v1/favourite-lists/_create

Метод создания пользовательского списка избранных товаров

Документация: https://confluence.app.local/pages/viewpage.action?pageId=704905261

Request body

application/json
Object
favouriteListName
string required

Название списка

Min length: 1
Max length: 40

Responses

400 FavouriteListCreateResponse

FavouriteListCreateResponse

400 ErrorFavouriteListAlreadyExist

ErrorFavouriteListAlreadyExist

400 ErrorFavouriteListName

ErrorFavouriteListName

Удаление списка избранных товаров
DELETE /v1/favourite-lists/{favouriteListId}

Метод удаления пользовательского списка избранных товаров

Документация: https://confluence.app.local/pages/viewpage.action?pageId=704905281

Path variables

favouriteListId
string required

Идентификатор списка

Request parameters

deleteProducts
boolean required

Удалить ли товары списка из избранного

Responses

400 EmptyResponse

Пустой ответ сервера

Получить пользовательские списки избранных товаров
POST /v1/favourite-lists

Метод получения пользовательских (созданных пользователем) списков избранных товаров

Документация: https://confluence.app.local/pages/viewpage.action?pageId=704905499

Request body

application/json
Object
limit
integer

Количество запрашиваемых списков. Если не передано то все

Min: 1
fullInfo
boolean

Полная информация

Responses

400 FavouriteListsResponse

FavouriteListsResponse

Копировать пользовательский список избранных товаров
POST /v1/favourite-lists/_copy

Метод копирования пользовательского списка вместе с товарами

Документация: https://confluence.app.local/pages/viewpage.action?pageId=704916341

Request body

application/json
Object
favouriteListName
string required

Название создаваемого списка

Min length: 1
Max length: 40
favouriteListId
string required

Идентификатор копируемого списка

Responses

400 FavouriteListCreateResponse

FavouriteListCreateResponse

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

400 ErrorFavouriteListAlreadyExist

ErrorFavouriteListAlreadyExist

400 ErrorFavouriteListName

ErrorFavouriteListName

400 ErrorEmptyList

ErrorEmptyList

400 ErrorProductSubscription

ErrorProductSubscription

Получить избранные товары
POST /v2/products/favorite

Документация: https://confluence.app.local/pages/viewpage.action?pageId=432502413

В методе передается ИЛИ favouriteListIds ИЛИ favouriteListTypes

Request parameters

limit
integer optional
Min: 1
offset
integer optional

Request body

application/json
Object
favouriteListIds
Array of string

ID списка избранного

favouriteListTypes

Тип списка избранного

Responses

400 FavoriteProductsResponse

FavoriteProductsResponse

400 FavoriteListException

FavoriteListException

DEP Добавить товар в избранное
PUT /v2/products/favorite

DEP 4.37 07.08 - 25.08 в рамках MPSM-915

Документация: https://confluence.app.local/pages/viewpage.action?pageId=432502418

В методе передается ИЛИ favouriteListId ИЛИ favouriteListType

Request body

application/json
Object
colorModelId
string required

Идентификатор товара

Example:
1234567890
skuId
string required

Идентификатор размера

Example:
1234567890
favouriteListId
string

ID списка избранного

favouriteListType

Responses

400 EmptyResponse

Пустой ответ сервера

400 FavoriteListException

FavoriteListException

DEP Удалить товар из избранного
DELETE /v2/products/favorite

DEPRECATED 4.37 04.08 - 25.08 а рамках MPSM-915

Удаляем все позиции переданной ЦМ

Документация: https://confluence.app.local/pages/viewpage.action?pageId=432502467

Request parameters

colorModelId
string required

Идентификатор цветомодели

favouriteListId
string optional

ID списка избранного

favouriteListType

Тип списка избранного

Responses

400 EmptyResponse

Пустой ответ сервера

400 FavoriteListException

FavoriteListException

Добавить товары в избранное
PUT /v3/products/favorite

Документация: https://confluence.app.local/pages/viewpage.action?pageId=704911651

В методе передается ИЛИ favouriteListId (для пользовательского списка) ИЛИ favouriteListType (для списка избранного, листа ожидания, скоро в продаже)

Request body

application/json
Object
favouriteProductList
Array of FavouriteProductId required

Список товаров

favouriteListId
string

ID списка избранного

favouriteListType

Responses

400 FavouriteAddProductsResponse

FavouriteAddProductsResponse

400 FavoriteListException

FavoriteListException

400 ErrorFavouriteAdding

ErrorFavouriteAdding

Удалить товары из избранного
POST /v1/products/favorite/_delete

Если передан id списка, то удаляем из него, если не передан, то из всех списков

Документация: https://confluence.app.local/pages/viewpage.action?pageId=704912679

Request body

application/json
Object
favouriteProductList
Array of FavouriteProductId required

Список товаров

favouriteListId
string

ID списка избранного

Responses

400 EmptyResponse

Пустой ответ сервера

DEP Получить товары добавленные в список сравнения
GET /v1/compareList

Работает даже для неавторизованного пользователя

Документация: https://confluence.app.local/pages/viewpage.action?pageId=434082773

Responses

400 CompareListResponse

CompareListResponse

Добавить товар в список сравнения
POST /compareList/add

Request body

application/json
Object
colorModelId
string required

Айди цветомодели

Responses

400 EmptyResponse

Пустой ответ сервера

Удалить товары из списка сравнения
POST /compareList/remove

Request body

application/json
Object
colorModelIds
Array of string required

Responses

400 EmptyResponse

Пустой ответ сервера

Получить товары добавленные в список сравнения
POST /v2/compareList

Работает даже для неавторизованного пользователя

Документация: https://confluence.app.local/pages/viewpage.action?pageId=716254782

Request body

application/json
Object
getCompareTabs
boolean required

Вернуть табы сравнения или нет

Responses

400 CompareListTabResponse

CompareListTabResponse

Получить список гидов
POST /v2/guide

Request parameters

limit
integer required
offset
integer required

Responses

400 GuidesResponse

GuidesResponse

Получить гид по подбору
GET /guide/{guideId}

Path variables

guideId
string required

ID гида

Responses

400 GuideResponse

GuideResponse

Получить данные по прогрессу гида
POST /v1/guide/progress

Request body

application/json
Object
categoryBranchId
string required

ID товарной категории

Example:
12977090299
sort
string

Сортировка

Example:
BY_POPULARITY
appliedFacets
Array of Facet

Фасеты выбранных ответов

altAppliedFacets
Array of Facet

Фасеты выбранных ответов для альтернативной подборки

Responses

400 GuideProgressResponse

GuideProgressResponse

v2 Получить альтернативную подборку гида
POST /v2/guide/{guideId}/altproducts

Path variables

guideId
string required

ID гида

Request body

application/json
Object
altSubquery
string required

URL для альтернативной подборки

subquery
string required

URL для основной подборки

Responses

400 GuideAltProductsResponse

GuideAltProductsResponse

Получить категории комплектов товаров
GET /v1/kits/categories

Документация: https://confluence.app.local/pages/viewpage.action?pageId=804638681

Метод получения категорий комплектов товаров (категорий луков, lookzone) для главной страницы раздела комплектов товаров

Responses

400 ProductKitsCategoriesResponse

Категории комплектов

На текущий момент возвращается только один тип категорий - “Жизненные ситуации”

Список комплектов товаров
POST /v1/kits/_search

Метод получения списка комплектов товаров с пагинацией и фильтрацией.

Заполняется или subquery, или labelDisplay, обязательно должен быть заполнен один из них

Документация: https://confluence.app.local/pages/viewpage.action?pageId=809469037

Request parameters

limit
integer optional
offset
integer optional

Request body

application/json
Object
subquery
string

Ссылка на подвыборку с заданной фильтрацией

Example:
/lookzone/catalog/life_47
labelDisplay
string

Метка раздела отображения

Example:
mobile_app_main - главный экран

Responses

400 ProductKitListResponse

ProductKitListResponse

400 ErrorInvalidRequestParameters

ErrorInvalidRequestParameters

Получить комплекты для товара
GET /v1/products/{productId}/productKits

Метод, который возвращает доступные комплекты для заданного товара

Документация: https://confluence.app.local/pages/viewpage.action?pageId=809480095

Path variables

productId
string required

Идентификатор товара

Responses

400 ProductKitsResponse

ProductKitsResponse

Получить комплект по id
GET /v1/kits/{kitId}

Метод получения комплекта по идентификатору

Документация: https://confluence.app.local/pages/viewpage.action?pageId=809480101

Path variables

kitId
string required

Идентификатор комплекта

Responses

400 ProductKitByIdResponse

ProductKitByIdResponse

400 ErrorKitNotFound

ErrorKitNotFound

Список категорий услуг сервисного центра
GET /v1/service-center/categories

Метод возвращает список категорий сервисного центра: “Велосипеды”, “Лыжи и сноуборды” и т.д.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=866250862

Responses

400 ServiceCategoriesResponse

ServiceCategoriesResponse

Информация по категории услуг сервисного центра
POST /v1/service-center/categories/one

Метод возвращает информацию по категории услуг: описание и список подкатегорий (если есть)

Документация: https://confluence.app.local/pages/viewpage.action?pageId=866250892

Request body

application/json
Object
categoryUri
string

Ссылка на категорию

Example:
/services/velosipedy

Responses

400 ServiceCategoryDetailResponse

ServiceCategoryDetailResponse

Информация по услуге сервисного центра
GET /v1/service-center/products/{productId}

Метод возвращает информацию услуге

Документация: https://confluence.app.local/pages/viewpage.action?pageId=866250935

Path variables

productId
string required

Идентификатор услуги

Example:
6275530299

Responses

400 ServiceProductDetailResponse

ServiceProductDetailResponse

Список сервисных центров
POST /v1/service-center/centers

Метод возвращает список сервисных центров. Либо для конкретной услуги, либо для все центры в данной локации

Документация: https://confluence.app.local/pages/viewpage.action?pageId=866250941

Request body

application/json
Object
productId
string

Идентификатор сервисной услуги

Example:
6275530299

Responses

400 ServiceCentersResponse

ServiceCentersResponse

v2 Получить шапку главного экрана
POST /v2/main/header

Responses

400 MainResponse

MainResponse

DEP v1 Получить шапку главного экрана
GET /v1/main/header

DEPRECATED: версия 4.40.0 - 25.09 - 06.10

Документация: https://confluence.app.local/pages/viewpage.action?pageId=449506961

Responses

400 MainResponse

MainResponse

Получить секцию главной страницы
POST /v2/main/sections

Request body

application/json
Object
limit
integer

Количество загружаемых секций за один запрос

persGateTags

Responses

400 MainResponse

MainResponse

Получить баннер по слоту
POST /banner

Request body

application/json
Object
slot
string required

Слот баннера

Example:
"sm_hh_mobileapp_bannerBonuses"

Responses

400 BannerResponse

BannerResponse

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

400 ErrorBannerNotFound

Баннер не найден.

Получить список секций по идентификаторам
GET /services/sections

Request parameters

ids
array of string optional

Список идентификаторов секций

Responses

400 ServicesSectionsListResponse

ServicesSectionsListResponse

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

400 UnauthorizedError

Ошибка, возвращаемая в случае невалидности (истечения срока жизни токена) Access Token.

Получить секции экрана сервисов
POST /services/sections

Request body

application/json
Object
lastSectionId
string

Идентификатор последней секции, которая отображена на клиенте.

limit
integer

Сколько секций возвращать

servicesEnabled
Array of ServicesEnum

Список сервисов, которые лежат в локальном конфиге. Передаются, чтобы БФФ в секциях групп сервисов не вернул какой-нибудь сервис, для которого фронт не включил переходы по диплинкам и прочие такие вещи.

Если не указан, БФФ вернёт все сервисы подряд.

Min items: 1
Unique items: YES
Example:
[
    "BDAY",
    "TRACKER",
    "BETS"
]

Responses

400 ServicesSectionsResponse

ServicesSectionsResponse

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

400 UnauthorizedError

Ошибка, возвращаемая в случае невалидности (истечения срока жизни токена) Access Token.

Изменить список избранных сервисов
PUT /services/favorites

Request body

application/json
Object
serviceIds
Array of ServicesEnum required

ID сервиса из бэкенда МП

Responses

400 FavoriteServicesListResponse

Список избранных пользователем сервисов

400 UnauthorizedError

Ошибка, возвращаемая в случае невалидности (истечения срока жизни токена) Access Token.

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

Получить доступные группы сервисов
POST /services/groups

Получение списка групп сервисов на экране управления избранными сервисами.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=734856370

Request body

application/json
Object
servicesEnabled
Array of ServicesEnum

Список сервисов, которые лежат в локальном конфиге. Передаются, чтобы БФФ в секциях групп сервисов не вернул какой-нибудь сервис, для которого фронт не включил переходы по диплинкам и прочие такие вещи.

Если не указан, БФФ вернёт все сервисы подряд.

Min items: 1
Unique items: YES
Example:
[
    "BDAY",
    "TRACKER",
    "BETS"
]

Responses

400 ServicesGroupsResponse

Список групп сервисов

400 UnauthorizedError

Ошибка, возвращаемая в случае невалидности (истечения срока жизни токена) Access Token.

DEPRECATED Дашборд экрана сервисов
GET /services/dashboard

Responses

400 ServicesDashboardResponseOld

ServicesDashboardResponseOld

Получить баннеры по слоту
POST /v1/banner/list

Request body

application/json
Object
slot
string required

Слот баннера

Example:
mobile_app_bonuses_banner

Responses

400 BannersResponse

BannersResponse

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

Получить баннеры Бегущая строка
POST /v1/banner/ticker/list

Request body

application/json
Object
slots
Object required

Список слотов для Бегещей строки

Example:
{"mobile_app_running_line_banner", "mobile_app_running_line_banner_catalog"}

Responses

400 TickerResponse

TickerResponse

Событие в BFF
POST /internal-analytics/bff/event

Отправить событие в BFF

Документация: https://confluence.app.local/pages/viewpage.action?pageId=745228226

Request body

application/json
Object
events
Array of BffEvent

Список событий для отправки в аналитику BFF

Responses

400 EmptyResponse

Пустой ответ сервера

Событие в PersGate
POST /analytics/event

Отправить событие в перс гейт

Работет на http://rest-api.persgate.marathon.mesos.sportmaster.ru/swagger-ui/index.html?configUrl=%2Fv3%2Fapi-docs%2Fswagger-config&urls.primaryName=v2#/Events API/createEvent (вторая версия)

Описание параметров тут https://confluence.app.local/display/PERSGATE/(API)+PUT-EVENT#tab-PUT-EVENT+v101+(TOBE) именно новая версия.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=490051379

Request parameters

eventType
string required

Название события (название схемы из свагера)

Example:
pg_notification_get

Request body

application/json
Object
model
string

Тип используемой модели событий.

Enumeration:
sm-primary
sm-game
sm-tracker
version
string required

версия спецификации модели событий. Пример: 0.1.0, 1.0.0 и т.д.

type
string required

Название события (название схемы из свагера)

data
Object required

JSON события

Responses

400 EmptyResponse

Пустой ответ сервера

v1 Получить метки PersGate
GET /analytics/tags

Responses

400 PersGateTagsResponse

Метки персонализации Pers Gate.

v2 Получить метки PersGate
POST /v2/analytics/tags

Request body

application/json
Object
geoFenceIdList
Array of string

(DEPRECATED с 4.71) Массив ID геозон местоположения пользователя

Responses

400 PersGateTagsResponse

Метки персонализации Pers Gate.

v2 Получить документ по ID
GET /v2/documents/{documentId}

Path variables

documentId
string required

Мнемокод документа

Enumeration:
PRIVACY
USER_CONTENT_RULES
ABOUT_CLUB_PROGRAM
SUBSCRIPTIONS
LEGAL_ADDRESS
OFFER
PAYMENT_AND_DELIVERY
BEST_PRICE_GUARANTEE
PRIVACY_POLICY
ABOUT_CARD_PRO
ABOUT_REFERRAL_PROGRAM
REFERRAL_PROGRAM_NOT_AVAILABLE
REFERRAL_REGISTERED
SHARE_REFERRAL_LINK
EGC
PERS_PRICE
CONFIRM_EMAIL
STORE_INFO
SERVICE
RECOMMENDATION_TECHNOLOGY
SUBSCRIBE_RECEIPT
DELIVERY_PICKUP
PERSONAL_DATA_PROCESSING
PERSONAL_AGREEMENT

Responses

400 DocumentResponse

DocumentResponse

400 ErrorDocumentIsNotActive

Статическая страница неактивна в CMS Gate и её нельзя отображать пользователю.

v2 Получить документ по URL
GET /v2/documents/url

Request parameters

chpu
string required

Ссылка на запрашиваемый ресурс

Example:
/catalog/brendy/kinexib

Responses

400 DocumentResponse

DocumentResponse

400 ErrorDocumentIsNotActive

Статическая страница неактивна в CMS Gate и её нельзя отображать пользователю.

400 ErrorDocumentNotFound

Статическая страница не найдена.

400 ErrorBasketIsNotExist

Ошибка, которая возникает, когда корзина не найдена

Получить документ по слоту
GET /v1/documents/slot

Документация: https://confluence.app.local/pages/viewpage.action?pageId=899427774

По указанному слоту запрашивается фрагмент статической страницы из гейта и возвращается фронту

Request parameters

slot
string required

Слот, по которому требуется вернуть текст

Example:
mobile_app_fragment_services_velosipedy

Responses

400 DocumentResponse

DocumentResponse

400 ErrorDocumentNotFound

Статическая страница не найдена.

v2 Получить публикацию по URL ID
GET /v2/publications

Request parameters

url
string optional

URL публикации, используется для получения публикации в CMS Gate

Example:
/share-referral-link
id
string optional

ID публикации, используется для получения публикации в CMS Gate

Example:
11611026

Responses

400 PublicationResponse

PublicationResponse

400 ErrorPublicationNotFound

Публикация не найдена.

400 ErrorPublicationIdentifier

Ошибка, генерируемая при отсутствии обоих параметров запроса на получение публикации по идентификатору или URL.

v2 Найти связанный сервис по URL
POST /v2/documents/findService

Request parameters

url
string required

URL публикации или ресурса вебвью, по которому требуется найти связанный сервис

Example:
/share-referral-link

Responses

400 ServiceFromUrlResponse

Если URL привёл на какой-то сервис – в ответе есть свойства сервиса. Иначе свойства NULL

400 EmptyRequestParamError

Ошибка, которая возникает, если фронт не передаёт обязательный параметр запроса.

DEP v1 Найти связанный сервис по URL
GET /v1/documents/findService

DEPRECATED: версия 4.40.0 - 25.09 - 06.10

Документация: https://confluence.app.local/pages/viewpage.action?pageId=667902455

Request parameters

url
string required

URL публикации или ресурса вебвью, по которому требуется найти связанный сервис

Example:
/share-referral-link

Responses

400 ServiceFromUrlResponse

Если URL привёл на какой-то сервис – в ответе есть свойства сервиса. Иначе свойства NULL

400 EmptyRequestParamError

Ошибка, которая возникает, если фронт не передаёт обязательный параметр запроса.

Отправить смсдозвон если номер неизвестен
POST /verify/sendSms

Отправка сообщения для подтверждения по SMS на указанный номер телефона. Если вызвать этот запрос с того же девайса для такой же операции до того, как истечет время жизни прошлой смс, то смс на самом деле не отправляется, а в ответе указывается актуальное время, когда реально можно будет отправить новую смс.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=490062455

Request body

application/json
Object
phone
Phone required
operation
string required

Операция для которой производится подтверждение.

Enumeration:
search_account
change_phone
social_network_registration
communicationChannel
string

Канал коммуникации. Если параметр не передан, то считается “SMS”

Enumeration:
SMS
CALL

Responses

400 SendSmsResponse

SendSmsResponse

400 ErrorDeviceBlocked

Девайс заблокирован, потому что много раз пытался выполнить одно и тоже действие

400 ErrorTooManyDifferentPhonesToRequestCode

ErrorTooManyDifferentPhonesToRequestCode

400 ErrorTooManyIncorrectCodeInputs

ErrorTooManyIncorrectCodeInputs

400 ErrorFieldValidationPhoneOwn

Не прошла собственная валидация телефона на бэкенде

Проверка введенного кода если номер не был известен
POST /verify/check

Request body

application/json
Object
requestId
string required

Идентификатор проверки. Получается из метода SendSms

code
string required

Код введенный пользователем.

Responses

400 CheckResponse

Ответ на запрос проверки кода введенного пользователем.

400 ErrorDeviceBlocked

Девайс заблокирован, потому что много раз пытался выполнить одно и тоже действие

400 ErrorSmsCodeIncorrect

Смс код непраивльный

400 ErrorVerifyCodeExpiry

Время проверки данного кода истекло.

400 ErrorTooManyIncorrectCodeInputs

ErrorTooManyIncorrectCodeInputs

WIP Отправка сообщения для подтверждения действия по SMS на номер телефона из профиля
POST /verify/sendVerificationSms

Если вызвать этот запрос с того же девайса для такой же операции до того, как истечет время жизни прошлой смс, то смс на самом деле не отправляется, а в ответе указывается актуальное время, когда реально можно будет отправить новую смс. Используется, когда в профиле есть номер телефона и необходимо подтвердить какое-то действие текущего аккаунта, например, списание бонусов

Документация: -

Request body

application/json
Object
operation
string required

Операция для которой производится подтверждение.

Enumeration:
BONUS_USE

Responses

400 ErrorDeviceBlocked

Девайс заблокирован, потому что много раз пытался выполнить одно и тоже действие

400 SendVerificationSmsResponse

SendVerificationSmsResponse

WIP Проверка введенного кода для номера из профиля
POST /verify/checkSmsVerification

Документация: -

Request body

application/json
Object
requestId
string required

Идентификатор проверки. Получается из метода SendVerificationSms

code
string required

Код введенный пользователем.

Responses

400 ErrorDeviceBlocked

Девайс заблокирован, потому что много раз пытался выполнить одно и тоже действие

400 ErrorSmsCodeIncorrect

Смс код непраивльный

400 ErrorVerifyCodeExpiry

Время проверки данного кода истекло.

400 CheckSmsVerificationResponse

Ответ на запрос проверки кода введенного пользователем.

increaseCount
GET /v2/service/verification/increaseCount

Метод скорее всего увеличивает количество отправленных СМС, чтобы при достижении какого-то порога блокировать отправку СМС. Во избежание спама, перебора или чего-то еще

Можно почитать про упоминание метода здесь: https://jira.app.local/browse/MPSM-2137

В спеку метод добавлен постфактум, просто чтобы вы знали, что такой эндпойнт уже занят

Responses

400 default

default response

Детальная информация по всплывающему окну
GET /v1/popups/{popupId}

Path variables

popupId
string required

id всплывающего окна

Responses

400 PopupResponse

PopupResponse

400 ErrorPopupNotFound

Информация по всплывающему окну не была найдена

Получить правила показа всплывающих окон
POST /v1/popups/settings

Request body

application/json
Object
oldPopupSettings
Array of PopupSettings

Сохранённая в МП информация по правилам показа всплывающих окон для фронта.

Responses

400 PopupSettingsResponse

Информация по правилам показа всплывающих окон для фронта.

Список всех стримов
GET /streams

Responses

400 StreamsResponse

StreamsResponse

Получить активный стрим
GET /streams/live

Документация: https://confluence.app.local/pages/viewpage.action?pageId=494232126

Метод возвращает активный стрим, если такой есть. Если активного стрима нет, метод возвращает ближайший пока_неактивный стрим. Если стримов в будущем нет вообще, метод возвращает stream == null

Responses

400 ActiveStreamResponse

ActiveStreamResponse

Получить стрим по айди
GET /streams/{id}

Path variables

id
integer required

Responses

400 StreamResponse

StreamResponse

400 ErrorStreamNotFound

ErrorStreamNotFound

Подписаться на стрим
POST /streams/{id}/subscribe

Документация: https://confluence.app.local/pages/viewpage.action?pageId=563410336

Не имеет ничего общего с подписками из User Gate

Path variables

id
integer required

Идентификатор стрима

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorAnonymUser

ErrorAnonymUser

400 ErrorPhoneTypeLoginNotFound

ErrorPhoneTypeLoginNotFound

400 ErrorStreamNotFound

ErrorStreamNotFound

400 ErrorUserdAlreadySubscribed

Ошибка возращается в случае, если пользователь пытается подписаться на стрим, на которые он уже подписан

Получить данные о товарах стрима
POST /streams/products

Метод для получения данных о товарах стрима для событий аналитики.

Данные получаются из Product Gate. Намеренно не дублируют данных, доступных в полной модели стрима.

Документация: https://confluence.app.local/pages/viewpage.action?pageId=683213981

Request body

application/json
Object
productIds
Array required

Массив идентификаторов цветомоделей из полной модели стрима

Min items: 1
string
Example:
"25939160299"

Responses

400 StreamProductsResponse

StreamProductsResponse

400 UnauthorizedError

Ошибка, возвращаемая в случае невалидности (истечения срока жизни токена) Access Token.

400 EmptyRequestParamError

Ошибка, которая возникает, если фронт не передаёт обязательный параметр запроса.

400 ErrorGateException

Неспецифическая ошибка, возвращаемая из BFF, когда гейт вернул неспецифическую ошибку, которая не требует специальной обработки. Поскольку ошибка может вернуться в любом запросе, привязанный к этой ошибке список методов скорее всего неполный. Где-то сделали привязку, а где-то не стали делать из-за избыточности.

400 ErrorInvalidParameters

Общая ошибка, возвращаемая из BFF, если входные параметры запроса не прошли валидацию.

ТЗ: https://confluence.app.local/pages/viewpage.action?pageId=704914824

DEPRECATED Получить CSV файл для создания сегмента пользователей
GET /api/support/streams/insider/get-csv-for-user-segment/{filename}

Path variables

filename
string required

Responses

200 200

Вернуть найденный файл

404 404

Not Found

DEPRECATED Прислать колбэк о создании сегмента пользователей
POST /api/support/streams/insider/send-callback-for-user-segment

Request body

application/json
Object
status
string required

Статус создания сегмента

Example:
200
segment_name
string required

Название сегмента

Example:
Stream Reminder user segment, streamId: 22605
matched_user_count
string

Количество совпадений по пользователям между файлом и БД Insider

Example:
5
sent_user_count
string

?

Example:
12

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorStreamNotFound

ErrorStreamNotFound

DEPRECATED Получить CSV файл для админ панели
GET /api/support/streams/insider/get-csv-for-user-segment/{streamId}

Authentication

Access token

Path variables

streamId
integer required

ID стрима

Responses

200 200

Вернуть найденный файл

404 404

Not Found

Сообщить об изменении статуса стрима
POST /api/support/streams/streamerce/stream-notification

Метод API для Streamerce, сообщающий об изменении статуса стрима. Отправлять в следующих случаях:

  • До запланированного старта стрима осталось 15 минут
  • Стрим фактически стартовал
  • Предыдущий стрим закончился – теперь ближайший стрим другой, сообщение об этом другом стриме

Документация метода: https://confluence.app.local/pages/viewpage.action?pageId=656848539

Выкачен ли метод – смотри в задачах

Request body

application/json
Object
streamId
integer required

ID стрима, о котором сообщение

Example:
623342
startDate
string required

Время начала стрима – назначенное, если стрим должен начаться в будущем; фактическое, если стрим только что стартовал

Example:
2023-04-18T15:00:02.000Z

Responses

400 EmptyResponse

Пустой ответ сервера

400 ErrorStreamNotFound

ErrorStreamNotFound

Type Definitions
Payload

Полезная нагрузка JWT токена.

Object
profileId
string

Идентификатор пользователя в UserGate.

expiresAt
integer

Время в формате UnixTime, определяющее момент, когда токен станет невалидным (expiration).

deviceId
string

Идентификатор устройства пользователя.

isAnonym
boolean

Признак анонимности пользователя

userGateToken
string

access_token из UserGate

anonymAid
string

Идентификатор анонимного пользователя в UserGate. Необходим для связи анонима и неанонима после логаута.

anonymUserGateTokenEndDate
Refresh Token

Структура Refresh Token (JWT) до шифрования.

Object
header
Object

Заголовок JWT токена.

alg
string

Используемый алгоритм подписи.

typ
string

Тип токена.

enc
string

Используемый алгоритм шифрования.

payload
Access Token

Структура Access Token (JWT) до шифрования.

Object
header
Object

Заголовок JWT токена.

alg
string

Используемый алгоритм подписи.

typ
string

Тип токена.

enc
string

Используемый алгоритм шифрования.

payload
Phone

Номер телефона

Object
countryCode
integer required

Телефонный код страны

Example:
7
nationalNumber
integer required

Часть номера без кода страны

Example:
9123456789
isoCode
string required

Код страны ISO 3166-1 alpha-2

Date

Дата в формате yyyy-MM-dd'T'HH:mm:ss'Z'. Пример: 2019-12-21T12:00:00Z. Что соответствует 12 часам дня в UTC.

string
Example:
2019-12-21T12:00:00Z
OffsetDateTime
Os

Операционная система

string
Enumeration:
ios
android
Types: Device
Sort

Модель сортировки

Object
id
QuestionsSort required
name
string required

Название сортировки, отображается пользователю

isSelected
boolean required

Признак, что сейчас список сортируется по этой сортировке

ServicesEnum

См также: V.1.2. Таблица наполнения экрана сервисов. Таблица соответствия значений. ServiceItem. id

string
Enumeration:
PROMOS
AFISHA
TRAVELING
MEDIA
STREAMS
TRACKER
BDAY
STORES
BONUSES
GAME
TRAININGS
TRAININGS_NATIVE
SERVICES
[произвольное строковое значение]
[DEPRICATED]SERVICE_WIDGET
ACHIEVEMENTS
CHAT
BETS
GAME_CENTER
VideoUri

Ссылка на видео

string
Example:
https://cdn.sportmaster.ru/upload/content/contentgate/uat/ru_sm/banners/1_1.mp4
File

Файл, закодированный в base64

P.S. В перспективе, если в будущем помимо base64 будут использоваться еще какие-то стандарты кодирования, то можно расширить эту модель и добавить атрибут, в каком формате передается данный файл

Object
name
string required

Наименование файла с расширением

body
string required

Файл, закодированный в base64

Time

Время в формате [hh]:[mm]:[ss]. Пример: 12:10:10

string
Example:
12:10:10
Duration

Продолжительность в формате ISO 8601, формат P(n)Y(n)M(n)DT(n)H(n)M(n)S.Пример: P2Y10M15DT10H30M20S (duration of 2 years, 10 months, 15 days, 10 hours, 30 minutes and 20 seconds)

string
Example:
P2Y10M15DT10H30M20S
ProfileConfigurationModel

Конфигурация модуля Profile

Используется в методе Получить конфигурации модулей

Object
amountBonus
integer required

[DEPRECATED] c версии 4.60 Количество бонусов

referralProgramEnabled
boolean required

Фича тоггл для Реферальной программы

chatEnabled
boolean required

[DEPRECATED] c версии 4.52 Фича тоггл Чата с поддержкой

profilePrivacyTextEnabled
boolean required

[DEPRECATED] c версии 4.77. Фича тоггл на показ текста условий пользования при регистрации и на форме обратной связи [Дубль OrderingConfiguration.orderPrivacyTextEnabled, удалить, когда поднимется версия и переместить в AppConfiguration]

favSportEnabled
boolean required

Фича тоггл для Любимого вида спорта

rewardsEnabled
boolean required

Фича тоггл раздела “Нематериальные вознаграждения”

clientInterestsEnabled
boolean required

Фича тоггл раздела “Мои интересы”

personalDiscountsEnabled
boolean required

Фича тоггл раздела “Персональные скидки”

familyEnabled
boolean required

Фича тоггл показа элементов семейного аккаунта

cardProTrainerEnabled
boolean required

[DEPRECATED] c версии 4.79 Фича тоггл для функциональности Карты PRO (ЛК тренера)

cardProEnabled
boolean

[DEPRECATED] c версии 4.79 Фича тоггл общей функциональности Карты PRO

sportsmanParentEnabled
boolean required

Фича тоггл для функциональности КартыПро. Регистрация родителя спортсменом, если ребёнку нет 14 лет

authSberIdEnabled
boolean required

Фича тоггл авторизации по Сбер ID

cardProTrainerInvitationEnabled
boolean

[DEPRECATED] c версии 4.79 Фича тоггл для доступа к разделу Регистрация тренера

createNewAppealEnabled
boolean

Фича тоггл новой обратной связи

Example:
false
cardProSportsmanEnabled
boolean

[DEPRECATED] c версии 4.79 Фича тоггл ЛК спортсмена

Example:
false
personalDiscountsActiveEnabled
boolean

Фича тоггл активации скидки в разделе “Персональные скидки”

Example:
false
orderRefundEnabled
boolean required

Фича тоггл доступности функционала возврата товаров у заказа

tickerEnabled
boolean required

Фича тоггл баннера “Бегущая строка”

benefitsEnabled
boolean required

Фича тоггл раздела “Все акции”

RussianPostConfiguration

Конфигурация для почты России.

Получается из статичной страницы http://www.cms-gate.web.local/api/v1/staticpage?site=sm&front=mobile_app&consumer=frontoffice_prod_mpsm&locale=ru-RU&staticContentId=1306401

Текст, который нам приходит не должен содержать спец символы в виде символа новой строки и переноса каретки

Object
fioWarning
string required

Берется из warning

Example:
ФИО должны быть указаны точно, как в паспорте получателя
howToGet
string required

Берется из how_to_get

Example:
Для получения заказа необходимо предъявить паспорт или установить и зарегистрироваться в приложении Почты России
InstallmentConfiguration

Настройка для рассрочки

Object
isEnabled
boolean required

Включен ли механизм рассрочки

CartSnapshotConfiguration
Object
isEnabled
boolean required

Включен ли шаринг корзины

OrderingConfigurationModel

Конфигурация модуля ordering

Используется в методе Получить конфигурации модулей

Object
needPrepayDescription
string required

Текстовое описание причины предоплаты для потенциального заказа

Example:
Мы начнем сборку заказа сразу после поступления 100% оплаты онлайн
[DEP] orderPrivacyTextEnabled
boolean required

DEP в рамках MPSM-16409. Фича тоггл для показа текста вместо чекбокса условий пользования при оформлении заказа [Дубль ProfileConfiguration.profilePrivacyTextEnabled, удалить, когда поднимется версия и переместить в AppConfiguration]

cart2Enabled
boolean required

Включена ли вторая версия корзины

pickupAvailabilityTimeEnabled
boolean required

Фича тоггл времени довоза заказа в РМ

yandexSplitSdkEnabled
boolean required

Фича тоггл использования SDK для оплаты Яндекс Сплит

yandexDiscountEnabled
boolean required

Фича тоггл отображения плашки со скидкой Яндекс Сплит

retailSelfDeliveryEnabled
boolean required

Фича тоггл доступности функционала “Товар у меня в руках”

pickupQuickFilterEnabled
boolean required

Фича тоглл работы и отображения быстрого фильтра на карте со списком пунктов самовывоза

serviceCenterMode
string required
Enumeration:
HTML
CATALOG
CART
AppUpdateConfiguration

Конфигурация для обновления приложения

Object
forceUpdate
boolean required

Блокирующее это обновление или нет

title
string required

Текст заголовка

message
string required

Текст сообщения

buttonText
string required

Текст кнопки

ReviewsConfiguration

Конфигурация показа диалога оценки приложения

Object
appOpenCount
integer required

Минимальное количество открытий приложения до того, чтобы начать пытаться показывать диалог с оценкой

interval
integer required

Интервал показа в днях. Например, если пришло 2, то показываем раз в 2 дня.

viewAmount
integer required

Количество раз, которое мы будем пытаться показать диалог. Т.е. если интервал 2, то каждые 2 дня вот столько раз мы будем пытаться показать диалог.

ServicesConfiguration

[DEPRECATED] Модель для конфигурации сервисов

Object
isAfishaEnabled
boolean required

Значение берется из админки. Это фича тогл

isStreamsEnabled
boolean required

Значение берется из админки

isTrainingsEnabled
boolean required
isTravelEnabled
boolean required
travelPublicationUrl
string

Url публикации путеществий из цмс гейта.

trainingsPublicationUrl
string

Url публикации тренировок из цмс гейта.

promosPublicationUrl
string

Url публикации акций из цмс гейта.

Responses: AppConfigResponse
ServiceItem

Элемент на экране сервисов. Наполняется из CMS гейта механизмом баннеров.

Object
bannerId
string required

ID баннера из CMS Gate

id
ServicesEnum required
type
ServiceItemType required
image
ImageUri required
imageAssetId
string

ID ассета, если баннер был загружен через Laika

title
string required

Название раздела

Example:
Клуб путешественников
textColor
url
string

Диплинк для перехода

Example:
/catalog/aksessuary/
slot
string required

Мнемокод баннера

Example:
"sm_hh_service_tracker"
ServiceItemType
string
Enumeration:
DEFAULT
PUBLICATION
WEBVIEW
BannerBonuses

Конфигурация показа диалога получения бонусов за заполнение анкеты

Object
bannerOpenCount
integer required

Количество показа баннера до того, чтобы изменить интервал показа на другой

intervalOne
integer required

Интервал показа в днях. Например, если пришло 30, то показываем раз в 30 дней

intervalTwo
integer required

Интервал показа в днях. Например, если пришло 180, то показываем раз в 180 дней

Example:
180
viewAmount
integer required

Количество раз, которое мы будем пытаться показать диалог. Т.е. если интервал 30, то каждые 30 дней вот столько раз мы будем пытаться показать диалог

slot
string required

Мнемокод баннера

Example:
"sm_hh_mobileapp_bannerBonuses"
bannerId
string required

ID баннера из CMS Gate

image
ImageUri required
imageAssetId
string

ID ассета, если баннер был загружен через Laika

title
string

Заголовок

text
string

Текст для изображения

tag
string required

Название метки жизненной ситуации

Example:
AVT_SITE
Responses: AppConfigResponse
ServiceItemsLight
Object
smallSlot
string

Слот для получения баннера в CmsGate для нового экрана сервисов

mainPageSlot
string

Слот для получения баннера в CmsGate для блока популярных сервисов на главной странице

BannerLight

Не используется с версии 4.68

Object
bannerOpenCount
integer required

Количество показа баннера до того, чтобы изменить интервал показа на другой

intervalOne
integer required

Интервал показа в днях. Например, если пришло 30, то показываем раз в 30 дней

intervalTwo
integer required

Интервал показа в днях. Например, если пришло 180, то показываем раз в 180 дней

Example:
180
viewAmount
integer required

Количество раз, которое мы будем пытаться показать диалог. Т.е. если интервал 30, то каждые 30 дней вот столько раз мы будем пытаться показать диалог

tag
string required

Название метки жизненной ситуации

Example:
AVT_SITE
slot
string required

Мнемокод баннера

actionType
actionText
AppConfigurationModel

Конфигурация модуля app

Используется в методе Получить конфигурации модулей

Object
serviceItems

Элементы на экране сервисов. Отправляются только включенные сервисы

bannerSliderTimer
integer

Время (в секундах) переключения баннеров в слайдере на Главной (не в шапке)

amountBonus
integer required

Количество бонусов. DEP с версии 4.60

geoFencesEnabled
boolean required

Фича тоггл геозон

locationTrackingEnabled
boolean required

Фича тоггл фактической геопозиции клиента

banners
Array of BannerLight

[DEPRECATED] c версии 4.68. Параметры показа баннеров в шторках

promosPageUrl
string

Диплинк для перехода

Если serviceItems содержит PROMOS сервис, то /promo,

Иначе null

newYear
boolean required

Фича тоггл новогодней анимации

newMessageCenterEnabled
boolean

Фича тоггл нового ЦУ

mainDynamicPageEnabled
boolean

Фича тоггл конструктора главного экрана

CatalogConfigurationModel

Конфигурация модуля catalog

Используется в методе Получить конфигурации модулей

Object
bestPriceEnabled
boolean required

Доступна ли функция лучшей цены

searchHint
string required

Подсказка поиска

persPriceEnabled
boolean required

Отображение персональной цены

replenishmentEnabled
boolean required

Фича тогл для листа ожидания

cart2Enabled
boolean required

Включена ли вторая версия корзины [Дубль OrderingConfiguration, удалить, когда поднимется версия]

pickupAvailabilityTimeEnabled
boolean required

Фича тоггл времени довоза товаза в РМ

[DEP] correctedQueryTextEnabled
boolean required

Фича тоггл отображения поискового запроса (поиск) DEP 4.8x

associatedAttributesPreSelectEnabled
boolean required

Фича тогл предвыбора размеров товаров с ассоциирущими атрибутами

productCardAsyncEnabled
boolean required

Фича тогл асинхронной загрузки КТ

newCatalogMenuEnabled
boolean required

Фича тогл нового меню каталога

accessoriesEnabled
boolean required

Фича тогл конструктора аксессуаров

productKitsEnabled
boolean required

Фича тогл комплектов товаров

photoReviewEnabled
boolean required

Фича тогл на блок “Фото покупателей”

[DEP] serviceCenterNativeEnabled
boolean required

Фича тогл перехода в нативный или сверстанный раздел сервисных услуг. DEP 4.73.0

newPaginationEnabled
boolean required

Фича тогл новой пагинации товарного листинга

redirectFromLookzoneEnabled
boolean required

Фича тогл перехода из лукзон в карточку товара

redirectFromAccessoriesEnabled
boolean required

Фича тогл перехода из конструктора аксессуаров в карточку товара

catalogPersPriceEnabled
boolean required

Фича тогл персцены в листинге

reviewHightlightsEnabled
boolean required

Фича тогл умных отзывов в КТ

newFiltersEnabled
boolean required

Фича тогл для нового экрана фильтров

newPickupFilterEnabled
boolean required

Фича тогл для нового экрана фильтра самовывоза

catalogContentPageEnabled
boolean required

Фича тогл для CLP в каталоге

snackbarWithCounterEnabled
boolean required

Фича тогл снекбара с каунтером в КТ

obligatoryServicesEnabled
boolean required

Фича тогл сервисного сбора в КТ

StoresConfiguration

Конфигурация модуля stores

Используется в методе Получить конфигурации модулей

Object
inStoreEnabled
boolean required

Я в магазине

StreamsConfigurationModel

Конфигурация модуля streams [DEP] -> https://sportmaster-streams.speca.handh.ru/#StreamsConfiguration

Object
streamsPipPlaybackEnabled
boolean required

Признак использования миниплеера для отображения вместо кнопки “Live”, и отображения миниплеера при закрытии стрима.

trendsEnabled
string required

Признак возможности отображения ленты коротких роликов

AfishaConfigurationModel

Конфигурация модуля afisha

Используется в методе Получить конфигурации модулей

Object
useOldAfishaUrl
boolean required

Использовать ли старый или новый урл для Афиши

ChatConfigurationModel

Конфигурация модуля chat

Используется в методе Получить конфигурации модулей

Object
chatABtestEnabled
boolean required

[DEPRECATED] c версии 4.52 Фича тоггл АБ-теста чата “Спортивный помощник”

chatSherlockEnabled
boolean required

[DEPRECATED] c версии 4.52 Фича тоггл для переключения чата “Шерлок” и “Спортивный помощник” (включенный тоггл = чат “Шерлок”)

chatEnabled
boolean required

[DEPRECATED] можно удалить, когда будет выпилен ФТ newMessageCenterEnabled. Фича тоггл Чата “Спортивного помощника”

OsVersionConfigurationRequest

Параметр запроса конфигурации, содержащий только версию ОС.

Object
osVersion
string required

Номер версии

Example:
5.1.1
ModuleConfigurationRequest

Параметры запроса конфигурации модуля

Object
version
integer required

Версия конфигурации

Example:
1
request
unknown

Параметры запроса конфигурации. Содержимое для каждого из модулей указано в таблице метода Получить конфигурации модулей

AllConfigurationsData

Конфигурации по всем модулям. Каждое поле - конфигурация определенного модуля. Объект, который будет лежать в поле, указан в таблице метода Получить конфигурации модулей

Object
streams
unknown

Конфигурация модуля streams. Конфиг находится в отдельной спеке (https://sportmaster-streams.speca.handh.ru/#StreamsConfiguration)

tracker
unknown

Конфигурация модуля tracker. Конфиг находится в отдельной спеке (https://sportmaster-tracker.speca.handh.ru/#TrackerConfigurationModel)

PopupsConfigurationModel

Конфигурация модуля popups

Используется в методе Получить конфигурации модулей

Object
contentGatePopupEnabled
boolean required

Фичатоглл для отображения всплывающих окон

PendingPotentialBonusesPromo

Детализация потенциальных бонусов (бонусы, которые могут быть начислены клиенту, если он выкупит корзину)

Object
mdmId
integer required

ID акции

name
string required

Наименование акции

Example:
Дополнительный кэшбэк
amount
number required

Размер скидки

Example:
100
SpecificDeliveryService

Доступные услуги для заданного варианта доставки

Object
id
integer required

ID MDM услуги

name
string required

Наименование услуги

availability
boolean required

Признак доступности услуги

availableIcon
unavailableIcon
PotentialOrderTotals

Итоги по потенциальному заказу

Object
productAmount
integer required

Сколько товаров в заказе. 2 одинаковых кроссовка и 1 шапка = три товара.

totalCost
Price required
totalCatalogCost
Price required
totalServicesCost
Price required
totalDeliveryCost
Price required
totalServiceChargeCost
serviceChargeDescription
string

Текст для отображения в шторке с информацией о сервисном сборе

discounts
pendingPotentialBonuses
number

Общая сумма потенциальных бонусов за оформление текущего заказа

pendingPotentialBonusesPromo

Акции по потенциальным бонусам за оформление текущего заказа

[DEP] promo
Price required
[DEP] totalBonusesUsed
Price required
[DEP] catalogDiscount
Price required
OrderReciever

Данные о получателе корзины

Object
fio
string

ФИО пользователя

phone
email
string

Email пользователя

PaymentObjectModel

Модель оплаты для списка доступных методов оплаты потенциального заказа

Object
paymentMethod
PaymentMethod required
period
integer

Срок кредитования (рассрочки). Удаляется из контракта в рамках MPSM-8777, т.к. не используется на фронте

costThreshold
isEnabled
boolean required

Доступен ли элемент к выбору. Гейт возвращает только доступные к оплате. Нам сюда нужно приделывать кредит и делать его недоступным. Данные по кредиту и откуда брать тест смотри модель CartBankProducts поле про кредит.

Elevator

Тип лифта

Object
id
string required

Айди. Вшивать энам на клиенте не нужно. Перечисление дано для БЭ, чтобы ребята поняли, как мапить

Enumeration:
NOTSPECIFIED
ABSENT
PASSENGER
CARGO
name
string required

Название присуствия лифта. Вшивать энам на клиенте не нужно. Перечисление дано для БЭ, чтобы ребята поняли, как мапить

Enumeration:
Неизвестно
Отсутствует
Пассажирский
Грузовой
ObtainPointExtPickupInfo

Информация МСДП по самовывозу из ПВЗ

Object
pickPointAddress
string required

Адрес точки самовывоза

Example:
г. Саранск, ТЦ "РИО", ул. советская, д.55а
pickPointTypeName
string required

Название типа ПВЗ

Example:
Отделение почты
pickPointTypeIcon
string

Иконка типа ПВЗ

pickPointId
number required

Айди ПВЗ

receivingDateFrom
receivingDateTo
storeTerm
integer

Срок хранения в днях.

isRussianPost
boolean

Является ли данная доставка из пвз - доставкой почты россии.

DeliveryTypeEnum
string
Enumeration:
PICKUP
DELIVERY
PICKPOINT
DELIVERY_EGC
DROPOFF_SHOP
DROPOFF_DELIVERY_POINT
PICKUP_COURIER
DeliveryType

Тип доставки

Object
title
string

Заголовок

Example:
Самовывоз
OrderingShopInventory

Инвентаризация в магазине

Object
begin
end
beginDateTime
endDateTime
cause
string

Причина инвентаризации

Enumeration:
COMPLETE_INVENTORY
PARTIAL_INVENTORY
SCHEDULED_INVENTORY
ObtainPointIntPickupInfo

Информация МСДП по самовывозу из магазина

Object
shopAddress
string required

Адрес магазина

Example:
г. Саранск, ТЦ "РИО", ул. советская, д.55а
shopTypeName
string

Название типа магазина

Example:
Супермаркет
shopTypeIcon
string

Иконка типа магазина

shopId
number required

Айди магазина

receivingDateTimeFrom
storeDays
integer

Срок хранения в магазине

DeliveryInfoVariant

Данные по времени и дате доставке

Для БЭ: http://ordergate-ru-by-kz.ordergateuat.web.local/swagger-ui/index.html?url=../openapi.yaml#/baskets/getAltDelivery

Object
dateFrom
dateTo
timeSlot
string

Временной интервал доставки

timeSlotId
integer

ID временного слота доставки

deliveryCost
isExpress
boolean required

Является ли данный слот слотом для экспресс доставки

deliveryServiceLevelId
integer required

ID MDM уровня сервиса доставки (справочник gt_service_level)

deliveryHours
integer

Количество часов для доставки

isSelectedServicesAvailable
boolean required

Флаг доступности выбранных сервисов доставки для данного интервала

isDeliveryClick
boolean

Признак Доставки по клику

deliveryClick
ObtainPointCourierInfo

Информация МСДП по курьерской доставке

Object
receivingDateFrom
DateOnly required
receivingDateTo
receivingTimeSlot
string

Временной интервал доставки

Example:
09:00 - 14:00
receivingTimeSlotId
integer

ID временного слота доставки

receivingDeliveryHours
integer

Количество часов для доставки

territoryId
string

[Удалено в рамках 13943] ID MDM населенного пункта (НП)

territoryName
string

[Удалено в рамках 13943] Название населенного пункта (НП)

streetId
string

[Удалено в рамках 13943] ID улицы в GeoGate (НП)

Max length: 100
street
string

[Удалено в рамках 13943] Улица (НП)

Max length: 512
house
string

[Удалено в рамках 13943] Дом (НП)

Max length: 64
entrance
string

[Удалено в рамках 13943] Подъезд (НП)

Max length: 32
doorphoneCode
string

[Удалено в рамках 13943] Код домофона (НП)

Max length: 64
elevator
Elevator required
floor
integer

[Удалено в рамках 13943] Этаж (НП)

apartment
string

[Удалено в рамках 13943] Квартира (НП)

Max length: 32
Pattern: ^$|^[\pL\d ]+$
addressConfirmed
boolean

[Удалено в рамках 13943] Признак верификации адреса (НП)

isExpress
boolean required

Является ли выбраная доставка - экспресс.

specificDeliveryServices

Доступные услуги доставки

availableDeliveryVariants
Array of DeliveryInfoVariant required

Данные по времени и дате доставке

receivingAddressInfo
ObtainPointDeliveryInfo

Информация о доставке для данного МСП.

Одно из полей (intPickup, extPickup, delivery) должно быть не null.

Object
selectedDeliveryType
DeliveryType required
territoryDate
shippingMethod
string

Ключ способа получения товара

Example:
10060299
shippingMethodLevel
string

Ключ уровня сервиса получения товара

Example:
10060299
shippingMethodLevelCode
string

Мнемокод ключа уровня сервиса получения товара

Example:
RETAIL_SELF_DELIVERY
Types: ObtainPoint2
PaymentMethod

Способ оплаты заказа Список возможных способов оплаты в OrderGate: https://confluence.app.local/pages/viewpage.action?pageId=386449608 и в МДМ: https://confluence.app.local/pages/viewpage.action?pageId=314147975

Object
id
string required

Значение, которое потом подставляется в другие методы. По сути это энам из гейта

name
string required

Название варианта оплаты. Отображается пользователю

Example:
При получении
shortDescription
string

Краткое пояснение к полю.

Example:
Наличными или картой
extraDescription
string

Некий экстра пояснительный текст. Поддерживает простые html тэги.

Example:
Как оформить кредит онлайн? И тут длинное описание как. Это для кредитов и рассрочки от сбера, например. Этот текст берется из цмс гейта, смотри модель CartBankProducts и там про кредит
icon
ImageUri required
paymentSchedule

График платежей

paymentTools
Array of PaymentToolInfo

Инструменты оплаты

yandexPayBanner
discount
number

Размер скидки, если воспользоваться этим способом оплаты

Example:
5
isEnabled
boolean required

Доступен ли способ оплаты к выбору. OrderGate возвращает только доступные к оплате. Бэкенд на своей стороне может добавлять недоступные способы оплаты. Атрибут перенесен из модели PaymentObjectModel, которая в свою очередь кажется избыточной и в целевой картине все корзины должны отвязаться от нее.

Example:
true
selected
boolean required

Признак, были ли этот способ оплаты выбран или нет. Новый атрибут. В целевой картине все корзины должны использовать массив для отображения доступных способов оплаты, а по атрибуту selected определять выбранный способ оплаты. Сейчас в обычной корзине для выбранного способа оплаты используется отдельный атрибут, что является избыточным.

Example:
false
OrderSimpleModel

Упрощенный формат оформленного заказа

Object
orderNumber
string required

Номер заказа

Responses: SubmitCartResponse
CartItemMiddle

Облегченная версия полной модели товара в корзине

Object
name
string required

Название товара в корзине

image
ImageUri required
params
Array of CartItemParams required

Параметры товара (цвет, размер и тд.)

quantity
integer required

Сколько в корзине данного товара, штук

itemPrice
Price required
itemPriceWoDiscount
Price required
totalPrice
Price required
totalPriceWoDiscount
Price required
catalogPrice
Price required
catalogDiscount
Price required
CartService

Сервисные услуги при доставке

Object
mdmServiceId
string required

ИД сервисной услуги в МДМ

Example:
59048860299
name
string required

Название услуги

Example:
Сборка тренажеров и инвентаря
description
string

Описание услуги

shortDescription
string

Краткое описание услуги

noteShort
string

Текст условия зависимой услуги на уровне заказа

riseDescription
string

Текст для подъема. Для услуг на уровне товаров всегда NULL

servicePrice
Price required
servicePriceWoDiscount
Price required
discount
Price required
isSelected
boolean required

Выбрана ли услуга

serviceLineId
string

Ид лайна услуги в корзине. Заполнен если isSelected = true

Example:
fa537932-e755-42a0-bda3-aaa48cec724e
parentLineId
string

Ид лайна товара в корзине, к которому относится услуга. Для услуг на уровне заказа всегда NULL

Example:
183e2eae-676f-4062-947c-e8788181009b
parentServicesIds
Array of string

ID услуг(и), для которой эта зависимая услуга

CartBankProducts

Итоговая информация по банковским продуктам в корзине

Object
yandexSplitBanner
bnplSovcombankBanner
installmentBanner
creditBanner
isCreditAvailable
boolean required

Если итоговая сумма корзины >= 4000 рублей, то доступно.

isInstallmentAvailable
boolean required

Доступна ли рассрочка.

Для БЭ: Определяется для каждого товара через ордер гейт по creditProducts.

isBnplSovcombankAvailable
boolean required

Доступна ли оплата частями Плайт

isYandexSplitAvailable
boolean required

Доступна ли оплата Яндекс Сплитом

Types: CartFull2
CartTotals

Итоги по всей корзине

Object
productsAmount
integer required

Количество товаров.

Для бэ: количество лайнсов, за исключением распроданных и удаленных.

total
Price required
priceWoDiscount
Price required
totalWoDelivery
Price required
totalDeliveryCost
discounts
pendingPotentialBonuses
number

Общая сумма потенциальных бонусов за заказ

pendingPotentialBonusesPromo

Акции по потенциальным бонусам за оформление текущего заказа

[DEP] catalogDiscount
Price required
[DEP] bonuses
[DEP] promo
Price required
CartDiscount

Группа скидок или акций в корзине. Например “Персональная скидка”, “Промокод”

Object
price
Price required
name
string

Название скидки

Example:
Персональная скидка
CartDiscountList

Объект, который объединяет в себе все скидки и примененные бонусы к корзине

Object
bonuses
totalActions
actions
Array of CartDiscount

Список примененных скидок

CartBanner

Баннер в корзине

Object
id
string required

ИД баннера

bannerHeader
string required

Заголовок баннера

Example:
Дарим 300 бонусов
bannerText
string

Текст баннера

Example:
при самовывозе из магазина
image
ImageUri required
url
string required

Урл, которую нужно скормить в метод получения статического контента по урл.

slot
string required

Слот баннера

Example:
"sm_hh_mobileapp_get_300_bonus"
CartOwner

Покупатель (владелец) корзины.

Для БЭ: от нас не требуют поддерживать эти данные в актуальном состоянии, т.е. из профиля синхронизировать постоянно не нужно.

Object
profileId
string required

ID пользователя

fio
string

ФИО пользователя

phone
email
string

Email пользователя

[DEP] anketaComplete
boolean

Признак заполненности профиля. DEP в рамках чистки A/B-теста (MPSM-11743)

Types: CartFull2
CartItemId

Пара productId (ЦМ) + SKU для мэтчинга в lineId

Object
productId
string required

Идентификатор цветомодели

sku
number long required

Идентификатор SKU, описывает конкретный размер

CartItemParams

Параметры товара в корзине. Например, цвет, размер

Object
name
string required

Название параметра

Example:
Цвет
value
string required

Значение параметра

Example:
Красный
CartItemBadge
Object
title
string required

Заголовок в плашке

Example:
Только самовывоз
bgColor
Color required
textColor
Color required
type
string

Тип взаимодействия

Enumeration:
static
link
hint
hints
popup
description
string

Текст для шторки

Example:
Скидка 20% на куртки Columbia"
url
string
Example:
/catalog/url/
id
string

id плашки (необходимо для отправки событий)

ProductShortInfo
Object
id
CartItemId required
quantity
integer

Сколько добавлять

nominal
integer

Цена БНПК

Example:
501
CartLite

Краткая корзина, в ней есть только информация о наличии товаров в корзине. Используется для списков товаров, чтобы отображать актуальные данные

Object
items
Array of CartLiteItem required
version
integer required

Версия корзины

Responses: CartResponse2
CartLiteItem

Облегченная позиция товара в корзине

Object
[DEP] productId
string required

[DEP 4.74] Айди цветомодели

[DEP] sku
number long

[DEP 4.74] SKU товара

cartItemId
quantity
integer required

Количество lines в корзине с данными productId и sku

name
string

Название товара в корзине

totalPrice
totalPriceWoDiscount
catalogPrice
Price required
catalogDiscount
Price required
Types: CartLite
DeliveryClick
Object
deliveryClickShortInfo
string

Краткое описание услуги “Доставка по клику”

deliveryClickLongInfo
string

Полное описание услуги “Доставка по клику”

CartFormatResponse2

Указывает, какую корзину возвращать в ответе.

Если не передается, то возвращается облегченная корзина

string
Enumeration:
LITE
FULL2
CartFull2

Полная модель корзины версии 2

  • поля bonusApplied и isBonusAvailable переехали в поле bonusesInfo Лебедева Мария Сергеевна там внутри есть вопрос про стат. страницу
  • unallocatedItems теперь содержит объекты CartItemIdWithLines, а не CartItemFull
  • Все товары корзины теперь в массиве availableItems, там будут старые unallocatedItems + товары из обтейн поинтов - CartItemFull2
  • deliveryInfo теперь тип CartDeliveryInfo2
  • добавляется массив altPotentialOrders [AltPotentialOrder] , который сейчас содержит данные только для самовывоза из магазинов
  • в obtainPoints становится тип ObtainPoint2
  • добавилось поле receiver
Object
version
integer required

Версия корзины

availableItems
Array of CartItemFull2

Все нераспределенные товары (кроме товаров с отключенным чекбоксом) + товары из обтейн поинтов. При этом одинаковые товыры (ску+продакт айди) объеденены тут в 1 элемент массива.

Т.е. если есть 5 кроссовок адидас 38 размера в корзине, при этом 3 лайна в нераспределенных, а 2 лайна в одном обтейн поинте, то эти пять лайнов тут как 1 элемент массива с количеством 5

unselectedItems
Array of CartItemFull2

Доступные товары с отключенным чекбоксом. Имеет три состояния:

  • Массив не пустой (значит в корзине есть товары с отключенным чекбоксом)
  • Массив пустой (значит товаров с отключенным чекбоксом нет, но сам функционал чекбоксов доступен пользователю)
  • null (значит функционал чекбоксов пользователю не доступен)
unallocatedItems
Array of CartItemIdWithLines required

Лайны, у которых не проставлен МСП

deletedItems
Array of CartItemMiddle required

Удаленные товары, которые можно восстановить.

soldOutLines
Array of CartItemMiddle required

Распроданные товары, которые уже нельзя купить

[DEP] promoCodes
Array of string required

[DEP в рамках MPSM-11743] Список примененных промокодов

promoCodeList
Array of cartpromocode

Список примененных промокодов

obtainPoints
Array of ObtainPoint2 required

Потенциальные заказы. Все товары, которым проставили МСП, распределяются по потенциальным заказам

owner
CartOwner required
banners
Array of CartBanner required

Баннеры в корзине

bankProducts
totals
CartTotals required
dailyOfferExpiresIn
integer

Количество секунд до конца дня (до конца завершения акции Товар дня)

Example:
11655
deliveryInfo
bonusesInfo
CartBonusesInfo required
altPotentialOrders
receiver
crossborderShortInfo
string

Информация о таможенном брокере

CartItemFull2

Товар в корзине v2

Object
name
string

Название товара в корзине

image
params
Array of CartItemParams

Параметры товара (цвет, размер и тд.)

quantity
integer

Сколько в корзине данного товара, штук

availableAmount
integer

Сколько можно купить такого товара.

Значение данного поля не будет использоваться в пикере количества товара при изменении количества. Данное поле будет использоваться для валидации после изменения количества. После изменения количества товара все штуки этого товара будут строго непривязанынми к МСП.

Затем все штуки товара прогоняются через GET-ALT-… (получение доступного количества товара для каждого способа получения). Из полученных значений выбирается максимальное.

По этому максимальному значению запрашивается GET-ALT-CHANNELS, чтобы получить конечный список способов получения, в котором можно получить максимальное из возможного количество товара.

Таким образом, если штуки товара были привязаны к МСП, то при изменении количества этого товара все штуки станут нераспределенными (и для них будет расчитан avaliableAmount в соответствии с алгоритмом). А если изменение товара привязанного к МСП не планируется, то и avaliableAmount считать нет необходимости.

itemPrice
itemPriceWoDiscount
totalPrice
totalPriceWoDiscount
badges
Array of CartItemBadge

Бейджик с информацией.

hasInstallment
boolean

Доступен ли этот товар в рассрочку

deliveryInfo
wareAdditionDate
catalogPrice
catalogDiscount
returnInfo
selected
boolean

(Корзина возврата) Выбран (отмечен чекбоксом) ли товар или нет

Types: CartFull2
ObtainPoint2

Место Способ Дата Получения, фактически это потенциальный заказ.

По МСДП распределеются товары в потенциальные заказы

  • cartItems теперь другой массив - там просто айдишники товаров c лайнами и данные по услугам доставки CartItemInObtainPoint
  • potentialOrder тепрь PotentialOrder2
Object
obtainPointId
string
deliveryServices
Array of CartService

Сервисные услуги на уровне заказа

cartItems
Array of CartItemInObtainPoint required

Товары, которые распределены в данный МСП

needPrepay
boolean

Нужна ли предоплата

deliveryInfo
potentialOrder
PotentialOrder2 required
crossborderShortInfo
string

Информация о таможенном брокере

CartItemInObtainPoint

Товар, который распределен по МСП

Object
cartItemId
deliveryServices
Array of CartService

Сервисные услуги на уровне товара

totalPrice
totalPriceWoDiscount
Types: ObtainPoint2
CartItemDeliveryInfo2
Object
deliveryTypes
Array of DeliveryType required
onlyIntPickup
boolean required

Товар можно забрать только самовывозом из магазина.

Для бэ: вычисляется по deliveryTypes.

isExpressDeliveryEnabled
boolean required

Доступна ли экспресс доставка.

Для бэ: определяется через запрос http://ordergate-ru-by-kz.ordergateuat.web.local/swagger-ui/index.html?url=../openapi.yaml#/baskets/getAltDelivery по полю deliveryServiceLevelId или deliveryServiceLevelCode (надо проверить, что подходит) справочник тут https://confluence.app.local/pages/viewpage.action?pageId=307992258 мнемокод по идее express_delivery

isDeliveryClick
boolean

Доступна ли доставка по клику Флаг требуется для отправки аналитики. Отпределяется по deliveryServiceLevelCode == delivery_click. Для товаров availableItems передается true или false, а у unselectedItems null, так как модель переиспользуется общая, а данных для unselectedItems нет. Атрибут требуется для аналитики.

isDeliveryServicesEnabled
boolean required

Доступны ли услуги доставки

needPrepay
boolean required

Нужна ли предоплата

PotentialOrder2

Потенциальный заказ при оформлении корзины

Object
id
string required

Идентификатор потенциального заказа

paymentMethodsTools
Array of PaymentMethod required

Способы и инструменты оплаты

paymentMethod
paymentMethods

[DEP в рамках MPSM-17365] Доступные методы оплаты заказа

refundInfo
totals
Types: ObtainPoint2
CartDeliveryInfo2

Информация по вариантам доставки корзины

  • все поля удалились,
  • добавился массив вариантов доставки нераспределенных товаров
  • добавился массив вариантов доставки распределенных товаров
Object
unallocatedItemsDeliveryTypes
Array required

Варианты доставки для всех нераспределенных лайнов

allocatedItemsDeliveryTypes
Array of ObtainPointsDeliveryTypes required

Варианты доставки для товаров, распределенных по обтейн поинтам

Types: CartFull2
CartItemIdWithLines

Пара productId (ЦМ) + SKU

И все лайн айди

  • добавился массис айдишников лайнов
Object
productId
string required

Идентификатор цветомодели

sku
number long

Идентификатор SKU, описывает конкретный размер

linesIds
Array of string required

Айдишники лайнов

Methods: DEP Установить способ возврата курьером DEP Установить способ возврата ПВЗ v2 Восстановить удаленный товар cart2 v2 Изменить чекбоксы товаров в корзине cart2 v2 Скрыть удаленный товар cart2 v2 Установить количество товара в корзине cart2 Восстановить удаленный товар в корзине редактирования Детальные данные о наличии товаров в ПВЗ cart2 Получить варианты доставки для товаров cart2 Получить доступность адресов получения cart2 Скрыть удаленный товар в корзине редактирования Список магазинов с доступностью товаров cart2 Список ПВЗ с доступностью товара для возврата Список ПВЗ с доступностью товаров cart2 Удалить товары из корзины cart2 Удалить товары из корзины редактирования Установить количество товара в корзине редактирования Установить способ возврата курьером v2 Установить способ возврата ПВЗ v2 Установить способ доставки у товаров курьерская доставка cart2 Установить способ доставки у товаров ПВЗ cart2 Установить способ оказания услуг в сервисном центре
CartBonusesInfo

Данные по бонусам в корзине

Object
bonusApplied
boolean required

Метка использования бонусов

isBonusAvailable
boolean required

Можно ли применять бонусы к корзине

[DEP] isBonusBlocked
boolean

Применение бонусов в корзине заблокировано. DEP в рамках чистки A/B-теста (MPSM-11743)

bonusInfoDocumentId
string required

Айди статической страницы, где описание про списание бонусов

potentialBonuses
integer

Количество потенциальных бонусов

Example:
250
AltIntPickup

Данные по альтернативному заказу из конкретного магазина

Object
storeId
string required

Айди магазина

altPotentialOrders

Все возможные варианты разбиения по заказм товров, которые установлены в данный магазин

AltCourierDelivery

Альтернативные варианты по курьерской доставке для товаров

Формируется по http://ordergate-ru-by-kz.ordergateuat.web.local/swagger-ui/index.html?url=../openapi.yaml#/baskets%2Fobtain-points/getAltDelivery

Object
obtainPointIds
Array of string required

Заказы группируются в массив. Фронт бегает по заказам, получает оттуда товары и ставит им альтернативные вариант доставки.

Именно по товарам из этих заказов можно сделать альтеранативный вариант курьерской доставки

isExpress
boolean required

Альтернативный заказы будет экспресс или нет

minDeliveryPrice
Price required
numberOfAltOrders
integer required

Сколько будет сформировано альтернативных заказов

nearestDate
DateOnly required
territoryDate
DateOnly required
items
Array of CartItemIdWithLines required

Товары, которые будут зазканы этим альтернативным вариантом

AltPotentialOrder

Альтернативные потенциальные заказы.

Object
intPickup
Array of AltIntPickup

Альтернативные данные для самовывоза из магазина. Возвращается только, если они есть.

courierDelivery

Альтернативные варианты доставки для курьерской доставки

Types: CartFull2
ObtainPointsDeliveryTypes

Варианты доставки для групп МСП, которые доставляются в 1 магазин/пвз/адрес

Object
obtainPointIds
Array of string required

Массив айдишников обтейн поинтов

deliveryTypes
Array of DeliveryTypeEnum required

Варианты достаки для товаров, которые были распределены в МСП из массива выше + нераспределенных товаров корзины

cartpromocode

Модель, которая описывает промокод в корзине

Object
promoCode
string required

Промокод

isValid
boolean required

Признак валидности

invalidReason
string

Причина невалидности

CartItemInternalAvailability2

Доступность позиций в корзине по магазинам.

Изенения относительно 1ой модели (https://speca.io/HeadsAndHands/sportmaster/_edit/schemas/CartItemInternalAvailability):

  • удаляется trafficLightsLevelCaption,
  • удаляется trafficLightsLevelImage
  • всё остальное перрезжает в InternalAvailabilityPotentialOrder

Т.к. у магазина теперь могут быть варианты доставки, то мы объединяем их под одним элементом и выделяем “потенциальные” заказы.

Принцип разбиения такой.

  • Есть 5 товаров. Через данный магазин можно забрать максимум 3 товара. Сегодня 18 мая.
  • 1 товар в наличии
  • 1 товар привезут 19 мая
  • 1 товар привезут 22 мая

Тогда разбиение по заказм будет такое:

  • Вместе 22 мая
  • 1 заказ сегодня
  • 1 заказ 19 мая
  • 1 заказ 22 мая

т.е. в массиве будет 4 элемента

Object
shop
BaseShop required
potentialOrders

Варианты, как товары могут быть разбиты по заказам при заборе из заданного магазина

unavailableItems

Товары, которые нельзя получить в данном магазине

InternalAvailabilityPotentialOrder

Характеризует потенциальный заказ, которым могут быть забраны товары из магазина.

Object
totalAvailabilityDateTime
OffsetDateTime required
territoryDate
DateOnly required
totalPrepay
boolean required

Итоговая метка предоплаты

availability
string

Тип доступности товара.

Для бэ: определяется по массиву goods. Если там хоть у кого то есть довоз, то довоз. Иначе, в наличии.

Enumeration:
IN_STOCK
SUPPLY
availableItems
Array of CartItemIdWithLines required

Доступные к заказу товары в этом мсп (тут прям ограниченное количество лайнАйди внутри приходит)

storeDays
integer

Количество дней, сколько храним заказ

deliveryPrice
Price required
totalServiceChargeCost
serviceChargeDescription
string

Текст для отображения в шторке с информацией о сервисном сборе

SetInternalPickupParams

Данный объект соотвествует 1 потецниальному заказу (мсп), который должен быть создан

Object
cartItemIds
CartItemExternalAvailability2

Доступность товара в ПВЗ

Object
pickpoint
Pickpoint required
[DEP] availabilityDate
DateOnly required
availabilityDateFrom
DateOnly required
availabilityDateTo
territoryDate
needPrepay
boolean

Признак предоплаты

deliveryCost
availableItemsCount
integer required

Сколько товаров доступно доступно

totalItemsCount
integer required

Сколько товаров запрашивали

CartItemExternalAvailabilityDetail

Детальные данные о доступности товаров в ПВЗ

Object
pickpointId
string required

Идентификатор ПВЗ

availableItems
Array of CartItemIdWithLines required

Доступные товары для ПВЗ

unavailableItems

Недоступные товары для ПВЗ

PickpointServiceIcons
Object
id
string required

ID услуги

Example:
1237666
availableIcon
string required

Ссылка на иконку доступной услуги

Example:
https://cdn.sportmaster.ru/upload/content/cmsgate/ru_sm/smprod/dip_content/2023/static/mp/delivery/fit-accepted.png
unavailableIcon
string required

Ссылка на иконку недоступной услуги

Example:
https://cdn.sportmaster.ru/upload/content/cmsgate/ru_sm/smprod/dip_content/2023/static/mp/delivery/fit-cancelled.png
CartItemAddressAvailability
Object
addressId
string required

ID адреса получения

Example:
3514692b-a3f5-403b-b215-1d1045dff486
availableItems
Array of CartItemIdWithLines required

Список товаров, которые доступны по этому адресу получения

ServiceData
Object
lineId
string

id штуки корзины, к которой требуется привязать услугу

mdmServiceId
string required

id МДМ сервисной услуги

linkedServiceIds
Array of string

ids МДМ зависимых сервисных услуг

PaymentScheduleItem

Элемент графика платежей

Object
sum
Price required
date
PaymentToolInfo

Информация о инструменте оплаты

Object
id
string required

Enum из OrderGate

Example:
CARD_ONLINE
name
string required

Название инструмента оплаты. Отображается пользователю

Example:
Картой
icon
ImageUri required
selected
boolean required

Признак, были ли этот инструмент оплаты выбран или нет

fpsQuantity
string

Количество привязанных счетов к СБП

Example:
3
PaymentIntentionStatus

Статус оплаты

string
Enumeration:
IN_PROGRESS
SUCCESS
FAIL
INACTIVE_SUBSCRIPTION
FpsSubscriptionBank

Банков-партнер СБП, для которых у клиента созданы подписки

Object
bankId
string required

ID банка на стороне СБП

Example:
100000000273
bankName
string required

Наименование банка

Example:
Озон Банк (Ozon)
MemberBank

Список банков-участников СБП

Object
name
string required

Наименование банка

logo
string required

Логотип

url
string required

Ссылка на оплату

Responses: QrcResponse
EgcValue

Возможные номиналы ЭПК

Object
egcValueList
Array of Price required

Значения номиналов ЭПК для плашек

Example:
500
minEgcValue
maxEgcValue
Responses: EgcInfoResponse
EgcReceiver
Object
destinationType
string

Способ получения ЭПК

Enumeration:
PHONE
EMAIL
email
string

Email получателя ЭПК

phone
Phone required
EgcDelayedSend
Object
dateTime
Date required
city
City required
EgcMessage
Object
greeting
string

Приветствие для ЭПК

text
string

Текст поздравления для ЭПК

signature
string

Подпись отправителя для ЭПК

EgcImage

Дизайны ЭПК

Object
imageType
integer required

Код дизайна ЭПК

Example:
2
mainImage
ImageUri required
name
string

Название для доп. изображения ЭПК

Example:
Синяя
previewImage
ImageUri required
Responses: EgcInfoResponse
FrequentlyAskedQuestion
Object
question
string required

Вопрос

Example:
Отменить заказ
url
string required

URL документа с ответом из CMS

Example:
/cancel-order-chat
Responses: FaqResponse
OrderDeliveryInfo

Объект, которые агрегирует все данные по МСДП

Object
type
DeliveryType required
intPickup
receivingDateFrom
planReceivingDateTimeFrom
receivingDateTo
receivingTimeSlot
string

Временной интервал доставки

territoryDate
storagePeriod
string

Срок хранения заказа

prolongateDateTo
shippingMethod
string required

Ключ способа получения товара

Example:
10060299
shippingMethodLevel
string required

Ключ уровня сервиса получения товара

Example:
10060299
shippingMethodLevelCode
string

Мнемокод ключа уровня сервиса получения товара

Example:
RETAIL_SELF_DELIVERY
deliveryServiceCancellingMessage
string

Текстовое уведомление о передачи информацию в курьерскую службу

deliveryClickInfo
string

Текстовое уведомление о доставке по клику

withDelivery
boolean

Признак довоза товара по заказу

Types: EgcOrder Order
Order

Полная модель заказа

Описание атрибутов в OrderGate: https://confluence.app.local/pages/viewpage.action?pageId=334092849

Object
number
string required

Номер заказа

orderType
string required

Тип заказа

Enumeration:
PRODUCTS
EGC
RECEIPT
SERVICES
createdDate
Date required
status
OrderStatus required
needPrepay
boolean required

Признак предоплаты

deliveryInfo
payment
totals
OrderTotals required
items

Список товаров

services
Array of OrderService

Сервисный услуги

possibleActions
Array of OrderPossibleAction required

Доступные действия над заказом

cancelReasons

Допустимые причины отмены заказа. Возврщаются только если заказ можно отменить

editReasons
Array of OrderEditReason

Список причин редактирования заказа

isCancelled
boolean required

Отмененный ли это заказ

promoCodes
Array of string

Список примененных промокодов.

statusHistory
Array of OrderStatus

История статусов заказа

isCancelling
boolean

Признак попытки отмены заказа

authCode
string

Код авторизации для получения заказа при самовывозе

Example:
3485
showQrCode
boolean required

Отображения блока с QR-кодом для заказов самовывоза

returnAvailability
crossborderShortInfo
string

Информация о таможенном брокере

repeatOrder
boolean required

Доступность повтора заказа (только для статуса “Отменён”)

editOrder
boolean required

Доступность редактирования заказа (только для текущих заказов)

OrderItem

Заказ в списке заказов

Object
number
string required

Номер заказа

receiptCode
string

Код чека

date
Date required
status
OrderStatus required
totalSum
Price required
deliveryType
DeliveryType required
showQrCode
boolean required

Признак показа кнопки QR-кода

needPayment
boolean

Признак для показа плашки с призывом оплатить заказ

prepayLimitTime
integer

Время для автоотмены заказа (в секундах) для счетчика

Example:
5400
additionalProductCount
integer required

Количество товаров в заказе

imageUrls
Array of string

URL фото товаров

OrderStatus
Object
status
string required

Мнемокод статуса

statusText
string required

Текстовка клиентского статуса, отображается пользователю

statusDate
textColor
backgroundColor
OrderFilter
Object
id
string required

Айди, по которому фильруется выдача заказов

name
string required

Название фильтра

Example:
Текущие
isSelected
boolean

Флаг примененности фильтра.

PickupOrderInfo

Данные о самовывозе из магазина оформленного заказа.

Для БЭ: данные о магазине берутся из гео гейта по айди (номеру магазина) http://rest-app.geogate-uat.k8s-dev.gksm.local/swagger-ui/index.html?url=../openapi.json#/shop/getShop

Object
shopId
string required
shopAddress
string required

Адрес магазина

Example:
г. Саранск, ТЦ "РИО", ул. советская, д.55а
shopName
string required

Название магазина

shopPhone
Phone required
geoPoint
GeoPoint required
weekSchedule
Array of IntPickupWeekSchedule required

График работы магазина по дням недели

convenienceShop
boolean required

Круглосуточный магазин

isPickUpAutoAvailable
boolean required

Доступность услуги Самовывоз на парковке

IntServiceOrderInfo

Данные об оказании услуг в сервисном центре

Object
shopId
string required
shopAddress
string required

Адрес сервисного центра

Example:
г. Саранск, ТЦ "РИО", ул. советская, д.55а
geoPoint
GeoPoint required
weekSchedule
Array of IntPickupWeekSchedule required

График работы магазина по дням недели

convenienceShop
boolean required

Круглосуточный магазин

DeliveryOrderInfo

Данные о курьерской доставке оформленного заказа.

Для БЭ: формируется полностью из http://ordergate-ru-by-kz.ordergateuat.web.local/swagger-ui/index.html?url=../openapi.yaml#/orders/getOrder из поля address

Object
address
string required

Адрес

trackNumbers
Array of string

Ссылки для отслеживания заказа

controlNumber
string

Контрольный номер

Example:
4932
releaseLoc
integer

Номер интернет магазина

Example:
7712
PickPointOrderInfo

Информация о доставке в пункт выдачи товаров у оформленного заказа

Для БЭ: формируется из http://rest-app.geogate-uat.k8s-dev.gksm.local/swagger-ui/index.html?url=../openapi.json#/deliveryPoints/searchDeliveryPoint

Object
pickpointId
integer required
name
string

Навзание ПВЗ

address
string

Адрес ПВЗ

geoPoint
workTime
string

График работы

routeDescription
string

Описание проезда

insideLocate
string

Расположение внутри

trackNumbers
Array of string

Ссылки для отслеживания заказа

howToReceive
string

Инфо о том, как получить заказ.

OrderPaymentInfo
Object
isPayed
boolean

Оплачен заказ или нет. Null, если статус невозможно получить (для отмененных заказов, например)

Для БЭ: как определять тут https://confluence.app.local/pages/viewpage.action?pageId=423622509 29 вопрос.

needPayment
boolean

Признак для показа плашки с призывом оплатить заказ

prepayLimitTime
integer

Время для автоотмены заказа (в секундах) для счетчика

Example:
5400
paymentMethod
paymentTools
Array of PaymentTool

Возвращается только если isPayed == false.

Для БЭ: получается через http://pgate-sm.pgateuat.web.local/pgate/rest/v2/swagger-ui/index.html?url=../openapi.yaml#/p-gate-rest/getPaymentTools Инвойс - это номер заказа

fpsSubscriptionBanks

Список банков-партнеров СБП, для которых у клиента созданы подписки

showPaymentTools
boolean required

Признак показа шторки с инструментами оплаты

eCheckUrl
string

Ссылка на сайт электронных чеков

Example:
https://lkdr.nalog.ru/
promoList
Array of PromoBlock

Массив промо-блоков для различных инструментов оплаты

payNowMessage
string

Сообщение о предоплате для оплаты при получении

Example:
Заказ оформлен. Можно оплатить его сейчас, чтобы не тратить время потом.
Types: EgcOrder Order
IntPickupWeekSchedule

График работы магазина по дням недели

Object
dayNumber
integer required

Номер дня недели

dayName
string required

День недели

workTime
IntPickupWorkTime
Object
workStartTime
string required
workEndTime
string required
ReceiverOrderInfo

Даные о получателе заказа.

Для БЭ: берется из contactUser, если объект пустой, то из owner

Object
fio
string
phone
email
string
OrderTotals

Тоталсы по оформленному заказу.

Для тестеров: суммы с учетом скидок (EgcPaid не учитывается) должны сходиться с totalCost.

Object
totalCatalogCost
Price required
totalDeliveryCost
Price required
totalServiceChargeCost
serviceChargeDescription
string

Текст для отображения в шторке с информацией о сервисном сборе

totalServicesCost
Price required
totalBonusesUsed
totalCost
Price required
[DEP] promocodeDiscount
Price required
[DEP] catalogDiscount
actionsDiscount
egcPaid
egcToPay
Types: Order
OrderPaymentMethodItem

Каким методом был оплачен заказ

Для БЭ: все типы есть тут в енаме http://ordergate-ru-by-kz.ordergateuat.web.local/swagger-ui/index.html?url=../openapi.yaml#/orders/getOrder paymentMethod таблица тут https://confluence.app.local/pages/viewpage.action?pageId=386449608 более хорошая таблица тут https://confluence.app.local/pages/viewpage.action?pageId=314147975

Object
id
string required

По сути это энам из гейта

name
string required

Название варианта оплаты. Отображается пользователю

Example:
При получении
paymentMethod
string required

Ключ способа оплаты

Example:
10060299
OrderProductItem

Модель товара в заказе. Данные о товаре получаются из продакт гейта.

Для БЭ: всё устроено по аналогии с корзиной. В гейте 2 одинаковых кроссовка это 2 разных лайн. Мы должны объединять в 1 со счетчиком на осовании productId и wareId

Некоторые параметры nullable поскольку у сотрудника могут приходить товары Ostin, Funday и других, поскольку чеки приходят по КП сотрудника, после доработок ClubPro вернуться в тип required

Object
productId
string

ID MDM ЦМ

skuId
integer required

ID MDM артикула

amount
integer required

Количество товара.

Для бэ: рассчитывает наш бек путем объединения лайнсов.

name
string required

Название товара

totalPrice
Price required
priceWoDiscount
Price required
catalogDiscount
Price required
sumTotalPrice
Price required
sumPriceWoDiscount
Price required
sumDiscount
Price required
image
params

Параметры товара

isReviewAllowed
boolean required

Статус возможности пользователя оставить отзыв

isSellerProduct
boolean required

Признак, что товар продавца / маркетплейса / FBS. Использкется для возврата товара fbs.

isAvailableForCart
boolean required

Признак, что товар доступен для добавления в корзину

isBnpk
boolean required

Признак, что это безноминальная подарочная карта

Types: Order
OrderProductParam

Параметр товара в заказе

Для БЭ: в коризне есть такое же, как сделать это смотреть в корзине. Сейчас будет только 2 параметра - цвет и размер

Object
name
string required

Название параметра

value
string

Значение параметра

OrderPossibleAction

Доступное действие над заказом

string
Enumeration:
CANCEL-ORDER
EXTEND-RESERVE
DELETE_PRODUCT
EXTEND_RESERVE
CANCEL_ORDER
START_QUARREL
OrderCancelReason

Причина отмены заказа

TODO непонятно, во все причины омены можно вставлять комментарий или не во все

Object
reasonId
string required

MDM идентификатор причины отмены

reasonName
string required

Наименование причины отмены (текстовое описание)

allowComment
boolean required

Можно ли оставлять комментарий.

Для БЭ: Можно оставлять только у “Другое”. айди другого описан тут в 74 вопросе https://confluence.app.local/pages/viewpage.action?pageId=423622509

Types: Order
OrderEditReason
Object
mnemocode
string required

Мнемокод причины редактирования заказа

Example:
order_type_change
text
string required

Текстовое описание причины редактирования заказа

Example:
Изменить способ или адрес доставки
Types: Order
PaymentTool

Инструмент оплаты

string
Enumeration:
CASH_IN_STORE
CASH_IN_EXT_STORE
CARD_IN_STORE
CARD_IN_EXT_STORE
EGC_IN_STORE
EGC_ONLINE
CARD_ONLINE
GC_IN_STORE
CASH_TO_COURIER
CARD_TO_COURIER
CASHLESS
GOOGLE_PAY
SAMSUNG_PAY
APPLE_PAY
CREDIT
INSTALLMENT
FASTER_PAYMENT_SYSTEM
SBER_PAY
BNPL_SOVCOMBANK
BNPL_TINKOFF
YANDEX_SPLIT
YANDEX_PAY
PromoBlock
Object
paymentTool
PaymentTool required
title
string

Заголовок (из баннера ЦМС)

description
string

Описание (из баннера ЦМС)

url
string

URL статической сраницы (из баннера ЦМС)

EgcOrder

Модель заказа ЭПК

Object
number
string required

Номер заказа ЭПК

orderType
string required

Тип заказа. По факту для этой модели всегда будет один тип заказа, но для совместимости с другими моделями в рамках общего алгоритма здесь тоже нужно поддерживать этот атрибут

Enumeration:
EGC
deliveryInfo
payment
needPrepay
boolean required

Нужна предоплата

totals
Object required

Итоговая стоимость заказа

totalCost
Price required
Responses: EgcOrderResponse
OrderService

Информация по сервисным услугам при доставке

Object
mdmServiceId
string required

ИД сервисной услуги в МДМ

name
string required

Наименование услуги

description
string

Описание

sumTotalPrice
Price required
sumPriceWoDiscount
Price required
sumDiscount
Price required
totalPrice
Price required
amount
integer required

Количество

isOrderService
boolean required

Признак услуги на уровне заказа

Types: Order
ReturnAvailability

Данные по возврату в заказе

Object
returnButtonDisplay
boolean required

Отвечает за отображение кнопки “Вернуть товары”

orderRefundAvailability
boolean required

Признак возможности возврата по заказу

Types: Order
CartFull

Модель корзины возврата

Object
version
integer

Версия корзины

originalOrderNumber
string

Номер исходного заказа, по которому была создана эта корзина (для корзины возврата)

availableItems
Array of CartItemList

Все нераспределенные товары + товары из обтейн поинтов. В зависимости от используемое в настоящий момент корзины (возврата или другой) одинаковые товыры (ску+продакт айди) могут быть объеденены тут в 1 элемент массива, а могут в разные.

inactiveItems
Array of CartItemList

Товары, недоступные по каким-то причинам (распроданы, заблокированы, нельзя оформить для возврата и т.д.)

deliveryTypes

Варианты доставки для всех нераспределенных лайнов

obtainPoints
Array of ObtainPoint2

Потенциальные заказы. Все товары, которым проставили МСП, распределяются по потенциальным заказам

totals
receiver
bonusesInfo
promoCodes
Array of string

Список примененных промокодов

ReturnCart

Модель корзины возврата

Object
version
integer required

Версия корзины

originalOrderNumber
string required

Номер исходного заказа, по которому была создана эта корзина (для корзины возврата)

availableItems
CartItemList required
unavailableItems
returnTypes
Array of ReturnTypeEnum

Варианты доставки для всех выбранных лайнов

potentialOrder
receiver
Responses: ReturnCartResponse
CartItemList

Группа товаров, которая должна с определенным заголовком отображаться на экране корзины

Object
title
string required

Заголовок группы

Example:
Возврат недоступен
description
string

Описание группы товаров

Example:
Это товары продавца. После оформления возврата, нам нужно дождаться его ответа.
items
Array of ReturnCartItem required

Список товаров

ReturnCartItem

Товар в корзине возвратов, по смыслу схожа с моделью CartItemFull2 товарной корзины.

Object
cartItemId
name
string required

Название товара в корзине

image
params
Array of CartItemParams

Параметры товара (цвет, размер и тд.)

quantity
integer required

Сколько в корзине данного товара, штук

itemPrice
Price required
returnInfo
ReturnInfo required
selected
boolean required

Выбран (отмечен чекбоксом) ли товар или нет

Types: CartItemList
ReturnCartTotals

Итоги по всей корзине

Object
productsAmount
integer required

Количество товаров.

Для бэ: количество лайнсов, за исключением распроданных и удаленных.

total
Price required
Types: ReturnCart
ReturnTypeEnum
string
Enumeration:
DROPOFF_SHOP
DROPOFF_DELIVERY_POINT
PICKUP_COURIER
ReturnBasketLine

Информация по товару, который был выбран для возврата

Object
lineId
string required

ID лайна

Example:
4deb23a5-f4a6-477b-9c29-5ac668bed63c
reasonId
string required

ID причины возврата

Example:
10020299
comment
string

Комментарий пользователя

images
Array of File

Список приложенных пользователем фотографий. 1) Если массив заполнен, то фотографии нужно загрузить. 2) Если массив null, то изменения по фотографиям делать не нужно. 3) Если массив пустой, то фотографии нужно отвязать от товара

RefundMethodShort

Объект с коротким описанием способа возврата денежных средств

Object
id
string required

Мнемокод способа возврата. Enum из гейта

Example:
CASH
refundAmount
ReturnPotentialOrder

Потенциальный заказ в корзине возврата

Object
cartItems
Array of CartItemIdWithLines required

Товары, которые распределены в данный потенциальный заказ

returnMethod
refundInfo
Types: ReturnCart
RefundInfo

Общая информация о способах возврата денежных средств и опциях в потенциальном заказе

Object
changeRefundAvailable
boolean required

Признак “Возможен выбор только одного из способов”

refundAmountAvailable
boolean required

Признак “Возможно менять сумму возврата для способов”

refundMethods
Array of RefundMethod required

Список доступных способов возврата

RefundMethod

Объект с описанием способа возврата денежных средств

Object
id
string required

Мнемокод способа возврата. Enum из гейта

Example:
CASH
name
string required

Название способа возврата. Для отображения пользователю

Example:
Наличные
icon
string required

Иконка способа возврата

description
string

Описание для расчетного счета

maxAmount
refundAmount
selected
boolean required

Признак, были ли этот способ возврата выбран или нет

Types: RefundInfo
ReturnInfo

Общая информация о причине возврата в разрезе отдельно взятого лайна корзины

Object
returnReasons
Array of ReturnReason required

Список доступных причин возврата

selectedReasonId
string

ID выбранной причины возврата. Принимает значения либо null (то есть причина не была выбрана), либо id (причина выбрана)

reasonNote
string

Комментарий клиента

Example:
На труселях, которые я покупал раньше, не было НИ ЕДИНОГО РАЗРЫВА!
photoCode
string

Код фотографии в МИР

ReturnReason

Объект для описания причины возврата товара

Object
id
string required

ID причины

name
string required

Наименование причины

Example:
Цвет не нравится
isCommentRequired
boolean required

Признак Необходим комментарий

isPhotoRequired
boolean required

Признак Необходима фотография

hint
string required

Комментарий к причине возврата

Example:
Пожалуйста, опишите выявленный дефект
Types: ReturnInfo
ReturnMethodInfo

Информация о способе возврата товара(ов). Один из способов должен быть заполнен.

Object
selectedReturnType
ReturnTypeEnum required
dropoffShop
dropoffDeliveryPoint
pickupCourier
territoryDate
DateOnly required
DropoffShopInfo

Информация о возврате в магазин

Object
shopAddress
string required

Адрес магазина

Example:
г. Саранск, ТЦ "РИО", ул. советская, д.55а
shopId
number required

Айди магазина

DropoffDeliveryPointInfo

Данные по доставке в ПВЗ

Object
deliveryPointAddress
string required

Адрес точки самовывоза

Example:
г. Саранск, ТЦ "РИО", ул. советская, д.55а
deliveryPointTypeName
string required

Название типа ПВЗ

Example:
Отделение почты
deliveryPointTypeIcon
string required

Иконка типа ПВЗ

deliveryPointId
number required

ID ПВЗ возврата

PickupCourierInfo

Данные по возврате курьером

Object
receivingDateFrom
DateOnly required
receivingDateTo
receivingTimeSlot
string required

Временной интервал доставки

Example:
09:00 - 14:00
receivingTimeSlotId
integer required

ID временного слота доставки

pickupCourierOptions
Array of ReturnDeliveryInfoVariant required

Данные по времени и дате доставке

receivingAddressInfo
ReturnDeliveryInfoVariant

Данные по времени и дате доставке

Для БЭ: http://ordergate-ru-by-kz.ordergateuat.web.local/swagger-ui/index.html?url=../openapi.yaml#/baskets/getAltDelivery

Object
dateFrom
DateOnly required
dateTo
timeSlot
string required

Временной интервал доставки

timeSlotId
integer required

ID временного слота доставки

ReturnPotentialOrderTotals

Итоги по всей корзине

Object
productsAmount
integer required

Количество товаров

totalCost
Price required
ReturnDetails

Полная модель возврата

Object
returnNumber
string required

Номер возврата

Example:
67028524-949472
returnCode
string required

Код возврата (только с ним можно отменить заказ)

Example:
10001906835962
orderNumber
string

Номер заказа

Example:
2708524-953073
createdDate
DateOnly required
status
ReturnStatus required
deliveryInfo
returnPaymentMethods

Способы возврата

totalAmount
Price required
quantity
integer required

Количество товаров

Example:
1
items
Array of ReturnrProductItem required

Список товаров

possibleActions
Array of OrderPossibleAction required

Доступные действия над заказом

showQrCode
boolean required

Признак показа блока с QR-кодом для заказов самовывоза

returnFormLink
string

Ссылка на бланк возврата

Responses: ReturnResponse
ReturnStatus
Object
status
string required

Мнемокод статуса возврата

statusText
string required

Текст статуса возврата

statusDescription
string

Описание (коммуникация) к статусу возврата товара FBS

textColor
backgroundColor
ReturnDeliveryInfo

Объект, которые агрегирует все данные по МСДП

Object
dropoffDeliveryPoint
retainDate
trackNumber
string

Трек-номер

trackUrl
string

Ссылки на возврат в курьерской компании

Example:
http://dpd.ru/p?HzEZWJKIwD
DropoffShopReturnInfo
Object
shopAddress
string required

Адрес магазина

Example:
г. Саранск, ТЦ "РИО", ул. советская, д.55а
geoPoint
GeoPoint required
weekSchedule
Array of IntPickupWeekSchedule required

График работы магазина по дням недели

ReturnPaymentInfo
Object
id
string required

Способ возврата средств (enum)

Example:
BANK_CARD
name
string required

Наименование способа возврата

Example:
Банковская карта
amount
Price required
ReturnrProductItem
Object
productId
string required

ID MDM ЦМ

skuId
integer required

ID MDM артикула

amount
integer required

Количество товара

name
string required

Название товара

price
Price required
image
params

Параметры товара

returnReasonName
string

Наименование причины возврата

returnReasonNote
string

Комментарий к причине возврата

ReturnItem
Object
number
string

Номер заказа на возврат

Example:
67028524-949472
returnCode
string required

Код возврата. Нужен для получения экрана возврата.

Example:
10003556651083
date
status
ReturnStatus required
totalSum
Price required
returnMethod
ReturnTypeEnum required
additionalProductCount
integer required

Оставшееся количество товаров в заказе без превью

imageUrls
Array of string

URL фото товаров

DropoffDeliveryPointReturnInfo
Object
name
string

Навзание ПВЗ

address
string

Адрес ПВЗ

geoPoint
workTime
string

График работы

routeDescription
string

Описание проезда

insideLocate
string

Расположение внутри

PickupCourierReturnInfo

Данные о курьере оформленного возврата

Object
address
string required

Адрес

ServiceInCart
Object
id
string required

Идентификатор услуги (productId)

Example:
6275530299
quantity
integer required

Количество услуг

Example:
2
IntServiceInfoVariant

Данные по времени и дате оказания услуги в сервисном центре

Object
availDate
DateOnly required
timeSlots
Array of string required

Список доступных часов начала оказания услуг

ObtainPointIntServiceInfo

Информация МСДП по оказанию услуг в сервисном центре

Object
serviceCenterAddress
string required

Адрес сервисного центра

Example:
г. Москва, ТЦ \"Бутово Молл\", пос. Воскресенское, Чечёрский пр., д.51
selectedAvailDate
selectedTimeSlot
string

Выбранное время начала оказания услуг

Example:
12:00
availableDateTimeVariants
Array of IntServiceInfoVariant required

Список доступных слотов оказания услуг

ServiceCartItem

Услуга в корзине сервисных услуг. По смыслу схожа с моделью CartItemFull2 товарной корзины.

Object
cartItemId
name
string required

Название услуги в корзине

image
quantity
integer required

Сколько в корзине данной услуги, штук

itemPrice
Price required
itemPriceWoDiscount
Price required
Types: ServiceCart
ServiceDeliveryInfo

Информация о способе получения потенциального заказа для корзины услуг. Аналогичен модели ObtainPointDeliveryInfo из корзины товаров. В зависимости от способа должен быть заполнен атрибут intService или fieldService (пока не реализовываем)

Object
selectedDeliveryType
string required

Какой тип доставки выбран. В зависимости от этого, один из атрибутов будет не null

Enumeration:
in_service_centre
field_service
territoryDate
DateOnly required
shippingMethod
string required

Ключ способа получения услуги (http://mdm.app.local/MDM.aspx?entities=gt_receiving_method)

Example:
10050299
shippingMethodLevel
string required

Ключ уровня сервиса получения услуги (http://mdm.app.local/MDM.aspx?entities=gt_service_level)

Example:
10200299
ServicePotentialOrder

Потенциальный заказ в корзине сервисных услуг

Object
id
string required

Идентификатор

Example:
33d1f73b-765c-406e-b257-171abb4e8e6a
cartItems
Array of CartItemIdWithLines required

Товары, которые распределены в данный потенциальный заказ

needPrepay
boolean required

Нужна ли предоплата

deliveryInfo
paymentMethods
Array of PaymentMethod required

Список доступных способов оплаты. Выбранный способ также лежит в массиве с атрибутом selected: true

Types: ServiceCart
ServiceCart

Модель корзины услуг

Object
version
integer required

Версия корзины

availableItems
Array of ServiceCartItem required

Все нераспределенные услуги + услуги из потенциального заказа

potentialOrder
totals
receiver
bonusesInfo
promoCode
string

Примененный промокод

ServiceCartTotals

Итоги по всей корзине услуг

Object
amount
integer required

Количество услуг с учетом штук. Т.е. количество лайнов

total
Price required
totalWoDiscount
Price required
discounts
pendingPotentialBonuses
number

Общая сумма потенциальных бонусов за оформление заказа

pendingPotentialBonusesPromo

Акции по потенциальным бонусам за оформление заказа

Types: ServiceCart
ServicePotentialOrderTotals

Итоги по потенциальному заказу

Object
amount
integer required

Количество услуг с учетом штук. Т.е. количество лайнов

total
Price required
totalWoDiscount
Price required
discounts
pendingPotentialBonuses
number

Общая сумма потенциальных бонусов за оформление заказа

pendingPotentialBonusesPromo

Акции по потенциальным бонусам за оформление заказа

ServiceCartBonusesInfo

Данные по бонусам в корзине услуг

Object
bonusApplied
boolean required

Метка использования бонусов

isBonusAvailable
boolean required

Можно ли применять бонусы к корзине

bonusInfoDocumentId
string required

ID статической страницы, где описание про списание бонусов

potentialBonuses
integer

Количество потенциальных бонусов

Example:
250
Types: ServiceCart
EditCart

Модель корзины редактирования

Object
version
integer required

Версия корзины

availableItems
Array of CartItemMiddle required

Все доступные товары, которые были в заказе

deletedItems
Array of CartItemMiddle

Удаленные товары, которые можно восстановить

promoCodeList
Array of cartpromocode

Список примененных промокодов

totals
CartTotals required
deleteProductDescription
string

Текст-описание к экрану удаления товаров

Example:
Мы пересчитаем стоимость заказа, когда вы удалите товары
Responses: EditCartResponse
Profile

Модель профиля

Object
id
string required
userGateUid
string

UID профиля из UserGate

Example:
100000000000000000
city
type
string required

Тип профиля

Enumeration:
guest
registered
isUserCityConfirmed
boolean

Подтверждал ли юзер выбор города. Становится true, если я вызвал метод изменения профиля с городом

userType
string

Тип зарегистрированного профиля

Enumeration:
STANDARD
EMPLOYEE
TRAINER
SPORTSMAN
INDIVIDUAL_SPORTSMAN
anketa
phone
email
avatar
referralProgramAvailable
boolean

Признак возможности участия в реферальной программе

location
locationUpdate
agreeToEmailSubscriptions
boolean required

Статус подписки на email-рассылку

agreements
Anketa

Анкета пользователя.

Данные адреса дублируются в 2 структуры:

  1. Новая структура адреса Яндекс, используется при включенном фича тоггле геозон (объект address)
  2. Старая структура адреса, используется при выключенном фича тоггле геозон (параметры territoryId, territoryName, streetId, streetName, houseId, house)
Object
firstName
string

Имя

lastName
string

Фамилия

middleName
string

Отчество

sex
string

Пол

Enumeration:
MALE
FEMALE
birthDate
territoryId
string

ID населенного пункта

territoryName
string

Название населенного пункта

streetId
string

ID улицы

streetName
string

Название улицы

houseId
string

ID дома

house
string

Дом

address
trainerState
requiredFields
Array of RequiredField

Список заполненных полей анкеты

children
Array of child

Данные о ребенке спортсмене

Email

У пользователя может быть 2 имейла в 1 момент времени. 1 - подвержденный, который является логином, второй неподвержденный. Тут сначала возращается неподвержденный, если такого нет, то подвержденный

Object
email
string required
isConfirmed
boolean required
Types: Profile
Responses: FamilyResponse
ProfileId

Айди профиля и тип (гость / авторизованный)

Object
id
string required

Гейтовый айди пользователя

type
string required
Enumeration:
guest
registered
Responses: ProfileIdResponse
Subscription

Подписка

Object
communicationIdentType
string required

Тип коммуникационного идентификатора

Enumeration:
PHONE
CONFIRMED_EMAIL
MOBILEAPP_TOKEN
VKONTAKTE
communicationIdentValue
string required

Значение коммуникационного идентификатора

Example:
70000000000
communicationChannel
string required

Канал коммуникации

Enumeration:
sms
vk
viber
call
email
app_push
receipt
status
string required

Статус подписки

Enumeration:
subscribed
unsubscribed
Group

Группа подписок

Object
groupTitle
string required

Название группы

toggleEnabled
boolean

Значение положения тоггла

subscriptions
Array of Subscription required

Массив подписок

Social
Object
url
string required

Ссылка на социальную сеть

Example:
https://vk.com/sportmaster
icon
string required

Иконка социальной сети

Example:
https://cdn.sptmr.ru/upload/content/cmsgate/ru_sm/smprod/mobile_app_hh_4.0/icons/socials/vk.png
Responses: SocialsResponse
DeliveryAddressInfo

Адрес доставки

Object
addressName
string

Название адреса

Max length: 25
territoryId
string required

Идентификатор населеного пункта

territoryName
string required

Название населеного пункта

postCode
string

Почтовый индекс

hasMetro
boolean required

Признак наличия метро в городе

metroId
string

ID станции метро

metroName
string

Название станции метро

streetId
string

Ид улицы

street
string required

Название улицы

Max length: 512
house
string required

Номер дома

Max length: 64
houseBlock
string

Корпус

building
string

Строение

entrance
string

Подъезд

Max length: 32
doorphoneCode
string

Домофон

Max length: 64
elevator
floor
string

Этаж

Max length: 3
apartment
string

Квартира

Max length: 32
addressConfirmed
boolean required

Признак верификации адреса

DeliveryAdress
Object
deliveryAddressId
string required

Идентификатор адреса доставки

deliveryAddressMnemocode
string required

Мнемокод адреса

Enumeration:
HOME
OFFICE
OTHER
image
ImageUri required
deliveryAddressInfo
receivingAddressInfo
ReceivingAddressInfo
RequiredField

Обязательное поле анкеты

Object
title
string required

Название поля

Example:
Имя
isFilled
boolean required

Значение заполненности

Example:
true
description
string

Описание поля

Types: Anketa
TrainerState

Состояние учетной записи тренера. Произведен DEP в рамках https://jira.app.local/browse/MPSM-8698 т.к. этот атрибут стал не актуален

Object
isVerified
boolean

Признак верификации тренера

Types: Anketa
BannerActionType

Не используется с версии 4.68 Тип действия при нажатии на кнопку баннера в шторке anketa - выполнить действия для баннера бонусов deeplink - перейти по диплинку

string
Enumeration:
anketa
deeplink
Types: BannerLight
BannerActionText

Не используется с версии 4.68 Текст кнопки баннера в шторке Получить - текст кнопки для баннера бонусов Начать - текст кнопки для баннера заполнения интересов

string
Enumeration:
Получить
Начать
Types: BannerLight
AuthEvent

Определение события, которое должно отправляться в случае успешной регистрации

string
Enumeration:
SIGN_UP
LOG_IN
Responses: AuthResponse
Agreements

Согласие клиента на рекламную рассылку и на обработку персональных данных

Object
personalData
boolean

Согласие на обработку персональных данных

advertising
boolean

Согласие подписки на рекламную рассылку

CartMetro

Модель станций метро для доставки.

Object
id
string required
name
string required
Responses: MetroListResponse
Location

Местоположение

Object
Example:
{
    "location": {
        "locationName": "Москва, Красная площадь, 1",
        "locationLevel": "OTHER",
        "geoPoint": {
            "lat": 55.755246,
            "lon": 37.617779
        },
        "geoFences": [
            {
                "geoFenceId": "589990299",
                "territoryId": "17458520011",
                "geoFenceName": "Россия",
                "geoLayer": {
                    "geoLayerId": "10000299",
                    "geoLayerCode": "COUNTRY"
                }
            },
            {
                "geoFenceName": "Москва и МО",
                "geoLayer": {
                    "geoLayerId": "10220299",
                    "geoLayerCode": "MACROCITY"
                },
                "geoFenceId": "1144650299"
            },
            {
                "geoFenceName": "МСК+0 (UTC+3)",
                "geoLayer": {
                    "geoLayerId": "10210299",
                    "geoLayerCode": "TIME_ZONE"
                },
                "geoFenceId": "1141810299"
            },
            {
                "geoFenceId": "1094470299",
                "territoryId": "1720920299",
                "geoFenceName": "Москва (столица)",
                "geoLayer": {
                    "geoLayerId": "10200299",
                    "geoLayerCode": "TERRITORY"
                }
            }
        ],
        "isConfirmed": false, 
        "availabilityCluster": "north",
    }
}
geoPoint
geoFences
Array of GeoFence required

Геозоны

locationName
string required

Название местоположения

locationLevel
string required

Уровень местоположения. Список значений не является финальным, при получении мнемокода типа string не из списка его необходимо сохранять.

Enumeration:
HOUSE
OTHER
isConfirmed
boolean required

Местоположение выбрано пользователем

availabilityCluster
string

Кластер доступности

Example:
north
GeoFence

Геозоны

Object
geoFenceId
string required

ID геозоны

geoFenceName
string required

Название геозоны

territoryId
string

ID территории, опционально, релеванто для геозон административного слоя

geoLayer
GeoLayer required
Types: Location
Responses: GeoFencesResponse
GeoPointLocation

Новые координаты для геозон

Object
lat
number double

Широта

lon
number double

Долгота

GeoLayer

Слой геозон

Object
geoLayerId
string required

ID геослоя

geoLayerCode
string required

Мнемокод геослоя. Список значений не является финальным, при получении мнемокода типа string не из списка его необходимо сохранять.

Enumeration:
COUNTRY
TERRITORY
TIME_ZONE
MACROCITY
DELIVERY_ZONE
PICKUP_POINT_ZONE
REPORT_ZONE
SERVICE_ZONE
SHIPMENT_ZONE
NON_COMMODITY_ZONE
Types: GeoFence
Street
Object
id
string required
name
string required
Responses: StreetsResponse
City
Object
id
string required
name
string required

Кракое название города/села/деревни

Example:
Руза
fullName
string

Полное название города. Нужно, чтобы отличать, например, Николаевку в разных районах. Поле нужно только при поиске городов.

Example:
г. Руза, Московская обл
eutc
string

Часовой пояс города

Example:
UTC+3
macrocityId
string

Идентификатор макрогорода.

Возвращается не во всех методах, см ТЗ методов

hasMetro
boolean

Признак наличия метро в городе.

Возвращается не во всех методах - в модели ShopBase не используется

House
Object
id
string required
houseNumber
string

Номер дома

buildingNumber
string

Номер корпуса

structureNumber
string

Номер строения

postalCode
string

Почтовый индекс

Responses: HousesResponse
Address

Адрес по структуре Яндекс для геозон (содержит город, улицу, дом)

Object
coder
string required

Формат геокодирования

Example:
YANDEX
countryCode
string

Код страны

Example:
RU
postalCode
string

Почтовый индекс

unstructuredAddress
string required

Неструктурированный адрес

yandexStructureComponentList
Array of YandexStructure required

Структура адреса Яндекс

geoPoint
LocationAvailability

Признаки возможности использования местоположения

Object
availableForHeader
boolean required

Признак, что местоположение можно установить в шапку МП

requiredLayers
boolean required

Признак наличия в ответе геозон обязательных слоев

availableForApp
boolean required

Признак, что МП умеем работать с этой локацией.

Например, у крыма тут будет false, т.к. МП не работает в крыму. Или у Минска тут будет false, т.к. страна - не Россия

YandexStructure
Object
kind
string required

Тип компонента адреса Яндекса

Enumeration:
HOUSE
STREET
METRO
DISTRICT
LOCALITY
AREA
PROVINCE
COUNTRY
HYDRO
RAILWAY
ROUTE
VEGETATION
AIRPORT
OTHER
name
string required

Название

num
integer required

Порядковый номер компонента в структуре адреса

Types: Address
AddressSuggestSubtitle

Вторая строка подсказки адреса

Object
text
string required

Название объекта

Example:
Санкт-Петербург

Фрагменты, совпавшие со строкой запроса

AddressSuggestTitle

Первая строка подсказки адреса

Object
text
string required

Название объекта

Example:
Варшавская улица, 16

Фрагменты, совпавшие со строкой запроса

AddressSuggestHighlight

Фрагмент подсказки адреса, совпавшие со строкой запроса

Object
begin
integer required

Начало диапазона индексов символов строки text для подсвечивания

Example:
0
end
integer required

Окончание диапазона индексов символов строки text для подсвечивания

Example:
10
addressSuggest

Подсказка адреса

Object
title
tags
Array

Тип адреса

string
Example:
locality
formattedAddress
string required

Полный адрес

uri
string required

Дополнительная информация об адресе от яндекса.

Example:
ymapsbm1://geo?data=Cgg1MzIwMTUzMhKMAdCg0L7RgdGB0LjRjywg0KDQtdGB0L_Rg9Cx0LvQuNC60LAg0KLQsNGC0LDRgNGB0YLQsNC9ICjQotCw0YLQsNGA0YHRgtCw0L0pLCDQmtCw0LfQsNC90YwsINGB0LDQtNC-0LLQvtC1INGC0L7QstCw0YDQuNGJ0LXRgdGC0LLQviDQpNC-0YLQvtC9
Responses: GeoSuggestResponse
AddressMode

Определение условия для поиска адреса

string
Enumeration:
TEXT
URI
Token

Данные об авторизационных токенах

Object
accessToken
string required

Короткоживущий токен доступа, подставляется в заголовки запросов

refreshToken
string required

Долгоживущий одноразовый токен для получения новой пары токенов

expiresIn
integer required

Через сколько секунд истекает accessToken

Device

Данные о девайсе.

Данные о девайсе сохраняются на нашем бекенде для того, чтобы отвязывать пуш токены, если на данный девайс зарегается новый пользователь. Аксес токен должен знать айди девайса, для которого он выдавался

Object
id
string required

Уникальный айди девайса, который генерируется локально

os
SocialNetworkType
Promocode

DEP с версии 4.63

Модель промокода в списке промокодов пользователя

Object
issueDate
startDate
endDate
actionName
string

Название акции

couponId
string

ID купона, выводится пользователю

Example:
GTFEJVGJ
image
textLegal
string

Текст, который отобраажется на детальной информации о купоне

Example:
Промокод одноразовый, на товары с розничной скидкой от 30% до 49%. Кроме Лучших и Финальных цен.
textDetail
string

Текст для ссылки на подробности акции

Example:
Подробнее
refDetail
string

Ссылка на подробности акции

Example:
https://www.sportmaster.ru/news/5685760/
color
Responses: PromoCodesResponse
Promo
Object
promoId
string required

Код начисления/ купона

actionName
string required

Название промоакции

actionType
string required

Тип акции: промокод - ACTION, бонус - ACCRUAL

Enumeration:
ACTION
ACCRUAL
dateBegin
dateEnd
description
string

Текст условий промоакции

linkText
string

Текст для ссылки на подробности

url
string

Ссылка на подробности промоакции

color
image
Responses: PromoResponse
AppealType
Object
code
string required

Код типа обращения

title
string required

Название типа обращения

subjects
Array of AppealSubject required

Список тем обращений для данного типа (может состоять минимум из одного элемента (по построению с гейта))

hasOrderField
boolean required

Нужно ли показывать поле заказа (true - для типов order_info и complaint)

subjectPlaceholder
string

Текст для поля выбора темы обращения (для типов, у которых несколько тем, например proposal и complaint)

Example:
Выберите тип обращения*
subjectListTitle
string

Заголовок для списка выбора темы обращения (для типов, у которых несколько тем, например proposal и complaint)

Example:
Тема обращения
hasSendToManagerOption
boolean

Отображается ли чекбокс “Отправить руководителю клиентской службы”. true только для жалоб

Example:
false
Responses: AppealTypeResponse
AppealSubject
Object
id
string required

Идентификатор темы обращения

title
string required

Название темы обращения

Types: AppealType
AppealTypeItem
Object
code
string required

Код типа обращения

title
string required

Название типа обращения

AppealOrdersHistory
Object
number
string required

Номер заказа

date
Date required
price
Price required
Appeals
Object
id
string required

Идентификатор типа обращения

name
string required

Наименование типа обращения

code
string required

Код типа обращения

themes
Array of AppealTypeThemes required

Массив тем обращения

AppealThemeThematics
Object
id
string required

Идентификатор тематики обращения

name
string required

Название тематики обращения

AppealTypeThemes
Object
id
string required

Идентификатор темы обращения

name
string required

Наименование темы обращения

thematics
Array of AppealThemeThematics required

Массив тематик

Types: Appeals
RequiredFields
Object
shop
requiredIds required
order
requiredIds required
requiredIds
Object
themeIds
Array of string

Список идентификаторов тем

thematicIds
Array of string

Список идентификаторов тематик

BonusProgramProgress

Информация о прогрессе в клубной программе. Какой сейчас уровень, какой следующий, сколько нужно, чтоб перейти дальше.

Присутствует объект documentUrls, использующийся для формирования контента на экране моих бонусов, получаемого из статических страниц CmsGate по url документа

Object
curLevel
BonusLevel required
nextLevel
curLevelSumma
nextLevelSumma
toNextLevelSumma
buySumma
Price required
cashLevel
number

Уровень кешбека в процентах. Если null - не отображается (у тренеров и сотрудников)

availableBonusAmount
number required

Бонусный баланс

levelConfirmation
descriptionForAction
string

Описание действий пользователя (параметр text из справочника descriptionActionsClubProgram)

documentUrls
privatePersonType
BonusLevel

Модель уровня клубной программы.

Object
name
string required

Название уровня

code
string required

Код уровня

Enumeration:
STANDART
SILVER
GOLD
EMPLOYEE
TRAINER
ClubCardNumber

Модель бонусной карты карты.

Карта характеризуется только номером, баланс и уровень участия привязан к пользователю, а не к карте.

Для БЭ: Берется из GET-MOBILE-CLUB-CARD

Object
qrCode
string

QR-код

Example:
qr_loyality_B5EAF28BE54D85678AA1FAFC6E124F0A0429D0AE2C94C87A1D21438F675357787D528B8CC7024706915999A94D54949ADE156F2E048B154C449E158615B6BCF4
BonusBalance

Информация о текущем статусе в клубной программе и текуший баланс бонусов с детализацией по типам и датой сгорания.

Объект в основном формируется из http://rest-app.usergatetst.marathon.mesos.sportmaster.ru/swagger-ui/index.html?url=/v3/api/openapi.yml#/ClubPro/checkBalance

Object
totalAmount
number required

Общий баланс бонусов

cashLevel
number

Уровень кешбека в процентах. Если null - не отображается (у сотрудников)

cashAmount
number required

Сумма кешбек бонусов

promoAmount
number required

Сумма промо бонусов

bonusLevel
BonusLevel required
clubCard
details
Array of BonusAmountDetail required

Детализация по имеющимся бонусам

privatePersonType
familyMemberStatus
familyStatus required
BonusAmountDetail

За что были начислены бонусы, какого типа и когда они сгорят.

Object
bonusType
string required

Тип бонусов

Enumeration:
UNKNOWN
CASHBACK
PROMO
EMPLOYEE
amount
number required

Количество бонусов

dateEnd
DateOnly required
Types: BonusBalance
Responses: RewardsResponse
BonusHistoryItem

Элемент в истории операций с бонусами

Object
date
DateOnly required
dateEnd
summa
number required

Кол-во бонусов по транзакции. Приходит со знаком, по нему клиент понимает, списание это или пополнение

actionName
string required

Название акции

Example:
Кешбэк бонусы за покупки
transDesc
string required

Название транзакции

Example:
Начисление бонусов
transType
string required

Код типа бонусной транзакции

Example:
1
promoTerms
transDescByFamily
string

Описание транзакций для участников семейцного счёта

Example:
"Личные" / "Семейный счёт"
BonusInfoItem

Элемент информации о бонусе (тип бонуса, количество и дата сгорания/начисления)

Object
bonusType
string required

Тип бонуса

Enumeration:
CASHBACK
PROMO
amount
number required

Количество бонусов (целочисленное значение)

Example:
500
dateBegin
dateEnd
DateOnly required
PrivatePersonType

Тип учетной записи в клубной программе

Object
title
string required

Название типа аккаунта

Example:
Спортсмен
value
string required

Отражение энама из гейта

Enumeration:
STANDARD
EMPLOYEE
TRAINER
SPORTSMAN
INDIVIDUAL_SPORTSMAN
BonusDetails

Детальная информация о бонусе: название, тип, кол-во, дата сгорания, каналы и условия траты. Используется для блока “На что можно списать” на экране “Мои бонусы”

Object
bonusType
string required

Тип бонуса

Enumeration:
CASHBACK
PROMO
amount
number required

Количество бонусов (целочисленное значение)

Example:
1000
dateEnd
DateOnly required
promoTerms
PromoTerms required
BonusDocumentUrls

Urls документов статических страниц для формирования контента на экране моих бонусов

Object
cashback
string required

URL документа для шторки кешбэк бонусов

Example:
bonus_cashback
promo
string required

URL документа для шторки промо бонусов

Example:
bonus_promo
silverLevel
string required

[DEPRECATED] с версии 4.70. URL документа для шторки серебряного уровня

Example:
bonus_silver_level
goldLevel
string required

[DEPRECATED] с версии 4.70. URL документа для шторки золотого уровня

Example:
bonus_gold_level
faq
string required

URL документа для блока “Часто задаваемые вопросы”

Example:
bonus_faq
currentLevelInfo
string

URL документа статич. страницы для шторки текущего уровня пользователя

Example:
current_silver_level
nextLevelInfo
string

URL документа статич. страницы для шторки следующего уровня пользователя

Example:
next_gold_level
BonusBalanceItem

Элемент количества бонусов за какой то день

Object
date
DateOnly required
amount
number required

Количество бонусов в этот день

BonusCoupon

Элемент бонусная акция

Object
accrualCode
string required

Код начисления

Example:
12345
actionName
string required

Наименование акции

Example:
Акция
dateBegin
DateOnly required
dateEnd
DateOnly required
textLegal
string

Текст условия акции

Example:
Применяется только 1 раз
textDetail
string

Текст для ссылки подробнее на шторке акции

Example:
Подробнее
color
image
string

Ссылка на изображение промоакции

Example:
https://cdn.sptmr.ru/upload/content/cmsgate/ru_sm/smprod/coupons/cms_auto_upload/image-2021-08-19-15-35-08-547.png
refDetail
string

Ссылка на подробности акции

Example:
https://www.sportmaster.ru/news/31690304/
PromoTerms

Условия акции: каналы, условия траты и ссылка на условия акции

Object
spendingTerms
string required

Условия траты бонусов

Example:
На все товары онлайн и офлайн
spendingChannel
string

Канал траты бонусов

Example:
Онлайн-покупки и розница
url
string

Ссылка на условия акции

Example:
https://www.sportmaster.ru/promo/38962110/
BonusLevelConfirmation

Информация для динамического уровня клубной программы:

  • сумма для подтверждения уровня
  • дата проверки уровня
  • дата действия уровня

Объект возвращается, если FT dynamicLevelCpEnabled включен. Если выключен или у клиента базовый текущий уровень, то объект передается null

Object
toConfirmLevelSumma
Price required
confirmLevelDate
DateOnly required
levelValidityDate
DateOnly required
Message
Object
messageId
string required

Идентификатор сообщения

messageHeader
string

Заголовок сообщения

messageText
string

Тело сообщения

createdDate
linkMobileApp
string

Ссылка МП

image
hasBeenRead
boolean

Прочитано

NotificationTab

DEPRECATED, можно удалить, когда будет выпилен ФТ newMessageCenterEnabled

Object
tabName
string required

Имя вкладки

Example:
Заказы
slot
string required

Слот для запроса вкладки

Example:
"message_center_order_status"
LastMessage
Object
text
string required

Текст последнего сообщения

Example:
"Ваш заказ 12345-6789 уже в пути!"
createdDate
Types: Slot
Slot
Object
code
string required

Код раздела

Example:
"message_center_order_status"
title
string required

Заголовок раздела

Example:
"Заказы"
subtitle
string required

Подзаголовок раздела

Example:
"Доставка, самовывоз, возвраты"
imageUrl
ImageUri required
unreadMessagesCount
integer required

Количество непрочитанных сообщений в разделе

Example:
3
lastMessage
LastMessage required
SportsmanInvitation

Данные спортсмена для отправки приглашения

Object
phone
string required

Телефон спортсмена

Example:
79000000000
sportsmanName
string required

Имя спортсмена

Example:
Алексей
AddSportsman

Данные спортсмена

Object
invitationCode
string required

Код приглашения

Example:
100000004241755471
Sportsman

Модель спортсмена

Object
invitationCode
string required

Код приглашения

Example:
100000000216263150
sportsmanName
string

Имя спортсмена

Example:
Алексей
firstName
string

Имя из анкеты

Example:
Алексей
lastName
string

Фамилия из анкеты

Example:
Иванов
phone
string required

Телефон спортсмена

Example:
79000000000
status
boolean required

Статус регистрации

Example:
true
TrainerStatus
Object
mnemocode
string required

Мнемокод статуса из UserGate

name
string required

Название статуса

Example:
Подтвержден
nameColor
string required

Цвет названия статуса

Example:
#4EB529
descShort
string required

Описание статуса в профиле

Example:
Документы проверены. Статус тренера подтвержден
descFull
string

Описание статуса для шторки в разделе ЛК тренера

Example:
Документы проверены. Статус тренера подтвержден еще на один год
icon
string

Иконка для статуса в разделе ЛК тренера

Example:
https://cdn.sportmaster.ru/upload/content/cmsgate/ru_sm/smuat/mobile_app_hh_4.0/icons/trainer_statuses/ok.png
child
Object
sex
string required

Пол ребенка

Enumeration:
MALE
FEMALE
birthDate
DateOnly required
Types: Anketa
TrainerFile
Object
fileName
string required

Наименование файла с расширением

body
string required

Файл закодированный в base64 на фронте

FileUrl
Object
fileUrl
string required

Ссылка на документ

Example:
https://mir-cd-uat.web.local/efs /process?param=vkYWG31BrDxvvvWyQefl15dFBeknXH/dQZx0LBK+HfAOLx8hiUbzhdLvZ66ZaxTLI1vDLNW2wf MWv6elcCwpdsfTZZ/A/88uDgCP9Z3FEfZj4REKKdSLxdG592ohzbGZAQlVJRm ECJCprQg21cVMu2PzuL16g9c2pR8nRWEQwyFvNSkjCFyI1zafTPOfkVElzQBrkp2fK4gqpBXvnMGcfxL6nG9bF+O0xiU8jM0tZ+ABGU5oWeXSCGv2RrRD1M1WF/V3hKY6vdp04uT6U/wMKQ==
isBadFile
boolean required

Булевой атрибут, был ли в файле вирус

Responses: UploadMirResponse
TrainerForm
Object
firstName
string required

Имя

lastName
string required

Фамилия

middleName
string

Отчество

sex
string required

Пол

Enumeration:
MALE
FEMALE
birthDate
DateOnly required
phoneNumber
Phone required
email
string required

email

registryLink
string

Ссылка на реестр

Example:
https://registry.web.local
SportKinds
Object
id
string required

Идентификатор вида спорта

name
string required

Название вида спорта

Responses: SportKindsResponse
TrainerDocuments
Object
docUrl
string required

Единая ссылка на документы тренера из МИР

vrowid
string required

Идентификатор загруженных документов

IndividualSportsmanForm
Object
firstName
string required

Имя

lastName
string required

Фамилия

middleName
string

Отчество

birthDate
DateOnly required
email
string required

email

Messenger
Object
name
string
url
string required
iconUrl
string
FavoriteSportKinds
Object
id
string required

ID вида спорта

name
string required

Наименование вида спорта

publicationSportKind
Object
id
string required

Идентификатор публикации в CMS Gate

url
string required

URL публикации в CMS

announcement
string

Контент для шапки экрана

body
string

Контент для инструкции экрана

Reward

Вознаграждение

Object
rewardCode
string required

Код вознаграждения

dateBegin
DateOnly required
dateEnd
DateOnly required
price
number required

Стоимость в баллах

isAvailable
boolean required

Доступно для пользователя

isPurchased
boolean required

Куплено пользователем

pointsToBuy
number

[DEPRECATED] c версии 4.68. Нужно еще баллов чтобы приобрести

rewardContent
RewardContent required
freeAwardsLevel
Responses: RewardsResponse
RewardContent

Контент вознаграждения

Object
rewardType
string required

Тип вознаграждения

Enumeration:
TEXT
LINK
title
string required

Заголовок

text
string

Текст

image
moreUrl
string

Ссылка на подробности акции

resultButton
resultText
string

Текст результата вознаграждения. Для типа с текстом

Types: Reward
RewardButton

Модель кнопки вознаграждения

Object
buttonText
string required

Текст кнопки

buttonUrl
string required

Ссылка кнопки

ProfileCurrencies
Object
bonusAmount
number required

Количество бонусов

pointsAmount
number required

Количество баллов

exchangeRate
integer required

Коэффициент конвертации бонусов в баллы

Responses: RewardsResponse
RewardBanner

Баннер для экрана витрины предложений/вознаграждений

Object
image
ImageUri required
imageAssetId
string

ID ассета, если баннер был загружен через Laika

url
string

Ссылка на обработку диплинка

Example:
sportmaster://ecosystem
id
string required

ИД баннера

slot
string required

Слот баннера

Example:
mobile_app_banner_rewards_1
Responses: RewardsResponse
FreeAwardsLevel

Уровень клубной программы, при достижении которого вознаграждение станет беслпатным

string
Enumeration:
STANDART
SILVER
GOLD
Types: Reward
client-interests
Object
forWhomShopping
Array of Interest

Список для кого покупают

sportInterests
Array of Interest

Список интересов

styles
Array of Interest

Список выбранных стилей

surveyPassed
boolean

Признак пройденности опроса

Interest
Object
text
string required

Наименование

Example:
Теннис
image
ClientSurvey
Object
title
string required

Текст заголовка для экрана “Приветствия”

Example:
Настройте свой Спортмастер!
text
string required

Текст для экрана “Приветствия”

Example:
Улучшим подборку товаров и соберём персональные акции и предложения
questions
SurveyAnswer
Object
code
string required

Код ответа в опросе

Example:
male или female
text
string required

Заголовок ответа

Example:
Плавание
image
isSelected
boolean required

Был ли ранее выбран этот ответ

SurveyQuestions
Object
gender
SurveyQuestion required
forWhomShopping
SurveyQuestion required
sportInterests
SurveyQuestion required
styles
Array of SurveyQuestion required

Вопросы для выбора стилей

Types: ClientSurvey
SurveyQuestion
Object
id
integer required

Идентификатор вопрос. Значение 1 означает, что это первый вопрос из списка

Example:
1
nextQuestionId
integer required

Идентификатор следующего вопроса. Значение -1 означает, что это последний вопрос из списка

Example:
2
mnemocode
string

Мнемокод вопроса (используется для вопросов “Нравится этот стиль?”)

Example:
SPORT_STYLE
title
string required

Заголовок вопроса

Example:
Нравится этот стиль?
answers
Array of SurveyAnswer required

Список ответов

content
GenderImages
Object
male
Array of ImageUri

Изображения для мужского пола

female
Array of ImageUri

Изображения для женского пола

interest-style
Object
mnemocode
string required

Мнемокод стиля

selected
boolean required

Признак стиля (выбрано или нет)

ContentRefProg
Object
header
string

Заголовок в блоке с кнопкой

Example:
РЕКОМЕНДУЙТЕ НАС ДРУЗЬЯМ
subtitle
string

Подзаголовок в блоке с кнопкой

Example:
и получайте бонусы
referralButton
document
RefProgDocument
Object
id
string required
Example:
Идентификатор документа в CMS Gate
content
string required
Example:
Контент для экрана “Пригласи друга”
RefButton

Информация для отображения кнопки реферальной программы

Object
buttonUrl
string required

Url для кнопки “Поделиться ссылкой”

Example:
https://sportmaster.onelink.me/imJi/ref?deep_link_sub1=2132321332
buttonText
string

Текст для кнопки “Поделиться ссылкой”

Example:
Поделиться ссылкой
PersonalDiscountBase
Object
nodeId
string required

Идентификатор группы скидок

Example:
18208620009
PersonalDiscount
Object
base
dateBegin
dateEnd
nodeName
string required

Название группы

Example:
15% на мужские жилеты
url
string

Ссылка на ветку каталога

miniatures
Array of ImageUri

Фотографии товаров данной группы

discountCode
string required

Код скидки

Example:
12345
badges
Array of BadgeParameters

Массив бейджей

buttonType
string

Тип кнопки

Enumeration:
ACTIVATION
CARD
discountPercent
integer required

Размер скидки в %

showDate
boolean required

Признак необходимости отображения даты

ButtonParameters
Object
title
string required

Заголовок в кнопке

type
string required

Тип кнопки

Enumeration:
ACTIVATION
CARD
buttColor
Color required
textColor
Color required
BadgeParameters
Object
title
string required

Заголовок в плашке

bgColor
Color required
textColor
Color required
type
string required

Тип бейджа

Enumeration:
STATIC
TIMER
icon
string

Тип изображения в бейдже

Enumeration:
FIRE
expiresIn
Family

Информация о семейном счёте

Документация: https://confluence.app.local/pages/viewpage.action?pageId=845282762

Object
id
string required

Идентификатор семьи

currentMember
invitationSenderName
string

Имя отправителя приглашения (придёт, если статус текущего участника - INVITED)

invitationSenderPhone
string

Телефон отправителя приглашения (придёт, если статус текущего участника - INVITED)

Example:
79999999999
members
Array of FamilyMember required

Информация об участниках в семейном аккаунте

settings
FamilySettings required
Responses: FamilyResponse
CurrentFamilyMember

Информация о статусе пользователя в семье

Object
id
string required

Идентификатор участника в семейном счёте

phone
string required

Номер телефона участника семейного счёта

status
familyStatus required
availableInvitationsAmount
integer

Количество доступных приглашений для владельца

limitsRefreshDate
invitationEndTime
availableJoinsAmount
integer

Количество доступных переходов в другую семью

limitsJoinsRefreshDate
Types: Family
familyStatus

Статус участника семейного счёта

string
Enumeration:
OWNER
INVITED
NOT_REGISTERED
MEMBER
NOT_FAMILY_MEMBER
FamilyMember

Информация о других участниках в семейном счёте

Object
name
string required

Имя пользователя (для приглашённых участников задавалось владельцем)

phone
string required

Телефон пользователя

Example:
79999999999
status
familyStatus required
id
string required

Id участника

inviteCode
string

Код приглашения

Types: Family
Информация о клубной программе и бонусах пользователя

Информация о бонусах и клубной программе

Документация: https://confluence.app.local/pages/viewpage.action?pageId=845282762

Object
bonusLevel
BonusLevel required
totalAmount
integer required

Текущее количество бонусов пользователя (вместе с семейными, если они есть)

personalAmount
integer

Текущее количество бонусов пользователя без учёта семейный бонусов

Responses: FamilyResponse
FamilySettings

Общие настройки для семейного счёта

Object
maxInvitations
integer required

Количество приглашений доступное для владельца в промежутке времени

Example:
3
maxInvitationsDates
integer required

Период ограничения числа приглашений в семейный аккаунт (в днях)

Example:
90
maxJoins
integer required

Количество возможных присоединений к семейному счёту в промежутке времени

Example:
3
maxJoinsDays
integer required

Период ограничения числа присоединений к семейному счёту (в днях)

Example:
90
maxFamilySize
integer required

Количество участников семейного счёта (с учетом владельца)

Example:
4
Types: Family
FamilyQuestion

Информация о частозадаваемых вопросах семейного счёта

Object
answerPageUrl
string required

URL статической страницы с ответом

Example:
/family/answer/1
title
string required

текст вопроса

Example:
Что такое семейный счёт?
BenefitSection

Секция с акцией

Object
type
content
BenefitBanner required
Responses: BenefitsResponse
TypeBenefitSection

Справочник типов секций с акциями. Для независимых от условий секций (ФТ, тип пользователя и прочее. Т.е. те секции, которые не нужно дополнительно обрабатывать на бэкенде) задается общее название “section_порядковый номер”

string
Enumeration:
favourite_sport
rewards
section_1
section_2
section_3
section_4
other
BenefitBanner

Баннер для отображения секции с акцией

Object
title
string required

Название секции

image
ImageUri required
imageAssetId
string

ID ассета, если баннер был загружен через Laika

url
string

Ссылка на обработку диплинка

layout
id
string required

ID баннера

slot
string required

Баннерный слот

BenefitBannerLayout
string
Enumeration:
half_h
half_v
quarter
BaseShop

Модель магазина для списков

Object
id
string

Подразделение (в терминах МДМ)

Example:
13890299
address
string

Адрес магазина

Example:
г. Москва, Варшавское ш., д.129А
shopNumber
integer

Номер магазина

name
string

Название

Example:
Варшавское ш., 129А
weekSchedule
Array of WeekSchedule

График работы магазина

shopFormat
geoPoint
metroStations
Array of MetroStation

Станции метро

isConvenience
boolean

Круглосуточный ли магазин

shopCondition
string

Состояние магазина

Enumeration:
SHOP_NEW
SHOP_PRESENT
SHOP_CLOSED
phone
city
shopWay
string

Как добраться без машины

inventory
Shop

Полная модель магазина. Обрати внимание на наследование

All of
Object
autoWay
string

Как добраться - на машине

shopWay
string

Как добраться - без машины

situationTc
string

Расположение в ТЦ

tcShortName
string

Наименование ТЦ

Responses: ShopResponse
WorkTime

Время работы магазина

Object
workStartTime
string

Время начала работы

workEndTime
string

Время закрытия

Types: WeekSchedule
WeekSchedule

График работы магазина по дням недели

Object
dayNumber
integer

Номер дня недели

dayName
string

День недели

workTime
Types: BaseShop
ShopFormat

Формат магазина

Object
id
string

Код формата

onlineShopName
string

Название для интернет магазина. МП использует это

image
Types: BaseShop
MetroStation

Станция метро

Object
id
string
geoPoint
line
name
string

название

MetroLine

Линия метро

Object
id
string
name
string
color
Types: MetroStation
GeoCity

Город с координатами

Object
id
string required

Айди города

name
string required

Название города

geoPoint
Responses: ShopsResponse
FavouriteShop
Object
shopNumber
string required
Pickpoint
Object
id
string required

Идентификатор ПВЗ

name
string required

Название ПВЗ

address
string

Адрес ПВЗ

routeDescription
string

Описание проезда

phone
string

Телефон

wareStoragePeriod
string

Срок хранения товара

Example:
2 дня
geoPoint
metroStations
Array of MetroStation required
insideLocate
string

Расположение внутри

workTime
string

График работы

type
PickpointType required
providedServices

Предоставляемые услуги

isConvenience
boolean

Круглосуточно ли работает ПВЗ.

Для БЭ: поле высчитывается искусственно по полю workTime. Если там “круглосуточно”, то тут true

unavailableServices

Недоступные услуги для данного ПВЗ

PickpointType

Вид ПВЗ.

Для БЭ: http://rest-app.geogate-uat.k8s-dev.gksm.local/swagger-ui/index.html?url=../openapi.json#/deliveryPoints/searchDeliveryPoint

Калька с userDeliveryPointType

Картинок в гейте нет, картинки нужно взять у дизайнеров и залить в CMS гейт в соотвествии с типами.

Вроде как есть только 3 типа Отделение почты, Постамат, Пункт выдачи заказа. Так сказала ПЛ.

Object
id
string

Идентификатор типа ПВЗ для пользователя

name
string

Название

image
string

Иконка ПВЗ.

Для Дена: нужно как то узнать какие есть вообще виды пвз и составить им таблицу сотвествия по картинкам. В гейтах картинки нет.

Types: Pickpoint
PickpointService

Услуги, которые предоставялет ПВЗ.

Для БЭ: калька с http://rest-app.geogate-uat.k8s-dev.gksm.local/swagger-ui/index.html?url=../openapi.json#/deliveryPoints/searchDeliveryPoint providedServices

Object
id
string

Айди услуги

Example:
10020299
name
string

Название услуги

Example:
Оплата наличными
mnemocode
string

Мнемокод услуги, чтобы фронт хардкодился на него в своей логике

Example:
cash
Types: Pickpoint
ShopInventory

Инвентаризация в магазине

Object
begin
end
beginDateTime
endDateTime
cause
string

Причина инвентаризации

Enumeration:
COMPLETE_INVENTORY
PARTIAL_INVENTORY
SCHEDULED_INVENTORY
Types: BaseShop
InStoreMenuItem

Пункт меню “Я в магазине”

Object
name
string required

Название пункта меню

icon
ImageUri required
linkUrl
string

Ссылка на раздел

InStoreShopInfo

Модель магазина для сервиса “Я в магазине”

Object
shopNumber
string required

Номер магазина для сервиса “Я в магазине”

address
string required

Адрес магазина для сервиса “Я в магазине”

ObtainmentStructure
Object
shopNames
Array of string

Массив названий магазинов

delivery
boolean required

Признак доставки

Category

Категория каталога

Object
id
string required

Идентификатор категории

Example:
muzhskaya_obuv
name
string required

Имя категории

Example:
Мужские полуботинки
uri
string required

Путь до ресурса. Используется для получения товаров и загрузки подкатегорий

Example:
category/muzhskaya_obuv/cross
image
displayCode
type
string required

Тип страницы каталога: обычная ветка или страница с персональными товарами

Example:
"categoryBranch" или "categoryPromo" или "seller"
Brand

Бренд

Object
id
string required

Идентификатор бренда

Example:
nike
name
string required

Название бренда

Example:
Nike
image
url
string

Путь до ресурса. Используется для загрузки подкатегорий

Example:
brand/nike/cross
displayCode
CatalogDisplayCode

Способ отображения детальной информации

string
Enumeration:
categories
product_tiles
content
deeplink
constructor
CatalogMenuItem

Пункт меню каталога

Object
id
string

Идентификатор меню. Только для меню ContentGate

name
string required

Название пунтка меню

Example:
Женщинам
linkUrl
string

Ссылка на детальную информацию ресурса. Отсуствует у “рут” пунктов меню

Example:
/catalog/zhenskaya_obuv
displayCode
icon
sections
Array of CatalogMenuItem

Вложенные пункты меню

CatalogMenuItemDeeplinkType
string
Enumeration:
brands
sports
guides
PopularSport

Модель описывающая популярный вид спорта

Object
name
string required

Имя вида спорта

Example:
Бег
uri
string required

Путь до ресурса. Используется для получения товаров и загрузки подкатегорий

Example:
category/muzhskaya_obuv/cross
image
displayCode
id
string

ID вида спорта, полученного из ContentGate (используется для отправки событий)

NewProductSizeTableDetails
Object
values
string required

Значение характеристики размерной таблицы

NewProductSizeTableAttributes
Object
code
string required

Код характеристики размерной таблицы

name
string

Название характеристики размерной таблицы

details

Массив значений характеристики размерной таблицы

measureSizeType
NewProductSizeTable
Object
attributes

Характеристики размерной таблицы

PotentialBonusItem
Object
actionName
string required

Наименование акции

summa
integer required

Сумма бонусов по акции

accordionTabs
Object
type
string required
Enumeration:
DESCRIPTION
CHARS
TECHNOLOGIES
DOCS
REVIEWS
QUESTIONS
isPartView
boolean required

Флаг предраскрытия вкладки

partViewPx
number

Количество пикселей предраскрытия

AdBannerCatalog
Object
id
string required

ID слота под баннер (заводится на стороне AdFox)

parameters
Object

Параметры для интеграции слота под баннер. Формат Map<String, String>

Example:
{
"adf_ownerid": "11641946",
"adf_p1":"dfrxr",
"adf_p2":"fkbd",
"adf_pt": "b",
"adf_pd": "",
"adf_pw": "",
"adf_pv": "",
"adf_prr": "",
"adf_pdw": "",
"adf_pdh": ""
}
Responses: AdBannerResponse
Registries
Object
type
string required

Тип регистра

Enumeration:
registries_brands
registries_sport_type
registries_pers_brands
registries_pers_sports
header
string

Заголовок регистра

registers
Array of Register required

Массив регистров

Banners
Object
type
string required
banners
Array of BannerShort required
BannerShort
Object
id
string required

ID баннера

text
image
url
string

Ссылка баннера

logo
string

Логотип для баннера

Types: Banners
Text
Object
title
string

Заголовок

subtitle
string

Подзаголовок

color
string

Цвет текста

alignment
string

Выравнивание текста

Types: BannerShort
Html
Object
html
string required

HTML текст

Lookzones
Object
header
string required

Заголовок комплектов

subtitle
string required

Подзаголовок комплектов

backgroundImage
backgroundColor
textColor
lookzones
Array of Look required

Массив луков

button
Look
Object
id
string required

ИД комплекта

price
ProductKitPrice required
productsCount
string required

Количество товаров

previewUrl
Types: Lookzones
Button
Object
link
string required

Ссылка кнопки

text
string required

Текст кнопки

color
Types: Lookzones
Register
Object
id
string

ИД регистра

name
string required

Наименование регистра

image
url
string

Ссылка на регистр

displayCode
Types: Registries
RecommendationTab
Object
caption
string required

Наименование таба

products
Array of ProductColorModel required

Массив товаров

slot
string

Слот рекомендаций (может быть любой код)

strategyId
string

ID алгоритма

Services
Object
header
string required

Заголовок сервисов

subtitle
string

Подзаголовок сервисов

background_image
string

Изображение фона

background_color
string

Цвет фона

text_color
string

Цвет текста

services
Array of Service required

Массив сервисов

Service
Object
title
string required

Наименование сервиса

image
string required

Картинка сервиса

url
string

Ссылка сервиса

Types: Services
Recommendations
Object
slot
header
string required

Название рекомендации

background_image
string

Подложка для рекоблока

background_color
string

Цвет фона для рекоблока

text_color
string

Цвет текста для рекоблока

strategyId
string required

ID алгоритма

showType
string required

Мнемокод типа отображения блока рекомендаций

colorModelIds
Array of ProductColorModel required

Массив товаров

ProductSelection
Object
header
string

Заголовок товарной подборки

showType
string required

Мнемокод типа отображения подборки

background_image
string

Изображение фона

background_color
string

Цвет фона

text_color
string

Цвет текста

colorModelIds

Массив товаров

tabs

Массив табов

artMedia
Object
url
string required

URL на статью

Example:
https://www.sportmaster.ru/media/articles/10522836/
title
string required

Заголовок статьи

Example:
Как подобрать футбольную защиту.
icon
ImageUri required
ProductsResponseFormat
string
Enumeration:
FULL
LIGHT
FacetGroup
Object
facetId
string required

Идентификатор

Example:
brand
caption
string required

Текстовое описание пригодное к отображению на экране

Example:
Бренд
facetValues
Array of FacetItem required

Значения данной группы

displayType
subqueryWoFacetVals
string

Ссылка для отключения всех фасетов группы. Возвращется при включенных фильтрах этой группы

siteTip
string

Подсказка по фильтру

Types: ProductsMeta
FacetItem
Object
value
string required

Идентификатор элемента

Example:
delivery
isAvailable
boolean required

Доступность элемента для выбора

Example:
false
selectedByUser
boolean required

Флаг выбран ли данный пункт фильтра

Example:
true
subqueryReference
string required

Параметр для выполнения запроса подтверждающий выбор данного пункта. Если отсутсвует, передавать пустую строку (для фасета доступных магазинов)

Example:
/catalog/vidy_sporta_/futbol/forma/detskaya_forma?f-pricefrom={facetValue}&f-priceto={facetValue}&f-availability=delivery&sortType=BY_PRICE_ASC"
subqueryColorModelCount
integer required

Если отсутсвует передавать 0

uiCaption
string

Заголовок. Отсуствует у фасетов городов и фасетов плашек

Example:
Доставка
availableShops
Array of ShopFacetItem

Передавать для фасета доступных магазинов

siteTip
string

Подсказка по фильтру

maxLength
integer

Поле необходимо для ограничения поля ввода для фасета с типом arbitrary, передаем фиксированное значение

Example:
6
RangeFacetItem

Дополнительная информация о фасете диапозона

Object
min
integer required

Минимальное значение

Example:
10
max
integer required

Максимальное значение

Example:
1000
from
integer required

Выбранное минимальное значение

Example:
100
to
integer required

Выбранное максимальное значение

Example:
900
Types: FacetItem
ColorFacetItem

Дополнительная информация о цветовом фасете

Object
value
Color required
icon
Types: FacetItem
ShopFacetItem
Object
shopId
string required

Идентификатор магазина

selectedByUser
boolean required

Признак выбранности магазин

subqueryReference
string required

Параметр для выполнения запроса подтверждающий выбор данного пункта

Types: FacetItem
ProductSku

Информация о размере товара

Object
id
string required

ID MDM

Example:
URN0YCJ7ZD
code
string required

Артикул SKU

Example:
185609540299
isReplenishment
boolean required

Признак пополнения продукта (для листа ожидания)

availability
Object required
isOnlineAvailable
boolean required

Признак того, что SKU доступна онлайн (самовывоз, доставка, довоз, пункт выдачи заказов)

Example:
true
isOfflineAvailable
boolean required

Признак того, что SKU доступна оффлайн

Example:
true
sizes
Array of ProductSkuSize required

Размерная сетка

sizeFacetValue
string required

Значение размера в фасетах

Example:
size_33
associatedAttributes
Array of AssociatedAttr

Ассоциирующие атрибуты

ProductColorModel
Object
id
string required

ID цветомоделии

Example:
23260550299
name
string

Наименование

Example:
полупальто с искусственным мехом
code
string

Артикул Цветомодели

Example:
LJ6VA4-T1
skus
Array of ProductSku required

Размеры

Min items: 1
price
ProductPrice required
rating
number

Рейтинг

Example:
4.9
reviews
integer

Кол-во отзывов

Example:
120
markers

Шильдики на фото

[DEP] richMarker
[DEP] richIcon
string

[DEP] с версии 4.64 Ссылка на иконку RICH для ячейки ЦМ

dailyOfferExpiresIn
integer

Количество секунд до конца дня (до конца завершения акции Товар дня)

Example:
11655
primaryPhotoUrl
medias
Array of ProductMedia required

Ссылки на медиа файлы

linkedColorModels

Связанные ЦМ

[DEP] sizeScale
shareLink
string

Ссылка для шаринга

archived
boolean required

Архивный ли это товар

productSetAvailable
boolean required

Флаг наличия комплектов (promoPlates)

personalPrice
onSaleSoon
boolean

Признак скоро в продаже

hasAssociatedAttributes
boolean required

Признак использования ассоциирующих атрибутов

sizeTableName
string

Название “Таблица размеров”/“Правила подбора”

bnpk
expertHints
sizeML
PersonalPrice
Object
price
discountList

Коллекция уменьшателей

info
string

Информация о перс. цене

potentialBonuses
coupon
personalPromo
ProductPrice
Object
catalog
Price required
retail
Price required
discountRate
number

Скидка %

discountAmount
Price required
RecentProductColorModel
Object
dateAdd
DateOnly required
colorModel
FacetDisplayType
string
Enumeration:
list
range_slider
toggle
arbitrary
ProductColorModelBadge
Object
title
string required
backgroundColor
Color required
textColor
icon
type
string

Тип взаимодействия

Enumeration:
static
link
hint
popup
hints
description
string

Текст для шторки

Example:
Скидка 20% на куртки Columbia"
url
string
Example:
/catalog/url/
id
string

id плашки (необходимо для отправки событий)

typeEditor
string

Способ редактирования шторки для плашки: text или wysiwyg

MeasureSizeType

Правила измерения

Object
id
string
name
string

Название правила измерения

description
string required

Описание правила измерения

imageUrl
string required

Изображение

ProductSkuSize
Object
id
integer required
Enumeration:
1
2
3
4
5
6
name
string

Наименование сетки

Example:
RUS
value
string required

Значение размера

footValue
string

Длина стопы для размерного ряда

ProductsSearchText
Object
initQueryText
string required

Исходный запрос

correctedQueryText
string

Исправленный запрос

Types: ProductsMeta
ProductsMeta
Object
facets
Array of FacetGroup required

Информация по фильтрам

sorts
Array of FacetItem required

Доступные сортировки

category
count
integer required

Количество найденных цветомоделей для всего запроса

Example:
44
subqueryReference
string required

Текущая ссылка для которой запрашиваем данные

subqueryRefWoFacets
string required

Ссылка на отключение всех фасетов

queryTextCorrection
dailyOfferExpiresIn
integer

Количество секунд до конца дня (до конца завершения акции Товар дня)

Example:
11655
productRedirect
boolean required

Нужно ли перенаправлять на экран товара

mediaRedirect
boolean required

Нужно ли перенаправлять на страницу нетоварного контента

mediaLink
string

Ссылка редиректа (товарный, нетоварный)

shareLink
string

Ссылка для шаринга поисковой выдачей/веткой каталога (может прийти null)

alternativeRedirect
boolean

Признак редиректа на альтернативную подборку товаров

obtainmentPlate
Object required

Данные для плашки в листинге о способе получения

[DEP] showPlate
boolean required

DEP с версии 4.8X

quickFacets
Array of string required

Информация по быстрым фильтрам

Responses: ProductsResponse
ProductMedia
Object
urls
Array required

Ссылка на ресурсы

One of
string
ProductMediaType
string
Enumeration:
PHOTO_2D
PHOTO_3D
FEATURE_PHOTO_3D_1
FEATURE_PHOTO_3D_2
PHOTO_3D_INT
PHOTO_3D_MOV
VIDEO
WEBP
Types: ProductMedia
ProductBrand
Object
name
string required

Наименование бренда

image
string

Изображение бренда

url
string

Ссылка на раздел бренда в каталоге

imageBreadCrumbs
string

Изображение бренда (для хлебных крошек)

LinkedColorModel

В качестве ссылки на изборажение нужно использовать - primarySubjectPhotoUrl, если его нет то primaryPhotoUrl

Object
id
string required

Идентификатор цветомодели

compositeColor
photoUrl
ProductCompositeColor

В гейте два поля с текстовым описание. Используем rdText, если его нет то mainText

Object
text
string required

Текстовое представление цвета

Example:
Синий
hexColor
ProductSizeTable
Object
name
string

Название статичной страницы. Если отсуствует, но есть tableHtml, то на прокси поставляйте значение “Таблица размеров”. А если отсутствует, но есть jpgImageUrl, то подставляется значение “Правила подбора”

tableHtml
string

HTML страница. Возврашать только для запроса “Таблица размеров товара”

Example:
<table border=\"0\" cellspacing=\"0\" cellpadding=\"2\" style=\"border-top: 1px solid rgb(0, 0, 0); border-left: 1px solid rgb(0, 0, 0);\"> \r\n <tbody> \r\n <tr> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">Размер производителя</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">Российский размер</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">Обхват груди,см </td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">Обхват талии,см </td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">Обхват бедер, см </td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">Длина рукава,см </td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">Обхват шеи,см </td> </tr>\r\n \r\n <tr> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">XXS</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">42</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">81-84</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">67-71</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">81-84</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">79</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">35</td> </tr>\r\n \r\n <tr> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">XS</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">44</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">84-89</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">72-74</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">84-90</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">81</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">36-37</td> </tr>\r\n \r\n <tr> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">S</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">46</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">88-97</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">76-81</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">89-94</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">84</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">38-39</td> </tr>\r\n \r\n <tr> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">M</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">48-50</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">97-104</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">84-89</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">96-102</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">86</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">40-42</td> </tr>\r\n \r\n <tr> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">L</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">50-52</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">107-114</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">91-97</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">104-109</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">89</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">43-44.5</td> </tr>\r\n \r\n <tr> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">XL</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">54</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">117-125</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">99-107</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">112-117</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">91</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">45-47</td> </tr>\r\n \r\n <tr> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">XXL</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">56</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">127-135</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">109-117</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">119-125</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">94</td> <td style=\"border-image: initial; border-bottom: 1px solid rgb(0, 0, 0); border-right: 1px solid rgb(0, 0, 0);\">48-49.5</td> </tr>\r\n </tbody>\r\n </table>
jpgImageUrl
string

У части товаров вместо таблицы размеров может возвращаться правила подбора, которые возвращаются картинкой

Example:
https://static.sportmaster.ru/upload/content/cmsgate/ru_sm/smuat/size_scale/bike.jpg
ProductCharacteristicsGroup
Object
id
string required

Идентификатор группы

Example:
10000299
name
string

Название группы характеристик

Example:
Общие характеристики
values
Array of ProductCharacteristic required

Значения. Нужно фильтровать группы с пустыми значениями

ProductCharacteristic
Object
id
string required

Идентификатор закладки

Example:
obj_1089
name
string required

Название характеристики. По сваггеру поле опциональное, на прокси нужно фильтровать такие значения

Example:
Пол
values
Array of string required

Массив значений

Example:
["Женский"]
ProductClassifyingAttrs
Object
id
string required

Идентификатор характеристики

name
string required

Название характеристики

value
string required

Значение характеристики

ProductTechnology
Object
id
string

Идентификатор технологии

Example:
everproof
name
string required

Наименование

Example:
EverProof
description
string required

Описание технологии. Значение брать из fullDescription

Example:
Усиленная прочная конструкция и износостойкие материалы гарантируют долгий жизненный срок.
image
RecommendationProductsGroup
Object
caption
string

Название рекомендации

Example:
С этим товаром также рекомендуют
slot
string

Слот рекомендаций (для CLP может быть любой код, для остальных используется мнемокод https://sportmaster.speca.handh.ru/#RecommendationSlot)

strategyId
string

ID алгоритма

showType
string

Мнемокод типа отображения блока рекомендаций. line, line_and_color, line_and_button, column, column_and_color, column_and_button, line_thin

type
string

Тип подборки или товарной рекомендации (используется для событий)

products
Array of ProductColorModel required

Массив товаров

backgroundImage
backgroundColor
textColor
tabs

Массив табов

FullProductColorModel
Object
description
string

Описание

Example:
<P>Пуховое полупальто</P> <P>- Водоотталкивающее покрытие ткани <BR>- Искусственный мех </P> <P>Рекомендуемый температурный режим: от -15 до -25</P> <P>СТРАНА ПРОИЗВОДСТВА: Китай</P>
barcode
string

Штрих-код EAN13

bnplMarker
videoBlock
Array of VideoBlock

Данные для видеоблока в КТ

bookmarks

Характеристики товара

footLengthDescription
string

Информация для шторки “Как узнать длину стопы?”

classifyingAttributes

Характеристики товара (Классифицирующие атрибуты)

technologies

Технологии

documents
Array of ProductDocument

Документ

richContent
string

Рич контент

richContentReadingTime
integer

Время в секундах, необходимое для прочтения рич контент. Используется для событий

richAttributes
Array of richAttribute

Рич атрибуты. Сниппеты

stickers
Array of ProductSticker

Стикеры

breadCrumbs

Хлебные крошки

productKitsAvailable
boolean required

Флаг наличия комплектов у товара

accordionTabs
Array of accordionTabs

Аккордеон

altProductCharacteristicList

Характеристики товара для альтернативной подборки гида

smartSuggestions
Array of SmartSuggestion

Умные подсказки для спортивного помощника

hasNewSizeTable
boolean required

Флаг наличия новой таблицы размеров

ProductDocument
Object
name
string required

Название документ

Example:
Инструкция для Torneo Comfort
fileUrl
string required

Ссылка на файл

Example:
https://cdn.sptmr.ru/upload/mdm/product_docs_for_ishop/a3c/43958990299.pdf
sizeInBytes
integer

Размер файла в байтах

Example:
6561459
ProductColorFullModel
ProductSticker
Object
id
string required

Идентификатор стикера

name
string required

Наименование

description
string

Описание

imageUrl
RecommendationSlot

Массив мнемокодов слотов рекомендаций

string
Enumeration:
PRODUCT_1
PRODUCT_2
PRODUCT_3
ADD_TO_BASKET_1
PRODUCT_ARCHIVE_1
BASKET_EMPTY_1
BASKET_ONE_PRODUCT_1
BASKET_PRODUCTS
ORDERS_1
ORDERS_2
COMPARE_1
COMPARE_2
COMPARE_3
MENU_1
MENU_2
CATEGORY_1
SEARCH_1
SEARCH_EMPTY_1
SEARCH_EMPTY_2
RECENT_PRODUCTS_1
WISHLIST_1
WISHLIST_OUT_OF_STOCK_1
WISHLIST_EMPTY_1
WISHLIST_EMPTY_2
SPORTS_1
MAIN_1
MAIN_2
SELLER_1
PHOTO_1
PHOTO_2
PRODUCT_TAB_1
PRODUCT_TAB_2
PRODUCT_TAB_3
PRODUCT_TAB_4
PRODUCT_TAB_5
PRODUCT_DESCRIPTION_1
PRODUCT_DESCRIPTION_2
ProductColorModelAvailability

Доступность товара для покупки, учитывая другие города

Object
availableBuy
boolean required

Доступность покупки

availableOffline
boolean required

Доступность покупки оффлайн

ProductBreadCrumb
Object
id
string required

id раздела хлебных крошек

name
string required

наименование раздела хлебных крошек

uri
string required

ссылка на раздел каталога

categoryType
string required

категория раздела

Enumeration:
Категория
displayCode
image
ProductSeller
Object
name
string required

Название

legalName
string required

Юридическое название

address
string

Юридический адрес

inn
string required

ИНН

logotype
infoPage
string required

Ссылка “что такое товары продавца?” на обработку диплинка

url
string

Ссылка на карточку продавца

id
string

Идентификатор

ProductInSet

Товар в комплекте

Object
id
string required

ID товара комплекта

image
string

Миниатюра товара комплекта

price
ProductPrice required
Types: ProductSet
ProductSet

Комплект

Object
name
string required

Название комплекта

image
string

Изображение комплекта

products
Array of ProductInSet required

Товары

PromoPlate

Комплекты в КТ

Object
name
string required

Название комплекта

imageUrlOnCard
string

Изображение комплекта

eventColorModels
Array of string

Массив ИД товаров в комплекте

AltProductCharacteristic

Характеристика товара альтернативной подборки гида

Object
id
string required

ИД характеристики

name
string required

Название характеристики

values
Array of string

Значения характеристики

ProductPersonalDiscount
Object
actionName
string

Название акции для клиента

summa
actionCode
integer

Код акции в Club Pro

discountType
string

Тип примененной скидки из справочника MDM

RecommendationGroup
Object
caption
string

Название рекомендации

Example:
Также рекомендуем
recProductId
string required

Идентификатор товара, для которого ищем рекомендации (для маппинга)

strategyId
string

ID алгоритма

showType
string required

Мнемокод типа отображения блока рекомендаций. line, line_and_color, line_and_button, column, column_and_color, column_and_button, line_thin

products
Array of string required

Массив идентификаторов цветомоделей товаров (productId)

AssociatedAttr

Ассоциирующий атрибут

Object
id
string required

Код характеристики

Example:
ski_stiffness_facet
name
string required

Навание характеристики

Example:
Жесткость лыж
value
string required

Значение характеристики

Example:
STIFF
Types: ProductSku
AccessoriesDeliveryOption
Object
type
string required

Тип способа получения

Enumeration:
DELIVERY
INTERNAL_PICKUP
ALL
shopNumber
number

Номер магазина самовывоза. Отправляется если тип INTERNAL_PICKUP

AccessoriesCategory

Категория аксессуаров

Object
id
string required

id категории

Example:
16900310299
name
string required

Наименование категории

Example:
Защитные элементы
image
subcategories

Подкатегории

ProductVideo
Object
url
string required

Ссылка на видео для вкладок видеоблока

shareLink
string required

Ссылка на видео для вкладок видеоблока, нужна для функционала “Поделиться”

Types: VideoBlock
VideoBlock
Object
name
string required

Наименование вкладки для видеоблока

productVideos
Array of ProductVideo required
PotentialBonuses
Object
total
number required

Общее число бонусов за покупку

potentialBonusList

Массив детализации бонусов

ProductPersonalPrice
Object
productId
string required

id товара

personalPrice
Bnpk

Значения, в пределах которых пользователь может указать номинал подарочной карты

Object
from
integer required

Нижний лимит цены

Example:
500
to
integer required

Верхний лимит цены

Example:
150000
length
integer required

Ограничение символов, которое может ввести пользователь. Вычисляем из верхнего лимита цены

richAttribute

Сниппет. Единица рич контента

Object
richType
string required

Тип рич контента

Example:
"text", "image", "video", "vert_video", "text_image", "text_video", "text_image_right", "text_image_left", "text_slider_right", "text_slider_left"
header
string

Заголовок

richText
string

Текст описание. Может быть с html тегами

mediaType
string required

Тип медиа

Example:
"PHOTO_2D", "VIDEO", "RICH_TEXT"
mediaUrls
Array of string

Ссылки на медиа

readingTime
integer required

Время необходимое для прочтения контента. Требуется для событий, больше 0 только для типа text

PaymentInfo

Объект с информацией о платеже BNPL

Object
avgPayment
Price required
paymentsAmount
integer required

Количество платежей

description
string required

Описание для шторки сервиса BNPL

PlateLight
Object
plateId
string required

Id плашки

image
string required

Изображение для плашки

Types: MarkerModel
MarkerModel
Object
type
string required

Тип BNPL сервиса

plate
PlateLight required
SmartSuggestion
Object
id
string required

ID умной подсказки

text
string required

Текст умной подсказки

coupon
Object
actionName
string

Название акции

value
string required

Значение промокода

price
Price required
discountRate
number

Скидка %

discountList
Array of DiscountList

Массив детализации для перс цены

potentialBonuses
DiscountList
Object
actionName
string

Название акции для клиента

actionCode
string

Код акции в Club Pro

discountType
string

Тип примененной скидки из справочника MDM

onlineOnly
string

Признак скидки “Только онлайн”

summa
Types: coupon
expertHintSummary

Экспертная сводка

Object
id
string required

ИД

text
string required

Текст

Example:
Палатка Mountain Hardwear Trango 3 — это надежное трехместное жилище для альпинистов, обеспечивающее комфорт и безопасность
Types: ExpertHints
expertHintFeature

Характеристика экспертной подсказки

Object
id
string required

ИД

text
string required

Текст подсказки

Example:
Устойчиво в шторм
Types: ExpertHints
ExpertHints

Экспертные подсказки

Object
features

Характеристики экспертной подсказки

PersonalPromo

Персональная скидка

Object
discountCode
string required

Код персональной скидки

isRetailActivate
boolean required

Признак активации скидки

SizeML
Object
recommendSizeML
Array of RecommendSizeML

Массив с размерами для гендоров для ML модели

info
boolean required

флаг для info (шторки)

Example:
true
RecommendSizeML
Object
ageGender
string required

Мнемокод гендера

genderName
string required

Наименование гендера

list
Array of RecommendSku required

Массив размеров для гендера

colorModelList
Array of string required

Массив ID базовых ЦМ

Types: SizeML
RecommendSku
Object
skuId
string required

Код SkuId

probability
integer required

Вероятность для размера

isMainRecomended
boolean required

Признак главного рек. размер

Example:
true
ColorModelSizes
Object
id
string required

ID цветомодели

name
string required

Наименование ЦМ

primaryPhotoUrl
sizes
Array of ProductSkuSize required

Купленный размер

ReviewSummary

Итоговые данные по всем отзывам по переданной цветовой модели.

Object
id
string required

Идентификатор ЦМ

rating
number required

Средний рейтинг ЦМ (по отзывам)

reviewsCount
integer required

Количество отзывов у ЦМ

recommendedPercentage
integer

Количество покупателей, которые рекомендовали этот товар, в процентах. Рассчитывается на бекенде

productRatingDetails
Array of RatingDetail required

Оценки по каждому из критериев

productPercentageDetails

Отображаются данные из отзывов, которые отображаются в процентах. В данный момент тут всегда только 1 элемент - размер. В документации шопилота формируется из dimensions.

isReviewAllowed
boolean required

Флаг возможности оставить отзыв

RatingDetail

Детали рейтинга по какому-то атрибуту.

Модель используется для атрибутов, у которых значение - числовое из диапазона.

Лейблы у максимальных и минимальных значений, максимальное значение вшиваются на нашем БЭ

Object
id
string required

Мнемокод критерия

name
string required

Наименование критерия, выводится пользователю

value
number

Численное значение критерия

maxValue
integer

Значение вшито на нашем БЭ. В данный момент равно 5.

minLabel
string

Лейбл минимального значения. Вшивается на нашем БЭ по id.

Example:
Ненадежно
maxLabel
string

Лейбл максимального значения. Вшивается на нашем БЭ по id.

Example:
Надежно
AuthorRatingDetail

Детали отзыва, которые касаются личных характеристик пользователя. Например, частота использования и тому подобное.

Object
id
string required

ID детали автора

label
string required

Наименование детали автора, выводится пользователю

value
string required

Значение детали автора, выводится пользователю

Types: Review
ReviewAuthor

Данные об авторе отзыва

Object
name
string required

Имя автора

location
string

Местоположение автора. Временно отдается null по требованию бизнеса

Types: Review
Review

Модель отзыва о товаре

Object
id
string required

В гейте сейчас нет. Нужно пробрасывать

author
ReviewAuthor required
rating
integer required

Значение рейтинга

createdAt
DateOnly required
pros
string

Достоинства товара

cons
string

Недостатки товара

body
string

Текст отзыва

recommended
boolean required

Рекомендую ли товар

likes
integer required

Количество лайков отзыва

dislikes
integer required

Количество дизлайков отзыва

productRatingDetails
Array of RatingDetail required
authorRatingDetails
Array of AuthorRatingDetail required
photos
Array of ImageUri
isVerifiedShopping
boolean

Совершена покупка у спормастера или нет

answers
Array of Answer

Ответы

Question

Вопрос к товару

Object
id
string required
author
QuestionAuthor required
createdAt
DateOnly required
text
string required

Текст вопроса

answers
Array of Answer
photos
Array of ImageUri
Responses: QuestionsResponse
QuestionAuthor

Данные об авторе вопроса

Object
name
string required

Имя автора

location
string

Местоположение автора

Types: Question
Answer
Object
id
string required
author
AnswerAuthor required
createdAt
DateOnly required
text
string required

Текст ответа

AnswerAuthor

Данные об авторе ответа

Object
name
string required

Имя автора

hint
string

Данные о том, кто автор.

Example:
Команда спортмастер
Types: Answer
ProductExtraDetails

Модель используется для указания, сколько % выбрало этот параметр

Object
percent
integer required

Сколько % выбрало этот пункт

label
string required

Название

Example:
Большемерит
ProductReviewDimensions

Агрерирует все возможные состояния параметра, значение которого указывается в процентах.

Object
label
string required

Название группы

Example:
Размер
items
Array of ProductExtraDetails required

Распределение элементов по 100 процентам. Сумма значений этих элементов равна 100.

ProductRaitingDetailParam

Детали рейтинга по какому-то атрибуту.

Модель используется для атрибутов, у которых значение - числовое из диапазона.

Лейблы у максимальных и минимальных значений, максимальное значение вшиваются на нашем БЭ

Object
id
string required

Мнемокод критерия, отправляется потом в отзыве

name
string required

Наименование критерия, выводится пользователю

maxValue
integer

Значение вшито на нашем БЭ. В данный момент равно 5.

minLabel
string

Лейбл минимального значения. Вшивается на нашем БЭ по id.

Example:
Ненадежно
maxLabel
string

Лейбл максимального значения. Вшивается на нашем БЭ по id.

Example:
Надежно
isRequired
boolean required

Обязательно ли для заполнения

AuthorRatingDetailParam

Детали отзыва, которые касаются личных характеристик пользователя. Например, частота использования и тому подобное.

Object
id
string required

ID детали автора

label
string required

Название критерия

Example:
Срок использования
values
Array of string required

Значения, из которых автор может выбрать

Example:
[
    "Меньше месяца",
    "Около года",
]
isRequired
boolean required

Обязательное ли поле для заполнения

RatingDetailParam
Object
id
string required
value
integer required
AuthorDetailParam
Object
id
string required
value
string required
QuestionsSort
string
Enumeration:
CREATED_AT_ASC
CREATED_AT_DESC
ReviewsSort
string
Enumeration:
CREATED_AT_ASC
CREATED_AT_DESC
RATING_ASC
RATING_DESC
SizeMatch

Информация о наиболее популярном соответствии размеру товара

Object
label
string required

Название соответствия

Example:
Большемерит
value
integer required

Процент пользователей, выбравших данное соответствие

Example:
76
ImportantQuestion

Важное из отзывов для карточки товара

Object
title
string required

Заголовок отзыва

Example:
Важное из отзывов
text
string

Текст отзыва

attributes

Набор атрибутов отзыва

ImportantAttributes

Набор атрибутов важного из отзывов

Object
quality
string required

Текст характеристики

Example:
Натуральный материал
isMatch
boolean required

Положительная ли характеристика

Example:
true
MatchTable

Информация о каждом соответствии размеру товара

Object
label
string required

Название соответствия

Example:
Соответствует
value
integer required

Значение соответствия

Example:
76
Dimensions

Объект соответствия размеру для формы заполнения отзыва

Object
label
string required
name
string required
minLabel
string required
maxLabel
string required
halfLabel
string required
halfValue
integer required
minValue
integer required
maxValue
integer required
isRequired
boolean required
DimensionDetails

Объект соответствия размеру

Object
id
string required
value
integer required
label
string required
SkuAvailabilityDeliveryInfo
Object
isAvailable
boolean

доступность

isNeedPrepay
boolean

нужна ли предоплата

nearestDate
nearestDateTime
SkuAvailabilityInShop
Object
shop
totalAmount
integer
trafficLightsLevelCaption
string

Текст для светофора наличия товаров

trafficLightsLevelImage
obligatoryService
integer

Стоимость сервисного сбора

pickpoint
Array of Pickpoint

Информация о ПВЗ одного типа

pickpointDelivery
ProductAvailability
Object
availableBuy
boolean
availableOffline
boolean
skusAvailable
Array of SkuAvailability
SkuAvailability
Object
idSku
string

Идентификатор размера

availableChoose
boolean

Доступен для выбора

availableBuy
boolean

Доступен для покупки

avaialableOnlyOffline
boolean

Дотсупен только офлайн

SkuAvailabilityPickup
Object
available
boolean

доступен для самовывоза

shopCntsPickup
integer

Количество доступных магазинов для самовывоза

shopCntsWithPrepay
integer

Количество магазинов с предоплатой

shopCntsWOPrepay
integer

Количество магазинов без предоплаты

needPrepay
boolean

Флаг необходимости предоплаты (Самовывоз)

nearestDate
SkuAvailabilityOffline
Object
available
boolean

доступен для оффлайн

shopCntsOffline
integer

количество доступных магазинов для оффлайн

SkuAvailabilityTransport
Object
available
boolean

доступен довоз

shopCntsTransport
integer

количество доступных магазинов для довоза

shopCntsWithPrepay
integer

Количество магазинов с предоплатой

shopCntsWOPrepay
integer

Количество магазинов без предоплаты

needPrepay
boolean

Флаг необходимости предоплаты (Самовывоз)

nearestDate
nearestDateTime
SkuAvailabilityDelivery
Object
available
boolean

Доступность

skuId
string required

id размера

SkuAvailabilityPointDelivery
Object
available
boolean
deliveryOptions
SkuAvailabilityDeliveryOption
Object
expressDelivery
boolean

[DEP c 4.52] Признак экспресс-доставки

needPrepay
boolean

Признак требования предоплаты

gtServiceLevel
string

Мнемокод уровня сервиса доставки

minDate
DateOnly required
maxDate
territoryDate
DateOnly required
maxHours
integer

Граница переноса доставки на следующий день в часах

deliveryCost
limitForFree
description
string

Описание условий

DeliveryOptionType
Object
type
string required

Тип способа получения

Enumeration:
DELIVERY
INTERNAL_PICKUP
shopNumber
number

Номер магазина самовывоза. Отправляется если тип INTERNAL_PICKUP

SkuAvailabilityCheck
Object
skuId
string required

Размер

isAvailable
boolean required

Доступность

SkuAvailabilityLight
Object
skuId
string required
pickupAvailable
boolean required

Доступность самовывоза из магазина

deliveryAvailable
boolean required

Доступность доставки

pointAvailable
boolean required

Доступность самовывоза из ПВЗ

availableBuy
boolean required

Доступность sku для покупки

PickupDeliveryOptions
Object
deliveryCost
limitForFree
minDate
maxDate
needPrepay
boolean

Нужна ли предоплата

territoryDate
DateOnly required
FavouriteList
Object
favouriteListId
string required

Идентификатор списка

favouriteListName
string required

Название списка

productsCount
integer

Количество товаров

image
FavoriteProduct
Object
id
string required

Идентификатор избранного товара

Example:
1234567890
skuId
string required

Идентификатор размера товара

Example:
1234567890
colorModelId
string required

Идентификатор товара

Example:
1234567890
creationTime
Date required
favouriteListId
string required

ID списка избранного

favouriteListType
favouriteListName
string required

Название списка избранного

FavouriteProductId
Object
colorModelId
string required

Идентификатор товара

skuId
string required

Идентификатор размера

compareTab
Object
name
string required

Название таба

image
ImageUri required
colorModelIds
Array of string required

Массив id цветомоделей

CompareProduct

Товар в списке сравнения

Object
colorModelId
string required

Айди цветомодели

dateAdd
Date required
GuideQuestion

Вопрос Гида по подбору

Object
id
string required

ID вопроса

Example:
b57-62-0-56-583
text
string required

Текст вопроса

Example:
Для кого вы покупаете велосипед?
hint
string

Подсказка к вопросу

first
boolean required

Признак первого вопроса

progress
integer required

Прогресс

requiredQuestion
boolean required

Признак обязательного вопроса

type
string required

Тип вопроса

Enumeration:
ONE
SEVERAL
RANGE
answers
Array of GuideAnswer required

Ответы

unit
string

Единица измерения

Example:
руб.
Types: Guide
GuideAnswer

Ответ на вопрос Гида по подбору

Object
id
string required

ID ответа

Example:
f74-e8-1-eb-6f9
text
string

Текст ответа

Example:
Прогулки по городу
hint
string

Подсказка к ответу

nextQuestionId
string

Следующий вопрос

Example:
92e-b5-7-f9-24a
criteria

Атрибуты ответа

GuideAnswerCriterion

Характерисика товара (Гид по подбору)

Object
attribute
string required

Атрибут

Example:
gender
type
string required

Тип вопроса

Enumeration:
EQUALS
MIN_MAX
values
Array of string

Значение атрибута (только для операции равно)

Example:
size_156
minimum
integer

Минимальное значение (только для диапазона)

maximum
integer

Максимальное значение (только для диапазона)

preselectedMin
integer

Предвыбранное минимальное значение (только для диапазона)

preselectedMax
integer

Предвыбранное максимальное значение (только для диапазона)

Types: GuideAnswer
Guide
Object
id
string required

ID гида по подбору

Example:
987670
name
string required

Наименование

Example:
Подбор велосипеда
categoryBranchId
string required

ID товарной категории

questions
Array of GuideQuestion

Вопросы гида

sort
string

Сортировка

Enumeration:
BY_POPULARITY
BY_PRICE_DESC
BY_PRICE_ASC
facetList
Array of string

Массив фильтров гида

altAnswers
Array of string

Ответы для альтернативной подборки

Responses: GuideResponse
GuideShortInfo
Object
id
string required

ID гида по подбору

Example:
987670
name
string required

Наименование

Example:
Подбор велосипеда
description
string

Описание

Example:
Какой выбрать велосипед? Предлагаем Вам несколько вопросов и надеемся, что дав ответ на них Вы найдете именно ту модель, о которой Вы мечтаете.
image
miniatures
Array of ImageUri required

Фотографии товаров данного подбора

productsCount
integer required

Количество товаров, которое доступно в подборке

Responses: GuidesResponse
CharacteristicValue

Значения фильтра группы toggle и list

Object
values
Array of string required

Массив значений фильтра

Types: Facet
FacetRangeValue

Значения фильтра группы range_slider

Object
from
integer required

Минимальная граница диапазона

to
integer required

Максимальная граница диапазона

Types: Facet
AltProductList
Object
product
details
Facet
Object
facetId
string required

ИД фасета

rangeValue
characteristicValue
KitsCategory

Категория комплекта

Object
id
string required

Идентификатор категории

Example:
life_47
name
string required

Наименование категории

Example:
В поход
url
string required

Ссылка на категорию

Example:
/lookzone/catalog/life_47
image
ProductKit

Комплект

Object
id
string required

Идентификатор

name
string required

Наименование

url
string required

Ссылка

previewImage
price
ProductKitPrice required
counts
products

Товары в комплекте. Заполняется только для метода получения комплекта

ProductKitPrice
Object
catalog
Price required
retail
Price required
discountAmount
Price required
ProductKitCounts
Object
total
integer required

Общее количество товаров в комплекте

available
integer required

Количество доступных товаров в комплекте

Types: ProductKit
ProductKitMedias

Изображения для комплекта

Object
kitImages
Array of ImageUri

Изображения комплекта. Для слайдера

productImages
Array of ImageUri

Изображения товаров. Миниатюры товаров

Types: ProductKit
ProductKitMeta
Object
facets
Array of KitFacetGroup required

Фильтры

category
KitsCategory required
count
integer required

Количество найденных комплектов

subqueryReference
string required

Текущая ссылка для которой запрашиваем данные

subqueryRefWoFacets
string

Ссылка на отключение всех фасетов

KitFacetGroup

Фильтр комплекта товаров

Object
facetId
string required

Идентификатор

caption
string required

Наименование фильтра

facetValues
Array of KitFacetValue required

Значения фильтра

displayType
subqueryWoFacetVals
string

Ссылка для отключения всех значений данного фильтра. Возвращется при включенных фильтрах этой группы

KitFacetValue

Элемент фильтра комплекта

Object
value
string required

Код значения

uiCaption
string required

Название значения

siteTip
string

Подсказка к фильтру

isAvailable
boolean required

Доступность значения

selectedByUser
boolean required

Флаг выбран ли элемент пользователем

subqueryReference
string required

Ссылка для применения выбранного фильтра

subqueryColorModelCount
integer required

Количество комплектов, если применить данный фильтр

ServiceCategory

Описывает как родительскую категорию, так и дочерние подкатегории сервисных услуг

Object
id
string required

Идентификатор категории

Example:
19131270299
name
string required

Наименование категории

Example:
Велосипеды
uri
string required

Ссылка на категорию

Example:
/services/velosipedy
image
descriptionSlot
string

Слот, по которому можно получить текстовое описание категории

Example:
mobile_app_fragment_services_velosipedy
products
Array of ServiceProduct required

Список услуг, входящих в категорию

ServiceProduct

Описывает услугу сервисного центра

Object
id
string required

Идентификатор услуги

Example:
6275530299
name
string required

Наименование услуги

Example:
Установка или демонтаж багажника
catalogPrice
Price required
retailPrice
Price required
description
string

Описание услуги

Example:
Специалисты наших сервисных центров произведут установку багажника — полезного аксессуара для тренировок или прогулок на велосипеде по городу.
requiredTime
integer

Время, необходимое для выполнения услуги (в минутах)

Example:
15
isOnlineRegistrationAvailable
boolean required

Для этой услуги доступна онлайн регистрация

serviceCentersCount
integer

Количество доступных сервисных центров

Example:
6
ServiceCenter

Описывает сервисный центр

Object
shop
BaseShop required
isOnlineRegistrationAvailable
boolean required

Для этого сервисного центра доступна онлайн регистрация. Нужно будет вывести из обращения после полного перехода на корзину услуг

dikidiId
string

ID ЛК в dikidi. Нужно будет вывести из обращения после полного перехода на корзину услуг

Example:
85693
availableItems
Array of CartItemIdWithLines required

Список услуг, доступных в сервисном центре

unavailableItems
Array of CartItemIdWithLines required

Список услуг, недоступных в сервисном центре

maxAvailableTimeslotDuration
integer

Максимальная доступная продолжительность слота в минутах. ВАЖНО: значение (не null) в этом поле указывает на то, что общая продолжительность доступных услуг (availableItems) превысила его. Для продолжения оформления заказа, необходимо удалить часть услуг, чтобы их суммарная продолжительность стала меньше либо равна maxAvailableTimeslotDuration.

Example:
90
MainGuide

Данные по гиду для секции на Главном экране

Object
id
string required

ID гида

image
ImageUri required
url
string required

Путь до ресурса

Example:
sportmaster://guide/1234567
MainSection
Object
title
string

Название “Раздела”

Example:
Мужчинам
entityType
entities

Массив объектов (устарел, не используется для новых блоков)

total
integer required

Общее кол-во элементов

Responses: MainResponse
MainSectionEntityType
string
Enumeration:
banners_slider
banner
catalog_section
brand
sport
order
auth
stories
products_with_banner
products_with_timer
banner_with_size
banner_with_button
banner_widget
popular_services
products_section
products_section_with_banner
infinite_products_section
guides
product_kits
popular_categories
streams_trends
ad_banner
update_pers_agreement
bonuses_section
family_section
profile_progress_bar
Types: MainSection
MainBanner
Object
image
imageAssetId
string

ID ассета, если баннер был загружен через Laika

url
string

Ссылка на обработку диплинка. Может отсуствовать для фоннового баннера в рекомендациях

Example:
/catalog/krossovki_?f-markers=new&icid=app!s-1!krossovki
id
string required

ИД баннера

slot
string required

Мнемокод баннера

Example:
"sm_hh_mobileapp_get_300_bonus"
video
MainCatalogSection
Object
title
string required
items
Array of MainBanner required
MainProductsReco
Object
products
Array of ProductColorModel required
MainInfiniteProduct
MainInfiniteProductType
string
Enumeration:
banner
product
MainSliderBanner
Object
image
imageAssetId
string

ID ассета, если баннер был загружен через Laika

url
string

Ссылка на обработку диплинка. Может отсуствовать для фоннового баннера в рекомендациях

Example:
/catalog/krossovki_?f-markers=new&icid=app!s-1!krossovki
layout
id
string required

ИД баннера

slot
string required

Мнемокод баннера

Example:
"sm_hh_mobileapp_get_300_bonus"
video
MainSliderBannerLayout
string
Enumeration:
half_h
half_v
full
MainSectionStoriesConfig
Object
feedId
string

Лента сториз

profileIdProtected
string required

Зашифрованный profileId текущего пользователя (как анонимного, так и авторизованного) для передачи в SDK InAppStory в свойство userId при инициализации.

Required с версии 4.38

Example:
MTAwMDAwMDAwMjIwMDU4NDEw
MainSectionIdentifier

Составной идентификатор секции главной страницы.

Object
id
string required

Идентификатор секции главной страницы.

Example:
5e7c3667-27ef-44b8-8958-4a8625c2d820
lastEntityId
string

Идентификатор последней сущности, отображенной на клиенте. К примеру, цветомодели.
Применимо для секций с бесконечными рекомендациями, секций с собственной пагинацией.

Значение необязательное, при значении null в секцию попадут первые N сущности из выборки.

Example:
23260550299
MainBannerWithSize
Object
image
string

Ссылка на изображение

imageAssetId
string

ID ассета, если баннер был загружен через Laika

url
string

Ссылка на обработку диплинка

Example:
/catalog/krossovki_
id
string required

ИД баннера

slot
string required

Мнемокод баннера

Example:
mobile_app_main_banner_bday
sizeHeight
integer required

Высота баннера в пикселях

sizeWidth
integer required

Ширина баннера в пикселях

video
MainBannerWithButton
Object
id
string required

ИД баннера

slot
string required

Мнемокод баннера

Example:
"mobile_app_main_banner_with_button"
buttonText
string required

Текст кнопки

image
ImageUri required
imageAssetId
string

ID ассета, если баннер был загружен через Laika

buttonUrl
string required

Ссылка для кнопки на внешний ресурс

MainBannerWidget
Object
id
string required

ИД баннера

image
string required

Ссылка на изображение

imageAssetId
string

ID ассета, если баннер был загружен через Laika

url
string required

Ссылка на обработку диплинка

Example:
/catalog/krossovki_
priority
integer required

Приоритет баннера, данное значение необходимо для определения порядка баннеров внутри слота

slot
string required

Мнемокод баннера

Example:
"mobile_app_main_banner_widget"
title
string required

Название для картинки

Example:
Акции
MainPopularServicesSection

Модель одного элемента в секции популярных сервисов.

Object
bannerId
string required

ИД баннера

serviceId
ServicesEnum required
isShowWidget
boolean required

Признак необходимости показа виджета сервиса в блоке популярных сервисов.

widgetImage
image
string required

Ссылка на изображение

url
string required

Ссылка на обработку диплинка

Example:
sportmaster://tracker
slot
string required

Мнемокод баннера

Example:
"mobile_app_main_services_tracker"
title
string required

Текст под изображением баннера

Example:
"Live трансляции"
type
ServiceItemType required
MainBannerWidgetType

DEPRECATED в рамках MPSM-4039

string
Enumeration:
NOTIFICATION
MainBannerWithTimer
Object
id
string required

ИД баннера

slot
string required

Мнемокод баннера

Example:
"mobile_app_main_banner_with_timer"
url
string

Ссылка на обработку диплинка

Example:
/catalog/daily-offer
image
ImageUri required
imageAssetId
string

ID ассета, если баннер был загружен через Laika

expiresIn
integer required

Количество секунд до конца времени таймера

Example:
11655
RecsInfo

Информация о блоках рекомендаций

Object
strategyId
string

ID алгоритма (стратегии)

showType
string

Мнемокод типа отображения блока рекомендаций. line, line_and_color, line_and_button, column, column_and_color, column_and_button, line_thin

InfiniteProductRecs
Object
products
Array of MainInfiniteProduct required

Массив рекомендаций

recsInfo
RecsInfo required
ProductRecs
Object
products
Array of ProductColorModel required

Массив рекомендаций

recsInfo
RecsInfo required
MainGuidesSection

Секция с подбором товара на Главном экране

Object
banner
MainBanner required
guides
Array of MainGuide required
MainProductKits

Секция с комплектами товаров

Object
productKits
Array of ProductKit required

Комплекты товаров

MainCategory

Категория товаров для блока МЖД на Главном экране

Object
id
string required

Id категории

name
string required

Наименование категории

image
ImageUri required
url
string required

Ссылка на товарную группу

MainPopularCategoryGroup

Реестр популярных категорий на Главном экране (используется для обновленного блока МЖД)

Object
name
string required

Наименование реестра

Example:
Мужчинам
imageBackground
slot
string required

Слот реестра

Example:
mobile_app_top_category_1
categories
Array of MainCategory required

Массив категорий для реестра

MainPopularCategories

Секция популярных категорий (обновленный блок МЖД) на Главном экране

Object
popularCategoryGroups
Array of MainPopularCategoryGroup required

Реестры популярных категорий

ProductRecsWithBanner
Object
banner
MainBanner required
products
Array of ProductColorModel required

Массив рекомендаций

recsInfo
RecsInfo required
MainStreamsTrends

Секция превью коротких роликов сервиса “Стримы”

Object
trends
Array of MainStreamsTrendsClip required

Список превью коротких роликов. Для отображения в слайдере.

Example:
[
    {
        "id": "40ee7723-99b6-4cd5-9503-3319b22a8683",
        "name": "Обзор топа",
        "image": "https://cdn.sptmr.ru/upload/resize_cache/iblock/d04/370_416_1/41571720299.jpg",
        "url": "sportmaster:///streams/trends/0",
        "imageAssetId": "",
        "slot": "sm_hh_streams_trends_clip_0"
    }
]
url
string

Ссылка содержащая диплинк на экран всех коротких роликов.

Example:
sportmaster:///streams/trends
MainStreamsTrendsClip

Модель превью короткого ролика сервиса “Стримы”

Object
id
string required

ИД баннера

Example:
40ee7723-99b6-4cd5-9503-3319b22a8683
name
string required

Название клипа

Example:
Обзор топа
image
ImageUri required
url
string required

Ссылка на обработку диплинка. Может отсуствовать для фоннового баннера в рекомендациях

Example:
sportmaster:///streams/trends/0
imageAssetId
string

ID ассета. Тоже, что в модели MainBanner. Используется для формирования моделей аналитики.

slot
string required

Мнемокод. Тоже, что в модели MainBanner. Используется для формирования моделей аналитики.

Example:
sm_hh_streams_trends_clip_0
AdBanner

Рекламный баннер AdFox

Object
id
string required

adUnitId баннерного слота (возвращаются разные значения в зависимости от платформы)

Example:
R-M-13680815-1
parameters
Object

Параметры для загрузки inline-banner в sdk (возвращаются разные значения в зависимости от платформы)

Example:
{
"adf_ownerid": "11641946",
"adf_p1":"dfrxr",
"adf_p2":"fkbd",
"adf_pt": "b",
"adf_pd": "",
"adf_pw": "",
"adf_pv": "",
"adf_prr": "",
"adf_pdw": "",
"adf_pdh": ""
}
BonusesInfo

Блок с информацией о бонусах клиента в шапке на главной

Object
totalAmount
number

Общий баланс бонусов

dateEnd
amount
number

Количество сгораемых бонусов

url
string

Ссылка перехода при нажатии на блок

Example:
sportmaster://catalog
MainProfileProgressBar

Блок с прогресс баром по заполнению профиля

Object
title
string required

Заголовок

description
string required

Описание

totalSectionCount
number required

Общее количество секций индикатора

activeSectionCount
number required

Кол-во активных секций индикатора

ServiceSection
Object
id
string required

Айди секции

title
string

Название “Раздела”

Example:
Медиа
entityType
entities
Array of ServiceSectionEntity required

Массив объектов секции

total
integer required

Общее кол-во элементов

deeplink
string

Диплинк для общего перехода в сервис. Может не быть, если это баннер, например.

ServiceSectionEntityType
string
Enumeration:
MEDIA_ARTICLE
BANNER
STREAM
TRAINING
TRAINING_NATIVE
AFISHA_EVENT
SERVICES_GROUP
FAVORITE_SERVICES_GROUP
SERVICE_WIDGET
ACHIEVEMENTS
MediaArticle
Object
id
string required
dateCreate
DateOnly required
image
ImageUri required
title
string required
url
string required

Адрес статьи для обработки через механизм диплинков

ServiceRegularBanner

Баннер, который задается пропорциями, например 343*118

Object
image
ImageUri required
imageAssetId
string

ID ассета, если баннер был загружен через Laika

url
string

Ссылка на обработку диплинка

Example:
/catalog/krossovki_?f-markers=new&icid=app!s-1!krossovki
id
string required

ИД баннера

slot
string required

Слот баннера

Example:
"sm_hh_mobileapp_get_300_bonus"
ratioW
integer

Пропорция по ширине

ratioH
integer

Пропорция по высоте

Training

Публикации

Object
url
string required

Урл публикации цмс гейта

image
ImageUri required
title
string required

Название тренировки

TrainingNative

Нативная модель тренировки. Модель комплементарна модели тренировки из модуля Тренировок

Object
id
string required

Идентификатор тренировки

Example:
URN0YCJ7ZD
name
string required

Название тренировки

Example:
Проработка мышц 
спины, груди и рук
listImage
ImageUri required
duration
integer required

Продолжительность тренировки, (сек.)

Example:
120
fitnessLevel
Object required

Уровень физической подготовки

id
string required

Идентификатор уровня физической подготовки

Example:
URN0YCJ7ZD
name
string required

Наименование уровня физической подготовки

Example:
Средний уровень
tags
Array required

Теги тренировки

Object
id
string required

Идентификатор тега

Example:
URN0YCJ7ZD
name
string required

Название тега

textColor
Color required
backgroundColor
Color required
AfishaEvent

Событие в афише

Object
id
string required
image
ImageUri required
title
string required

Название мероприятия

type
string required

Тип мероприятия (лекция, мероприятия и т.д.). Локализованное значение

Example:
Лекция
format
string required

Формат мероприятия (онлайн, офлайн). Локализованное значение

Example:
Онлайн
labels
Array of string required

Массив тегов: количество бонусов, вид спорта. Если для мероприятия нет тегов, возвращается пустой массив

url
string required

Ссылка на обработку диплинка

ServiceWidget

Модель виджета сервиса.

Object
serviceId
ServicesEnum required
type
ServiceItemType required
url
string

Диплинк сервиса, для сервисов с типом отличным от DEFAULT

Example:
"sportmaster://bday"
image
ImageUri required
ServicesGroup

Группа сервисов

Object
title
string required

Заголовок группы сервисов

Example:
Избранное
services
Array of ServicesGroupItem required

Список сервисов

ServicesGroupItem

Элемент группы сервисов

Object
service
ServiceItem required
isFavorite
boolean required

Признак избранного элемента группы сервисов

Example:
true
AchievementListItem

Достижение пользователя

Object
id
string required

Идентификатор достижения

isAchieved
boolean required

Признак полученного достижения

Example:
true
notReceivedImage
ImageUri required
receivedImage
ImageUri required
notReceivedColor
Color required
receivedColor
Color required
Object
image
imageAssetId
string

ID ассета, если баннер был загружен через Laika

url
string

Ссылка на обработку диплинка

Example:
/catalog/krossovki_?f-markers=new&icid=app!s-1!krossovki
id
string required

ИД баннера

slot
string required

Слот баннера

Example:
"sm_hh_mobileapp_get_300_bonus"
title
string

Заголовок

text
string

Текст для изображения

TickerBanner
Object
url
string

Ссылка на обработку диплинка

Example:
/catalog/krossovki_?f-markers=new&icid=app!s-1!krossovki
id
string required

ИД баннера

slot
string required

Слот баннера

Example:
"sm_hh_mobileapp_get_300_bonus"
text
string required

Текст для баннера

Responses: TickerResponse
BffEvent

Модель события для BFF аналитики

Object
id
string required

Уникальный идентификатор события UUID, создан чтобы добавить на бэке проверку по уникальности. Не должно быть дублей событий

version
string required

Версий спецификации события

Example:
1.0.0
type
string required

Название события

common
BffCommonParams required
custom
Any of

Собственные параметры события.

BffCommonParams

Модель с общими параметрами для каждого события BffEvent

Object
timestamp
integer int64 required

Время регистрации события у клиента в миллисекундах UTC.

client
Object required
userAgent
string required

Параметры user-agent

Example:
Android: Dalvik/2.1.0 (Linux; U; Android 14; Pixel 6a Build/UP1A.231005.007)
appVersion
string required

Версия приложения числовая

Example:
4.41.0
user
Object required
uid
string

Идентификатор пользователя в User gate. Берется из запроса, модель AuthResponse. data. profile. userGateUid. Значение меняется после авторизации, регистрации и логаута. (При анонимном профиле будет NULL)

profileId
string required

Берём AuthResponse. data. profile. id. (При анониме будет UUID, при авторизованном - числовой идентификатор клиента клубной программы)

location
city
Types: BffEvent
BffNotificationGetParams

Собственные параметры события bff_notification_get

Object
notification
Object required

Модель уведомления для аналитики BFF

id
string

Идентификатор уведомления, которое получил фронт

isSilent
boolean required

Флаг того, что уведомление было «скрытным» для пользователя

Types: BffEvent
BffNotificationClickParams

Собственные параметры события bff_notification_click

Object
notification
Object required

Модель уведомления для аналитики BFF

id
string

Идентификатор уведомления, которое получил фронт

isSilent
boolean required

Флаг того, что уведомление было «скрытным» для пользователя

Types: BffEvent
PersGateTag

Метка персонализации Pers Gate.

Object
type
integer required

Тип метки

value
string required

Значение метки

Document

Статическая страница из CMS Gate.

Object
id
string required

Идентификатор статической страницы

Example:
11458174
name
string

Заголовок статической страницы

Example:
Пользователь не может участвовать в реферальной программе
content
string

Контент статической страницы (текст, html)

Example:
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<link rel=\"stylesheet\" href=\"https://cdn.sptmr.ru/upload/dip_content/2022/static/fonts/Gotham/fonts.css\">\n\n<style>\n* {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n.ar-news_container {\n width: 100%;\n font-family: \"Gotham\";\n color: #000;\n position: relative;\n margin: 0 auto;\n overflow: hidden;\n}\n\n.ar-news_container img {\n max-width: 100%;\n vertical-align: middle;\n}\n\n.sm-html-pad {\n padding: 0 14px;\n}\n\n.ar-news_h {\n font-weight: 500;\n font-size: 18px;\n line-height: 20px;\n margin-bottom: 12px;\n margin-top: 20px;\n}\n\n.ar-news_t {\n font-weight: 400;\n font-size: 13px;\n line-height: 19px;\n margin-bottom: 12px;\n}\n\n.ar-news_a2 {\n display: block;\n text-decoration: none;\n color: #1551E5;\n font-weight: 400;\n font-size: 14px;\n line-height: 20px;\n margin-bottom: 15px;\n}\n\n.ar-news_a--wrap {\n /*position: fixed;*/\n /*bottom: 20px;*/\n width: 100%;\n /*left: 0;*/\n /*padding: 0 14px;*/\n}\n\n.ar-news_a {\n font-weight: 500;\n font-size: 16px;\n line-height: 22px;\n color: #FFFFFF;\n background: #1551E5;\n border-radius: 6px;\n height: 46px;\n width: 100%;\n display: flex;\n justify-content: center;\n align-items: center; \n text-decoration: none;\n \n}\n</style>\n\n\n<main class=\"ar-news_container sm-html-pad\">\n\n <div class=\"ar-news_h\">Бонусы за скачивание по этой реферальной ссылке не будут начислены</div>\n <div class=\"ar-news_t\">Бонусы начисляются только за первое скачивание приложения по ссылке-приглашению и последующую покупку. Получить бонусы как приглашенный друг можно только один раз.<br> Чтобы заработать бонусы в программе, отправьте вашу реферальную ссылку другу.</div>\n <a class=\"ar-news_a2\" href=\"sportmaster://static/11458158\">Условия акции</a>\n\n <div class=\"ar-news_a--wrap\">\n <a class=\"ar-news_a\" href=\"sportmaster://main\">Понятно</a>\n </div>\n\n</main>
chpu
string

URL статической страницы

Example:
/referral-program-not-available
slot
string

Слот статической страницы (если она оформлена как фрагмент)

Example:
mobile_app_fragment_referral
Responses: DocumentResponse
Publication

Публикация из CMS Gate.

Object
id
string required

Идентификатор публикации

Example:
999110
url
string required

URL публикации

Example:
/300bon/
publicationDate
endDate
title
string

Заголовок публикации

Example:
300 бонусов за применение виртуальной карты на кассе МП4.0
announcement
string

Анонс публикации

Example:
Получите 300 бонусов
body
string

Контент (текст, html). </br>Для метода “Список новостей” не заполняется.

Example:
<div class=\"ar-news_ur-text\">С 10.06.2021 по 09.09.2021 при совершении покупки в магазинах розничной сети от 1000 рублей и авторизации при помощи штрих кода виртуальной клубной карты в мобильном приложении начисляются 300 промо бонусов.</div>
sharingUrl
string

URL публикации для кнопок шеринга.

Формируется для метода "Получить публикацию по URL" по шаблону: https://sportmaster.ru/news/ {id}?utm_source={platform}_appshare&utm_medium=soc&utm_campaign=socsharing_news_{platform}&utm_content={id}

* id - айди публикации
* platform - ios или android
```
Example:
https://sportmaster.ru/news/300bon/?utm_source=ios_appshare&utm_medium=soc&utm_campaign=socsharing_news_ios&utm_content=999110
image
PopupInfo

Основная информация о всплывающем окне

Object
id
string required

Идентификатор всплывающего окна из ContentGate

Example:
123123
name
string

Описание всплывающего окна

type
PopupType required
subtype
PopupSubtype required
displayInterval
integer

Интервал между переходом (секунды)

Responses: PopupResponse
PopupType

Тип всплывающего окна

string
Enumeration:
SHEET
SLIDER
Types: PopupInfo
PopupSubtype

Подтип всплывающего окна

string
Enumeration:
MAIN
EMAIL
PUSH
Types: PopupInfo
PopupContent

Контент для всплывающего окна

Object
id
string required

Идентификатор контента для всплывающего окна из ContentGate

name
string

Название окна в карусели

image
ImageUri required
backgroundColor
Color required
controlsColor
Color required
title
string

Заголовок

text
string

Текст

fontColor
Color required
consentText
string

Текст согласия на рассылку (для формы e-mail)

Example:
Даю согласие на получение <a href="sportmaster://subscriptions/">информации </a> о специальных предложениях, новых товарах
url
string

Ссылка для перехода по клику на изображение (для формы main)

button
PopupButton required
buttons
Array of PopupButtons required

Кнопки

Responses: PopupResponse
PopupButton

Информация для кнопки во всплывающем окне

Object
text
string required

Текст кнопки

backgroundColor
Color required
fontColor
Color required
url
string

Ссылка в кнопке

Types: PopupContent
PopupButtons

Информация для кнопки во всплывающем окне

Object
text
string required

Текст кнопки

backgroundColor
Color required
fontColor
Color required
url
string

Ссылка в кнопке

Types: PopupContent
PopupButtonType

Тип кнопки

string
Enumeration:
MAIN
MINOR
Types: PopupButtons
PopupSettings

Информация по правилам показа всплывающих окон для фронта.

Object
id
string required

id всплывающего окна

Example:
123123
name
string required

Название (используется для аналитики)

dateTimeFrom
OffsetDateTime required
dateTimeTo
OffsetDateTime required
priority
integer required

Приоритет показа

Example:
3
totalDisplayCount
integer required

Общее количество показов окна на аккаунте (сколько мы одно и то же окно можем показать одному клиенту)

Example:
4
timeFromSessionStartSeconds
integer

Количество секунд, которое должно пройти при заходе на экран перед показом окна. Если значение не пустое, то как минимум 1 сек.

Example:
10
sessionDisplayCount
integer

DEP c 4.74 Максимальное количество показов окна до закрытия МП.

Example:
1
timeBetweenDisplaysSeconds
integer

Время, которое должно пройти между показами всплывающих окон в секундах

Example:
3
spentDisplayCount
integer

Количество показов пользователю окна за всё время (сколько раз всего было показано окно клиенту)

Example:
4
firstDisplayDateTime
lastDisplayDateTime
displayRules
Array of DisplayRule

Условия показа всплывающего окна с учётом экрана, на котором находится пользователя

DisplayRule

Условия показа всплывающего окна

Object
show
boolean required

Флаг для определения показывать/не показывать окно с учётом условия по урлу

condition
ConditionEnum required
url
string required

Ссылка с диплинком или его частью

Example:
/catalog/zhenskaya_odezhda
ConditionEnum

Список условий для показа всплывающих окон по url.

string
Enumeration:
CONTAINS
MATCHES
STARTSWITH
ENDSWITH
Types: DisplayRule
Stream

29.09.2023: эту модель не удалять, а переместить в раздел Экран сервисов

Object
id
integer required
name
string required
description
string
image
ImageUri required
isActive
boolean required
isEnded
boolean required
isSubscribeAvailable
boolean required

Признак доступности подписки на стрим

isUserSubscribed
boolean required

Подписан ли пользователь на стрим.

startDate
Date required
streamUrl
string required

Ссылка на веб вью со стримом

tagIds
Array of integer required

Список id тэгов стрима

StreamFull
Object
id
integer required
name
string required
image
ImageUri required
isActive
boolean required
isEnded
boolean required
startDate
Date required
isUserSubscribed
boolean required

Подписан ли пользователь на стрим

streamUrl
string required

Ссылка на веб вью со стримом

video
Object

Данные о видео в стриме

url
string required

Ссылка на видео с трансляцией

Example:
https://kinescope.io/203606331/master.m3u8
provider
string required

Провайдер видео

Example:
Kinescope
promocode
Object

Данные о промокоде внутри стрима. Используется только для аналитики пользовательских действий.

description
string required

Описание промокода

Example:
Даёт скидку 20% на бренды FILA, Kappa, Termit до 14.10.22 включительно
code
string required

Код промокода

Example:
ТРЕНД
discount
integer required

Процент скидки по промокоду

Example:
20
deadline
string required

Срок действия промокода

Example:
14.10.22
products
Array required

Массив товаров

Object
id
string required

Идентификатор цветомодели товара

Example:
25878970299
price
integer required

Цена на товар

Example:
2499
discount
integer required

Цена на товар со скидкой

Example:
2249
name
string required

Наименование товара

Example:
Матрас надувной Outventure 191х137х22 см
Responses: StreamResponse
liveButton
Object
id
string required

id кнопки Live для события аналитики

slotId
string required

mnemocode кнопки Live для события аналитики

StreamTag

Тэг для фильтрации стримов

Object
id
integer required

Уникальный id тэга

name
string required

Строковое представление тэга для вывода в приложении

Responses: StreamsResponse