Що всередині
- Вибір міста та відділення прямо в кошику з автокомплітом із 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 Нової Пошти. Замовлення тестові, нічого оплачувати не потрібно (оберіть «Оплата при отриманні»).
Як це виглядає для покупця

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

Як це працює — крок за кроком
- Покупець на сайті обирає Нову Пошту як спосіб доставки, шукає місто, обирає відділення.
- Замовлення створюється у вашій OC-адмінці зі збереженою прив’язкою до конкретного відділення.
- Ви переводите замовлення у статус-тригер (за замовчуванням «В обробці»).
- Модуль автоматично кличе НП API: створює отримувача-приватну особу (з вашого checkout-у — ПІБ, телефон), потім друкує ТТН. Номер пишеться у замовлення.
- З Преміумом: погодинно опитує НП про статус кожного активного відправлення, отримує номер виплати при післяплаті, шле 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.
Як встановити
- Завантажте
nova_poshta_premium.ocmod.zipчерез Розширення → Інсталятор у вашій OC-адмінці. Для OpenCart 3.0.x використовуйте збіркуnova-poshta-premium-oc3-1.2.5.ocmod.zip(доступна у завантаженнях товару). - Активуйте у списку, потім зайдіть у налаштування → натисніть «Завершити встановлення» (створить таблиці БД, події, крон-задачі).
- Вставте API-ключ із вашого кабінету НП, натисніть «Перевірити підключення» — побачите «Зʼєднання працює».
- Оберіть ваше місто і відділення → завантажте профіль відправника → збережіть.
- Готово — у кошику зʼявиться блок з вибором НП-доставки.
- Для Преміум-функцій: вставте ліцензійний ключ із 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 — відповімо протягом робочого дня. Допоможемо з налаштуванням, сумісністю та активацією ключа.
- 5 ★ 1
- 4 ★ 0
- 3 ★ 0
- 2 ★ 0
- 1 ★ 0
Олексій
Перший раз бачу безкоштовну версію з таким функціоналом ДЯКУЮ!!!!
Дякуємо за відгук, Олексію! Безкоштовна версія й далі отримуватиме оновлення — якщо чогось бракуватиме, напишіть у вкладці «Питання», врахуємо.
Залишити відгук
Відгук модерується перед публікацією — це звичайно займає до 24 годин.
Поки питань немає. Запитай — ми відповімо протягом 24 годин.
Поставити питання
Зазвичай відповідаємо протягом 24 годин у робочий час.
Експрес-оплата
Купівля модуля
—
