A WooCommerce plugin that turns a paid order into a shipment without leaving WordPress. It creates the voucher, validates the order before spending an API call on it, prints labels in thermal or A4 format, issues and prints the pickup list, tracks the parcel, and offers collection from a courier shop or locker at checkout. Greek and Cypriot addresses are handled with the right postcode rules for each, weights are converted from whatever unit the store uses, and cash on delivery takes its amount from the order.
It is free and complete. There is no paid tier, no licence key, no usage limit and no telemetry, and it never contacts us.
Architecturally it is four layers with dependencies pointing one way, and the courier client at the bottom has no WordPress dependency at all. That is what makes the awkward parts testable: business errors that arrive with a success status code, a misspelled response envelope, rate limiting reported as an unexpected status, a pricing endpoint that works in one country but not the other, and pickup lists that make their vouchers permanently undeletable. Each of those behaviours is covered by a test against a recorded response, so the whole contract runs in milliseconds with no WordPress bootstrap.
The pickup point directory synchronises itself on a schedule; the current sync holds 1,776 points across both countries.
What it handles
- Vouchers created from an order, validated before an API call is spent on them
- Labels in thermal or A4 format, and the pickup list
- Tracking, including the reasons a parcel was not delivered
- Collection from an ACS shop or locker, chosen at checkout
- Live rates for Greece, a rate table for Cyprus, and a fallback when ACS is down
- Cash on delivery, taking its amount from the order
Requirements
WordPress 6.0 or later, WooCommerce 8.0 or later and PHP 8.0 to 8.4, with either order storage, high-performance or legacy. You need your own ACS business account: the plugin is not affiliated with or endorsed by ACS Courier.
Installing it
Upload it on the Plugins screen, then enter your ACS credentials under WooCommerce, Settings, Shipping, ACS Courier. In production the credentials can live in wp-config.php instead, which keeps them out of the database and locks the fields on the settings screen.