Abandoned Cart OPC
Complete documentation to install, configure, and use the Abandoned Cart OPC module to recover lost sales in your PrestaShop store.
What is Abandoned Cart OPC?
Abandoned Cart OPC is a powerful module for PrestaShop that helps you recover lost sales by automatically sending reminder emails to customers who left items in their cart without completing the purchase. The module can offer discount coupons to incentivize conversion and provides detailed statistics on cart recovery.
With an intuitive interface and flexible configuration, you can create multiple reminder campaigns, customize email templates in multiple languages, and track the effectiveness of your recovery efforts.
Main Features
Automatic Cart Recovery
Automatically detect abandoned carts and send reminder emails to recover lost sales.
Customizable Reminders
Create multiple reminder campaigns with different send times, filters, and email templates.
Discount Coupons
Automatically generate discount coupons to incentivize customers to complete their purchase.
Statistics and Tracking
View detailed statistics on abandoned carts, sent reminders, and recovery rates.
System Requirements
| Requirement |
Minimum |
Recommended |
| PrestaShop |
1.7.6 |
9.x |
| PHP |
7.1.3 |
8.1+ |
Important: To send automatic reminders, you will need to configure a cron job on your server. This is a scheduled task that runs automatically.
Installation
There are two methods to install the module in your PrestaShop store, depending on your server characteristics.
Method 1: Installation from Back Office
1
Access the Back Office
Log in to your PrestaShop store administration panel.
2
Navigate to Modules
Go to Modules → Module Manager in the side menu.
3
Upload the module
Click "Upload a module" and select the downloaded ZIP file.
4
Install and activate
Once uploaded, the module will install automatically. Click "Configure" to get started.
Method 2: FTP Installation
Use this method if the ZIP file is too large and your server doesn't allow uploading it from the Back Office due to upload size limitations.
1
Extract the ZIP file
Extract the contents of the ZIP file on your local computer.
2
Connect via FTP
Use an FTP client (like FileZilla) to connect to your server.
3
Upload the module folder
Upload the pts_abandonedcartopc folder to /modules/ in your PrestaShop installation.
4
Install from Back Office
Go to Modules → Module Manager, search for "Abandoned Cart OPC" and click "Install".
Possible Installation Issues
Override Conflicts: During module installation or activation, issues related to override files may arise. This happens when another module has already modified the same PrestaShop core files.
If you experience override errors when installing or activating the module, don't try to resolve it yourself if you don't have technical experience. Contact our support team to receive personalized help and resolve the conflict safely.
Contact Support
Configuration
General Configuration
After installing the module, you need to configure some basic settings before creating your first reminder campaign.
1
Access module configuration
Go to Modules → Module Manager, search for "Abandoned Cart OPC" and click "Configure".
2
Configure abandoned cart time
Set how many days a cart must remain inactive to be considered abandoned. The default is 30 days, but you can adjust it based on your needs.
3
GDPR configuration
Enable the GDPR checkbox if you want customers to consent to receiving reminder emails. You can also customize the legal text displayed.
4
Save configuration
Click "Save" to apply the changes.
Activate Module License
For the module to work properly, you need a valid license. The module checks it with PresTeamShop's servers, based on your store's domain. There is no license tab: when the module does not have a valid license, opening its configuration only shows the two license forms, and the rest of the tabs appear as soon as the license is validated.
If you upgrade from version 4.0.2 or earlier: those versions did not store your license number. After updating, when you open the module configuration you will see the license forms and you will have to validate your number or register it with your order details.
If you already have your license number
1
Open the module configuration
Go to Modules → Abandoned Cart OPC → Configure. You will see the "Validate your license" form.
2
Enter the "License Number"
Paste the license number you received with your purchase.
3
Click "Validate License"
If it is correct, you will see the message "License validated successfully." and the module will show all its tabs. If not, you will see "Invalid license number."
If you do not have your license number
Use the "Don't have a license yet? Register it here" form, right below the previous one. With it you can get your number from your order details:
1
Fill in the order details
Enter the purchase "Email", the "Order number or reference" and the "Order date". If the license is for a testing environment, enable "Is a develop license?".
2
Click "Register License"
If the details match your order, you will see "License registered successfully. Your license number is: …" and the module is activated. Keep that number. If they do not match, you will see "The information entered for your order is not valid."
Tip: Your license includes installation on one production domain and one development/staging domain, allowing you to test updates before applying them to your live store.
Debug Mode
Debug mode allows you to test the module without affecting other users or sending emails to real customers. This is very useful before activating the module in production.
How to use debug mode:
- Enable the "Debug mode" option in module configuration
- Enter your IP address in the "Debug IP" field
- Save the configuration
While debug mode is active, only users with the configured IP will see the module working. Other users won't receive reminder emails.
Tip: Use debug mode to test your reminder campaigns and email templates before activating them for all customers.
Reminder Campaigns
Reminders (or campaigns) are the core of the module. Each reminder defines when and how to send recovery emails to customers with abandoned carts.
Create a Reminder Campaign
You can create multiple reminder campaigns with different configurations. For example, you can send a first reminder after 2 hours without a discount, a second reminder after 1 day with a 5% discount, and a third reminder after 3 days with a 10% discount.
1
Access the Reminders section
In module configuration, click on the "Reminders" tab.
2
Create new reminder
Click the "New reminder" or "Add reminder" button.
You will see a form with multiple configuration sections.
3
Configure send time
Define when the reminder should be sent:
- Days: Number of days to wait after the cart is abandoned (0 = same day)
- Hours: Specific time to send the reminder (e.g., 10:00 AM)
Example: If you set 1 day at 10:00 AM, the reminder will be sent the next day at 10:00 AM.
4
Configure customer filters
Select which customers should receive this reminder:
- Registered customers: Customers with an account in your store
- Guest customers: Customers who completed checkout as guests
- Both: All customers regardless of type
5
Set cart amount range
Optionally, you can filter by cart value:
- Minimum amount: Only send to carts above this value
- Maximum amount: Only send to carts below this value
Tip: Leave empty to send to all carts regardless of amount.
6
Configure discount (optional)
If you want to offer a discount to incentivize purchase:
- Discount type: Percentage or fixed amount
- Discount value: The amount or percentage to discount
- Free shipping: Enable if you want to offer free shipping
- Validity (days): How many days the coupon will be valid
The coupon will be generated automatically when sending the email and will be included in the email template.
7
Choose the email template
In the "Template" field, select the template that will be sent. Templates are created beforehand in the "Email templates" tab, where you can customize the subject and content for each language of your store. See the "Email Templates" section for more details.
8
Save the reminder
Click "Save" to create the reminder. It will automatically activate and start sending when the cron job runs.
How to Configure Discounts
Discounts are a powerful incentive to recover abandoned carts. The module allows you to create coupons automatically.
Example: 10% off total purchase
- Select "Percentage" as discount type
- Enter 10 as the value
- The customer will receive 10% off their total
Example: $5 off total purchase
- Select "Fixed amount" as discount type
- Enter 5 as the value
- The customer will receive $5 off their total
Additional discount options:
- Free shipping: Enable this option to offer free shipping in addition to the discount
- Validity: Set how many days the coupon will be valid (e.g., 7 days from when the email is sent)
- Only discount: You can also create a reminder that only offers free shipping without a discount amount
Recommended Reminder Strategy
A good strategy is to create multiple reminders with increasing discounts to maximize recovery:
| Reminder |
Send Time |
Discount |
Purpose |
| First |
2 hours |
No discount |
Simple reminder that they left items in cart |
| Second |
1 day |
5% off |
Incentivize with a small discount |
| Third |
3 days |
10% off + free shipping |
Final incentive before cart expires |
Note: You can adjust this strategy based on your products, margins, and business objectives.
Abandoned Cart Management
View Abandoned Carts
The module provides a complete view of all abandoned carts in your store, with detailed information about each one.
1
Access Abandoned Carts section
In module configuration, click on the "Abandoned Carts" tab.
2
View cart list
You will see a table with all abandoned carts including: customer name, email, cart date, total amount, and reminder status.
3
View cart details
Click on any cart to see complete details: products in the cart, quantities, prices, and history of sent reminders.
Information available for each cart:
- Customer name and email
- Cart creation date
- Cart total amount
- Products in cart (with images, names, and quantities)
- Number of reminders sent
- Date of last reminder sent
- Whether the customer has opened the emails
- Recovery status (recovered or still abandoned)
Available Filters
The abandoned carts list includes several filters to help you find specific carts:
- Filter by cart creation date
- Select date range (from - to)
- Useful for analyzing specific periods
- Search by customer name
- Search by email address
- Find specific customer carts
- Filter by minimum cart amount
- Filter by maximum cart amount
- Focus on high-value carts
- All carts
- Recovered carts
- Still abandoned carts
Statistics
The module shows useful statistics to track the effectiveness of your recovery campaigns:
Total Abandoned Carts
Total number of abandoned carts in the selected period
Recovered Carts
Carts that were recovered after sending reminders
Recovered Amount
Total value of recovered sales
Recovery Rate
Percentage of carts successfully recovered
Tip: Review these statistics regularly to optimize your reminder campaigns and improve recovery rates.
Sent Emails
The "Emails enviados" tab (its heading reads "Sent emails") is the history of the emails the module has sent to your customers: both the reminders sent by the cron and those you send manually from the abandoned carts list. Next to the title you will see a counter with the total number of emails.
Filters
You can narrow the list with these fields and click "Filter":
- Email: looks for the emails sent to a specific address.
- Since date and To date: limit the list to a period.
- Template type: "All types", "With discount" or "Without discount".
List columns
The table shows "Email", "Subject", "Type" (with or without discount), "Date" and "Actions". The list is paginated.
See email content
In the "Actions" column, the envelope button ("See email content") shows the email of that send. Keep in mind that the module does not store a copy of the sent email: it rebuilds it at that moment with the template and the cart products, so if you changed the template after the send you will see the current version.
Delete Carts
The "Delete carts" tab lets you clean up, all at once, the abandoned carts of visitors who did not register (guests) within a date range.
Important: deletion is permanent. Check the dates and options carefully before clicking "Delete".
Customer type
Choose which guest carts are deleted: "Guest (without info)", the carts of visitors for whom the module has not stored more data than the email address, or "Guest (With info)", those of visitors for whom the module also stored other purchase form data.
Exclude carts with the following information
It appears when you choose "Guest (With info)". Check the data that, if the cart has it, makes that cart be kept and not deleted. Each item shows where it comes from: "Customer", "Invoice Address" or "Delivery Address". By default the email and the mobile phone are checked, so the carts of customers you can contact are not deleted.
Since date and To date
Both fields are required (they have an asterisk) and define the period of carts that will be deleted.
Remove carts simultaneously from your store
With this option set to "YES", besides removing the cart from the module, the cart is also deleted from your PrestaShop store. With "NO", it only disappears from the module and the cart still exists in PrestaShop.
When finished, the module shows how many carts it has deleted ("… cart(s) eliminated") or, if none met the conditions, "No abandoned carts were found".
Import Carts
The module registers abandoned carts as they happen. The "Import PrestaShop carts" tab lets you also bring in the carts that your store has and the module has not registered, for example those prior to its installation, so you can send them reminders.
At the top you will see the notice "There are N carts to import from your store" and a refresh button to update the figure. The carts imported are those of registered customers that did not end in an order and that the module does not have yet. Click "Import" to bring them in; the button is disabled if there are none.
Important: the process may take a few minutes. The module itself warns about it: "The process may take a few minutes, please wait, do not reload page".
Email Templates
Email templates are crucial for the success of your recovery campaigns. The module allows you to fully customize the subject and content of reminder emails.
How to Customize Email Templates
Templates are created and edited in the "Email templates" tab, with the "Add new email template" button. Reminders do not have their own editor: each reminder only chooses which one to use in its "Template" field.
Template fields:
- Template type: "With discount" or "Without discount". Discount templates can use the coupon variables.
- Internal name: the name the template is saved with. It must not contain special characters or spaces; we recommend replacing spaces with a hyphen (-).
- Base template: lets you start from a template that already exists. When you choose one, its HTML content and its TXT content are loaded into the editors of each language. With "--" the editors are left empty.
- Subject: the subject line the customer will see in their inbox, for each language of your store.
- Template content: the body of the message, with a visual editor, for each language.
- Txt content: the plain text version of the message, for each language.
- Emulate send email: enter an address and click "Send" to receive a test email. The data sent in the test is only sample data; the real data is only sent when the reminder is sent.
Available Dynamic Variables
You can use dynamic variables in your templates, which are automatically replaced with the real customer and cart data. In the module's "Email templates" tab you also have a notice with the list of variables. These are the ones that work in all templates:
| Variable |
Description |
{firstname} |
Customer first name |
{lastname} |
Customer last name |
{cart_content_detail} |
Detail of the products of the abandoned cart (images, links, quantities, attributes, etc.) |
{url_recover_cart} |
Link that takes the customer to checkout and recovers their abandoned cart |
{url_unsubscribe} |
Link to unsubscribe from reminders |
{url_contact} |
Link to your store's contact form |
{shop_name} |
Your store name |
{shop_url} |
Your store URL |
{shop_logo} |
Your store logo |
Variables for templates with discount
These variables are only filled in templates with discount, the ones that create a coupon when sent:
| Variable |
Description |
{discount_code} |
Discount coupon code |
{discount_value} |
Discount applied, as a percentage (for example, 10%) or as an amount with the store currency |
{minimum_amount} |
Minimum purchase amount to be able to use the coupon |
{expiration_date} |
Days of validity of the coupon: the number of days you configured in the reminder |
Example: "Hello {firstname}, we have saved your cart. Use the code {discount_code} to get {discount_value} off, valid for {expiration_date} days. Click here to complete your purchase: {url_recover_cart}"
Template Types
The module provides two types of email templates:
Used when the reminder doesn't include a discount coupon.
- Focuses on reminding about abandoned items
- Can highlight product benefits
- Creates urgency (limited stock, popular items, etc.)
- Doesn't show {discount_code} or {discount_value}
Used when the reminder includes a discount coupon.
- Highlights the discount prominently
- Shows the coupon code clearly
- Indicates coupon validity
- Can show {discount_code} and {discount_value}
Important: Each reminder uses the template you choose in its "Template" field. Discount variables are only filled in templates of type "With discount".
Best Practices for Emails
Tips for effective emails:
- Clear subject: Use a subject that creates curiosity or urgency, like "You left something behind!" or "Complete your purchase and save 10%"
- Personalization: Always use {firstname} to personalize the greeting
- Show products: Use {cart_content_detail} to remind customers what they left in the cart
- Clear call to action: Include a prominent button with {url_recover_cart} like "Complete My Purchase"
- Create urgency: If offering a discount, mention coupon expiration: "Valid for {expiration_date} days"
- Keep it simple: Don't overload the email with too much information; focus on the message
- Mobile friendly: Make sure the template looks good on mobile devices
Configure Cron Job
For the module to send reminders automatically, you need to configure a cron job (scheduled task) on your server. This is a process that runs periodically to check for carts that need reminders.
What is a Cron Job?
A cron job is a scheduled task that runs automatically on your server at regular intervals. Think of it as an alarm that activates a specific action at defined times.
In the case of this module, the cron job checks every hour (or at the frequency you set) if there are abandoned carts that need to receive a reminder based on your configured campaigns.
Get Cron URL
1
Access module configuration
Go to the Abandoned Cart OPC configuration page.
2
Open the "Reminders" tab
At the top you will see a blue notice that says "Remember to set the CRON to run every day to every hour" and, below it, "CRON URLs" with the URL already generated with its security token.
3
Copy the full URL
Click the copy button next to the field. It has a format similar to: https://yourstore.com/en/module/pts_abandonedcartopc/cron?token=XXXXXXX. Always copy it from the panel and do not build it by hand: depending on your store's friendly URLs setting, its form may change.
Important: This URL includes a security token. Don't share it publicly.
How to Configure on Your Hosting
The configuration process varies depending on your hosting provider. Here are general instructions:
- Log in to your cPanel
- Look for the "Cron Jobs" section
- Click "Add New Cron Job"
- Select frequency: "Every hour" or configure as desired
- In the "Command" field, paste:
wget -O /dev/null "YOUR_CRON_URL"
- Replace YOUR_CRON_URL with the URL you copied from the module
- Click "Add Cron Job"
- Log in to Plesk
- Go to "Scheduled Tasks" or "Cron Jobs"
- Click "Add Task"
- Select frequency: Every hour
- In the "Command" field, paste:
curl "YOUR_CRON_URL"
- Replace YOUR_CRON_URL with the URL you copied from the module
- Click "Save"
If your hosting doesn't have a cron configuration panel, contact your hosting provider's support and provide this information:
- Task type: HTTP/URL cron job
- Frequency: Every hour
- URL to execute: The cron URL you copied from the module
They will be able to configure it for you.
Recommended frequency: Configure the cron to run every hour. It is not necessary to run it every minute, since reminders are configured for specific days and hours.
How to Verify the Cron is Working
To confirm that the cron is working correctly:
- Open the cron URL in your browser (the full URL with the token)
- You will see a line of text with the result: the total number of reminders sent, or "No reminders created" if you have no active reminder. If you see "Bad token", the URL is not the one given by the panel or the token does not match. If you see "403 Forbidden", the module is not available at that moment: it is disabled, its license is not valid, it is pending an update (open its configuration once to complete the update), debug mode is enabled and your IP is not in the list, or the One Page Checkout PS module, which it depends on, is not active
- Check the "Emails enviados" tab (its heading reads "Sent emails") to see the reminders that have been sent
- Optionally, check your server logs to see the cron execution
Important: opening the cron URL really runs the process: the reminders that are due at that moment for the abandoned carts are sent. Do not open it just to "take a look" if you do not want emails to be sent to your customers.
Your Customers: Account and Reminder Unsubscribe
Besides the administration panel, the module adds two things your customers see: a section in their account to check and recover their abandoned carts, and an unsubscribe link in the emails.
My Abandoned Carts
Registered customers find in their account ("My account") a link called "My abandoned carts". That page shows them:
- A checkbox "I want to subscribe to receive notifications of my abandoned carts" with the "Save" button. If they uncheck it and save, they stop receiving reminders.
- A table with their abandoned carts and the columns "Discount available" (the coupon code, or "--" if it has none), "Cart total" and "Date".
- On each row, the "Details" button, which shows the products of the cart, and the "Recover" button, which takes them to complete the purchase with that cart.
If they have no abandoned cart they will see the message "You do not have abandoned carts".
Unsubscribing from Reminders
The templates that come with the module include an unsubscribe link (the {url_unsubscribe} variable). When the customer opens it, the module unsubscribes them and shows "The subscription was successfully canceled". If something fails, they see the message "There was an error canceling your subscription".
From that moment on, the module does not send them more reminders. The customer can subscribe again from the checkbox in "My abandoned carts".
Important: if you create your own templates, keep the {url_unsubscribe} variable so your customers can unsubscribe from the email itself.
Translations
The module includes a built-in translation editor that allows you to customize all texts in any language installed in your store.
Edit Translations
1
Access the Translations section
In module configuration, click on the "Translations" tab.
2
Select the language
Choose the language you want to edit from the dropdown.
3
Modify text strings
You will see a list of all module texts. Edit the ones you want to customize.
4
Save changes
Click "Save" to apply the translations.
Share Translations with PresTeamShop
If you've translated the module to a new language or improved existing translations, you can share them with us so they can be included in future versions.
Available options:
- Download translations: Export your translations to a file for backup or sharing
- Share with PresTeamShop: Send your translations directly so we can include them in the next module version and help other users
Thank you! Sharing your translations helps the PrestaShop community and improves the module for everyone.
Support
If you need additional help or have any questions about the module, we're here to help.