</>
maximorum.com

Ukrposhta API: автоматизація доставки для інтернет-магазину на OpenCart

D

Ukrposhta API: автоматизація доставки для інтернет-магазину на OpenCart

Підключення 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. Ми беремо проект від технічного завдання до деплою.

Напишіть нам → maximorum.com