
Greece Couriers — a shipping module for ACS, ELTA, Geniki and Speedex in OpenCart: to the address, to an ACS store / SmartPoint / locker
Greek couriers in one module for OpenCart 4, 3 and 2.3: ACS Courier (to the address in Greece and Cyprus or to an ACS store, SmartPoint or locker picked at checkout), ELTA Courier (to the address or "collect at an ELTA store", beta), Geniki Taxydromiki and Speedex to the address. Vouchers, labels, cash on delivery, tracking, the ACS pickup list and the Geniki day close from the order page. Pro — live ACS rates, bulk vouchers, an automatic voucher and hourly statuses. Lifetime licence.
- 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 · ACS Courier (Greece and Cyprus), ELTA Courier (beta), Geniki Taxydromiki, Speedex · module languages English, ελληνικά
- 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
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.
What it looks like

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+ — the one your OpenCart version needs (tested on 7.0, 8.1 and 8.3). cURL and OpenSSL extensions; the SOAP extension is not needed.
Courier accounts with web service access: ACS, ELTA Courier, Geniki Taxydromiki, Speedex — any of them.
Buyer’s phone at checkout — all couriers need it, and ACS needs a mobile for SmartPoints and lockers; in OpenCart 4 the module turns the phone on with one click.
EUR currency in the store with a current rate — cash on delivery goes in it.
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 weights — SmartPoints and lockers depend on them (up to 6 kg); for products without a weight the default weight from the settings is used.
Module languages: English and ελληνικά.
Version history
OpenCart 3 and 2.3: the live ACS rate (Pro) for a point is updated in the method list right after the point is picked, and the same price goes to confirm and into the order.
ACS Courier (to the address in Greece and Cyprus, to an ACS store, SmartPoint and locker picked at checkout), ELTA Courier (to the address and “collect at an ELTA store”, beta), Geniki…
Frequently bought with Greece Couriers
4 modules in one order — 40% cheaper than separately


Nova Poshta Premium — a Nova Poshta module for OpenCart 2.3, 3.x and 4.x

LiqPay — Card Payments for OpenCart 2.3, 3.x and 4.x

Telegram notifications and Viber/SMS for customers for OpenCart
Full module description
Greece Couriers is an independent shipping module by the CatCode studio for stores in Greece and Cyprus on OpenCart 4, 3 and 2.3. It connects four Greek couriers — ACS Courier, ELTA Courier, Geniki Taxydromiki and Speedex. The buyer chooses delivery to the address or an ACS point — a store, SmartPoint or SmartPoint locker — right at checkout, and the manager creates the voucher, prints the label and sees the parcel status on the order page without opening the couriers’ portals.
What you need. A contract and web service access with the couriers you use. Honest note about testing: we have no courier test accounts — ACS and ELTA have no public test systems, Geniki and Speedex give them only to customers with a contract. The module is written from the official ACS Rest API and Geniki JobServicesV2 documentation and the ELTA Courier and Speedex WSDL, and tested on mocks of these services built from their documentation. We have not created real vouchers at the couriers. ELTA Courier is beta: ELTA has no public documentation, and “collect at an ELTA store” has not been checked on a real account yet. Try the module on your own accounts in the 7-day Pro trial — if a courier answers differently from the documentation, we will fix it quickly.
About trademarks. ACS, ELTA Courier, Geniki Taxydromiki and Speedex are trademarks of their owners. Greece Couriers is an independent module by CatCode, not an official product of these companies: they do not publish or support it. The module works with your own accounts through their web services.
Running WooCommerce? There is a separate Greece Couriers for WooCommerce plugin: the same four couriers — ACS, ELTA Courier (beta), Geniki Taxydromiki and Speedex, the ACS point picker at the classic and block checkout, vouchers and labels from the order screen, tracking and cash on delivery.
What the buyer sees
- Courier methods in the shipping list: ACS to the address and to a point, ELTA to the address and to an ELTA store, Geniki and Speedex to the address. Only the ones you set up are turned on.
- ACS point search in Greek or Latin letters, by city, area, street or postcode. The points of the buyer’s city come first.
- The list shows name, address, region and point type: store, SmartPoint or locker. For a cart over 6 kg SmartPoints and lockers are not shown.
- No point, no next step: the server rejects the step, and the confirm block on the page is held with a hint that the point is missing.
- ELTA “collect at a store” — without point selection: ELTA holds the parcel at the store that serves the buyer’s postcode.
What the admin gets
- Settings in eight tabs: shipping methods, ACS, ELTA, Geniki, Speedex, shipments, automation, licence. Each courier has a connection check that shows the courier’s answer in its own words.
- Voucher panel on the order page: courier and point, weight, cash on delivery in EUR, voucher creation, PDF label, status refresh, cancel. The point can be changed by hand while there is no voucher.
- Vouchers for orders with another shipping method too — with a courier choice, to the buyer’s address.
- ACS pickup list and Geniki day close — buttons on the courier tabs and in the vouchers list.
- Email to the buyer with the voucher number and a tracking link, and a line in the order history.
- Vouchers list in the Sales menu, with bulk actions in Pro.
How it works — step by step
- You enter the courier details, check the connection and download the ACS points — they go into the module’s table and are updated daily.
- The buyer chooses a method. For ACS to a point — picks the point in the panel under the method; the point goes into the session on the server, the buyer’s address fields do not change.
- When the order is placed, its shipping address becomes the point’s address and the region becomes the region of the point’s postcode. For delivery to the address the buyer’s address stays.
- The manager creates the voucher on the order page: the module sends the data to the courier, stores the number and shows the PDF label.
- The buyer gets an email with tracking. At the end of the day — the ACS pickup list and the Geniki day close. The status is refreshed with a button, and in Pro hourly, and a delivered order moves to a chosen status.
Under the hood
- ACS Rest API (JSON) from the official documentation: points, station lookup by postcode, rate, voucher, label, tracking, cancel, pickup list. Geniki JobServicesV2, ELTA Courier and Speedex — SOAP through our own XML parsing, the PHP SOAP extension is not needed.
- The point lives on the server only. The picker JavaScript does not read or write the buyer’s address fields. Only the point code goes into the session, the data comes from the module’s table, and a point that does not fit the weight is not accepted.
- 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.
- Courier passwords and keys — AES-256-CBC with HMAC, not shown again after saving.
- Pro gate without “bricking”: when the trial is over, only the Pro features stop; shipping and vouchers 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
- OpenCart 4: Extensions → Installer → upload
cc_grcourier.ocmod.zip(do not rename the archive) and press “Install”. OpenCart 3: Extensions → Installer →cc_grcourier-oc3.ocmod.zip, then Extensions → Modifications → “Refresh”. OpenCart 2.3: upload the contents of theupload/folder fromcc_grcourier-oc23.ocmod.zipto the store root (FTP or the hosting file manager). - Extensions → Extensions → Shipping → Greece Couriers (ACS, ELTA, Geniki, Speedex) → “Install”, then “Edit”.
- OpenCart 2.3: Extensions → Modifications → “Refresh”. The module registers its modification itself, and the settings page reminds you until “Refresh” is pressed.
- On the ACS, ELTA, Geniki and Speedex tabs enter the details of the couriers you use and press “Save and check the connection”. For ACS — also “Download points”.
- On the “Delivery methods” tab turn the methods on, set prices, the free shipping threshold and the weight limit; on the “Shipments” tab — the sender’s phone and postcode, the payment methods with cash on delivery.
- Place a test order to an ACS point and create a voucher from the order page.
- 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.
What do I need from the couriers?
A contract and access to the web services of each courier you use: ACS — API key, Company ID and password, User ID and password, billing code; ELTA Courier — user code, password and customer code; Geniki Taxydromiki — username, password and application key; Speedex — username, password, customer ID and agreement ID. Only the couriers you set up are turned on.
With which courier accounts has the module been tested?
Honestly: none. ACS and ELTA have no public test systems, Geniki and Speedex give test systems only to customers with a contract. The module is written from the official ACS Rest API and Geniki JobServicesV2 documentation and the ELTA and Speedex WSDL, and tested on mocks of these services built from their documentation. Only the ELTA answers to an empty account and the ELTA store lookup by postcode were checked live. Courier errors are shown in the courier's own words. Try it on your own account in the 7-day Pro trial — if the courier answers differently, we will fix it quickly.
Why is ELTA marked as beta?
ELTA Courier has no public documentation: the field descriptions come from the ELTA integration pages and the service WSDL. The "collect at an ELTA store" voucher uses the service that holds the parcel at the ELTA store for the buyer's postcode — this has not been checked on a real account yet. ELTA has no cancel API: a cancelled voucher has to be agreed with the ELTA store, the module only marks it.
Can the buyer pick a Geniki or Speedex point?
No. Geniki Taxydromiki and Speedex in this module are delivery to the address only. Point selection is for ACS only (stores, SmartPoints and SmartPoint lockers).
Does delivery to Cyprus work?
Yes, ACS to the address only: for a Cypriot address the buyer sees only this method. For a voucher to Cyprus ACS needs a content type (customs) — it is entered in the ACS settings, otherwise the module stops the voucher with an explanation.
Why the ACS pickup list?
ACS accepts the day's vouchers only after the pickup list is issued. Press "Issue the ACS pickup list" when the day's labels are printed. A voucher already in a pickup list cannot be cancelled at ACS — the module shows the ACS answer.
A SmartPoint voucher is not created.
For SmartPoints and lockers ACS needs the buyer's mobile number (69…) — the code is sent to it. Without a mobile the module stops the voucher before calling ACS and says what is missing. In OpenCart 4 the checkout phone is turned on with a button on the settings page.
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, vouchers, labels, tracking and cash on delivery stay free with no time limit.
No reviews yet. Be the first.
No questions yet. Ask one — we answer within 24 hours.
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
Buying the module
—
