Get in touch
  • OpenCart
  • Shipping
  • v1.0.3

Meest Poshta Shipping for OpenCart 2.3, 3.x and 4.x

Meest Poshta delivery for OpenCart 2.3, 3.x and 4.x: branch and parcel-locker picker at checkout, carrier rates, parcel creation and a shipment journal in the admin.

Download Free
Pro · lifetime licence The more sites, the less each one costs
Compatibility
OpenCart 2.3.0.x · 3.0.x · 4.0.2+ / 4.1.x · PHP 7.0+ (2.3), PHP 7.4+ (3.x, 4.x)
Version
v1.0.3 (OpenCart 4)
v1.0.2 (OpenCart 3.x)
v1.0.1 (OpenCart 2.3)
Licence
one site, lifetime
Trial
7 days, no card, one per site
Updated
26.09.2026
Or all 144 Pro modules with All Access — 4 990 ₴ / year

What Free has,
and what Pro adds

The free version works with no time limit. Pro adds the rest of the features in the table.

Feature Free Pro
City, branch and parcel-locker selection at checkout ✔ ✔
Local directory cache — the checkout works even when the carrier API is down ✔ ✔
Flat shipping cost or the live Meest rate for the chosen branch ✔ ✔
The branch address fills the order, the extra address fields are hidden ✔ ✔
An order cannot be placed without a chosen branch ✔ ✔
Parcel creation from the journal or automatically on an order status ✔ ✔
Parcel cancellation and manual status refresh ✔ ✔
Shipment journal with barcode, status and movement history ✔ ✔
The API password is stored encrypted; access test and rate test from the admin ✔ ✔
The same behaviour on OpenCart 2.3, 3.x and 4.x ✔ ✔
Ukrainian and English ✔ ✔
Cash on delivery on the parcel for the payment methods you choose — ✔
100×100 sticker printing — ✔
Automatic parcel status refresh by cron — ✔

What it looks like

Meest shipping settings in the OpenCart admin
The “General” tab: openAPI access, flat or live rate, hiding address fields, geo zone and tax class.
Meest parcel settings: auto creation on status, weight, cash on delivery
The “Parcels” tab: the status that creates the parcel automatically, the default weight, who pays for delivery and which payment methods count as cash on delivery (Pro).
Meest shipment journal in the OpenCart admin
Sales → “Meest shipments”: every parcel of the shop with its number, status and cash on delivery in one table.

Key points

How to try it

The module works with your own Meest contract: the openAPI login, password and contractID come from your Meest manager.

What the buyer sees

At checkout the buyer picks Meest delivery and, instead of “street, house, flat”, gets two fields: city and branch.

What the admin gets

Everything sits on one extension page, split into tabs: API access and checkout behaviour, sender, parcels, widget look, licence and the cron URL.

The trial starts when you ask

A fresh install is the free version, nothing switches on by itself. The “Try Pro for 7 days” button → e-mail → the key right in the window and by e-mail.

One key — one site

Moving the store? Unbind the licence on the old domain and activate it on the new one yourself. If our server is unreachable, Pro keeps working for 14 more days. For studios — keys for 5 or 25 sites, or unlimited.

Technical requirements

  • OpenCart 2.3.0.x, 3.0.x and 4.0.2+/4.1.x — a separate build for each branch. PHP 7.0+ for 2.3, PHP 7.4+ for 3.x and 4.x. cURL and JSON (present on any hosting) and a Meest contract with openAPI access. MySQLi and PDO shops are supported equally.

Version history

v1.0.3 OC 4.x Current 26.09.2026

OpenCart 4 on the PDO database driver.

v1.0.1 OC 2.3

23 September 2026.

v1.0.2 OC 4.x and 3.x

The city / branch picker works on CatCode One Page Checkout.

All versions (4)
v1.0.0 First release

A shared library for OpenCart 2.3, 3.x and 4.x.

Frequently bought with Meest Poshta Shipping for OpenCart 2.3, 3.x and 4.x

4 modules in one order — 40% cheaper than separately

“Store starter” bundle Meest Poshta Shipping Nova Poshta Premium LiqPay Telegram notifications and Viber/SMS for customers Need more — all 144 modules in All Access for 4 990 ₴.
3 490 ₴ lifetime instead of 5 860 UAH bought separately
Buy the bundle →

Full module description

How to try it

The module works with your own Meest contract: the openAPI login, password and contractID come from your Meest manager. The free part works without limits right after installation. Pro comes with a 7-day trial, no card: the key is issued from the admin in one click.

What the buyer sees

At checkout the buyer picks Meest delivery and, instead of “street, house, flat”, gets two fields: city and branch. The city is searched from the first letters against the Meest directory, the branch list shows addresses, and parcel lockers sit in the same list as branches.

As soon as a branch is chosen, the module fills the order address with it and hides the now pointless “Address”, “City” and “Postcode” fields. Without a branch the shipping-method step refuses to continue and shows a clear error, so no order ends up with a placeholder address.

The shipping cost is visible immediately: either the flat rate you set or the live Meest rate for the chosen branch. Rates are calculated in hryvnia and converted into the shop currency, so multi-currency storefronts show the correct amount.

What the admin gets

Everything sits on one extension page, split into tabs: API access and checkout behaviour, sender, parcels, widget look, licence and the cron URL.

The API password is stored encrypted, not in plain text. “Test access” logs into Meest and tells you straight away whether the carrier accepts your credentials; “Update city directory” pulls the directory into a local cache so the checkout does not depend on how the carrier API feels right now.

The shipment journal lives under Sales: order, parcel number, recipient, destination, status, cash on delivery, rate and date. Parcels are created, cancelled and refreshed from the same table.

How it works step by step

1. You enter the login, password and contractID from the Meest contract and press “Test access”. The module logs in, gets a token and refreshes it by itself before it expires.

2. You choose the sender city and branch — parcels leave from there, and the sender name and phone are printed by Meest on the sticker.

3. The buyer picks a city and a branch at checkout. The module fills the order address and shows the cost — flat or calculated through /calculate.

4. After the order a row appears in the shipment journal. You create the parcel with a button, or switch on automatic creation on the order status you use — “Processing”, “Shipped”, whichever fits.

5. Meest returns the parcel number and barcode. While the parcel has not moved it can be cancelled from the same table; statuses are refreshed with a button, and in Pro by cron.

Under the hood

One shared library for all three OpenCart branches: an openAPI client that refreshes its token, a city and branch directory cache in its own tables, password encryption, licensing, the parcel builder and the checkout widget. That is why the behaviour on 2.3, 3.x and 4.x is the same instead of “whatever came out on each version”.

No core files are patched: on 4.x and 3.x the module runs on OpenCart events, on 2.3 through ocmod, because checkout controller events do not fire there. The widget is embedded into the native address form and writes into the core hidden fields, so third-party shipping and payment extensions stay as they are.

Amounts sent to Meest — declared value, parcel contents and cash on delivery — are converted into hryvnia even if the storefront runs in dollars or euro. Addresses and product names are escaped, so a branch with tags in its name does not break the page.

How to install

OpenCart 4.x: Extensions → Installer → Upload → pick cc_meest.ocmod.zip → press “+” in the list. Then Extensions → Extensions → Shipping → “Meest Poshta (CatCode)” → Install → Edit.

OpenCart 3.x: the same through Extensions → Installer with cc_meest-oc3.ocmod.zip, then Extensions → Extensions → Shipping → Install → Edit.

OpenCart 2.3: the stock 2.3 installer only works over FTP, so upload the contents of upload/ from cc_meest-oc2.ocmod.zip to the shop root manually. Then run Extensions → Modifications → Refresh, otherwise the checkout widget will not appear.

After installing, add the URL from the “Cron” tab to your hosting scheduler once an hour: it refreshes the city directory and re-checks the licence, and in Pro the parcel statuses too. On OpenCart 4 the built-in Cron Jobs does the same.

Questions
about the module

Didn't find the answer? Message us on Telegram and we'll reply within a business day.

@catcode_support Setup, compatibility, activation
Do I need a Meest contract?

Yes. The openAPI login, password and contractID are issued by your Meest manager.

Are parcel lockers supported?

Yes, they are in the same list as branches.

What happens if the Meest API is down?

The checkout keeps working: cities and branches come from the local cache and the flat rate replaces the live one.

Does it clash with Nova Poshta or Ukrposhta modules?

No. The widget only appears when the buyer picked Meest and writes into core hidden fields.

Is the licence really perpetual?

Yes, OpenCart modules are a one-off payment with no yearly fees.

Can I try Pro before buying?

Yes, 7 days without a card — the key is issued from the admin to your e-mail.

Not quite what you are looking for?

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

Order a custom module