</>
maximorum.com

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

D

Укрпошта обслуговує понад 28 000 відділень по всій Україні — включно з тими населеними пунктами, куди інші перевізники не доставляють. Для інтернет-магазину на OpenCart підключення API Укрпошти означає автоматичний розрахунок вартості доставки на касі, генерацію ТТН після оплати замовлення і трекінг відправлень у реальному часі — без жодної ручної роботи менеджера.

Що отримує бізнес від інтеграції

  • Клієнт бачить точну вартість доставки на сторінці оформлення замовлення — конверсія зростає
  • ТТН формується автоматично після підтвердження оплати
  • Менеджер не вводить адреси вручну — помилки при формуванні накладних зникають
  • Статус відправлення оновлюється в адмін-панелі OpenCart і в кабінеті клієнта
  • Покриття доставки розширюється без додаткових витрат на логістику

Як побудована інтеграція

1. Отримання API-доступу

Зареєструйтесь у системі Укрпошти для бізнесу на ukrposhta.ua. Після верифікації ви отримаєте Bearer-токен для авторизації запитів. Зберігайте токен у змінних оточення OpenCart — не хардкодьте його в коді модуля, щоб уникнути витоку при передачі коду.

2. Shipping-модуль для OpenCart

OpenCart дозволяє реалізувати власний модуль доставки через стандартний інтерфейс \Cart\Shipping. Модуль звертається до ендпоінту Укрпошти /shipments/calculation і повертає актуальні тарифи на сторінку оформлення замовлення:

class UkrposhtaShipping extends \Cart\Shipping
{
    public function getQuote(array $address): array
    {
        $response = Http::withToken(getenv('UKRPOSHTA_TOKEN'))
            ->post('https://www.ukrposhta.ua/ecom/0.0.1/shipments/calculation', [
                'senderCityId'    => $this->config->get('ukrposhta_city_id'),
                'recipientCityId' => $this->resolveCityId($address),
                'weight'          => $this->cart->getWeight(),
                'declaredPrice'   => $this->cart->getTotal(),
                'type'            => 'STANDARD',
            ]);

        return $this->formatQuote($response->json());
    }
}

3. Автоматична генерація ТТН

Після підтвердження замовлення та оплати хук catalog/model/checkout/order/addOrderHistory/after викликає ендпоінт POST /shipments з даними одержувача та параметрами відправлення. Сформований номер ТТН зберігається в коментарі до замовлення. Менеджер отримує PDF-наклейку для друку одним кліком з адмін-панелі.

4. Трекінг у реальному часі

Cron-завдання кожні 4 години запитує статус відправлення через ендпоінт GET /statuses/{barcode}. Отриманий статус автоматично оновлює стан замовлення в OpenCart і відправляє клієнту email-повідомлення — наприклад, «Ваша посилка прибула у відділення».

Результати в цифрах

  • Час обробки одного замовлення скорочується з 15 до 2 хвилин
  • Помилки адрес при формуванні ТТН — нуль (дані беруться напряму з форми замовлення)
  • Охоплення доставки зростає: усі 28 000+ відділень Укрпошти без змін у процесах
  • Клієнт отримує автоматичні сповіщення на кожному етапі доставки

Досвід MaxiMoruM у логістичних інтеграціях

MaxiMoruM реалізував інтеграції з українськими логістичними і платіжними сервісами для десятків інтернет-магазинів на OpenCart і WooCommerce. Кожен модуль ми покриваємо автоматичними тестами і передаємо з документацією для вашої команди підтримки.

Хочете підключити Укрпошту до свого магазину? Звертайтесь до MaxiMoruM на maximorum.com — обговоримо терміни, технічні деталі і вартість у першому дзвінку.