Description
The plugin adds a Nova Poshta shipping method to WooCommerce together with a branch picker that lives inside the checkout itself, so the customer never leaves the page or types an address by hand.
Nova Poshta is the largest parcel carrier in Ukraine. Its branches and parcel lockers are how most Ukrainian online orders are delivered, and the carrier expects a branch reference rather than a street address, which is why a plain address field does not work for these shops.
What it does
- City search with suggestions, plus a one-click list of the largest cities.
- Branch or parcel-locker selection from the carrier’s live directory.
- Delivery cost calculated through the carrier API, with an optional surcharge and free shipping above an order total.
- Waybill created from the order screen, or automatically when the order reaches a status you choose.
- Shipment log in the admin area with tracking links, and manual status refresh.
- City and branch directories are cached in the plugin’s own tables, so the checkout never waits for the API.
- The API key is stored encrypted.
- Works with both the classic checkout and the block checkout.
Nova Poshta is a third-party service. This plugin is an independent integration built on the carrier’s public API and is not affiliated with, endorsed by, or sponsored by Nova Poshta.
External services
This plugin connects to the Nova Poshta carrier API to look up cities and branches, calculate delivery cost and create waybills. Nothing is sent until you enter your own API key in the shipping method settings.
Nova Poshta API — https://api.novaposhta.ua
- When the checkout is displayed: the city and branch search terms typed by the customer, so the matching directory entries can be returned.
- When a delivery cost is calculated: the sender and recipient city references, cart weight and declared value.
- When a waybill is created: the recipient name, phone number, chosen branch, order total, weight and declared value, together with your sender profile.
- When a shipment status is refreshed: the waybill number.
The city and branch directories are also downloaded in bulk and cached locally so the checkout does not query the carrier on every page load.
Terms of service: https://novaposhta.ua/more/public-agreement-for-cbs
Privacy policy: https://novaposhta.ua/more/privacy-policy
Опис українською
Плагін додає доставку Новою Поштою у WooCommerce разом з вибором відділення прямо на сторінці оформлення замовлення — покупець не залишає сторінку і не вписує адресу руками.
- Пошук міста з підказками і список найбільших міст в один клік.
- Вибір відділення або поштомата з живого довідника перевізника.
- Розрахунок вартості доставки через API Нової Пошти, з можливою націнкою і безкоштовною доставкою від суми замовлення.
- Створення ТТН (експрес-накладної) з картки замовлення або автоматично при переході в потрібний статус.
- Журнал відправлень в адмінці з номерами накладних, посиланнями на трекінг і оновленням статусів.
- Довідники міст і відділень кешуються у власних таблицях плагіна, тож оформлення замовлення не чекає на API.
- API-ключ зберігається зашифрованим.
- Працює і з класичним оформленням замовлення, і з блоковим (Gutenberg).
Нова Пошта — сторонній сервіс. Цей плагін є незалежною інтеграцією на публічному API перевізника і не афілійований з Новою Поштою.
Screenshots





Installation
- Install and activate the plugin.
- Go to WooCommerce Settings Shipping and add the “Nova Poshta” method to the zone you need.
- Paste your API key (Nova Poshta account: Settings Security API keys) and save.
- Press “Test connection”, then fill in the sender profile.
- Optionally choose the order status that triggers automatic waybill creation.
FAQ
-
Do I need a contract with the carrier?
-
An API key from your Nova Poshta account is enough to calculate rates and show branches. Creating waybills additionally requires a sender profile configured in that account.
-
Does it work with the block checkout?
-
Yes. The selection is kept in the WooCommerce session, so the classic checkout and the block checkout behave the same way.
-
Where do I see the waybills that were created?
-
Under WooCommerce Nova Poshta. The waybill number is also shown on the order screen.
-
In which language is the interface?
-
The source strings are English. Ukrainian and any other locale are translated on translate.wordpress.org and delivered by WordPress automatically.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“CatCode Delivery with Nova Poshta for WooCommerce” is open source software. The following people have contributed to this plugin.
Contributors“CatCode Delivery with Nova Poshta for WooCommerce” has been translated into 2 locales. Thank you to the translators for their contributions.
Translate “CatCode Delivery with Nova Poshta for WooCommerce” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.9
- Fixed: an order shipped to a branch no longer carries the second address line (flat, entrance) from the shopper’s account; the branch is the whole delivery address.
1.0.8
- Fixed: on an English (or any non-Ukrainian) store the block checkout silently refused to place a Nova Poshta order when the shopper’s account had no region: the hidden, required State field stayed empty. The region is now taken from the Nova Poshta city by its code, whatever the site language (the city of Kyiv maps to “Kyiv”); if it cannot be matched, the State field stays visible.
- Fixed: the branch list could stay on “Loading branches…” after picking a city until the field was clicked again; it now appears as soon as it loads.
- Fixed: a guest who creates an account at checkout (or on the order confirmation page) no longer gets the branch as the new account’s address.
1.0.7
- Fixed: after a Nova Poshta order WooCommerce saved the branch as the logged-in shopper’s billing and shipping address (block and classic checkout), so the next checkout offered the branch instead of the shopper’s own address. The order still gets the branch; the account keeps the shopper’s address.
1.0.6
- Fixed: on the block checkout the branch picker also opened when the shopper chose Ukrposhta, Meest or another carrier whose name contains “пошт”, and hid that carrier’s address fields. The chosen method is now recognised by its rate id, which also makes the picker appear when the method is titled in Latin (“Nova Poshta”).
- Fixed: a branch picked earlier no longer leaks into an order shipped by another method – the shopper’s own address stays, with no Nova Poshta draft in the journal and no “Nova Poshta branch” row in the e-mails. Automatic waybill creation on status change now runs only for Nova Poshta orders.
- Switching from Nova Poshta to another method puts the shopper’s own address back into the fields instead of the branch name.
- A click on a branch in the list is no longer lost when the page shifts while the button is pressed.
1.0.5
- The chosen city and branch are written into the order’s shipping address, so the admin screen, e-mails and third-party notifications no longer show an empty delivery address.
- Security: stored API keys are encrypted with AES-256 (OpenSSL) instead of the old XOR obfuscation, which some hosting antivirus scanners flagged. Keys saved by earlier versions keep working.
1.0.4
- Branches no longer go missing in large cities: the Nova Poshta API returns at most 500 rows per call and does not say the list was truncated, so in Kyiv part of the branches and parcel lockers never arrived. The list is fetched page by page now.
- An API failure no longer wipes the branch cache — the shopper sees yesterday’s working list instead of an empty one.
- Tested with WordPress 7.1.
1.0.3
- Fixed two waybills for one order: auto-creation on status change and the admin button (or two clicks in a row) could mint two real Nova Poshta shipments at once. Waybill creation is serialised now, and the second call sees the existing number.
1.0.2
- Ukrainian translation bundled again — 1.0.1 shipped an English-only interface.
- readme: Ukrainian description and keywords.
1.0.1
- Rate calculation through the Nova Poshta API is now an opt-in setting and is off by default, so the delivery cost you set is no longer replaced by the carrier tariff.
- A zero cost is no longer shown as “Free!” — the method is labelled “(paid on pickup)” and the price reads “at the carrier’s rates”. Free shipping above an order total works as before.
- Removed unused code paths left over from an internal build: cash-on-delivery fields on the waybill, return waybills, webhook tables and their scheduled events.
- Translations are now handled entirely through translate.wordpress.org; bundled .po/.mo files removed.
1.0.0
- First release: checkout branch picker, live rates, waybill creation, shipment log.
