Доставка · OpenCart

Nova Poshta Premium — модуль Нова Пошта для OpenCart 3.x & 4.x

Інтеграція OpenCart 4.x з Новою Поштою: вибір відділення в кошику + автоматичне створення ТТН. Преміум — накладений платіж, поворотні накладні, авто-оновлення статусів, webhooks.

5,0 1 відгук
Версія
v1.2.14 (OpenCart 4)
v1.2.5 (OpenCart 3)
Сумісність
OpenCart 3.0.2 – 3.0.5.0 та 4.0.2 – 4.1.x
Платформа
OpenCart
Nova Poshta Premium — модуль Нова Пошта для OpenCart 3.x & 4.x

Що всередині

  • Вибір міста та відділення прямо в кошику з автокомплітом із API Нової Пошти
  • Автоматичне створення ТТН при переході замовлення в статус «В обробці»
  • Список відправлень зі статусами в адмінці OpenCart
  • Накладений платіж (післяплата) з контролем суми Pro
  • Поворотні накладні в один клік з адмінки Pro
  • Авто-оновлення статусів доставки та webhooks Pro
  • Кілька складів/відправників (multi-warehouse) Pro
  • Кеш довідника міст і відділень — чекаут не гальмує
  • Працює з рідним чекаутом: без чужих iframe і переписування шаблонів
  • Сумісність з OpenCart 3.0.2–3.0.5.0 та 4.0.2–4.1.x

Nova Poshta Premium — модуль для OpenCart 3.x та 4.x, який під’єднує магазин до Нової Пошти за 10 хвилин. Покупець обирає місто і відділення прямо в кошику, а ТТН створюється автоматично, коли ви переводите замовлення в статус «В обробці». Без чужих iframe, без переписування checkout-у, без щоденного копіювання даних у кабінет НП.

Базова версія — безкоштовна. Скачати з офіційного OpenCart marketplace: opencart.com/…/extension_id=48538. Преміум-функції (накладений платіж, поворотні накладні, авто-оновлення статусів, webhooks, multi-warehouse) розблоковуються ліцензійним ключем — купити нижче.

Живе демо

Модуль можна помацати руками до покупки: відкрити демо-магазин на OpenCart 4. Додайте будь-який товар у кошик і перейдіть до оформлення замовлення — на кроці доставки з’явиться блок «Доставка Новою Поштою» з живим пошуком міст і відділень через API Нової Пошти. Замовлення тестові, нічого оплачувати не потрібно (оберіть «Оплата при отриманні»).

Як це виглядає для покупця

Кошик OpenCart з блоком вибору міста та відділення Нової Пошти
У кошику з’являється блок «Доставка Нова Поштою»: покупець вводить назву міста, бачить підказки з нашого кешу (відповідь миттєва, без затримки на API), обирає відділення зі списку — від поштоматів до сортувальних складів. Вибір зберігається в сесії і прив’язується до замовлення автоматично.

Що отримує адмін

Адмін-сторінка налаштувань Nova Poshta Premium з усіма секціями заповненими
Одна сторінка налаштувань: API-ключ, профіль і відділення відправника (підвантажуються з вашого кабінету НП), статус замовлення для авто-створення ТТН. Все рідною мовою — без термінів «counterparty» і «cargo type».

Як це працює — крок за кроком

  1. Покупець на сайті обирає Нову Пошту як спосіб доставки, шукає місто, обирає відділення.
  2. Замовлення створюється у вашій OC-адмінці зі збереженою прив’язкою до конкретного відділення.
  3. Ви переводите замовлення у статус-тригер (за замовчуванням «В обробці»).
  4. Модуль автоматично кличе НП API: створює отримувача-приватну особу (з вашого checkout-у — ПІБ, телефон), потім друкує ТТН. Номер пишеться у замовлення.
  5. З Преміумом: погодинно опитує НП про статус кожного активного відправлення, отримує номер виплати при післяплаті, шле webhook вашій CRM/ERP на кожну зміну статусу.

Що включено в ліцензії

Функція Безкоштовно Преміум
Підключення до Нової Пошти за API-ключем
Пошук міста і вибір відділення в кошику
Локальний кеш міст і відділень — підказки без затримок
Розрахунок тарифу в реальному часі за вагою і вартістю замовлення
Автоматичне створення ТТН при зміні статусу замовлення
Журнал відправлень в адмінці
Українська і англійська локалізації, транслітерація Latin → Кирилиця у ПІБ отримувача
Кастомізація вигляду блоку в кошику — акцентний колір, заокруглення, тема (авто/світла/темна)
Накладений платіж — автоматичне додавання BackwardDelivery до ТТН, синхронізація виплат від НП у замовленнях
Поворотна накладна в один клік (через AdditionalServiceGeneral)
Авто-оновлення статусів — погодинний крон синхронізує статуси відправлень з НП без вашої участі
Webhook-сповіщення на зміну статусу (HMAC-SHA256, повтори з exponential backoff) — для інтеграції з CRM/ERP/Slack
Кілька складів-відправників (multi-warehouse) — вибір автоматично за зоною/категорією товару

Скільки коштує

2 990 грн — ліцензія на рік. Рік оновлень, технічної підтримки та доступу до всіх Pro-функцій. Без автосписань: продовження завжди вручну, реквізити картки ми не зберігаємо.

Можна одразу взяти довший термін — що довший, то дешевше за рік:

  • 1 рік — 2 990 грн
  • 2 роки — 5 680 грн (−5%, по 2 840 грн за рік)
  • 3 роки — 7 890 грн (−12%, по 2 630 грн за рік)
  • 4 роки — 9 810 грн (−18%, по 2 450 грн за рік)
  • 5 років — 11 210 грн (−25%, по 2 240 грн за рік)

Коли термін спливає, вимикаються лише Pro-функції — безкоштовна версія працює далі, налаштування і дані нікуди не діваються. Щоб знову відкрити Pro, достатньо продовжити ліцензію в особистому кабінеті. Нагадаємо на пошту за 14, 7, 3 і 1 день до завершення.

Один ключ — два домени (production + staging). Переносите магазин — деактивуйте ліцензію на старому домені й активуйте на новому самостійно, без звернення до підтримки.

Спершу тріал, потім оплата. Одразу після встановлення вмикається 7-денний безкоштовний Pro-тріал: генерацію ТТН, вибір відділень і калькулятор доставки можна перевірити на власному магазині ще до покупки. Саме тому повернення коштів після оплати не передбачене — ви бачите модуль у справі до того, як платите.

Технічні вимоги

  • OpenCart 4.0.2 – 4.1.x (4.2+ також працює) — або окрема збірка під OpenCart 3.0.2 – 3.0.5.0
  • PHP 8.1+ (тестовано на 8.5 — захист від нових deprecation warnings всередині JSON-ендпоінтів)
  • MySQL 5.7+ / MariaDB 10.3+
  • API-ключ Нової Пошти — безкоштовний у вашому кабінеті: my.novaposhta.ua → Налаштування → Безпека → API
  • Один зареєстрований профіль відправника у бізнес-кабінеті НП — у більшості мерчантів він вже є (без нього НП не дозволяє створювати ТТН з будь-якого джерела)

Що під капотом

  • Native для OpenCart 4.x — PSR-4 неймспейси, events-API, Twig. Не OCMOD, не XML-моди. Сумісність з наступними OC-релізами без переписування.
  • API-ключ зашифрований у БД — XOR з per-install секретом від wp-salt. Якщо хтось дампне БД — ключ не зчитається у відкритому вигляді.
  • Кеш міст і відділень з лінивим оновленням — щотижневий повний sync через cron, lazy load відділень для запитуваних міст (TTL 7 днів). Підказки в чекауті відповідають за 44 мс замість 211 мс прямого виклику API.
  • Дві стадії створення ТТН — спочатку Counterparty.save для отримувача (PrivatePerson із номером телефону у форматі НП), потім InternetDocument.save. Працює для всіх типів відправника — приватна особа, ФОП, ТОВ.
  • HMAC-підписані webhooks з повторами: 5/10/20/40 хв exponential backoff, до 4 спроб. Підписи sha256, заголовок X-NP-Signature.

Як встановити

  1. Завантажте nova_poshta_premium.ocmod.zip через Розширення → Інсталятор у вашій OC-адмінці. Для OpenCart 3.0.x використовуйте збірку nova-poshta-premium-oc3-1.2.5.ocmod.zip (доступна у завантаженнях товару).
  2. Активуйте у списку, потім зайдіть у налаштування → натисніть «Завершити встановлення» (створить таблиці БД, події, крон-задачі).
  3. Вставте API-ключ із вашого кабінету НП, натисніть «Перевірити підключення» — побачите «Зʼєднання працює».
  4. Оберіть ваше місто і відділення → завантажте профіль відправника → збережіть.
  5. Готово — у кошику зʼявиться блок з вибором НП-доставки.
  6. Для Преміум-функцій: вставте ліцензійний ключ із email після оплати → «Активувати ліцензію».

Історія версій

1.2.7 — 23 липня 2026
Виправлено фатальну помилку у розрахунку способів доставки: getQuote() завантажував неіснуючу в OpenCart 4.x catalog-модель localisation/geo_zone, через що увесь список способів доставки не з’являвся («Потрібна адреса доставки»). Перевірка гео-зони тепер робиться прямим запитом до zone_to_geo_zone, як у стокових методів. Плюс: блок міста/відділення тепер з’являється лише після вибору методу «Нова Пошта» (спочатку метод — потім поля), не конфліктує з віджетами інших перевізників, і має демо-набір міст/відділень для клікабельного тесту без API-ключа.
1.2.5 — 20 липня 2026
Виправлено роботу інструментів у налаштуваннях модуля до першого збереження: пошук міста, список відділень, тестова перевірка тарифу та завантаження профілю відправника тепер використовують API-ключ, введений у полі. Раніше вони читали лише вже збережений ключ, тоді як кнопка «Перевірити підключення» перевіряла введений — через це відразу після вставки ключа з’являлося «Ключ дійсний», а пошук міста відповідав «Нічого не знайдено». Тепер достатньо вставити ключ і одразу шукати місто.
1.2.4 — 17 липня 2026
Виправлено пошук міст на магазинах, де OpenCart працює через драйвер бази PDO (DB_DRIVER = pdo): запит падав із SQL-помилкою, тому поле показувало «Нічого не знайдено», хоча ключ і модуль були справні. На драйвері mysqli проблеми не було. Вибір відділень не зачіпався — саме тому це виглядало як проблема з API-ключем.
1.2.3 — 17 липня 2026
Виправлено пошук міст на хостингах, де не увімкнене розширення PHP mbstring: поле показувало «Нічого не знайдено», хоча API-ключ був дійсний, а вибір відділень працював. Функції mb_strtolower / mb_substr тепер викликаються лише за наявності, з UTF-8 безпечними фолбеками. Стосується збірок і для OpenCart 4.x, і для 3.x — після оновлення нічого переналаштовувати не треба.
1.2.2 — 9 липня 2026
Дрібні виправлення адмінки та оновлені скріншоти. Функціональних змін немає.
1.2.1 — 29 червня 2026
Окрема збірка під OpenCart 3.0.2 – 3.0.5.0 — повний порт 4.x-версії (non-namespaced класи, OC3 events, Bootstrap-3 адмінка). Синхронізація коду та документації. Лінія OpenCart 4.x — без функціональних змін.
1.2.0 — 23 червня 2026
Кастомізація вигляду чекаут-блоку: акцентний колір, заокруглення кутів (0–28px) і тема (авто під дизайн магазину / світла / темна) — блок підлаштовується під будь-яку тему OpenCart. Плюс доопрацювання локалізації та picker-а в кошику.
1.1.0 — 24 травня 2026
Production-ready реліз: реальний license-клієнт зі звіркою до catcode.com.ua, перевірка product_slug (ключ від іншого продукту не активує цей модуль), гейтинг Преміум-функцій через License::isPro(), 14-денний offline grace, plain-language локалізація без жаргону, merge-fix у save handler.
1.0.c–f — травень 2026
Накладений платіж (BackwardDelivery + синхронізація виплат), поворотні ТТН через AdditionalServiceGeneral.save з причиною “відмова від отримання”, транслітерація Latin → Кирилиця у ПІБ отримувача (НП не приймає латиницю), нормалізація телефону у формат НП.
1.0.b — травень 2026
Кеш міст і відділень: таблиці np_cities + np_warehouses, щотижневий cron syncCities, lazy warehouse cache з TTL 7 днів. Прискорення вибору складу у ~5 разів (211 мс → 44 мс) — підказки в кошику стають миттєвими.
1.0.a — травень 2026
Справжнє створення ТТН: налаштування Counterparty-відправника в адмінці + двоетапний createTTN (Counterparty.save → InternetDocument.save). До цього було чернетка-stub.
0.7 — травень 2026
Перший повний MVP: install hook з створенням таблиць БД, storefront picker у кошику, чернетка ТТН на нове замовлення, погодинний cron статусів, webhook-система, шифрування API-ключа через XOR з per-install секретом.

Часті питання

Чи перепишеться мій checkout?

Ні. Модуль вставляє свій блок через event у footer, без зміни вашої теми. Якщо колись захочете видалити модуль — checkout залишиться який був.

Що буде з даними після видалення модуля?

Журнал відправлень, кеш міст і вже створені ТТН залишаться в БД (на випадок аудиту). Очистити можна вручну через SQL — інструкція в документації.

Що буде з модулем, коли ліцензія завершиться?

Преміум-функції вимкнуться, а базова версія продовжить працювати без обмежень — налаштування, історія ТТН і дані нікуди не зникають. Ми нагадаємо про завершення на пошту за 14, 7, 3 і 1 день. Щойно продовжите ліцензію тим самим ключем — Преміум увімкнеться знову, переустановлювати модуль не треба.

Чи можна перенести ключ на інший домен?

Так. У налаштуваннях натисніть «Деактивувати ліцензію» на старому домені — слот звільниться, можна вставляти на новому.

Чи треба окремий додаток у НП для цього модуля?

Ні. Просто API-ключ зі стандартного бізнес-кабінету. Він безкоштовний для всіх клієнтів Нової Пошти.

Чи буде підтримка OpenCart 4.2 / 5.0?

Так. Поки тримаємо сумісність з 4.0.2–4.1.x (це 90% поточних магазинів). Як тільки 4.2 / 5.0 досягнуть стабільності — додамо їх у тестову матрицю. Оновлення доступні безкоштовно для всіх клієнтів з активною ліцензією — без додаткових платежів.

Питання щодо модуля?

Пишіть у Telegram — відповімо протягом робочого дня. Допоможемо з налаштуванням, сумісністю та активацією ключа.

@catcode_support

Не той варіант, що шукаєте?

Ми робимо кастомні модулі під WordPress, WooCommerce, OpenCart і Shopify. Розкажіть про задачу — підготуємо оцінку.

Замовити кастомний модуль