Впровадження бота для трекінгу доставки в мобільному додатку
Посилка стоїть на таможні третій день — користувач не знає, тому що трекінговий сайт ТК показує останнє оновлення «2 дні тому» та немає жодних уведомлень. Бот для трекінгу доставки перетворює пасивне очікування в активне інформування.
Джерела даних про статуси доставки
Кожна транспортна компанія — окремий API або парсинг. Крупні гравці надають офіційні API:
-
СДЭК: REST API (
api.cdek.ru), OAuth 2.0, статуси у реальному часі -
DHL: Tracking API (
api.dhl.com/track/shipments), API key -
FedEx: Track API v1 (
apis.fedex.com/track/v1/trackingnumbers) -
Почта России: трекінг через
tracking.russianpost.ru/rtm34(SOAP, що неприємно, але працює) - Boxberry, OZON Rocket — REST API з документацією
Для компаній без офіційного API або закритим доступом використовуйте парсинг через Puppeteer/Playwright на сервері — менш надійно, ломається при редизайні сайту, але для MVP підходить.
Архітектура polling-системи
Бот не може отримувати push від ТК — він сам має опитувати їх API. Стратегія polling:
- Новий трек-номер: перші 24 години — опитування щоперепини 30 хвилин
- Статус «в дорозі»: щоперепини 2 години
- Статус «на сортуванні» або «на таможні»: щоперепини 4 години
- Статус «доставлено»: трекінг зупиняється
Реалізуйте через планувальник (Bull Queue з delayed jobs). При кожному опитуванні порівняйте новий статус з останнім збереженим — якщо змінився, відправте уведомлення в Telegram та FCM push у програму.
Мобільний додаток: UX трекінгу
Головний екран — список активних відправлень з останнім статусом та часом оновлення. Тап на відправлення — детальна timeline з історією статусів.
На Flutter список будуйте через ListView.builder з Hive для локального кеша. Кожен елемент — карточка з кольоровим кодуванням статусу: зелений (доставлено), оранжевий (в дорозі), червоний (проблема/затримка).
Push-уведомлення при зміні статусу веде через deep link прямо на екран конкретного відправлення. На iOS через Universal Links, на Android через App Links з Intent та параметром tracking_id.
Обробка помилок API транспортних компаній
ТК-API не відрізняються стабільністю. СДЭК періодично повертає 500 протягом кількох годин, Почта России SOAP-endpoint буває недоступна днями.
Стратегія: retry з експоненціальним backoff (3 попитки з інтервалами 5/15/60 хвилин). Якщо три попитки упали — сповістіть користувача: «Не вдалося оновити статус [Назва ТК]. Спробуємо пізніше». Не залишайте в тишині.
Інтеграція бота з 2–3 транспортними компаніями та мобільним клієнтом — 2–3 тижні. Підтримка 10+ ТК з уніфікованим парсером — 5–7 тижнів.







