Перейти до основного вмісту

Оновлення замовлень

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_numberstringТакНомер замовлення
drugstore_order_numberstringНіНомер замовлення аптеки
status_namestringТакКод статусу
deliveryobjectНіДані доставки
delivery.delivery_type_codestringНіКод типу доставки:
  • pick_up - Самовивіз
  • ukr_post - Укрпошта
  • nova_post - Нова Пошта
  • meest_express - Meest Express
  • justin - Justin
  • uklon - Uklon
  • i_post - iPost
  • delivery.ettnstringНіНомер ТТН
    delivery.postcodestringНіПоштовий індекс отримувача
    delivery.citystringНіМісто отримувача
    delivery.regionstringНіОбласть отримувача
    delivery.districtstringНіРайон отримувача
    delivery.streetstringНіВулиця отримувача
    delivery.house_numberstringНіНомер будинку отримувача
    delivery.apartment_numberstringНіНомер квартири отримувача
    delivery.post_office_boxstringНіНомер поштової скриньки отримувача
    paymentobjectНіДані про оплату замовлення
    payment.payment_method_codestringНіКод типу оплати:
  • liq_pay - Оплата карткою на сайті
  • cash_on_delivery - Оплата при отриманні товару
  • cash_in_store - В аптеці карткою або готівкою
  • google_pay - Оплата за допомогою Google Pay
  • payment.total_paidfloatНіЗагальна оплачена сума
    payment.terminal_idstringНіІдентифікатор термінала
    payment.epzstringНіЕлектронний платіжний засіб
    payment.midstringНіМерчант id
    payment.card_typestringНіТип карти
    payment.auth_codestringНіКод авторизації
    payment.rrnstringНіУнікальний ідентифікатор банківської транзакції, який призначається банком Еквайєром під час ініціалізації платежу
    payment.datetimestringНіДата та час операції у форматі: 2025-04-04 15:49:03
    payment.namestringТакТип оплати
    payment.payment_systemstringНіПлатіжна система
    goodslist[object]ТакПерелік товарів
    Масив не може бути порожнім
    goods.local_goods_idstringТакІдентифікатор товару аптечної мережі
    goods.pricefloatТакВартість одиниці товару
    goods.quantityfloatТакКількість товару

    Приклад запиту

    Запит: /api/v1/marketplace/order
    [
    {
    "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
    }
    ]
    }
    ]

    Параметри відповіді

    Ім'яТипОпис
    dataarrayМасив номерів оновлених замовлень
    errorsarrayМасив помилок

    Приклад успішної відповіді

    200 ОК

    Відповідь: /api/v1/marketplace/order
    {
    "data": [
    "58-63-72-43"
    ],
    "errors": []
    }

    Скасування замовлень

    інформація

    Можна робити запит такий самий як з іншими статусами

    Параметри запиту

    інформація

    Для вказівки причини скасування замовлення використовується поле cancel_reason_code, що приймає один з вказаних нижче кодів причини скасування. За відсутності можливості вказувати причину скасування замовлення кодом, використовувати поле cancel_reason вказуючи причину скасування довільним текстом.

    При використанні поля cancel_reason_code, вказувати cancel_reason НЕ потрібно

    Ім'яТипОбов'язковийОпис
    order_numberstringТакНомер замовлення
    status_namestringТакКод статусу
    cancel_reasonstringНіТекстова причина скасування
    cancel_reason_codestringНіКод причини скасування:
    • customer_refusal - Відмова покупця
    • reservation_deadline - Вийшов термін бронювання
    • no_recipe - Немає рецепту
    • insufficient_quantity_accounting_system - Недостатня кількість (по даним облікової системи)
    • insufficient_quantity_during_assembly - Недостатня кількість (під час комплектації замовлення)
    • duplicate - Дубль бронювання

    Приклад запиту

    інформація

    Приклад запиту використовується ТІЛЬКИ для скасування запиту та має спрощений варіант

    Запит: /api/v1/marketplace/order
    [
    {
    "order_number": "58-63-72-43",
    "status_name": "canceled",
    "cancel_reason_code": "insufficient_quantity_during_assembly"
    }
    ]