Marketplace Waybills for WooCommerce — Rozetka and Epicentr
What each licence includes
| Feature | Free | Pro |
|---|---|---|
| Rozetka Marketplace and Epicentr Marketplace in one module | ✔ | ✔ |
| One list of orders from both accounts still needing a waybill | ✔ | ✔ |
| The number fills in automatically from the WooCommerce order | ✔ | ✔ |
| Number sources: Nova Poshta, Ukrposhta, ROZETKA Delivery or a custom field | ✔ | ✔ |
| Send the waybill with one click — from the list or the order screen | ✔ | ✔ |
| Rozetka: the order status is set together with the number | ✔ | ✔ |
| Rozetka: the account handles tracking itself after the waybill | ✔ | ✔ |
| Epicentr: number and move to "Shipped" in one action | ✔ | ✔ |
| Linking the WooCommerce order to the marketplace order right on the order screen | ✔ | ✔ |
| Send log with the account's reply | ✔ | ✔ |
| The same number is never sent twice | ✔ | ✔ |
| Self-pickup flagged separately — no waybill needed there | ✔ | ✔ |
| Account errors shown in their own wording, not a code | ✔ | ✔ |
| Compatible with HPOS — WooCommerce's separate order tables | ✔ | ✔ |
| Auto-send of the waybill without the manager | — | ✔ |
| Choice of order statuses that trigger sending | — | ✔ |
| A cron every 10 minutes collects orders with a delayed waybill | — | ✔ |
Marketplace Waybills is a module for WooCommerce that sends the waybill number from a store order to your Rozetka Marketplace and Epicentr Marketplace account. The seller no longer copies the same number by hand: create the waybill on the order, and one button (or auto-send in Pro) puts it into the marketplace account together with the status.
The module doesn’t create waybills and doesn’t replace shipping. It takes the number that’s already on the WooCommerce order — from Nova Poshta, Ukrposhta, ROZETKA Delivery or any other module — and closes off the last, most manual step of the day.
Why a store needs this
A seller trading on both a marketplace and their own store ends up doing the same job twice. First the waybill is created in WooCommerce: the buyer chose a branch, the manager clicked “Create waybill”, the number was saved to the order. Then the Rozetka or Epicentr account is opened, the same order is found, and the number is typed in by hand.
At twenty orders a day that’s twenty tab switches, twenty searches for the order in someone else’s interface, and just as many chances to get a digit wrong. A mistyped number on the marketplace costs more than one made in your own system: the account stops seeing the parcel move, the order sits at “Awaiting shipment”, and the complaint lands on the seller, not the carrier.
The module removes the second step entirely. The number travels to the marketplace account from the WooCommerce order, and the status is set alongside it — tracking from that point on is handled by the marketplace itself.
What it looks like for the manager
An item called “Marketplace Orders” appears in the WooCommerce menu. It’s a single list of orders from both accounts that still need a waybill — not Rozetka and Epicentr separately, but one shared work queue for the day.
Each row shows: the marketplace order, the WooCommerce order it’s linked to, the waybill number if it already exists, and a send button. Click it, and the number goes to the account; the account’s response then appears in the row. If it doesn’t appear, the module shows exactly why, in the account’s own wording.
The same can be done from the WooCommerce order screen: a metabox shows which marketplace order this order is linked to, with the send button right there too. Whoever prefers working in batches uses the list; whoever prefers one at a time uses the order screen.
Self-pickup orders are flagged separately in the list. They will never have a waybill, so the module doesn’t offer a send button and doesn’t show them as “unresolved” — otherwise the queue would never empty out.


Where the waybill number comes from
The module doesn’t invent a number or contact the carrier. It reads WooCommerce order meta fields in this order:
_npwc_ttn — Nova Poshta. _upwc_barcode — Ukrposhta. _rzdwc_track_id — ROZETKA Delivery. If some other module writes the waybill to the order, the settings have a “Custom field” option: enter that meta key there, and the module checks it last.
This order means the module works with any shipping stack, not just ours. A store that’s been shipping via Nova Poshta through a third-party plugin for years doesn’t need to change anything — it just needs to know which field that plugin writes the number to.
Rozetka Marketplace
For Rozetka, the order status is set together with the waybill number. This matters: in the Rozetka account, the number by itself doesn’t trigger anything until the order is moved into the matching status. The module does both in one call, so the order shows as shipped in the account right after the button is pressed.
Tracking from that point is handled by the account itself — the module doesn’t touch that order again and doesn’t poll the API every hour. That’s a deliberate choice: Rozetka knows better where the parcel actually is, and mirroring its statuses locally would only build up discrepancies.
The credentials needed are the seller account login and password from seller.rozetka.com.ua. No separate API key is required.
Epicentr Marketplace
For Epicentr, the module sets the waybill number and moves the order to “Shipped” in one action. The logic is the same as for Rozetka; only the authentication method differs.
Epicentr works with a static token. It’s obtained in the account under “Company Settings” → the “API” tab. If the tab isn’t visible, your category manager can enable access to it — that’s a one-message request.
How it works, step by step
1. The order arrives from the marketplace into your normal workflow. The module sees it in the shared “Marketplace Orders” queue.
2. You link the marketplace order to the WooCommerce order — right on the order screen, no separate screen, no import.
3. The waybill is created on the order the way you always do it. The number lands in a meta field.
4. You click “Send waybill” — from the list or from the order. The module takes the number, contacts the account, and sets the status.
5. The account’s response is written to the log. If all’s well, the row disappears from the queue. If not, you see the exact reason.
In the Pro version, steps 4 and 5 happen automatically: the number goes to the account as soon as it appears on the order.

Send log
Every send is written to a log: which order, which account, when, with what number, and exactly what the account replied. This isn’t a decorative log — it’s what answers the question “why is the account empty, I did click send”.
The account’s error is shown in its own words, not as a response code. If Rozetka says the order is already in a different status, that’s exactly what you’ll read, not HTTP 400. That lets the manager work it out themselves, without going to a developer.
The same number is never sent twice. If the button is clicked twice, or a cron job picks up an order that’s already closed, the module simply does nothing — the account isn’t pinged for no reason and doesn’t receive duplicates.

Free version and Pro
The free version does everything described above, manually: the shared queue, order linking, sending by button from the list or the order, the log, both marketplaces. There are no time limits and no ads in the admin.
Pro removes the last manual action:
— auto-send: the number goes to the account by itself as soon as it appears on the order;
— choice of order statuses that trigger sending — so the number doesn’t go out from a draft or cancelled order;
— a cron every 10 minutes that picks up orders where the waybill arrived with a delay (the carrier didn’t hand over the number right away — the module comes back and sends it).
Pro can be tried free for 7 days, no card required.
Pricing
A Pro licence costs 990 UAH, for one domain. The licence is annual: once it ends, the module keeps working — only updates and support stop arriving. We deliberately avoid the word “forever” — marketplace APIs change, and a module without updates will break sooner or later.
Technical requirements
WordPress 6.2 or newer, WooCommerce, PHP 7.4 or newer. The module is compatible with HPOS — WooCommerce’s high-performance order storage — and works with both the legacy storage in wp_posts and the new one.
Outbound HTTPS to the Rozetka and Epicentr APIs is required. This is open on a normal hosting setup; if your store sits behind a strict firewall, this is the one thing you’ll need to allow.
Why there’s no demo stand
Neither marketplace has a sandbox: their API only opens with a live seller account’s credentials. So there’s no way to “try” the module on someone else’s demo — not ours, not anyone else’s.
Instead, the module has a “Test connection” button. You enter your credentials and immediately see what the account replied — within a second, before the first real send. If the credentials are wrong or the token wasn’t issued, you find out right away, not on the first real order.
Under the hood
The module talks to the accounts through their official APIs — no page scraping, no login emulation whatsoever. Credentials are stored encrypted in the database.
The link between a marketplace order and a WooCommerce order lives in an order meta field, so it survives theme changes, WooCommerce updates and a move to HPOS. The send log lives in its own table and doesn’t bloat wp_options.
The module doesn’t create any front-end pages, doesn’t add scripts to the store, and does nothing outside the admin at all — the buyer never sees it and it can’t slow anything down for them.
How to install
1. Upload the archive via “Plugins → Add New → Upload Plugin”.
2. Activate the plugin.
3. WooCommerce → “Marketplace Waybills” — enable the accounts you need and enter the credentials. Click “Test connection”.
4. WooCommerce → “Marketplace Orders” — this is your working list of orders still waiting for a number.
Setup takes a few minutes, and the longest part is finding the Epicentr token in the account.
Version history
1.0.0 — first release. Rozetka Marketplace and Epicentr Marketplace, a shared order queue, waybill sending from the list and from the order, number sources (Nova Poshta, Ukrposhta, ROZETKA Delivery, custom field), a send log, protection against duplicate sends, a separate self-pickup flag, HPOS compatibility. In Pro — auto-send, choice of trigger statuses and a cron collector.
Frequently asked questions
What credentials are needed?
For Rozetka — the seller account login and password (seller.rozetka.com.ua). For Epicentr — a static token: account → "Company Settings" → the "API" tab; access to the tab is granted by your category manager.
Can the module be tested without a seller account?
No. Neither marketplace has a sandbox — the API only opens with a live account's credentials. The module immediately shows the account's exact reply, so setup can be checked with the "Test connection" button in a second.
Where does the module get the waybill number from?
From order meta fields: `_npwc_ttn` (Nova Poshta), `_upwc_barcode` (Ukrposhta), `_rzdwc_track_id` (ROZETKA Delivery). If a different module writes the waybill, enter its key in the "Custom field" option.
How is a marketplace order linked to a WooCommerce order?
The order screen has a "Marketplace Waybill" block: pick the marketplace and enter its order ID. After that the number fills in on the list automatically, and with Pro it's sent automatically too.
Do I need to change the status in the account by hand after sending?
No. Rozetka turns on its own tracking once the waybill appears and moves statuses itself. Epicentr is moved to "Shipped" by the module.
What happens if the account rejects the number?
The module shows the reason exactly as the account phrased it, and writes it to the log and to the order notes. The order isn't marked as sent, so the next attempt will go through again.
Does the module create waybills?
No, it carries them over rather than creating them. The waybill is made by your shipping module — Nova Poshta, Ukrposhta or ROZETKA Delivery; this module takes the finished number and puts it into the marketplace account.
Questions about the module?
Message us on Telegram — we reply within the working day. We will help with setup, compatibility and key activation.
No reviews yet. Be the first — right below.
Leave a review
Reviews are moderated before publication, which usually takes up to 24 hours.
No questions yet. Ask one — we answer within 24 hours.
Ask a question
We usually reply within 24 hours during working hours.
Buying the module
—