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

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

Микросервис price-orchestration предоставляет функциональность для управления валютами, ценами и прайс листами.

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

Логика работы

В работе микросервиса задействованы следующие сущности:

  • Цена (Price) - содержит данные о цене товара (артикул товара, статус цены, дата действия, минимальное количество товара, стоимость товара и валюта, в которой указана стоимость)
  • Валюта (Currency) - содержит данные о валюте (id валюты, пиктограмма, код валюты по ISO, название валюты)
  • ProductPriceInfoResponse - содержит артикул товара и цены во всех валютах для этого товара (со скидкой и без)
  • Прайс лист (PriceList) - содержит информацию о прайс листе (id и название)

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

Аутентификация не нужна для эндпоинтов:

  • GET /v1/currencies (получение списка валют)
  • GET /v1/currencies/{id} (получение данных о конкретной валюте)
  • GET /v1/currencies/symbols/unique (получение уникальных символов валют)
  • POST /v1/currencies/page (получение страницы валют)
  • POST /v1/currencies/list (получение списка валют с возможностью фильтрации)

Для остальных запросов необходимо в заголовке Authorization указать токен: Authorization: Bearer <токен>

Авторизация

Для работы с валютами (создание, редактирование и удаление) у пользователя должна быть роль Admin или Admin_Currency.

Для работы с ценами (создание, редактирование и удаление) - Admin или Admin_Price.

Подробнее о ролях пользователей можно узнать здесь.

Service context path

/api/price-orchestration/

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

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

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

По умолчанию

{
  "env": {
    "JAVA_XMS": "XXm",
    "JAVA_XMX": "YYYm"

  }
}

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

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


{
  "env": {

    "KAFKA_BROKER_ADDRESS": "сокет_для_брокера_kafka",

    "OAUTH_ECOM_CLIENT_ID": "токен_приложения_ECOM_OAuth",
    "OAUTH_ZITADEL_CLIENT_ID": "токен_приложения_zitadel",
    "OAUTH_ZITADEL_ISSUER_URI": "url_Zitadel"
  }
}

Copy-icon

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

Работа с валютами Copy-icon

  • Получение списка валют, отсортированных по ISO коду по возрастанию - GET запрос, /v1/currencies
Request parameters

page, size - query-параметр, необязательный: номер и размер страницы с валютами
sort - query-параметр, необязательный: сортировка валют

Copy-icon
Response sample

{
  "content": [
    {
      "id": "90e5fed1-1eaa-4e45-8574-b687605817fd",
      "isoCode": "RUB",
      "name": "Российский рубль",
      "symbol": "₽"
    },
    {
      "id": "02d3eb94-8d0c-4e21-a952-db8684a1534d",
      "isoCode": "EUR",
      "name": "Euro",
      "symbol": "€"
    }
  ],
  "pageable": {
    "sort": {
      "sorted": false,
      "unsorted": true,
      "empty": true
    },
    "pageNumber": 0,
    "pageSize": 10,
    "offset": 0,
    "paged": true,
    "unpaged": false
  },
  "totalElements": 2,
  "totalPages": 1,
  "last": true,
  "numberOfElements": 2,
  "first": true,
  "sort": {
    "sorted": false,
    "unsorted": true,
    "empty": true
  },
  "size": 10,
  "number": 0,
  "empty": false
}

Copy-icon
Response codes

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

  • Получение валюты по ее id - GET запрос, /v1/currencies/{id}
Request parameters

id - path-параметр, обязательный: идентификатор валюты

Copy-icon
Response sample

{
    "id": "02d3eb94-8d0c-4e21-a952-db8684a1534d",
    "isoCode": "EUR",
    "name": "Euro",
    "symbol": "€"
}

Copy-icon
Response codes

200 - операция выполнена успешно, получены данные о запрашиваемой валюте

  • Получение списка валют (с возможностью поиска и фильтрации) - POST запрос, /v1/currencies/list
Request body sample

{
  "searchTerm": "euro"
}

Copy-icon
Response sample

[
  {
    "id": "02d3eb94-8d0c-4e21-a952-db8684a1534d",
    "isoCode": "EUR",
    "name": "Euro",
    "symbol": "€"
  }
]

Copy-icon
Response codes

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

  • Получение страницы с валютами (с возможностью фильтрации) - POST запрос, /v1/currencies/page
Request body sample

{
    "page": 0,
    "size": 10,
    "sort": [
        {
            "sortBy": "isoCode",
            "direction": "ASC"
        }
    ],
    "filter": {}
}

Copy-icon
Response sample

{
  "content": [
    {
      "id": "02d3eb94-8d0c-4e21-a952-db8684a1534d",
      "isoCode": "EUR",
      "name": "Euro",
      "symbol": "€"
    },
    {
      "id": "90e5fed1-1eaa-4e45-8574-b687605817fd",
      "isoCode": "RUB",
      "name": "Российский рубль",
      "symbol": "₽"
    }
  ],
  "pageable": {
    "sort": {
      "sorted": true,
      "unsorted": false,
      "empty": false
    },
    "pageNumber": 0,
    "pageSize": 10,
    "offset": 0,
    "paged": true,
    "unpaged": false
  },
  "totalElements": 2,
  "totalPages": 1,
  "last": true,
  "numberOfElements": 2,
  "first": true,
  "sort": {
    "sorted": true,
    "unsorted": false,
    "empty": false
  },
  "size": 10,
  "number": 0,
  "empty": false
}

Copy-icon
Response codes

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

  • Получение символов валют - GET запрос, /v1/currencies/symbols/unique
Request parameters

Отсутствуют.

Response sample

[
  "€",
  "₽"
]

Copy-icon
Response codes

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

  • Создание валюты - POST запрос, /v1/currencies
Request body sample

{
    "isoCode": "BYN",
    "name": "Белорусский рубль",
    "symbol": "Р"
}

Copy-icon
Response sample

{
  "id": "58fc8a3d-238b-4251-9af0-e9976738d3c2",
  "isoCode": "BYN",
  "name": "Белорусский рубль",
  "symbol": "Р"
}

Copy-icon
Response codes
  • 201 - операция выполнена успешно, новая валюта создана
  • 422 - ошибка, невалидные данные
  • Редактирование валюты - PATCH запрос, /v1/currencies/{id}
Request parameters

id - path-параметр, обязательный: уникальный идентификатор валюты

Copy-icon
Request body sample

{
  "isoCode": "CAD",
  "name": "Канадский доллар",
  "symbol": "$"
}

Copy-icon
Response sample

{
  "id": "2e5c9ba8-956e-476b-816a-49ee128a40c9",
  "isoCode": "CAD",
  "name": "Канадский доллар",
  "symbol": "$"
}

Copy-icon
Response codes
  • 204 - операция выполнена успешно, данные о валюте обновлены
  • 404 - ошибка, не удалось найти нужную валюту
  • 409 - ошибка, id валюты не может быть изменено
  • 422 - ошибка, невалидные данные
  • Удаление валюты - DELETE запрос, /v1/currencies/{id}
Request parameters

id - path-параметр, обязательный: уникальный идентификатор валюты

Copy-icon
Response sample

Отсутствует. В ответе приходит только код операции, например, 204.

Response codes
  • 204 - операция выполнена успешно, валюта удалена
  • 404 - ошибка, запрашиваемая валюта не найдена
  • 422 - ошибка, валюта не может быть удалена

Работа с ценами Copy-icon

  • Получение списка цен, отсортированного по дате начала действия (по возрастанию) - GET запрос, /v1/prices
Request parameters

page, size - query-параметр, необязательный: номер и размер страницы с ценами
sort - query-параметр, необязательный: сортировка цен
articleId - query-параметр, необязательный: идентификатор товара, для которого нужно вывести цены
statusFilter - query-параметр, необязательный: статус цен, которые нужно вывести //Может быть ACTIVE, UPCOMING, INACTIVE, EDITABLE. Если статус не указан, то выводятся все цены.
currencyId - query-параметр, необязательный: идентификатор валюты, для которой нужно вывести цены

Copy-icon
Response sample

{
    "content": [
        {
            "id": "c2122fd7-fef3-4801-aa06-49b4ebc91d05",
            "articleId": "1021531DC",
            "validFrom": "2024-05-27T00:00:00",
            "validTo": "2024-09-29T23:59:59",
            "minQuantity": 1.00,
            "unitPrice": 123.00,
            "active": true,
            "currency": {
                "id": "02d3eb94-8d0c-4e21-a952-db8684a1534d",
                "isoCode": "EUR",
                "name": "Euro",
                "symbol": "€"
            },
            "priceList": {
                "id": "2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
                "name": "priceList_Беларусь"
            }
        },
        {
            "id": "03806b5d-2824-46b6-92cc-1039a553b378",
            "articleId": "1021531DC",
            "validFrom": "2024-05-28T00:00:00",
            "validTo": "2024-07-07T23:59:59",
            "minQuantity": 2.00,
            "unitPrice": 560.89,
            "active": true,
            "currency": {
                "id": "0a46630e-76d7-4eb3-b12a-79317dc871d7",
                "isoCode": "TRY",
                "name": "турецкая лира1",
                "symbol": "₺"
            },
            "priceList": {
                "id": "2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
                "name": "priceList_Беларусь"
            }
        }
    ],
    "number": 0,
    "size": 2,
    "totalElements": 2,
    "pageable": "INSTANCE",
    "last": true,
    "totalPages": 1,
    "sort": {
        "unsorted": true,
        "sorted": false,
        "empty": true
    },
    "first": true,
    "numberOfElements": 2,
    "empty": false
}

Copy-icon
Response codes

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

  • Получение страницы цен (с возможностью фильтрации) - GET запрос, /v1/prices/page
Request parameters

page, size - query-параметр, необязательный: номер и размер страницы с ценами
sort - query-параметр, необязательный: сортировка цен
statusSet - query-параметр, необязательный: статус цен //Может быть EDITABLE, ACTIVE, INACTIVE, UPCOMING. Если статус не указан, то выводятся все цены.

Copy-icon
Response sample

{
  "content": [
    {
      "id": "c2122fd7-fef3-4801-aa06-49b4ebc91d05",
      "articleId": "1021531DC",
      "validFrom": "2024-05-27T00:00:00",
      "validTo": "2024-09-29T23:59:59",
      "minQuantity": 1,
      "unitPrice": 123,
      "active": true,
      "currency": {
        "id": "02d3eb94-8d0c-4e21-a952-db8684a1534d",
        "isoCode": "EUR",
        "name": "Euro",
        "symbol": "€"
      },
      "priceList": {
        "id": "2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
        "name": "priceList_Беларусь"
      }
    },
    {
      "id": "03806b5d-2824-46b6-92cc-1039a553b378",
      "articleId": "1021531DC",
      "validFrom": "2024-05-28T00:00:00",
      "validTo": "2024-07-07T23:59:59",
      "minQuantity": 2,
      "unitPrice": 560.89,
      "active": true,
      "currency": {
        "id": "0a46630e-76d7-4eb3-b12a-79317dc871d7",
        "isoCode": "TRY",
        "name": "турецкая лира1",
        "symbol": "₺"
      },
      "priceList": {
        "id": "2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
        "name": "priceList_Беларусь"
      }
    }
  ],
  "number": 0,
  "size": 2,
  "totalElements": 2,
  "pageable": "INSTANCE",
  "last": true,
  "totalPages": 1,
  "sort": {
    "unsorted": true,
    "sorted": false,
    "empty": true
  },
  "first": true,
  "numberOfElements": 2,
  "empty": false
}

Copy-icon
Response codes

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

  • Получение цены по ее ID - GET запрос, /v1/prices/{id}
Request parameters

id - query-параметр, обязательный: идентификатор цены

Copy-icon
Response sample

{
  "id": "03806b5d-2824-46b6-92cc-1039a553b378",
  "articleId": "1021531DC",
  "validFrom": "2024-05-28T00:00:00",
  "validTo": "2024-07-07T23:59:59",
  "minQuantity": 2,
  "unitPrice": 560.89,
  "active": true,
  "currency": {
    "id": "0a46630e-76d7-4eb3-b12a-79317dc871d7",
    "isoCode": "TRY",
    "name": "турецкая лира1",
    "symbol": "₺"
  },
  "priceList": {
    "id": "2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
    "name": "priceList_Беларусь"
  }
}

Copy-icon
Response codes
  • 200 - операция выполнена успешно, получены данные о запрашиваемой цене
  • 404 - ошибка, запрашиваемая цена не найдена
  • Получение всех цен на товар - GET запрос, /v1/prices/info
Request parameters

articleId - query-параметр, обязательный: идентификатор товара

Copy-icon
Response sample

[
    {
        "articleId": "1001108DC",
        "prices": {
            "02d3eb94-8d0c-4e21-a952-db8684a1534d": {
                "unitPrice": 120.00,
                "discountUnitPrice": 120.00
            },
            "e9759201-492f-49f8-a44f-fbddffcd7256": {
                "unitPrice": 1200.00,
                "discountUnitPrice": 1200.00
            }
        }
    }
]

Copy-icon
Response codes

200 - операция выполнена успешно

  • Получение отфильтрованного списка цен - POST запрос, /v1/prices/list
Request parameters

Отсутствуют.

Request  body sample

{
    "articleId": "1001611DC"
}

Copy-icon
Response sample

[
    {
      "id": "c2122fd7-fef3-4801-aa06-49b4ebc91d05",
      "articleId": "1021531DC",
      "validFrom": "2024-05-27T00:00:00",
      "validTo": "2024-09-29T23:59:59",
      "minQuantity": 1,
      "unitPrice": 123,
      "active": true,
      "currency": {
        "id": "02d3eb94-8d0c-4e21-a952-db8684a1534d",
        "isoCode": "EUR",
        "name": "Euro",
        "symbol": "€"
      },
      "priceList": {
        "id": "2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
        "name": "priceList_Беларусь"
      }
    },
    {
      "id": "03806b5d-2824-46b6-92cc-1039a553b378",
      "articleId": "1021531DC",
      "validFrom": "2024-05-28T00:00:00",
      "validTo": "2024-07-07T23:59:59",
      "minQuantity": 2,
      "unitPrice": 560.89,
      "active": true,
      "currency": {
        "id": "0a46630e-76d7-4eb3-b12a-79317dc871d7",
        "isoCode": "TRY",
        "name": "турецкая лира1",
        "symbol": "₺"
      },
      "priceList": {
        "id": "2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
        "name": "priceList_Беларусь"
      }
    }
  ]

Copy-icon
Response codes

200 - операция выполнена успешно

  • Создание цены для варианта товара - POST запрос, /v2/prices
Request parameters

Отсутствуют.

Request body sample

{
    "articleId": "1021612DC",
    "validFrom": "2024-06-14T00:00:00.000",
    "validTo": "2024-06-15T23:59:59.000",
    "minQuantity": "1",
    "unitPrice": "198",
    "active": true,
    "currency": {
        "id": "02d3eb94-8d0c-4e21-a952-db8684a1534d",
        "isoCode": "EUR",
        "name": "Euro",
        "symbol": "€"
    },
    "priceList": {
        "id": "2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
        "name":"priceList_Беларусь"
    }
}

Copy-icon
Response sample

{
   "id":"c7bd8ba2-2855-466a-8414-3bfb93b89523",
   "articleId":"1021612DC",
   "validFrom":"2024-06-14T00:00:00",
   "validTo":"2024-06-15T23:59:59",
   "minQuantity":1.00,
   "unitPrice":198.00,
   "active":true,
   "currency":{
      "id":"02d3eb94-8d0c-4e21-a952-db8684a1534d",
      "isoCode":"EUR",
      "name":"Euro",
      "symbol":"€"
   },
   "priceList":{
      "id":"2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
      "name":"priceList_Беларусь"
   }
}

Copy-icon
Response codes
  • 200 - операция выполнена успешно, цена для варианта товара создана
  • 404 - ошибка, не найден вариант товара
  • 422 - ошибка, отсутствуют обязательные данные (например, articleId - артикул варианта товара)
  • Создание цены для варианта товара - POST запрос, /v3/prices
Request parameters

Отсутствуют.

Request body sample

{
    "articleId": "1021612DC",
    "validFrom": "2024-06-14T00:00:00.000",
    "validTo": "2024-06-15T23:59:59.000",
    "minQuantity": "1",
    "unitPrice": "198",
    "active": true,
    "currency": {
        "id": "02d3eb94-8d0c-4e21-a952-db8684a1534d",
        "isoCode": "EUR",
        "name": "Euro",
        "symbol": "€"
    },
    "priceList": {
        "id": "2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
        "name":"priceList_Беларусь"
    }
}

Copy-icon
Response sample

{
   "id":"c7bd8ba2-2855-466a-8414-3bfb93b89523",
   "articleId":"1021612DC",
   "validFrom":"2024-06-14T00:00:00",
   "validTo":"2024-06-15T23:59:59",
   "minQuantity":1.00,
   "unitPrice":198.00,
   "active":true,
   "currency":{
      "id":"02d3eb94-8d0c-4e21-a952-db8684a1534d",
      "isoCode":"EUR",
      "name":"Euro",
      "symbol":"€"
   },
   "priceList":{
      "id":"2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
      "name":"priceList_Беларусь"
   }
}

Copy-icon
Response codes
  • 201 - операция выполнена успешно, цена для варианта товара создана
  • 404 - ошибка, не найден вариант товара
  • 422 - ошибка, отсутствуют обязательные данные (например, articleId - артикул варианта товара)
  • Создание цены для варианта товара (с кэшированием) - POST запрос, /v4/prices
Request parameters

Отсутствуют.

Request body sample

{
    "articleId": "1021612DC",
    "validFrom": "2024-06-14T00:00:00.000",
    "validTo": "2024-06-15T23:59:59.000",
    "minQuantity": "1",
    "unitPrice": "198",
    "active": true,
    "currency": {
        "id": "02d3eb94-8d0c-4e21-a952-db8684a1534d",
        "isoCode": "EUR",
        "name": "Euro",
        "symbol": "€"
    },
    "priceList": {
        "id": "2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
        "name":"priceList_Беларусь"
    }
}

Copy-icon
Response sample

{
   "id":"c7bd8ba2-2855-466a-8414-3bfb93b89523",
   "articleId":"1021612DC",
   "validFrom":"2024-06-14T00:00:00",
   "validTo":"2024-06-15T23:59:59",
   "minQuantity":1.00,
   "unitPrice":198.00,
   "active":true,
   "currency":{
      "id":"02d3eb94-8d0c-4e21-a952-db8684a1534d",
      "isoCode":"EUR",
      "name":"Euro",
      "symbol":"€"
   },
   "priceList":{
      "id":"2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
      "name":"priceList_Беларусь"
   }
}

Copy-icon
Response codes
  • 201 - операция выполнена успешно, цена для варианта товара создана
  • 404 - ошибка, не найден вариант товара
  • 422 - ошибка, отсутствуют обязательные данные (например, articleId - артикул варианта товара)
  • Изменение цены варианта товара - PATCH запрос, /v2/prices/{id}
Request parameters

id - path-параметр, обязательный: идентификатор цены товара

Copy-icon
Request body sample

{
   "articleId":"1021612DC",
   "validFrom":"2024-06-14T00:00:00",
   "validTo":"2024-06-15T23:59:59",
   "minQuantity":1.00,
   "unitPrice":190.00,
   "active":true,
   "currency":{
      "id":"02d3eb94-8d0c-4e21-a952-db8684a1534d",
      "isoCode":"EUR",
      "name":"Euro",
      "symbol":"€"
   },
   "priceList":{
      "id":"2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
      "name":"priceList_Беларусь"
   }
}

Copy-icon
Response sample

{
   "id":"c7bd8ba2-2855-466a-8414-3bfb93b89523",
   "articleId":"1021612DC",
   "validFrom":"2024-06-14T00:00:00",
   "validTo":"2024-06-15T23:59:59",
   "minQuantity":1.00,
   "unitPrice":190.00,
   "active":true,
   "currency":{
      "id":"02d3eb94-8d0c-4e21-a952-db8684a1534d",
      "isoCode":"EUR",
      "name":"Euro",
      "symbol":"€"
   },
   "priceList":{
      "id":"2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
      "name":"priceList_Беларусь"
   }
}

Copy-icon
Response codes
  • 200 - операция выполнена успешно, данные о цене варианта товара обновлены
  • 404 - ошибка, цена варианта товара не найдена
  • 409 - ошибка, нельзя изменить id (идентификатор цены) и/или articleId (идентификатор варианта товара)
  • 422 - ошибка, отсутствуют обязательные данные
  • Удаление цены варианта товара - DELETE запрос, /v2/prices/{id}
Request parameters

id - path-параметр, обязательный: идентификатор цены товара

Copy-icon
Response sample

Отсутствует. В ответе приходит только код операции.

Response codes
  • 204 - операция выполнена успешно, цена варианта товара удалена
  • 404 - ошибка, цена варианта товара не найдена
  • Удаление цены варианта товара - DELETE запрос, /v3/prices/{id}
Request parameters

id - path-параметр, обязательный: идентификатор цены товара

Copy-icon
Response sample

Отсутствует. В ответе приходит только код операции, например, 204.

Response codes
  • 204 - операция выполнена успешно, цена варианта товара удалена
  • 404 - ошибка, цена варианта товара не найдена
  • Удаление цены варианта товара (с кэшированием) - DELETE запрос, /v4/prices/{id}
Request parameters

id - path-параметр, обязательный: идентификатор цены товара

Copy-icon
Response sample

Отсутствует. В ответе приходит только код операции, например, 204.

Response codes
  • 204 - операция выполнена успешно, цена варианта товара удалена
  • 404 - ошибка, цена варианта товара не найдена
  • Получение цены по ее ID - GET запрос, /v2/prices/{id}
Request parameters

id - query-параметр, обязательный: идентификатор цены

Copy-icon
Response sample

{
  "id": "03806b5d-2824-46b6-92cc-1039a553b378",
  "articleId": "1021531DC",
  "validFrom": "2024-05-28T00:00:00",
  "validTo": "2024-07-07T23:59:59",
  "minQuantity": 2,
  "unitPrice": 560.89,
  "active": true,
  "currency": {
    "id": "0a46630e-76d7-4eb3-b12a-79317dc871d7",
    "isoCode": "TRY",
    "name": "турецкая лира1",
    "symbol": "₺"
  },
  "priceList": {
    "id": "2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
    "name": "priceList_Беларусь"
  }
}

Copy-icon
Response codes
  • 200 - операция выполнена успешно, получены данные о запрашиваемой цене
  • 404 - ошибка, запрашиваемая цена не найдена
  • Изменение цены варианта товара - PATCH запрос, /v3/prices/{id}
Request parameters

id - path-параметр, обязательный: идентификатор цены товара

Copy-icon
Request body sample

{
   "articleId":"1021612DC",
   "validFrom":"2024-06-14T00:00:00",
   "validTo":"2024-06-15T23:59:59",
   "minQuantity":1.00,
   "unitPrice":190.00,
   "active":true,
   "currency":{
      "id":"02d3eb94-8d0c-4e21-a952-db8684a1534d",
      "isoCode":"EUR",
      "name":"Euro",
      "symbol":"€"
   },
   "priceList":{
      "id":"2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
      "name":"priceList_Беларусь"
   }
}

Copy-icon
Response sample

{
   "id":"c7bd8ba2-2855-466a-8414-3bfb93b89523",
   "articleId":"1021612DC",
   "validFrom":"2024-06-14T00:00:00",
   "validTo":"2024-06-15T23:59:59",
   "minQuantity":1.00,
   "unitPrice":190.00,
   "active":true,
   "currency":{
      "id":"02d3eb94-8d0c-4e21-a952-db8684a1534d",
      "isoCode":"EUR",
      "name":"Euro",
      "symbol":"€"
   },
   "priceList":{
      "id":"2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
      "name":"priceList_Беларусь"
   }
}

Copy-icon
Response codes
  • 200 - операция выполнена успешно, данные о цене варианта товара обновлены
  • 204 - No Content
  • 404 - ошибка, цена с таким ID не найдена
  • 409 - ошибка, нельзя изменить id (идентификатор цены) и/или articleId (идентификатор варианта товара)
  • 422 - ошибка, отсутствуют обязательные данные
  • Изменение цены варианта товара (с кэшированием) - PATCH запрос, /v4/prices/{id}
Request parameters

id - path-параметр, обязательный: идентификатор цены товара

Copy-icon
Request body sample

{
   "articleId":"1021612DC",
   "validFrom":"2024-06-14T00:00:00",
   "validTo":"2024-06-15T23:59:59",
   "minQuantity":1.00,
   "unitPrice":190.00,
   "active":true,
   "currency":{
      "id":"02d3eb94-8d0c-4e21-a952-db8684a1534d",
      "isoCode":"EUR",
      "name":"Euro",
      "symbol":"€"
   },
   "priceList":{
      "id":"2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
      "name":"priceList_Беларусь"
   }
}

Copy-icon
Response sample

{
   "id":"c7bd8ba2-2855-466a-8414-3bfb93b89523",
   "articleId":"1021612DC",
   "validFrom":"2024-06-14T00:00:00",
   "validTo":"2024-06-15T23:59:59",
   "minQuantity":1.00,
   "unitPrice":190.00,
   "active":true,
   "currency":{
      "id":"02d3eb94-8d0c-4e21-a952-db8684a1534d",
      "isoCode":"EUR",
      "name":"Euro",
      "symbol":"€"
   },
   "priceList":{
      "id":"2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
      "name":"priceList_Беларусь"
   }
}

Copy-icon
Response codes
  • 200 - операция выполнена успешно, данные о цене варианта товара обновлены
  • 204 - No Content
  • 404 - ошибка, цена с таким ID не найдена
  • 409 - ошибка, нельзя изменить id (идентификатор цены) и/или articleId (идентификатор варианта товара)
  • 422 - ошибка, отсутствуют обязательные данные
  • Получение страницы с ценами (с возможностью фильтрации) - POST запрос, /v2/prices/page
Request body sample

{
    "sort": [
        {
            "sortBy": "articleId",
            "direction": "desc"
        }
    ],
    "page": 0,
    "size": 3,
    "filter": {
        "articleId": "",
        "priceListIds": [
            "2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c"
        ],
        "statusSet": [
            "EDITABLE"
        ],
        "validFrom": "",
        "validTo": "",
        "minQuantityFirstValue": "",
        "minQuantityFirstOperator": "EQ",
        "minQuantityFilterConnectiveType": "AND",
        "minQuantitySecondValue": "",
        "minQuantitySecondOperator": "EQ",
        "priceFirstValue": "",
        "priceFirstOperator": "EQ",
        "priceFilterConnectiveType": "AND",
        "priceSecondValue": "",
        "priceSecondOperator": "EQ",
        "currenciesIds": []
    }
}

Copy-icon
Response sample

{
  "content": [
    {
      "id": "f5af1957-f3ed-4cf6-b6bf-9fed81db7c24",
      "articleId": "D022283DC",
      "validFrom": "2024-06-03T00:00:00",
      "validTo": "2024-12-27T23:59:59",
      "minQuantity": 1,
      "unitPrice": 100,
      "active": true,
      "currency": {
        "id": "02d3eb94-8d0c-4e21-a952-db8684a1534d",
        "isoCode": "EUR",
        "name": "Euro",
        "symbol": "€"
      },
      "priceList": {
        "id": "2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
        "name": "priceList_Беларусь"
      }
    },
    {
      "id": "24ab59c7-763e-4078-8047-1b0e07fe40b2",
      "articleId": "1021617DC",
      "validFrom": "2024-04-08T00:00:00",
      "validTo": "2024-09-05T23:59:59",
      "minQuantity": 1,
      "unitPrice": 25,
      "active": true,
      "currency": {
        "id": "02d3eb94-8d0c-4e21-a952-db8684a1534d",
        "isoCode": "EUR",
        "name": "Euro",
        "symbol": "€"
      },
      "priceList": {
        "id": "2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
        "name": "priceList_Беларусь"
      },
      "asset": {
        "id": "da1a24b8-32af-4a66-bbdc-188127cebb41",
        "media": {
          "url": "master/catalog/images/1713437908714-1882559365.jpg",
          "absoluteUrl": "https://test-ecom-media.digitalchief.tech/master/catalog/images/1713437908714-1882559365.jpg",
          "name": "photo_2024-01-10_19-20-00.jpg",
          "type": "PHOTO",
          "size": 134254,
          "resolution": "900x1200 px",
          "createdDate": "2024-04-18T13:58:30.589"
        },
        "title": "photo_2024-01-10_19-20-00",
        "altAttr": "photo_2024-01-10_19-20-00",
        "description": "",
        "sign": "",
        "tags": [
          ""
        ]
      }
    },
    {
      "id": "1de6ff58-aadc-45ac-9b97-8ad13a36321c",
      "articleId": "1021615DC",
      "validFrom": "2024-06-11T00:00:00",
      "validTo": "2024-06-13T23:59:59",
      "minQuantity": 1,
      "unitPrice": 100,
      "active": true,
      "currency": {
        "id": "02d3eb94-8d0c-4e21-a952-db8684a1534d",
        "isoCode": "EUR",
        "name": "Euro",
        "symbol": "€"
      },
      "priceList": {
        "id": "2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
        "name": "priceList_Беларусь"
      }
    }
  ],
  "number": 0,
  "size": 3,
  "totalElements": 11,
  "pageable": "INSTANCE",
  "last": false,
  "totalPages": 4,
  "sort": {
    "unsorted": true,
    "sorted": false,
    "empty": true
  },
  "first": true,
  "numberOfElements": 3,
  "empty": false
}

Copy-icon
Response codes

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

Работа с прайс листами Copy-icon

  • Создание прайс листа - POST запрос, /v1/pricelists
Request body sample

{
  "name": "Russia_pricelist"
}

Copy-icon
Response sample

Отсутствует.

Response codes
  • 201 - операция выполнена успешно, прайс лист создан
  • 422 - ошибка, отсутствуют обязательный данные
  • Получение прайс листа по его id - GET запрос, /v1/pricelists/{id}
Request parameters

id - path-параметр, обязательный: уникальный идентификатор прайс листа

Copy-icon
Response sample

{
  "id": "2bcd9d1a-52cc-4828-98ab-1a013cbb4b9c",
  "name": "priceList_Беларусь"
}

Copy-icon
Response codes
  • 200 - операция выполнена успешно, получены данные прайс листа
  • 404 - ошибка, прайс лист с таким ID не найден
  • Удаление прайс листа - DELETE запрос, /v1/pricelists/{id}
Request parameters

id - path-параметр, обязательный: уникальный идентификатор прайс листа

Copy-icon
Response sample

Отсутствует.

Response sample
  • 204 - операция выполнена успешно, прайс лист удален
  • 404 - ошибка, прайс лист с таким ID не найден
  • Редактирование прайс листа - PATCH запрос, /v1/pricelists/{id}
Request parameters

id - path-параметр, обязательный: уникальный идентификатор прайс листа

Copy-icon
Request body sample

{
  "name": "pricelist_edited"
}

Copy-icon
Response sample

{
  "id": "aa8db513-d7f6-4d29-87d2-11f2b8cd68ca",
  "name": "pricelist_edited"
}

Copy-icon
Response codes
  • 202 - операция выполнена успешно, прайс лист отредактирован
  • 204 - No Content
  • 404 - ошибка, прайс лист с таким ID не найден