PrestaShop Module: Automatic Order Printing
Print new orders automatically as soon as they are placed (or once payment is accepted). No computer, tablet, smartphone, local print server, or driver to install. Your printer connects directly to your PrestaShop store through the Expedy Cloud Print Server over Wi-Fi, Ethernet, or a 3G/4G SIM card.
This documentation covers ExpedyPRINT v2, our current module rebuilt on the ExpedyPRINT API v2. We do not provide support for versions prior to v2.
⚠️ Your PrestaShop store must have SSL enabled and must not run in dev or debug mode. These modes can block API requests and prevent print jobs from being sent.
Compatible printers:
- Any ESC/POS or ESC/P printer paired with a Cloud Print Box adapter
- Expedy Cloud Print printers
Need to check compatibility with another printer? Create a support ticket.
Requirements
| Minimum | |
|---|---|
| PrestaShop | 1.6 (tested up to 8.x) |
| PHP | 7.2 |
You also need a free Expedy account with an API SID, an API token, and at least one cloud printer registered on the account.
Download
Download the latest expedyprint.zip from the GitHub releases page:
👉 github.com/ExpedyDev/expedyprint-prestashop-addon/releases
Each release ships the ready-to-install zip and its changelog. That single file is all you need.
The full source code is open and available here:
👉 github.com/ExpedyDev/expedyprint-prestashop-addon
Installation
- Download
expedyprint.zipfrom the latest release. - In your PrestaShop back office, open Modules → Module Manager.
- Click Upload a module and select the
expedyprint.zipyou downloaded. The module installs automatically. - Once installed, click Configure.
No drivers, no command line, no extra software.
Configuration
Open Modules → Module Manager → ExpedyPRINT → Configure. The settings dashboard is organised into clearly labelled panels, and the connection, printer, and preview tools all work without saving the form first.
1. API connection
Paste your API SID and API token, then click Test connection.
| Setting | Description |
|---|---|
| API SID | Your account identifier, available in the Expedy console under API. |
| API token | Your secret key, available in the same API section. Treat it like a password. It is stored securely and write-only, so it is never displayed back. Leave the field blank when saving to keep the token already stored. |
On a successful test, the printer list is fetched from your account and the printer dropdown is populated automatically.
2. Printer
| Setting | Description |
|---|---|
| Printer | Pick your printer from the dropdown loaded from your account (it shows the name, paper width, and UID). |
| Backup printer UID | Optional. A second printer that receives the same ticket, useful for redundancy. |
| Paper width | 58 mm or 80 mm, matching your printer's paper roll. |
Use Send test print to print a sample ticket to the selected printer and confirm everything is wired up.
3. Printing trigger
| Setting | Description |
|---|---|
| Print the ticket | Choose when printing happens: as soon as an order is placed, or when the order status becomes "Payment accepted". |
| Number of copies | 1 to 5 copies per order. |
| Cut the paper after each ticket | Automatically cuts the paper at the end of each print job, on printers that support it. |
4. Receipt content
Choose how products and amounts are shown and which blocks are printed:
- Product display: product name and attributes, product reference and attributes, name only, or reference only.
- Amounts: line amounts including tax, excluding tax, or no line amounts. Amounts print without a currency symbol for maximum thermal-printer compatibility.
- Totals: print the total incl. tax, the total excl. tax, and/or the tax detail.
- EAN-13 barcodes: print the product barcode on each line.
- Number of items, payment method, delivery/carrier method, customer note: toggle each block on or off.
5. Store header and footer
Optional logo URL (HTTPS, GIF/JPG/PNG, max width 570px), store title, company name, address, postcode, city, phone, and company ID, all printed on the ticket.
6. Receipt wording
Every label printed on the ticket (Order, Product, Price, and so on) is fully editable, in any language you like.
7. Advanced: multistore mapping
Route store pickups to a specific printer using the format store_id:printer_uid||store_id:printer_uid. For example, orders for your London store can print automatically on one printer while Edinburgh orders go to another, fully automated, with no manual sorting.
Order ticket preview
At the bottom of the settings page, the Preview an order ticket tool renders the exact ticket for any existing order. Just enter the order ID and click Preview. No printer required.
How it works
The module watches your order events and, when the trigger you configured is reached, builds the receipt and sends it to your printer through the ExpedyPRINT cloud API.
An order prints once: an idempotency flag prevents the same order from printing twice. If a print attempt fails, the order is not flagged, so it can retry on the next status change. Every attempt, success or failure, is recorded in Advanced Parameters → Logs (source expedyprint).
Compatible modules
ExpedyPRINT can read data from other PrestaShop modules to print extra information such as pickup or delivery type, date, and time slot, plus product options. Supported integrations include:
- Delivery and pickup slots:
prestatilldrive,prestadrive,prestatillhomedelivery,fspickupatstorecarrier,preferreddeliverytime - Product options and custom fields:
configurator,an_productfields,idxrcustomproduct
This list is non-exhaustive. We cannot guarantee correct printing if your PrestaShop installation is heavily customised or uses modules that alter core order functions.
Build your own integration
To print from your own application or another platform, use the official Node.js SDK and API examples:
👉 github.com/ExpedyDev/expedy-sdk-node
It shows how to authenticate, list your printers, and send print jobs through the ExpedyPRINT API v2.
Customisation and support
The module is open source under the Open Software License (OSL 3.0), so you can freely modify the code to fit your needs. Expedy no longer offers custom development or bespoke customisation services.
- ExpedyPRINT service, account, and API: www.expedy.io
- Questions or help: create a support ticket
- Bugs and feature requests for this module: open an issue on the repository
Support is provided for ExpedyPRINT v2 only. Versions prior to v2 are no longer supported.