Get in touch
CRM and integrations · OpenCart

Marketplace Waybills for OpenCart — Rozetka and Epicentr

Download for free
Version
v1.0.0 (OpenCart 4)
v1.0.0 (OpenCart 3.x)
v1.0.0 (OpenCart 2.3)
Platform
OpenCart
Marketplace Waybills for OpenCart — 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 OpenCart order
Number sources: Nova Poshta, Ukrposhta, CatCode's ROZETKA Delivery
Send the waybill with one click, straight from the list
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 OpenCart order to the marketplace order
Send results written to the order history
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
Account credentials stored encrypted
Auto-send by order status
Cron collects orders with a delayed waybill

Marketplace Waybills is a module for OpenCart 2.3, 3.x and 4.x 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 OpenCart 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 OpenCart: 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 OpenCart 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 OpenCart admin 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 OpenCart 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.

All the work happens from one list: the link, the number, and the send button are all right there. There’s no need to open every order separately.

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.

Marketplace Waybills module settings for OpenCart
Extensions → Marketplace Waybills: Rozetka and Epicentr accounts, number sources and auto-send

Where the waybill number comes from

The module doesn’t invent a number or contact the carrier. It reads it from the tables of our own shipping modules: np_shipment.int_doc_number (Nova Poshta), up_shipment.barcode (Ukrposhta) and from ROZETKA Delivery. In other words, the number fills in by itself as soon as the waybill is created, and with Pro it’s sent automatically too.

If shipping is handled by a different module, the number can be typed into the order by hand: the queue and sending still work the same way — only the auto-fill is lost.

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 OpenCart order — 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.

Marketplace Waybills send log for OpenCart
Every attempt with the account’s reply — both successes and reasons for failure are visible

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 1,290 UAH, for one domain. The licence is perpetual: you pay once, with no annual fees.

Technical requirements

OpenCart 4.x, 3.x and 2.3 are supported — three separate builds in one archive; install the one matching your version. ocStore built on these versions works too.

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 store settings.

The result of every send is written not only to the module’s log but also to the order history — the place a manager already looks to see what happened with an order. The link between the OpenCart order and the marketplace order is stored in a separate table and survives theme and store updates.

The module doesn’t create any storefront 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 “Extensions → Installer” (in OpenCart 2.3 and 3.x — “Extension Installer”).

2. “Extensions → Modules” → find “Marketplace Waybills” and install it.

3. Open the settings, enable the accounts you need, enter the credentials, and click “Test connection”.

4. From then on you work from the marketplace orders list — that’s your daily queue 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, results written to order history, builds for OpenCart 4.x, 3.x and 2.3. 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 "Test connection" button shows the account's reply verbatim, so setup can be checked in a second.

Where does the module get the waybill number from?

From our own shipping modules' tables: `np_shipment.int_doc_number` (Nova Poshta), `up_shipment.barcode` (Ukrposhta), `rzd_shipment.track_id` (ROZETKA Delivery). If a module isn't installed, that source is simply skipped — no error is raised.

How is a marketplace order linked to an OpenCart order?

In the marketplace orders list, each row has an "OpenCart order ID" field. Enter it once and the link is saved — after that the number fills in 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 history. The order isn't marked as sent, so the next attempt will go through again.

Which OpenCart versions are supported?

4.x, 3.x and 2.3.

Questions about the module?

Message us on Telegram — we reply within the working day. We will help with setup, compatibility and key activation.

@catcode_support

Not quite what you are looking for?

We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about your task and we will prepare an estimate.

Order a custom module