Ukrposhta API: автоматизація доставки для інтернет-магазину на OpenCart
Підключення Ukrposhta API до OpenCart скорочує час обробки замовлень і усуває ручні помилки при формуванні накладних.
Чому це важливо для бізнесу
Укрпошта обслуговує понад 11 000 відділень і охоплює населені пункти, куди Nova Poshta не доходить. Для e-commerce магазинів, що продають у сільські регіони та за кордон, Укрпошта — єдиний варіант.
Без API-інтеграції кожна накладна створюється вручну: 3–5 хвилин на замовлення, помилки в адресах, затримки відправлень. При 50 замовленнях на день це 4+ годин непродуктивної роботи щодня.
Що дає API-інтеграція
- Автоматичне створення накладних при підтвердженні замовлення
- Розрахунок вартості доставки в кошику в реальному часі
- Відстеження статусу посилки прямо в кабінеті замовника
- Масова генерація ТТН для партій відправлень
Як це реалізується на OpenCart
OpenCart 3.x і 4.x підтримують кастомні розширення для доставки через стандартний Shipping інтерфейс. Для інтеграції з Ukrposhta API потрібно пройти чотири кроки.
Крок 1 — Отримати API-ключ
Зареєструйтесь у особистому кабінеті бізнес-клієнта на business.ukrposhta.ua. API надається безкоштовно для юридичних осіб і ФОП.
Крок 2 — Написати OpenCart-розширення
Клас розширення реалізує методи quote() для розрахунку тарифів і createShipment() для створення накладної. Ukrposhta API використовує Bearer-токен авторизацію.
$response = Http::withToken($this->apiKey)
->post('https://www.ukrposhta.ua/api/1.0.0/shipments', [
'sender' => $senderData,
'recipient' => $recipientData,
'deliveryType' => 'W2W', // відділення → відділення
'weight' => $weight,
'length' => $length,
'width' => $width,
'height' => $height,
]); Крок 3 — Відображення тарифів у кошику
Метод quote() викликає GET /api/1.0.0/domestic/services/tariff з параметрами відправника, одержувача і ваги. OpenCart відображає розраховану суму поряд з іншими методами доставки — без додаткових кроків з боку покупця.
Крок 4 — Кабінет відстеження
Після оплати замовлення трекінг-номер записується в order_history. Через GET /api/1.0.0/shipments/{uuid}/statuses ваш сайт показує статус посилки без переходу на сайт Укрпошти.
Типові підводні камені
- Зона доставки: тип відправлення
W2W,W2D,D2W,D2Dвпливає на тариф і доступні відділення — уточніть з клієнтом перед проектуванням UI. - Ліміти запитів: кешуйте розрахунок тарифів у Redis або session storage — не калькулюйте при кожному keystroke у формі доставки.
- Адресна база: API вимагає структурований адрес (область, місто, район). Якщо ваша форма використовує вільний текст — додайте крок адресної валідації через Ukrposhta address autocomplete endpoint.
Терміни реалізації
Повноцінне OpenCart-розширення з тарифами, створенням накладних і відстеженням статусу займає 5–7 робочих днів. Якщо потрібна масова генерація ТТН через адмінпанель — ще 2 дні.
Готові автоматизувати доставку?
MaxiMoruM розробляє інтеграції з Ukrposhta, Nova Poshta та іншими службами доставки для OpenCart, WooCommerce і Laravel. Ми беремо проект від технічного завдання до деплою.