Коллекции

Коллекции позволяют отображать привязанные к профилю пользователя сущности (товары и пр.) и позволяют реализовать такие разделы, как, например, "Мой гараж", "Мои дети" и др.
Обратитесь к вашему product-менеджеру для подключения интеграций.

Получение коллекций через webhook-интеграцию

Клиентское приложение запрашивает коллекции при каждом заходе в приложение и при свайпе на обновление в разделе профиля.
Сервер получает внешний userId и список идентификаторов отключенных коллекций, по умолчанию пустой.
{
"userId": "1",
"disabledCollections": []
}
В ответ сервер передает коллекции пользователя. Все поля обязательны, если в описании не указано обратное.
[{
collectionId: 'auto',
createdOn: '1577910417',
updatedOn: '1664656017',
title: 'Мой гараж',
units: [
{
unitId: 'id1',
metadata: [
{
id: 'model',
title: 'Модель',
value: 'DeLorean DMC-12',
},
{
id: 'mileage',
title: 'Пробег',
value: '19102',
inputType: 'number',
measurementUnitSuffix: 'км',
},
{
id: 'licensePlate',
title: 'Гос.номер',
value: '37XX777',
},
{
id: 'lastService',
title: 'Последнее обслуживание',
value: '01.10.2022',
},
...
],
alerts: [
{
title: 'Необходима замена масла',
description: 'Замена масла необходима каждые 10000 км',
},
{
title: 'Необходимо прохождение ТО',
description: 'Для вас действует специальная скидка при прохождении ТО',
},
...
],
orders: [
{
orderId: 'order1',
title: 'Заказ от 01.10.2022',
totalPrice: 3000,
positions: [
{
title: 'Замена масла',
price: 1000,
},
{
title: 'Замена подшипников',
price: 2000,
},
],
},
...
],
createdOn: '1621456017',
updatedOn: '1664656017',
},
...
}]
  • collectionId – string, идентификатор коллекции
  • createdOn – string, Unix-timestamp создания коллекции, необязательно
  • updatedOn – string, Unix-timestamp обновления коллекции, необязательно
  • title – string, название коллекции в приложении
  • units – список элементов коллекции
    • unitId – идентификатор элемента
    • metadata – список характеристик. Первый элемент списка используется как заголовок в карточке элемента.
      • id – string, идентификатор характеристики
      • title – string, заголовок характеристики
      • value – string, значение характеристики
      • inputType – string, тип редактирования характеристики. Необязательно. Необходимо использовать, если поле доступно для редактирования. Допустимые значения: number для ввода числового значения и string для ввода текста.
      • measurementUnitSuffix – string, единица измерения, необязательно. Например, если вы хотите передать километраж, который доступен для редактирования, то необходимо передать в поле value значение километража, а в measurementUnitSuffix передать единицы измерения (например, "км"). В остальных случаях значение вместе с единицами измерения можно передать напрямую в value.
    • alerts – список уведомлений по элементу. Необязательно.
      • title – заголовок уведомления
      • value – текст уведомления
    • orders – список заказов/услуг по элементу. Необязательно.
      • orderId – string, идентификатор заказа
      • title – string, заголовок заказа
      • totalPrice – number, общая стоимость заказа
      • positions – список позиций заказа
        • title – string, наименование
        • price – number, стоимость позиции
    • createdOn – string, Unix-timestamp создания элемента, необязательно
    • updatedOn – string, Unix-timestamp обновления элемента, необязательно

Использование metadata

Обновление элемента коллекции

При запросе на редактирования элемента коллекции сервер получает следующее сообщение:
{
"userId": "1",
"collectionId": "auto",
"unitId": "unit1",
"entries": [
{
"id": "mileage",
"value": "20900",
},
...
]
}
  • userId – string, внешний индентификатор пользователя
  • collectionId – string, идентификатор редактируемой коллекции
  • unitId – string, идентификатор редактируемого элемента
  • entries – список всех характеристик элемента, включая отредактированные пользователем
В ответе сервер возвращает успех/неуспех редактирования полей:
{
"success": true
}
В ответе также можно передать ошибки по отдельным идентификаторам полей (как в поле id в элементе массива metadata):
{
"success": false
"errors": {
"mileage": "Указанный пробег меньше предыдущего значения (19102 км)"
}
}
И алерт в случае какой-либо другой ошибки, например, ошибки сервера:
{
"success": false
"message:": "'Произошла ошибка. Попробуйте позже."
}