Микросервис delivery-orchestration

В статье описываются функции, возможности, конфигурация, логика работы и методы микросервиса delivery-orchestration.

Микросервис delivery-orchestration предоставляет функциональность для расчета наиболее оптимального срока и стоимости доставки товара.

Доступ к сервису предоставляется по запросу.

Микросервис delivery-orchestration используется для логистического калькулятора, который строится на базе следующих сущностей:

  • остатки товара
  • склад
  • регион
  • маршрут
  • цена
Сущность Назначение
Остатки Хранит актуальную информацию о количестве товара, доступном на складе
Склад Содержит информацию о месте хранения товаров
Регион Определяет географические зоны, куда могут быть доставлены товары
Маршрут 1. Маршрут от точки отправления (может быть складом или регионом) до точки прибытия (может быть складом или регионом).
2. Основные свойства маршрута:
  • тип доставки (например, курьерская доставка, самовывоз, ПВЗ и пр.)
  • курьерская компания (например, СДЭК, DPD и пр.)
  • срок доставки (в часах)
  • стоимость доставки
  • доступность маршрута (доступен/недоступен)
Цена Содержит информацию о стоимости конкретной доставки в указанной валюте

Схема взаимодействия сущностей:

Изображение статьи

Примеры работы калькулятора

Изображение статьи
Изображение статьи
Изображение статьи
Изображение статьи
Изображение статьи
Изображение статьи
Изображение статьи
Изображение статьи

Аутентификация

При обращении к сервису аутентификация не нужна.

Service context path

/api/delivery-orchestration/

Настройки и параметры конфигурации

Параметры конфигурации указываются в Vault.

Vault используется на нашей платформе в качестве хранилища всех конфигураций развертывания. Инструмент может быть выбран другой.

По умолчанию

{
  "env": {
    "JAVA_XMS": "ХХm",
    "JAVA_XMX": "YYYm",

    "LOGGING_FORMAT": "формат_логирования",
    "LOGGING_LEVEL": "уровень_логирования",
    "SERVER_PORT": "порт_сервиса"
  }
}

Copy-icon
Указываемые на каждом отдельном стенде

//пример взят с тестового стенда


{
  "env": {
    "AVAILABILITY_URL": "url_доступа_к_сервису_availability",

    "OAUTH_ECOM_CLIENT_ID": "токен_приложения_ECOM_OAuth",
    "OAUTH_ECOM_ISSUER_URI": "url_ECOM_OAuth",
    "OAUTH_ZITADEL_CLIENT_ID": "токен_приложения_Zitadel",
    "OAUTH_ZITADEL_ISSUER_URI": "url_Zitadel",
    "REGION_URL": "url_доступа_к_сервису_region",
    "ROUTE_URL": "url_доступа_к_сервису_route"
  }
}


Copy-icon

Методы микросервиса

Расчет стоимости и сроков доставки - POST запрос, /v1/deliveries/info

Request body sample

{
  "currencyId": "02d3eb94-8d0c-4e21-a952-db8684a1534d",
  "regionId": "5dc618af-af49-4adc-bccd-4d17aeff7526",
  "items": [
    {
      "articleId": "1001471DC",
      "quantity": 7,
      "status": "AVAILABLE",
      "price": 99.99,
      "deliveryDate": "2024-06-28T07:58:04.915Z"
    }
  ],
  "total": {
    "deliveryDate": "05.03.2024 12:00",
    "price": 99.99,
    "status": "AVAILABLE"
  }
}

Copy-icon
Response sample

{
"currencyId": "02d3eb94-8d0c-4e21-a952-db8684a1534d",
"regionId": "5dc618af-af49-4adc-bccd-4d17aeff7526",
"items": [
  {
    "articleId": "1001471DC",
    "quantity": 7,
    "status": "AVAILABLE",
    "price": 99.99,
    "deliveryDate": "2024-06-28T07:58:04.915"
  }
],
"total": {
  "deliveryDate": "28.06.2024 07:58",
  "price": 99.99,
  "status": "AVAILABLE"
}
}

Copy-icon
Response codes

200 - операция выполнена успешно, получена информация о сроках и стоимости доставки