The module gives customers a withdrawal form compliant with Directive (EU) 2023/2673 — a step-by-step flow with automatic e-mail confirmation and a status lookup. This page covers setting it up and handling the requests.
What the module does
Directive 2023/2673 requires that withdrawal from a contract can be declared digitally, through an unambiguous statement, without printing and posting paper. The module adds two front-office controllers:
- Withdrawal form — a three-step path: identify the order, choose products and a reason, review and confirm the statement.
- Status lookup — the customer enters a request number and sees where the case stands.
Requests land in the ps_zwroty_request table and in a back-office list (the
AdminZwroty controller). The module hooks into displayCustomerAccount (a tile in the
customer account), displayOrderDetail (a link next to the order), displayFooter
(footer links) and actionFrontControllerSetMedia.
Requirements
- PrestaShop 1.6, 1.7, 8 or 9.
- Working mail delivery in the shop, if you want automatic confirmations.
- No ionCube.
Installation
- Back office → Modules → Module Manager → Upload a module.
- The installer creates the
ps_zwroty_requesttable, the AdminZwroty tab and the hooks. - Open the configuration and fill in every shop data field — without them the withdrawal form is not complete in the sense of the regulation.
Configuration
| Setting | Key | Notes |
|---|---|---|
| Enable module | ZWROTY_ENABLED | Disabling hides the form without deleting requests. |
| Withdrawal period in days | ZWROTY_DAYS | Range 1–365. Typically 14 days from receipt of the goods. |
| Shop name | ZWROTY_SHOP_NAME | Three fields required in the statement text. They must match the details in your terms and conditions. |
| Shop e-mail | ZWROTY_SHOP_EMAIL | |
| Full shop address | ZWROTY_SHOP_ADDRESS | |
| Administrator e-mail | ZWROTY_ADMIN_EMAIL | Where notifications about new requests are sent. |
| Customer confirmation | ZWROTY_SEND_EMAIL | Sends the customer an e-mail confirming the statement. |
| Footer links | ZWROTY_FOOTER_MODE | Three modes: inside an existing footer menu, in a separate “Returns” column, or not at all. |
| Target footer menu | ZWROTY_LINKBLOCK_ID | Which link block receives the entries when the first mode is chosen. |
Handling requests
The request list lives under AdminZwroty and shows the request number, order number, customer, e-mail, status and date of withdrawal. A request has five statuses:
- Pending — submitted, not yet reviewed.
- Approved — withdrawal accepted.
- Rejected — with the reason kept in the notes.
- Completed — the return is closed.
- Cancelled — withdrawn.
When changing a status you can tick the box to notify the customer. Administrator notes are internal and never shown to the customer.
E-mail templates
The module ships three templates, each in an HTML and a plain-text version: zwrot_klient
(customer confirmation), zwrot_admin (shop notification), zwrot_status (status change).
They sit in the module's mails/ directory and can be edited under
Advanced Parameters → E-mail.
Troubleshooting
Footer links do not appear
Check the mode in the configuration. In “inside an existing footer menu” mode you also have to choose which link block receives them — without that the module does not know where to put them.
The customer receives no confirmation
Check Advanced Parameters → E-mail and send a test message. The request is stored in the database regardless of whether mail worked, so a missing e-mail does not mean a lost withdrawal.
The form cannot find the order
The flow requires the order number to match the e-mail address it was placed with. Guest orders placed under a different address than the one entered in the form will not be found.
Uninstalling
Uninstalling the module deletes the history of withdrawal requests — the module warns about it
before proceeding. If the requests must survive, back up the ps_zwroty_request table first.