Get in touch
  • OpenCart
  • Shipping
  • v1.0.1

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.

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 · 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
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
Six methods in one module: ACS to the address (Greece and Cyprus), ACS to an ACS store / SmartPoint / SmartPoint locker, ELTA Courier to the address, ELTA Courier "collect at an ELTA store" (beta), Geniki Taxydromiki and Speedex to the address ✔ ✔
ACS point selection on the default checkout of OpenCart 4, 3 and 2.3 and on CatCode One Page Checkout: the points of the buyer's city first, search in Greek and in Latin letters ("thessaloniki" finds Θεσσαλονίκη) ✔ ✔
SmartPoints and lockers take up to 6 kg: for a heavier cart they are not shown and not accepted, ACS stores are; the server checks the weight again if the cart got heavier after the choice ✔ ✔
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 ✔ ✔
The order shipping address = the ACS point, the region comes from the point's postcode; the buyer's own address is not changed ✔ ✔
Name, price, free above an amount, weight limit and sort order for each method; ACS point filter: all / stores only / SmartPoints only / lockers only ✔ ✔
Voucher from the order page: weight, cash on delivery in EUR, insurance, Saturday delivery, payer; a voucher for an order with another method too — with a courier choice ✔ ✔
Labels: ACS A4 or thermal, ELTA A4/A6, Geniki, Speedex A4/A6; status and cancel (ACS, Geniki, Speedex); for ELTA, which has no cancel API, "Mark as cancelled" with a confirmation ✔ ✔
ACS pickup list ("Issue the ACS pickup list") and the Geniki day close — buttons in the settings and in the vouchers list ✔ ✔
Voucher number and tracking link — in the email to the buyer and in the order history ✔ ✔
Vouchers list in the Sales menu ✔ ✔
Courier passwords and keys are stored encrypted (AES-256 + HMAC); settings survive uninstall and reinstall ✔ ✔
Module languages: English and ελληνικά ✔ ✔
Several parcels in one voucher (to the address) 1 up to 99, by setting (5 by default)
Live ACS rates (ACS_Price_Calculation) with VAT, a %/fixed markup and rounding; for a point — to the station of the chosen point; ELTA, Geniki and Speedex — fixed price — ✔
Bulk actions in the vouchers list: create vouchers, labels (ACS — up to 10 vouchers in one request), refresh statuses — ✔
Automatic voucher when the order moves to a chosen status — ✔
Hourly status sync; delivered — the order moves to a chosen status — ✔

What it looks like

Greek courier methods at OpenCart checkout
Six methods for a Greek address: ACS to the address and to a point, ELTA to the address and to an ELTA store, Geniki and Speedex to the address.
ACS point selection at OpenCart 4.1 checkout
Default OpenCart 4.1 checkout: under the “ACS — to an ACS store, SmartPoint or locker” method — the search and the points of the buyer’s city. Each point shows its type: store, SmartPoint or locker.
Chosen ACS point at OpenCart checkout
The point is chosen: name, address, region and a “Change” link. The buyer’s address fields are not changed — the point goes into the order on the server.

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

v1.0.1 Current October 2026

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.

v1.0.0 First release October 2026

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

“Store starter” bundle Greece Couriers 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

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

  1. You enter the courier details, check the connection and download the ACS points — they go into the module’s table and are updated daily.
  2. 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.
  3. 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.
  4. 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.
  5. 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

  1. 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 the upload/ folder from cc_grcourier-oc23.ocmod.zip to the store root (FTP or the hosting file manager).
  2. Extensions → Extensions → Shipping → Greece Couriers (ACS, ELTA, Geniki, Speedex) → “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 pressed.
  4. 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”.
  5. 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.
  6. Place a test order to an ACS point and create a voucher 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 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.

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