Ukrainian online stores lose hours each week manually copying delivery details into Nova Poshta's cabinet. Connecting Nova Poshta's API to WooCommerce eliminates that overhead entirely — and gives customers a faster, more professional checkout experience.
Why manual shipping entry is a hidden cost
A warehouse operator copying 150 orders per day into Nova Poshta's web cabinet spends roughly 22 minutes on data entry alone. Mistakes in addresses trigger redeliveries, customer complaints, and refund requests. Automating the handoff between WooCommerce and Nova Poshta removes all three problems at once.
What the WooCommerce + Nova Poshta integration covers
A PHP-based WooCommerce plugin communicates directly with Nova Poshta's JSON API (v2) and handles the full shipping lifecycle:
- City and warehouse autocomplete — customers type a city name at checkout; the plugin queries Nova Poshta's
Address.searchSettlementsendpoint and returns matching results in real time. - Automatic consignment creation — when an order moves to "Processing" or "Completed," the plugin calls
InternetDocument.saveand generates a Nova Poshta TTN (tracking number) automatically. - Tracking number on the order — the TTN is stored in WooCommerce order meta and displayed in the admin order view and in the customer's My Account page.
- Customer tracking notification — a WooCommerce email template sends the customer their tracking link (novaposhta.ua/tracking) immediately after consignment creation.
- Webhook-based status updates — Nova Poshta's delivery status is polled via a WP-Cron job and synced to the WooCommerce order status: "Delivered" closes the order automatically.
How the plugin is structured
Clean architecture matters for maintainability. We separate the integration into three layers:
- Config layer — API key and sender details stored in
wp-config.phpconstants, not in the database, to keep credentials out of exports. - Data layer — warehouse and city lists are cached in WordPress transients with a 24-hour TTL, avoiding repeated API calls and Nova Poshta's rate limits.
- UI layer — checkout fields hook into WooCommerce's native
woocommerce_checkout_fieldsfilter, so the integration is theme-agnostic and compatible with block-based checkouts in WooCommerce 8+.
The business outcome
For stores processing 200+ orders per day, this integration removes approximately 15 minutes of manual data entry per 100 orders — roughly 30 minutes saved daily at that volume. More importantly, it eliminates the class of errors (wrong address, missed phone number) that create costly redeliveries.
Customers receive accurate tracking information within minutes of payment, which reduces "where is my order?" support tickets and improves post-purchase satisfaction.
Stack and compatibility
The integration is built on PHP 8.2+, tested against WooCommerce 8.x and WordPress 6.x, and works with both classic and block checkout. It is compatible with LiqPay and Monobank payment gateways, so Ukrainian merchants can run a fully localised checkout stack.
Ready to automate your shipping?
MaxiMoruM has delivered Nova Poshta integrations for WooCommerce and custom Laravel platforms across multiple Ukrainian e-commerce projects. We handle the API mapping, error handling, and ongoing compatibility as Nova Poshta updates its endpoints.
Discuss your project at maximorum.com.