Paid, delivered, completed
Digital products and services require no packing or physical delivery. Once payment has been completed, the order can be treated as fulfilled, but PrestaShop may leave it in the “Payment accepted” state.
This module automates that single step. When a paid order contains only digital products or services, it automatically moves the order to the configured target state. If even one physical product is present, the order remains unchanged.
What exactly does it do?
- ⚡ Automatically changes the order state: when an order enters one of the configured trigger states, the module checks its items and moves an eligible order to the selected target state.
- ⚙️ Customisable order states: the default trigger states are “Payment accepted” and “Remote payment accepted”, while the default target state is “Delivered”. Custom states such as “Completed” can also be selected.
- 🛡️ Leaves mixed orders unchanged: the presence of a single physical item prevents the automatic state change.
- 💳 Supports multiple trigger states: custom states created by Barion, SimplePay, Stripe, PayPal or other payment modules can also be selected.
Which products should be treated as digital?
The module provides three matching modes:
- virtual products only: products marked as virtual in PrestaShop;
- selected products and categories: specific products or complete categories, including their subcategories;
- both methods combined: virtual products together with separately selected products and categories.
This also allows the module to process digital products or services that are not configured as virtual products in PrestaShop.
Dry-run simulation before activation
Dry-run mode shows which orders would be processed under the current settings and which would remain unchanged, without modifying anything.
- it explains the decision for each order and individual item;
- it does not change order states or send emails;
- it can be run for a specific order to determine why the automatic state change did not occur.
Safety features
- ⏱️ Catch-up processing: orders left in a trigger state can be processed later using a manual button or an hourly cron call.
- ↩️ Respects manual decisions: if a member of staff manually moves an order back, the module does not override that decision. Automatic state changes performed by payment modules do not block normal processing.
- ✉️ Optional customer email: the PrestaShop email template assigned to the target state can be sent, but this option is disabled by default to avoid unnecessary duplicate messages.
- 📝 Logging: every automatic state change is recorded in the PrestaShop event log.
- 🔌 Fault-tolerant operation: module hook errors are handled so they do not interrupt completion of the payment process. No overrides are used.
Who is it for?
- stores selling e-books and downloadable files;
- shops offering online courses or digital services;
- merchants selling software and licence keys;
- mixed stores offering both digital and physical products;
- store operators who do not want to move digital orders to “Delivered” or “Completed” manually.
Compatibility
- PrestaShop: 1.7.7+, 8.x and 9.x
- PHP: 7.1–8.4
- Multistore: supported
- Overrides: none – the module uses hooks only
- Themes: compatible with any theme because the module has no customer-facing interface
Installation in approximately 5 minutes
- Upload and install the module through the PrestaShop back office. Automatic processing remains disabled after installation.
- Review the trigger and target order states.
- Select the matching mode and, if required, the products and categories.
- Run the dry-run simulation, then enable the automatic order state change.
Updates, licence and support
Each licence is valid for one online store and includes one year of updates and support. Updates are installed by Webstart Updater from digitally signed packages.
The module does not transmit customer data. For licence validation, it sends only the module version and the store domain to the licence server.