Микросервис recommendation-orchestration
Микросервис предоставляет функциональность для для формирования и получения товаров, рекомендованных для покупки, а также событий для генерации рекомендаций.
Доступ к сервису предоставляется по запросу.
Логика работы
В работе микросервиса участвуют следующие сущности:
- Рекомендация (RecommendationResponse) - содержит информацию о рекомендации (ID рекомендации; список рекомендованных товаров; дата и время генерации рекомендации)
- Рекомендованные товары (ProductCardResponse) - список рекомендованных товаров и информации о них (артикул/название/медиа/наличие на складе/минимальная стоимость товара)
- Событие (Tracking) - содержит данные события (ID события; ID категории; артикул товара; ID покупателя; действие, вызывающее событие; бренд и др.)
Аутентификация
Аутентификация пользователя не требуется.
Service context path
/api/recommendation-orchestration/
Настройки и параметры конфигурации
Параметры конфигурации указываются в Vault.
Vault используется на нашей платформе в качестве хранилища всех конфигураций развертывания. Инструмент может быть выбран другой.
{
"env": {
"JAVA_XMS": "ХХm",
"JAVA_XMX": "YYYm"
}
}
// пример взят с тестового стенда
{}
Методы микросервиса
Работа с рекомендациями
- Получение списка рекомендаций для конкретной категории - GET запрос, /v2/recommendations/categories/{categoryId}
categoryId - path-параметр: ID категории, для которой необходимо
получить рекомендации
length - query-параметр, необязательный:
количество товаров в рекомендациях
{
"id":
"40ff688a-35ec-46b7-a7c5-f4e2693ceb5e",
"recommendationItems": [
{
"articleId": "1001522DC",
"name": "FARMSTAY Пенка для
умывания лица с коллагеном, корейская увлажняющая умывалка для очищения лица
FarmStay Collagen",
"asset": {
"id":
"46ebcc37-b439-4efd-8b70-7534fe364c00",
"media":
{
"url":
"master/catalog/images/1705478756176-1882559365.jpg",
"absoluteUrl":
"https://test-ecom-media.digitalchief.tech/master/catalog/images/1705478756176-1882559365.jpg",
"name": "6584263816.jpg",
"type": "PHOTO",
"size": 50278,
"resolution": "1000x1000
px",
"createdDate":
"2024-01-17T11:06:11.428"
},
"title": "пенка коллаген",
"altAttr": "пенка коллаген",
"description":
"",
"sign": "",
"tags":
[
""
]
},
"orderable": true,
"variants": [
{
"articleId": "1001523DC",
"name": null,
"asset": null,
"orderable": false,
"prices": {
"02d3eb94-8d0c-4e21-a952-db8684a1534d": {
"unitPrice":
100.00,
"discountUnitPrice": 64.00
}
}
},
{
"articleId": "1001523DC",
"name": null,
"asset": null,
"orderable": false,
"prices": {
"90e5fed1-1eaa-4e45-8574-b687605817fd": {
"unitPrice":
1900.00,
"discountUnitPrice": 1216.00
}
}
}
]
},
{
"articleId": "1001507DC",
"name": "Болт DIN933 М12х40 с шестигранной
головкой кл.пр. 5.8",
"asset": {
"id":
"90b10503-87e8-4d98-8097-b245c8c4174f",
"media":
{
"url":
"master/catalog/images/1703849256449-1882559365.JPG",
"absoluteUrl":
"https://test-ecom-media.digitalchief.tech/master/catalog/images/1703849256449-1882559365.JPG",
"name": "Болт.JPG",
"type": "PHOTO",
"size": 24578,
"resolution": "550x493 px",
"createdDate":
"2023-12-29T14:27:56.171"
},
"title": "Болт",
"altAttr":
"Болт",
"description": "",
"sign": "",
"tags": [
""
]
},
"orderable":
true,
"variants": [
{
"articleId": "1001508DC",
"name": null,
"asset": null,
"orderable": false,
"prices":
{
"02d3eb94-8d0c-4e21-a952-db8684a1534d": {
"unitPrice":
50.30,
"discountUnitPrice": 50.30
}
}
},
{
"articleId": "1001509DC",
"name": null,
"asset": null,
"orderable": false,
"prices": {
"90e5fed1-1eaa-4e45-8574-b687605817fd": {
"unitPrice":
850.00,
"discountUnitPrice": 850.00
}
}
}
]
},
{
"articleId": "1001505DC",
"name": "Шпаклевка финишная готовая Кнауф
Ротбанд Паста Профи 5 кг",
"asset": {
"id":
"a1becad6-240b-4434-929d-4bbd36f74239",
"media":
{
"url":
"master/catalog/images/1703849256455-1882559365.JPG",
"absoluteUrl":
"https://test-ecom-media.digitalchief.tech/master/catalog/images/1703849256455-1882559365.JPG",
"name": "Шпаклевка.JPG",
"type": "PHOTO",
"size": 43796,
"resolution": "580x586 px",
"createdDate":
"2023-12-29T14:27:56.172"
},
"title": "Шпаклевка",
"altAttr":
"Шпаклевка",
"description": "",
"sign": "",
"tags": [
""
]
},
"orderable":
true,
"variants": [
{
"articleId": "1001506DC",
"name": null,
"asset": null,
"orderable": false,
"prices":
{
"02d3eb94-8d0c-4e21-a952-db8684a1534d": {
"unitPrice":
120.00,
"discountUnitPrice": 102.00
}
}
},
{
"articleId": "1001506DC",
"name": null,
"asset": null,
"orderable": false,
"prices": {
"90e5fed1-1eaa-4e45-8574-b687605817fd": {
"unitPrice":
736.00,
"discountUnitPrice": 625.60
}
}
}
]
}
],
"recommendationTimestamp": "2024-01-03T15:58:31"
}
- 200 - рекомендации найдены
- 404 - рекомендации для категории не найдены
- Получение топ рекомендаций - GET запрос, /v1/recommendations/products/top
length - query-параметр, необязательный: количество
товаров в рекомендациях
{
"id":
"418e4e9c-a869-4ef0-940f-525b33b67891",
"recommendationItems": [
{
"articleId": "1001522DC",
"name": "FARMSTAY Пенка для
умывания лица с коллагеном, корейская увлажняющая умывалка для очищения лица
FarmStay Collagen",
"asset": {
"id":
"46ebcc37-b439-4efd-8b70-7534fe364c00",
"media":
{
"url":
"master/catalog/images/1705478756176-1882559365.jpg",
"absoluteUrl":
"https://test-ecom-media.digitalchief.tech/master/catalog/images/1705478756176-1882559365.jpg",
"name": "6584263816.jpg",
"type": "PHOTO",
"size": 50278,
"resolution": "1000x1000
px",
"createdDate":
"2024-01-17T11:06:11.428"
},
"title": "пенка коллаген",
"altAttr": "пенка коллаген",
"description":
"",
"sign": "",
"tags":
[
""
]
},
"orderable": true,
"variants": [
{
"articleId": "1001523DC",
"name": null,
"asset": null,
"orderable": false,
"prices": {
"02d3eb94-8d0c-4e21-a952-db8684a1534d": {
"unitPrice":
100.00,
"discountUnitPrice": 64.00
}
}
},
{
"articleId": "1001523DC",
"name": null,
"asset": null,
"orderable": false,
"prices": {
"90e5fed1-1eaa-4e45-8574-b687605817fd": {
"unitPrice":
1900.00,
"discountUnitPrice": 1216.00
}
}
}
]
},
{
"articleId": "1001507DC",
"name": "Болт DIN933 М12х40 с шестигранной
головкой кл.пр. 5.8",
"asset": {
"id":
"90b10503-87e8-4d98-8097-b245c8c4174f",
"media":
{
"url":
"master/catalog/images/1703849256449-1882559365.JPG",
"absoluteUrl":
"https://test-ecom-media.digitalchief.tech/master/catalog/images/1703849256449-1882559365.JPG",
"name": "Болт.JPG",
"type": "PHOTO",
"size": 24578,
"resolution": "550x493 px",
"createdDate":
"2023-12-29T14:27:56.171"
},
"title": "Болт",
"altAttr":
"Болт",
"description": "",
"sign": "",
"tags": [
""
]
},
"orderable":
true,
"variants": [
{
"articleId": "1001508DC",
"name": null,
"asset": null,
"orderable": false,
"prices":
{
"02d3eb94-8d0c-4e21-a952-db8684a1534d": {
"unitPrice":
50.30,
"discountUnitPrice": 50.30
}
}
},
{
"articleId": "1001509DC",
"name": null,
"asset": null,
"orderable": false,
"prices": {
"90e5fed1-1eaa-4e45-8574-b687605817fd": {
"unitPrice":
850.00,
"discountUnitPrice": 850.00
}
}
}
]
},
{
"articleId": "1001547DC",
"name": "Ботинки",
"asset": {
"id": "60ff6a0c-722c-4b99-966a-82bbd29e0cdf",
"media": {
"url": "develop/catalog/images/1702023282501-1222327520.jpg",
"absoluteUrl":
"https://test-ecom-media.digitalchief.tech/develop/catalog/images/1702023282501-1222327520.jpg",
"name": "282333_56780.jpg",
"type": "PHOTO",
"size": 81082,
"resolution": "750x750 px",
"createdDate":
"2023-12-08T11:15:50.402"
},
"title": "БОТИНКИ ECCO BELLA",
"altAttr": "BELLA",
"description": "БОТИНКИ\nECCO
BELLA",
"sign": "",
"tags":
[
""
]
},
"orderable": true,
"variants": [
{
"articleId": "1001548DC",
"name": null,
"asset": null,
"orderable": false,
"prices": {
"90e5fed1-1eaa-4e45-8574-b687605817fd": {
"unitPrice":
1.00,
"discountUnitPrice": 1.00
}
}
}
]
}
],
"recommendationTimestamp": "2024-01-03T15:58:31"
}
- 200 - рекомендации найдены
- 404 - рекомендации не найдены
Работа с событиями
- Добавление события для построения рекомендаций - POST запрос, /v1/trackings
{
"categoryId":
"cat1000070DC",
"articleId": "1000418DC",
"userId": "207348732260279826",
"action": "add_to_cart",
"cartId":
"4b7e6hjA-107b-476b-816a-51hh256a30d1",
"geolocation":
{
"location": {
"lat": 37.421875199999995,
"lng": -122.0851173
},
"accuracy":
120
},
"timestamp":
"2024-01-30T10:01:10",
"sessionId":
"1B5CABCD3HUY49PJDF346798A9GGK77E9",
"brand":
"Asus"
}
- 201 - событие успешно создано
- 400 - запрос на создание события не содержит никаких данных
- Добавление событий по каждому товару из заказа - POST запрос, /v1/trackings/orders/{orderId}
orderId - path-параметр: ID заказа, для продуктов
которого формируются события для рекомендаций
- 201 - события успешно созданы
- 404 - заказ по ID не найден