Оновлення замовлень
URI: /api/v1/marketplace/order
Метод використовується для оновлення замовлень.
Запит виконується методом POST у json форматі з даними.
⚠️ Запит повинен містити заголовок Accept: application/json
Діаграма статусів
Діаграма статусів:
Статуси замовлень
Статус | Опис |
---|---|
processed_by_pharmacy | Опрацьовано в аптеці |
check | Продаж |
canceled | Відміна |
in_process_by_pharmacy | Опрацьовується в аптеці |
processed_by_operator | Опрацьовано оператором |
created | Нове замовлення |
canceled_by_marketplace | Відміна з майданчика |
check_by_online_site | Продаж з онлайн сайту |
in_process_by_operator | Опрацьовується оператором |
send_to_distributor | Відправлено дистриб'ютору |
got_in_pharmacy | Отримано в аптеці |
При запиті про нові замовлення аптека отримуватиме замовлення зі статусами: created
, canceled_by_marketplace
, check_by_online_site
Аптека може передати наступні статуси: in_process_by_operator
, processed_by_operator
, got_in_pharmacy
, in_process_by_pharmacy
, processed_by_pharmacy
, check
, canceled
При отриманні замовлення в статусі canceled_by_marketplace
, аптека повинна у себе скасувати замовлення і відправити статус canceled
При отриманні замовлення в статусі check_by_online_site
, аптека повинна у себе відзначити, що замовлення продано і відправити статус check
Необхідно передавати всі статуси в їхній логічній послідовності для детального відстеження замовлення
Масив goods може бути змінений в любому статусі замовлення, крім canceled
Ви можете редагувати кількість та вартість товарів, а також можете прибрати позицію, якої немає в залишку
Параметри запиту
Ім'я | Тип | Обов'язковий | Опис |
---|---|---|---|
order_number | string | Так | Номер замовлення |
drugstore_order_number | string | Ні | Номер замовлення аптеки |
status_name | string | Так | Код статусу |
delivery | object | Ні | Дані доставки |
delivery.delivery_type_code | string | Ні | Код типу доставки: |
delivery.ettn | string | Ні | Номер ТТН |
delivery.postcode | string | Ні | Поштовий індекс отримувача |
delivery.city | string | Ні | Місто отримувача |
delivery.region | string | Ні | Область отримувача |
delivery.district | string | Ні | Район отримувача |
delivery.street | string | Ні | Вулиця отримувача |
delivery.house_number | string | Ні | Номер будинку отримувача |
delivery.apartment_number | string | Ні | Номер квартири отримувача |
delivery.post_office_box | string | Ні | Номер поштової скриньки отримувача |
payment | object | Ні | Дані про оплату замовлення |
payment.payment_method_code | string | Ні | Код типу оплати: |
payment.total_paid | float | Ні | Загальна оплачена сума |
payment.terminal_id | string | Ні | Ідентифікатор термінала |
payment.epz | string | Ні | Електронний платіжний засіб |
payment.mid | string | Ні | Мерчант id |
payment.card_type | string | Ні | Тип карти |
payment.auth_code | string | Ні | Код авторизації |
payment.rrn | string | Ні | Унікальний ідентифікатор банківської транзакції, який призначається банком Еквайєром під час ініціалізації платежу |
payment.datetime | string | Ні | Дата та час операції у форматі: 2025-04-04 15:49:03 |
payment.name | string | Так | Тип оплати |
payment.payment_system | string | Ні | Платіжна система |
goods | list[object] | Так | Перелік товарів Масив не може бути порожнім |
goods.local_goods_id | string | Так | Ідентифікатор товару аптечної мережі |
goods.price | float | Так | Вартість одиниці товару |
goods.quantity | float | Так | Кількість товару |
Приклад запиту
[
{
"order_number": "58-63-72-43",
"drugstore_order_number": "13123213",
"status_name": "got_in_pharmacy",
"delivery": {
"delivery_type_code": "PickUp",
"ettn": "123456789",
"postcode": "12345",
"city": "Київ",
"region": "Київська обл",
"district": "Святошинський",
"street": "Братиславська",
"house_number": "11",
"apartment_number": "145",
"post_office_box": "1245"
},
"payment": {
"payment_method_code": "LiqPay",
"total_paid": 123.09,
"terminal_id": "40904582",
"epz": "4149XXXXXXXX5807",
"mid": "493084867",
"card_type": "VISA GOLD",
"auth_code": "538296",
"rrn": "000018706638",
"datetime": "2025-04-04 15:49:03",
"name": "KARTKA",
"payment_system": "Test pay system"
},
"goods": [
{
"local_goods_id": "1",
"price": 155,
"quantity": 0.5
}
]
}
]
Параметри відповіді
Ім'я | Тип | Опис |
---|---|---|
data | array | Масив номерів оновлених замовлень |
errors | array | Масив помилок |
Приклад успішної відповіді
200 ОК
{
"data": [
"58-63-72-43"
],
"errors": []
}
Скасування замовлень
Можна робити запит такий самий як з іншими статусами
Параметри запиту
Для вказівки причини скасування замовлення використовується поле cancel_reason_code, що приймає один з вказаних нижче кодів причини скасування. За відсутності можливості вказувати причину скасування замовлення кодом, використовувати поле cancel_reason вказуючи причину скасування довільним текстом.
При використанні поля cancel_reason_code, вказувати cancel_reason НЕ потрібно
Ім'я | Тип | Обов'язковий | Опис |
---|---|---|---|
order_number | string | Так | Номер замовлення |
status_name | string | Так | Код статусу |
cancel_reason | string | Ні | Текстова причина скасування |
cancel_reason_code | string | Ні | Код причини скасування:
|
Приклад запиту
Приклад запиту використовується ТІЛЬКИ для скасування запиту та має спрощений варіант
[
{
"order_number": "58-63-72-43",
"status_name": "canceled",
"cancel_reason_code": "insufficient_quantity_during_assembly"
}
]