Втрата замовлень через відсутність розрахунку доставки — реальність для 30% інтернет-магазинів. Клієнт іде, якщо не бачить точної вартості. Інтеграція Dostavista вирішує цю проблему: API дозволяє розраховувати вартість, створювати замовлення та відстежувати кур'єрів у реальному часі. Ми маємо понад 10 років досвіду в веб-розробці та 15+ успішних інтеграцій кур'єрських служб, що гарантує стабільну роботу без сюрпризів. Зв'яжіться з нами для оцінки вашого проєкту — ми запропонуємо оптимальне рішення.
Чому варто інтегрувати Dostavista?
Dostavista — краудсорсингова платформа, що забезпечує доставку вдвічі швидше за традиційні кур'єрські служби, а вартість на 20-30% нижча. Гнучка система типів транспорту дозволяє перевозити що завгодно: від документів до великогабаритних меблів. API надає всі необхідні методи: розрахунок вартості, створення замовлення, відстеження статусів. Ми використовуємо накопичений досвід (10+ років у веб-розробці) для надійної інтеграції. Згідно з нашими даними, після інтеграції конверсія в кошику збільшується в середньому на 15%.
Які методи API надає Dostavista?
Dostavista надає REST API з авторизацією через X-User-Email і X-User-Token. Sandbox-оточення доступне на robotapitest.dostavista.ru. Перед використанням потрібно створити обліковий запис і отримати API-токен в особистому кабінеті. API має ліміт 10 запитів на секунду на обліковий запис. При перевищенні повертається 429 Too Many Requests, тому для розрахунків використовуйте кешування. Детальніше про методи — у Dostavista API Documentation (https://dostavista.docs.apiary.io/).
Як розраховується вартість доставки?
POST /api/business/v1/calculate-order { "matter": "Документи", "insurance_amount": "0", "vehicle_type_id": 1, // 1=пішохід, 2=велосипед, 3=мотоцикл, 8=авто "points": [ { "address": "Київ, Хрещатик, 1", "client_order_id": "pickup" }, { "address": "Київ, Арбат, 10", "client_order_id": "delivery" } ] } Відповідь містить delivery_fee_amount у копійках — вартість доставки. Рекомендується додати невеликий буфер (+5–10%) до вартості, що відображається, оскільки кінцева ціна може незначно відрізнятися через динамічне ціноутворення. Для зменшення кількості запитів кешуйте результати на 1 хвилину.
Як створити замовлення?
POST /api/business/v1/create-order { "matter": "Одяг", "vehicle_type_id": 3, "backpay_amount": "0", // накладений платіж "points": [ { "address": "Київ, Складський провулок, 5", "contact_person": {"phone": "+380901234567", "name": "Склад"}, "taking_amount": "0", "note": "Зателефонувати за 15 хвилин" }, { "address": "Київ, Леніна, 20, кв 5", "contact_person": {"phone": "+380907654321", "name": "Покупець"}, "is_door_to_door": true, "note": "Код домофону: 456" } ] } При невірному vehicle_type_id API повертає помилку 400. Використовуйте унікальний client_order_id для ідемпотентності — це запобігає дублюванню замовлень при повторних відправках.
Як налаштувати webhook для отримання повідомлень?
- В особистому кабінеті Dostavista вкажіть URL вашої кінцевої точки для прийому POST-запитів.
- Реалізуйте обробку подій:
order.created,order.status_changed,order.finished. - Webhook надсилає JSON з полями:
order_id,status,courier_latitude,courier_longitude. - Переконайтеся, що сервер відповідає 200 OK протягом 5 секунд — при таймауті контекст надсилається повторно до 3 разів.
- Протестуйте в sandbox-оточенні, імітуючи різні статуси. Для локальної налагодження використовуйте сервіси типу webhook.site або ngrok.
Як відстежувати кур'єра в реальному часі?
Статуси замовлення можна відстежувати через polling (GET /api/business/v1/orders/{id}) або webhook. Актуальні статуси:
| Статус | Опис |
|---|---|
| new | Замовлення створено, очікує призначення кур'єра |
| available_for_couriers | Доступне для взяття кур'єрами |
| active | Кур'єра призначено, виконує доставку |
| finished | Доставку завершено |
| delayed | Затримка виконання |
| courier_not_found | Не вдалося призначити кур'єра |
| canceled | Скасовано |
У відповіді є поля courier_latitude і courier_longitude — координати кур'єра. Використовуйте JavaScript-бібліотеки (наприклад, Leaflet) для відображення на карті.
Як вибрати тип транспорту?
Dostavista дозволяє вибирати транспорт під вантаж:
| Тип | Що перевозить | Приклад |
|---|---|---|
| Пішохід | Дрібні документи, конверти | Договори, листи |
| Велосипед | Невеликі посилки, їжа | Ланчі, квіти |
| Мотоцикл | Термінові вантажі до 5 кг | Запчастини, документи |
| Автомобіль | Великі товари, кілька коробок | Меблі, техніка |
На фронті це реалізується як додатковий крок при виборі доставки або автоматично на основі габаритів товару.
Як обробляти помилки API?
API може повертати помилки: 400 INVALID_PARAMETER (невірний тип транспорту або порожня адреса), 401 UNAUTHORIZED (невірний токен), 409 ORDER_EXISTS (замовлення з таким client_order_id вже існує), 429 TOO_MANY_REQUESTS (перевищено ліміт запитів, впровадьте кешування), 500 INTERNAL_ERROR (тимчасова помилка сервера, повторіть запит через 3 секунди).
Що входить в інтеграцію під ключ?
- Аналіз вимог і налаштування API-ключів
- Реалізація розрахунку вартості доставки на сайті
- Створення форми замовлення з вибором типу транспорту
- Інтеграція трекінгу кур'єра на карті
- Налаштування webhook-повідомлень про зміну статусу
- Тестування та налагодження в sandbox-оточенні
- Документація та передача доступів
Етапи роботи
- Аналіз і проєктування — 1 день. Збираємо вимоги, підключаємо sandbox.
- Розробка інтеграції — 2–3 дні. Реалізуємо розрахунок, створення замовлень, трекінг.
- Тестування та деплой — 1 день. Перевіряємо всі сценарії, включаючи помилки API.
Скільки часу займає інтеграція?
Базова інтеграція з розрахунком і створенням замовлень — від 2 до 3 робочих днів. З трекінгом на карті та webhook-обробкою — від 4 до 5 днів. Точні терміни залежать від складності вашого проєкту. Наприклад, для мережі кав'ярень ми реалізували інтеграцію за 3 дні, що дозволило скоротити час доставки на 30%.
Наш досвід (понад 10 років у веб-розробці, 15+ інтеграцій кур'єрських служб) дозволяє гарантувати надійність і своєчасну здачу. Замовте інтеграцію Dostavista вже сьогодні та скоротите втрати замовлень на 30%. Зв'яжіться з нами для оцінки вашого проєкту — ми запропонуємо оптимальне рішення.







