Email & SMS Reminders
Allows you to set infinite number of email and SMS reminders, with different order statuses, optional history changes, comments and full multilingual support. A must have extension, if you want to keep your customers at bay without spending too much time on it.
Features
Remind about abandoned shopping cart, pending or canceled order, expiring or expired orders etc. Works for orders from registered customers and guests, sends notifications in customer or order language. Supports recurring reminders, can handle unlimited number of custom reminders with different options. Deletes orders with particular statuses (including zero status) and informs customers about it. Adds to each reminder a products list from cart or order (depending on reminder) with basic info and images. Sends brief report, which contains information on how many orders were processed for each reminder.
Compatibility: OpenCart 2.0+, 3.0+
Current version: 3.2.1
Why Email & SMS Reminders?
Email & SMS Reminders is one of a kind: it allows you to setup an infinite amount of custom reminders. Reminders are notifications sent to customers, who forgot about their abandoned carts or pending orders, or even a follow-ups for completed orders, if you want to get a feedback. The only thing you need is to set number of days, select order status and add notification subject and text. The rest will be done automatically via cron job. Yes, it's that simple!
Full list of features
- Allows you to create unlimited number of reminders, based on different parameters.
- Reminders can be sent as order comment, email, SMS or all at once.
- Reminds customers about abandoned carts or orders.
- You can select desired order statuses for each reminder separately.
- Order status can be changed after reminder is sent.
- Supports recurring reminders.
- Works for orders both from registered customers and from guests.
- Full multilingual support, reminders are always sent in order or customer language.
- You may choose to not notify customer, but make some changes or even delete his orders.
- Supports custom tags to insert various information bits in reminder text.
- With some practice you can define different reminder chains, keeping customers informed in every situation.
- Supports multiple stores and customer groups.
- Very well-thought and optimized algorithm provides faster processing and easy improvements.
- Very user friendly interface with lots of options.
Screenshots
Demo
Extension's settings can be found in Extensions -> Modules section on backend of our demo site (username: demo, password: demo).
Change Log
3.1.1
- Minor bug fixes and improvements.
3.1.0
- Completely reworked UI and functionality on back-end.
- ADDED: Filters to quickly find the desired reminders.
- CHANGED: Action Link has changed, cron command must be updated correspondingly.
- CHANGED: Custom Tags section moved to the separate tab.
- CHANGED: Some options were renamed, additional check is required after upgrade.
- CHANGED: Report is not hard-coded anymore and has its own template file.
- Improved overall performance.
- Minor bug fixes and improvements.
3.0.2
- FIXED: Autocomplete fields not working properly in tabs.
- Minor bug fixes and improvements.
3.0.1
- FIXED: Action secret check is missing after previous update.
- FIXED: Tags are not processed for registration and login SMS messages after previous update.
- Minor bug fixes and improvements.
3.0.0
- Version number decreased to 3.0.
- CHANGED: {products} tag in SMS is now have the same layout as email template, but with stripped HTML tags.
- CHANGED: HTML now supported in Reminder Title option (see the documentation for more info).
- Slightly improved UI.
- Minor bug fixes and improvements.
5.3.0
- OpenCart 3.0 compatibility added (see documentation for additional info).
- ADDED: Copy Reminder button to copy selected reminder.
- ADDED: SMS tab with options related to SMS reminders.
- ADDED: Custom Tags option to define custom tags to use in reminders (see documentation).
- ADDED: Price Fields, Weight Fields and Length Fields options to define corresponding fields for output formatting.
- ADDED: SMS on Register and SMS on Login options to send SMS on corresponding events.
- ADDED: {break} tag to split SMS text manually into different parts.
- CHANGED: SMS Link option moved to SMS tab.
- Minor bug fixes and improvements.
5.2.0
- Extension renamed to Email & SMS Reminders.
- SMS support added (Experimental). See the documentation about requirements and setup!
- ADDED: SMS Link option in General settings for SMS provider's action link.
- ADDED: Send SMS option for each reminder separately to enable sending SMS.
- ADDED: SMS Text option for each reminder separately (multilingual).
- Improved UI: all multilingual fields are now grouped and put at the top of reminder settings for easier management.
- Minor bug fixes and improvements.
5.1.2
- License check added. Don't forget to enter your license ID in extension settings!
- VQMod replaced with OCMod. Remove old VQMod instance after upgrade!
- FIXED: Recurring option is not working properly.
- Minor improvements.
5.1.1
- ADDED: Stores option for each reminder to limit functionality to selected stores only.
- Minor bug fixes.
5.1.0
- All reminders data moved to separate tables. Backup your reminder settings before update!
- Highly optimized and improved algorithm for all operations with reminders: create, delete, remove and all others.
- ADDED: Conversion for order total and commission values as well as for products weight.
- FIXED: Last customer's activity is not properly queried, which produces duplicated emails for cart reminders.
- CHANGED: Check, if customer is logged, removed.
- CHANGED: Email template files moved from "module" to "mail" folder.
- CHANGED: Check for Missing status removed, you can now select this status for every action.
- CHANGED: Reset by URL key removed. Use Clear Reminder button in extension settings.
- Minor bug fixes and improvements.
5.0.3
- Improved cart products query. Should fix all product related issues for cart reminders.
- FIXED: Reset option is not working properly (reminders are not marked).
- Minor bug fixes and improvements.
5.0.2
- FIXED: store_id value is missing in returned carts array.
- Minor bug fixes and improvements.
5.0.1
- FIXED: Product links are not SEF due to recently added multistore compatibility.
- FIXED: Store tags are not properly replaced with data.
5.0.0
IMPORTANT NOTICE
Extension was completely reworked and absolutely not compatible with previous versions. It is highly recommended to save all reminders data (comment, subject, message etc.), uninstall previous version and only after that install the new one. All predefined reminders (Remind, Follow, Expired etc.) were removed. You now need to manually add every reminder and setup it accordingly.
NOTE: To avoid sending duplicated reminders run the script with "reset" key after upgrade and re-setup (see the documentation).
CHANGE LOG
- New admin interface with generic form for all reminders.
- CHANGED: New cron link. Don't forget to update your cron command!
- CHANGED: New tag syntax: {tag_name}. Don't forget to update your email templates!
- CHANGED: Period can now be set only in days, starting from zero.
- CHANGED: Subscribers Only option now available for each reminder separately.
- CHANGED: Global Add Products option removed - use {products} tag for each reminder instead.
- CHANGED: Change Status replaced with Action option to select between different actions with order or cart.
- CHANGED: Customer's last visit check is replaced with default last activity check.
- CHANGED: Every reminder can now be cleared for all orders and customers separately.
- ADDED: Emails Limit option to limit number of emails per cycle and avoid being banned by hosting company for spamming.
- ADDED: Recurring option for cart reminders.
- ADDED: HTML Email option for each reminder to send emails in HTML or plain text.
- FIXED: Links to products are improperly created in multistore setup.
- Improved feedback with additional checks and messages.
- Expanded report with additional information about each reminder.
- A lot of minor improvements.
4.0.0
- Extension renamed to Order & Cart Reminders and reworked for OpenCart 2.0. A lot of new features added.
3.0.0
- Completely reworked and greatly optimized algorithm with carts support.
2.0.0
- Improved extension with multilingual support.
1.0.0
- Initial release.
Documentation
Installation instructions
If downloaded package has .ocmod.zip extension, you can install it using Extension Installer. If you see "The directory is not allowed to be written to" error message, download Extension Installer Fix from this page and install it. Then install the main extension.
In any other case or if you want to install it manually, unpack and upload all folders to the root of your store. If there's install.xml file in the package, rename it to extension_name.ocmod.xml, replacing "extension_name" with extension's name, and upload it to "system" folder.
When upgrading from previous version rewrite all existing files. Refresh modifications cache from Extensions -> Modifications page.
Note for OpenCart 2.0.X users
Sometimes OCMod inserts modification in multiple files, which are separated by "|" character in XML-file. On earlier OpenCart 2 versions a comma was used instead. To quickly fix this, open XML file and replace all occurrences of "|" character with "," for "path" attribute in every applicable <file> element. Search for "<file path=" to quickly find and highlight all elements.
Note for OpenCart 2.3 users
On OpenCart 2.3 compatibility code is broken, which may lead to Permission Denied issue, when you access extension settings. To fix this you need to install OpenCart 2.3 Compatibility Fixes extension.
The right sequence of actions is the following:
- Download our purchased (or free) extension, but do not install it yet (uninstall, if already installed).
- Install OpenCart 2.3 Compatibility Fixes extension.
- Refresh modifications cache from Extensions -> Modifications page.
- Go to System -> User Groups and select all access/modify permissions for your group.
- Install our purchased (or free) extension.
If you did everything right, everything will start working properly.
Note for OpenCart 3 users
NOTE: Instructions below are required only if "admin" or "catalog" folders are present in the package!
To install and use extension on OpenCart 3 you need to install OpenCart 3 Compatibility Fixes. It adds backward compatibility with old extension structure plus adds back support for .tpl files and enables automatic template engine detection.
The right sequence of actions is the following:
- Download our purchased (or free) extension, but do not install it yet (uninstall, if already installed).
- Install OpenCart 3 Compatibility Fixes extension.
- Go to Extensions -> Modules section, install and enable Template Switcher.
- Refresh modifications cache from Extensions -> Modifications page.
- Go to System -> User Groups and select all access/modify permissions for your group.
- Install our purchased (or free) extension.
If you did everything right, everything will start working properly.
Permissions
In some cases it is required to manually set permissions for installed extension. To do this go to System -> User Groups, find your group and select access/modify permissions for desired extension. You can find extension in permissions list by folder/filename pair (for example, marketing/acoupon).
Extension Setup
Go to System -> Users -> User Groups and give a desired group permissions to access and modify module/reminders. After that go to Extensions -> Modules, find Order Manager and setup accordingly.
How to use
The actual usage of this extension is pretty simple: enter number of days, select desired options and set a cron job to run in a given period of time. Cron link can be found in extension settings. If you don't know, how to setup cron, contact your hosting provider on the matter.
Global options:
- Action Link - Link for your cron job (see below).
- Action Secret - Random number of characters for cron link to avoid false script executions.
- Emails Limit - How many emails should be sent per cycle. Useful to avoid being banned for spamming by hosting provider.
- Send Report - Cron job report will be sent to your main store email.
- SMS Link - Your SMS provider action link to send SMS reminders.
- Add Signature - Add signature to every outgoing email.
- Signature - Signature text.
- Check Version - Check for new extension's version. Disable, if settings page is loading too slow and "No connection to server" message is displayed.
- Debug - When enabled, essential information will be saved in error log for further debugging. Disable this option, when not needed!
- Status - Quickly disable/enable extension.
SMS options:
- SMS Link - Your SMS provider action link to send SMS reminders.
- SMS on Register - Send SMS on customer registration.
- SMS on Login - Send SMS on each successful login attempt.
- SMS on Failure - Send SMS on each failed login attempt.
- Register SMS Text - SMS text for SMS on Register.
- Login SMS Text - SMS text for SMS on Login.
- Failure SMS Text - SMS text for SMS on Failure.
Reminder options:
- Title - User friendly reminder title for tab and report (HTML supported).
- Type - Which part of your store reminder affects: cart or order.
- Test Mode - When checked, items will be processed and counted, but neither action applied nor email sent.
- Period - Days passed since order was last added or modified or last customer activity recorded (for carts).
- Date Since - Date, when order or action was last added or order was modified.
- Action - What you want to do with order or cart, when reminder is processed.
- Order Statuses - List of order statuses to check for (orders only).
- Change To - Order status to change to (orders only).
- Recurring - All matching Orders will be processed multiple times in assigned period.
- Subscribed Only - Only customers, who subscribed to newsletter, will receive emails for this reminder.
- Add Comment - A comment will be added to order history (orders only).
- Comment Text - Some text for history comment (orders only).
- Notify Customer - A notification email will be sent to customer about his order or cart.
- HTML Email - Email will be sent in HTML format (No - in plain text)
- Email Subject - Any subject for email notification.
- Email Message - Any text for email notification.
- Customer Groups - Only orders from customers from selected groups will be processed.
- Status — Turns on/off the reminder.
When you done with setup, it is highly recommended to do a test run. Enable test mode for all your reminders and click the Action Link on General tab. A new window will open in your browser and you'll see a report right on screen. All possible error and success messages will be displayed out there. If everything looks good, you may disable test mode and go live.
NOTE: Be careful with the first run! Some reminders can send emails to ALL your orders. Do some testing first!
Reset and clear reminders
Sometimes it is necessary to reset all reminders, but don't send anything to customers to avoid duplicated emails. For example, when you did something wrong or new version with major update was released. To reset reminders, just add "reset" key to main URL and launch the script manually:
http://yoursite.com/index.php?route=module/reminders/cron&secret=XXX&reset=1
Reminder markers for all carts and orders will be removed and updated again. Emails will not be sent and customers will only get new reminders on the next run without "reset" key.
It is possible, that you'll loose some reminders upon reset. To minimize loses, run script manually BEFORE updating extension, then update it to new version and reset.
If you want to do a fresh start, use Clear Reminder button for each reminder separately instead of global reset. It will simply clear all markers for selected reminder from your database and allow you to send emails again.
SMS reminders
To send SMS reminders you need to find an SMS provider first and sign up for its services. Currently extension supports only providers, which provide an URL to send SMS. For example:
https://smsprovider.com/send.php?username=mylogin&password=123456&phone={telephone}&message={text}
To enable SMS sending functionality for your reminders take the action link from your provider and add it in SMS Link field in General settings. Add {telephone} and {text} tags to this URL like shown in the example above. When you run the script these tags will be replaced with customer's phone and SMS Text for currently processed reminder.
If you set everything, but SMS are not sent, enable Debug option. After that all responses from your SMS provider will be saved in error log and you will be able to find out the root of the issue. Disable this option, when issue is fixed and SMS processed properly!
{products} tag in SMS is replaced with the same products template, which is used for emails, but with stripped HTML tags. Do not change HTML template structure from table layout to something else! Otherwise SMS products layout will become broken.
NOTE: HTML is not supported in SMS text, all tags are stripped!
Using tags in reminders
To add any info about order or cart to message subject or body, signature or comment use tags: {tag_name}. Tag names should be typed strictly in Latin letters or they won't be processed!
Common tags:
- period - Number of days for current reminder.
- store_id - Your store ID.
- store_name - Your store name.
- store_url - Your store URL.
- store_telephone - Your store telephone.
- customer_id - Customer's ID.
- customer_group_id - Customer's group ID.
- customer_group - Customer's group name.
- firstname - Customer's first name.
- lastname - Customer's last name.
- telephone - Customer's phone number.
- fax - Customer's fax number.
- email - Customer's email.
- products - List of order or cart products.
Carts only:
- Any customer specific field name from "customer" table.
Orders only:
- order_id — Order ID.
- order_url — Order link in history.
- invoice_no — Invoice number.
- invoice_prefix — Invoice prefix.
- comment — Order comment.
- order_status — Order status name.
- Any order specific field name from "order" table.
Tag processing algorithm is very simple and absolutely fail safe. First, the script will read all available fields from "order" or "customer" tables: order_id, customer_id, firstname etc. Then it will take each field one by one and wrap its name in curly brackets {}, turning it into tag: {order_id}, {customer_id}, {firstname} etc. After that the script will search for tag in email text or comment and replace it with actual field value, if found.
If certain tag is not replaced with its value, there can be only two reasons: tag is not properly defined or there's no such field in given table. Most likely reason is wrong tag name, which can seem typed properly sometimes. For example, this tag name seems proper, but it's not: {firstnаme}. It has letter "a" typed in Cyrillic and thus will not be processed. Same can happen with other languages and keyboard layouts.
If you're having an issue with tag processing, check, that they all are typed correctly and in Latin letters only. There's no and can NOT be any other reason for tags not processing as expected besides two reasons mentioned above.
Custom tags
If you need to add some data from other tables, use Custom Tags option under General tab in extension settings. This option allows you to add literally any data you want in both SMS and email reminders. To add a custom tag click the Add Tag button at the bottom row of the table and enter necessary data (all fields are required!):
- Tag - Your custom tag name.
- Field - Field to take data from.
- Table - Table to take data from.
- Where - MySQL WHERE clause to select only single value by given parameters. You can use standard tags here (see above).
For example:
- Tag: shipping_cost
- Field: value
- Table: order_total
- Where: order_id={order_id} AND code='shipping'
This will be transformed into standard MySQL query, replacing {order_id} with current order tag:
SELECT `value` FROM `order_total` WHERE order_id=1 AND code='shipping'
If you add {shipping_cost} tag to your reminder, it will be then replaced with returned shipping cost for current order similar to standard tags.
NOTE! Custom Tags option requires understanding of MySQL basics. You must add field, table and especially WHERE clause properly, otherwise extension will stop working due to MySQL error.
Free support for MySQL errors caused by improperly added custom tags is not provided!