Get in touch
  • OpenCart
  • Shipping
  • v1.0.1

GLS CEE Shipping — a shipping module for GLS in OpenCart: home delivery and ParcelShop / ParcelLocker (MyGLS)

GLS shipping for OpenCart 4, 3 and 2.3 stores in Croatia, Czechia, Hungary, Romania, Slovenia and Slovakia via the MyGLS API: courier to the address and a ParcelShop or ParcelLocker picked right at checkout, labels from the order page, tracking and statuses. Pro — weight-based prices, several parcels, bulk labels, an automatic label on an order status and hourly statuses. Lifetime licence.

Download Free
Pro · lifetime licence The more sites, the less each one costs
Compatibility
OpenCart 4.0.2 – 4.1.x (tested on 4.1.0.3 with the pdo driver and 4.0.2.3), 3.0.x (tested on 3.0.5.0) and 2.3.0.2 (PHP 7.0) · default checkout and CatCode One Page Checkout · MyGLS: HR, CZ, HU, RO, SI, SK · module languages English, hrvatski, čeština, slovenčina, magyar, română, slovenščina
Version
v1.0.1 (OpenCart 4)
v1.0.1 (OpenCart 3.x)
v1.0.1 (OpenCart 2.3)
Licence
one site, lifetime
Trial
7 days, no card, one per site
Updated
October 2026
Or all 173 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
Two GLS methods: courier to the address and ParcelShop / ParcelLocker — for Croatia, Czechia, Hungary, Romania, Slovenia and Slovakia via the MyGLS API ✔ ✔
Point selection on the default checkout of OpenCart 4, 3 and 2.3 and on CatCode One Page Checkout: search by postcode, city, street or name, without diacritics ("cakovec" finds Čakovec) ✔ ✔
The list shows opening hours, the point type (ParcelShop / ParcelLocker) and a "no cash on delivery" mark; points on holiday are hidden; a "shops only / lockers only" filter ✔ ✔
The point panel appears only with its own method; the module does not read or overwrite the buyer's address fields ✔ ✔
Without a chosen point the server does not let the buyer go on: OpenCart 4 — the payment and confirm steps, OpenCart 3 and 2.3 — the shipping, payment and confirm steps ✔ ✔
Cash on delivery to a point that does not accept it is refused both at checkout and in the label panel ✔ ✔
A point of another country does not count: the buyer changed the address country — the chosen point is reset ✔ ✔
Order shipping address = the point; the buyer's own address is stored separately and shown in the GLS panel ✔ ✔
Flat price, free above an order total, weight limit per method, geo zone ✔ ✔
Label from the order page: weight, the address split into street / number / extra with manual correction, cash on delivery in the destination country currency, PDF A4 or thermal ✔ ✔
Label reprint, delete in MyGLS, status update; the parcel number and tracking go to the buyer's email in the order language and to the order history ✔ ✔
GLS shipments list in the Sales menu ✔ ✔
GLS points in the module's own database table, daily update of changed points only (LastUpdateTime); checkout does not wait for the API ✔ ✔
The MyGLS password is stored encrypted (AES-256 + HMAC); settings survive uninstall and reinstall ✔ ✔
Module languages: English, hrvatski, čeština, slovenčina, magyar, română, slovenščina ✔ ✔
Parcels in one shipment (to the address) 1 up to 99, per setting (5 by default)
Prices by weight bands for each method; heavier than the last band — the method is not shown — ✔
Bulk actions in the shipments list: create labels, print in one PDF, refresh statuses — ✔
Automatic label when the order moves to a chosen status — ✔
Hourly sync of GLS statuses; all parcels delivered — the order moves to a chosen status — ✔

What it looks like

Choosing a GLS ParcelShop or ParcelLocker at OpenCart 4.1 checkout
Default OpenCart 4.1 checkout: under the “GLS ParcelShop or ParcelLocker” method — search and a list of points for the buyer’s postcode. The locker is marked “no cash on delivery”, the ParcelShop shows opening hours.
A chosen GLS point at OpenCart checkout
Point chosen: address and opening hours, a “Change” link. The buyer’s address fields do not change — the point goes into the order on the server.
GLS on CatCode One Page Checkout in OpenCart 4.1
CatCode One Page Checkout on OpenCart 4.1: both GLS methods in the list, the chosen point under the point method. Without a point the confirm block is held.

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. For studios — keys for 5 or 25 sites, or unlimited.

Technical requirements

  • OpenCart 4.0.2.0+ and 4.1.x (tested on 4.1.0.3 and 4.0.2.3), 3.x (tested on 3.0.5.0) or 2.3.0.2.
  • PHP 7.0+ — whatever your OpenCart version needs (tested on 7.0, 8.1 and 8.3). The cURL, OpenSSL and zlib extensions.
  • A MyGLS account in Croatia, Czechia, Hungary, Romania, Slovenia or Slovakia: login, password, client number.
  • The buyer’s phone at checkout — GLS requires it; in OpenCart 4 the module turns it on with one click.
  • The destination country currency (EUR, CZK, HUF, RON) in the store with an up-to-date rate — for cash on delivery; otherwise the order currency is used.
  • Cron: in OpenCart 4 — the built-in scheduler (System → Maintenance → Cron Jobs); in OpenCart 3 and 2.3 — the cron URL from the settings once an hour. Without cron the points are updated with a button.
  • Product weight — for products without weight the default weight from the settings is used.
  • Module languages: English, hrvatski, čeština, slovenčina, magyar, română, slovenščina.

Version history

v1.0.1 Current October 2026

DPV service (declared parcel value) for Croatian post codes 20xxx, Dubrovnik-Neretva, which the MyGLS API documentation requires there.

v1.0.0 First release October 2026

GLS delivery to the address and to ParcelShop / ParcelLocker in Croatia, Czechia, Hungary, Romania, Slovenia and Slovakia via the MyGLS API, point selection on the default checkout of…

Frequently bought with GLS CEE Shipping

4 modules in one order — 40% cheaper than separately

“Store starter” bundle GLS CEE Shipping Nova Poshta Premium LiqPay Telegram notifications and Viber/SMS for customers Need more — all 173 modules in All Access for 4 990 ₴.
3 790 ₴ lifetime instead of 6 260 UAH bought separately
Buy the bundle →

Full module description

GLS CEE Shipping is an independent shipping module for GLS by the CatCode studio for stores in Croatia, Czechia, Hungary, Romania, Slovenia and Slovakia on OpenCart 4, 3 and 2.3. The buyer chooses GLS courier delivery to the address or to a GLS ParcelShop or ParcelLocker right at checkout, and the manager creates the label, prints it and sees the parcel status on the order page through the MyGLS API, without opening the GLS portal.

What you need. A contract with GLS in your country and MyGLS access: login (email), password and client number. Honest note about testing: we have no MyGLS test access — GLS gives it only to customers with a contract. The module is written from the official MyGLS API documentation (version 25.12.11) and tested against a test server that answers like MyGLS per this documentation. We have not created real labels at GLS. Try it on your own account in the 7-day Pro trial — if GLS answers differently from the documentation, we will fix it quickly.

About the trademark. GLS and MyGLS are trademarks of GLS. GLS CEE Shipping is an independent CatCode module, not an official GLS product: GLS does not publish or support it. The module works with your own MyGLS account through the MyGLS API following the GLS documentation.

Running WooCommerce? There is a separate GLS CEE Shipping for WooCommerce plugin: the same two GLS methods and the ParcelShop / ParcelLocker picker at the classic and block checkout, MyGLS labels from the order screen, tracking and cash on delivery.

What the buyer sees

  • Two GLS methods in the shipping list: courier to the address and ParcelShop / ParcelLocker. The point method is shown only for countries where you turned points on and downloaded them.
  • Point search by postcode, city, street or name, without diacritics. Points for the buyer’s postcode are shown right away.
  • The list shows the point type, address, opening hours and a “no cash on delivery” mark. Points on holiday and inactive points are not shown.
  • No way on without a point: the server refuses the step, and the confirm block on the page is held with a hint that the point is missing.

What the admin gets

  • Settings on six tabs: general, MyGLS account, points, shipments, automation, licence. The account country decides which MyGLS (api.mygls.hr, .cz, .hu, .ro, .si, .sk) the module talks to; the MyGLS test system is supported.
  • GLS panel on the order page: the chosen point, the buyer’s own address, label creation with weight, the address split into street / number / extra and cash on delivery, PDF, reprint, delete, status.
  • Labels for orders with another shipping method too — to the buyer’s address.
  • An email to the buyer with the parcel number and a GLS tracking link — in the order language, plus a record in the order history.
  • Shipments list in the Sales menu, with bulk actions in Pro.

How it works — step by step

  1. You enter the MyGLS details, test the connection and download the points of the countries you need — they go into the module table and are updated daily.
  2. The buyer chooses “GLS ParcelShop or ParcelLocker” and a point in the panel under the method. The point goes into the session on the server; the buyer’s address fields do not change.
  3. At checkout the order shipping address becomes the point address, and the buyer’s own address is stored separately. For home delivery — the buyer’s address.
  4. On the order page the manager clicks “Create GLS label”: the module sends the data to MyGLS (PrintLabels; for a point — the PSD service with the point code) and stores the PDF and the parcel number.
  5. The buyer gets an email with tracking; the parcel status is updated with a button, and in Pro every hour, and a delivered order moves to the chosen status.

Under the hood

  • MyGLS REST API per the documentation version 25.12.11: PrintLabels, GetPrintedLabels, DeleteLabels, GetParcelListStatuses, GetParcelList, GetDeliveryPoints (points as compressed JSON, update of changed points only).
  • The point lives on the server only. The picker JavaScript does not read or write the buyer’s address fields. Only the point ID goes into the session, the data comes from the module table, and the point gets into the order only for the point method and only for its own country; otherwise the link is erased.
  • The no-point check in OpenCart 4 sits on saving the payment method and on confirm; in OpenCart 3 — on the events of the shipping, payment and confirm steps; in OpenCart 2.3 — the same steps through a modification the module registers itself.
  • One library for three builds, the code is PHP 7.0 compatible; it also works with the pdo database driver in OpenCart 4.1.
  • The MyGLS password — AES-256-CBC with HMAC, not shown again after saving.
  • A Pro gate that never bricks the store: when the trial ends, only the Pro features stop; shipping and labels keep working.
  • Uninstall removes the events and cron tasks; the module tables and a copy of the settings stay for a reinstall.

How to install

  1. OpenCart 4: Extensions → Installer → upload cc_glscee.ocmod.zip (do not rename the archive) and click “Install”. OpenCart 3: Extensions → Installer → cc_glscee-oc3.ocmod.zip, then Extensions → Modifications → “Refresh”. OpenCart 2.3: upload the contents of the upload/ folder from cc_glscee-oc23.ocmod.zip to the store root (FTP or the hosting file manager).
  2. Extensions → Extensions → Shipping → GLS CEE Shipping (MyGLS) → “Install”, then “Edit”.
  3. OpenCart 2.3: Extensions → Modifications → “Refresh”. The module registers its modification itself, and the settings page reminds you until “Refresh” is clicked.
  4. On the “MyGLS account” tab choose the account country, enter the login, password and client number and the sender details, and click “Save and test the connection”.
  5. On the “ParcelShops & Lockers” tab tick the countries and click “Download now”; on the “General” tab turn the methods on and set the prices, the free shipping threshold and the weight limit.
  6. Place a test order to a point and create a label from the order page.
  7. For Pro: paste the licence key from the email after payment or turn on the trial on the “Licence” tab. For OpenCart 3 and 2.3 add the cron URL from the “Automation” tab to the hosting cron, once an hour.

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
What do I need from GLS?

A contract with GLS in your country and MyGLS access: login (email), password and client number. The module works with MyGLS of Croatia, Czechia, Hungary, Romania, Slovenia and Slovakia; the account country decides which MyGLS it talks to.

Which GLS accounts was the module tested with?

We have no MyGLS test access — GLS gives it only to customers with a contract. The module is written from the official MyGLS API documentation (version 25.12.11) and tested against a test server that answers like MyGLS per this documentation. The module shows GLS errors with their own text and code, so you see right away what is wrong. Try it on your own account in the 7-day Pro trial — if GLS answers differently, we will fix it quickly.

The "GLS ParcelShop or ParcelLocker" method does not appear at checkout.

It appears when the points of the country are downloaded ("Download now" on the "ParcelShops & Lockers" tab), the country is ticked in the settings and the buyer's address is in that country. Check the method weight limit and geo zone too.

The label is not created because of the phone.

GLS needs the buyer's phone, and OpenCart 4 does not ask for it by default. The settings page has a button that turns on "Telephone display" and "Telephone required".

Which currency is cash on delivery in?

In the currency of the destination country (EUR for Croatia, Slovenia, Slovakia; CZK; HUF; RON) if your store has it — at the rate from the store currency table. If the store does not have it, the order currency is used; the settings page tells you which currencies are missing. You can correct the amount in the panel before creating the label.

Can I send several parcels to one ParcelShop?

Several parcels in one shipment (Pro) are only for delivery to the address. For ParcelShop / ParcelLocker it is one parcel per label.

Does it work with other checkouts?

Tested on the default checkout of OpenCart 4, 3 and 2.3 and on CatCode One Page Checkout. Other checkout modules (Journal, Quick Checkout and so on) were not tested.

Is the licence yearly?

No. For OpenCart it is one payment, a lifetime licence, and one licence covers all three builds: 4.x, 3.x and 2.3. Shipping methods, point selection, labels, tracking and cash on delivery stay free with no time limit.

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