Support Revolution: setup and help
Quick start
- Upload the Support Revolution ZIP in Modules > Module Manager and install it.
- Open Support > Departments. Adjust the active departments and translate their names.
- Open Support > Settings > General. Review Allow Guest Tickets, Max Attachment Size, Allowed File Types and Use Support Revolution as the shop's contact page.
- In Email Notifications, set Support Email and review the notification switches, then save.
- Open the storefront and submit a ticket. Check it in Support > Tickets and confirm both notification emails.
- Reply from the ticket view, add an internal note and verify customer access to the thread.
- Copy the front cron URL from the Cron Job panel if you need mailbox polling or auto-closing, schedule it and check its JSON result.
Requires PrestaShop 1.6.1 or later and PHP 7.1 or later.
Setup manual
Install and configure
Follow the steps in Quick start.
Configure tickets
Open Support > Departments. Adjust the installed multilingual departments, descriptions, active state and order. Open Support > Settings for the settings below. Save after changing them.
General
-
Use Support Revolution as the shop's contact page. Default: on. Routes the shop contact page into the module contact form so submissions become tickets. Review this before enabling the module on a public shop.
-
Ticket Prefix. Controls the prefix used in ticket references such as
SR-000001; default:SR. Set it in Support -> Settings -> General. -
Auto-Close After. Automatically closes
resolvedtickets after this many inactive days; default:14. Set to0to disable auto-closing. -
Max Attachment Size. Sets the maximum upload size per attachment in MB; default:
10. -
Allowed File Types. Sets the comma-separated list of allowed attachment extensions; default:
jpg,jpeg,png,gif,pdf,doc,docx,xls,xlsx,txt,zip,rar. -
Default Department. Selects the department used when a ticket is created without a department value; default:
0. -
Allow Guest Tickets. Allows non-logged-in visitors to create support tickets; default:
1. -
Include in Sitemap. Adds knowledge base URLs through the
gSitemapAppendUrlshook; default:1. -
Article Author. Default: empty. Enter the name credited on knowledge base articles and their structured data. Empty credits the shop.
Changing Ticket Prefix affects newly generated references. For example, HELP gives references such as HELP-000001. Keep the expected reference in reply subjects so email ingestion can find the thread.
For a smaller attachment policy, set Max Attachment Size to 5 and Allowed File Types to jpg,jpeg,png,pdf,txt. Server upload and request limits also apply. Give the web server write access to upload/mprsupportrevolution/ (under the shop upload directory) for ticket attachments.
Email Notifications
- Support Email. Sets the support reply-to address and admin notification recipient; default: empty, which falls back to the shop email.
- Notify Admin on New Ticket. Sends an email to the support address when a new ticket is created; default:
1. - Notify Admin on Customer Reply. Sends an email to the support address when a customer replies; default:
1. - Notify Customer on New Ticket. Sends the customer ticket-created confirmation; default:
1. - Notify Customer on Admin Reply. Sends an email to the customer when staff post a non-internal reply; default:
1. - Notify Customer on Close. Sends an email to the customer when a ticket is closed; default:
1.
Use the shop's mail configuration to test delivery. Support Email supplies the reply-to address and support notification recipient, with shop-email fallback. The mail service uses templates in the module's mails/ directory. Variables passed by the relevant template can include {customer_name}, {ticket_reference}, {message} and {ticket_url}. Available variables depend on the email template.
IMAP Fetching
- Enable IMAP Fetching. Enables mailbox polling when the PHP IMAP extension is available; default:
0. - IMAP Host. Sets the IMAP server hostname; default: empty.
- IMAP Port. Sets the IMAP server port; default:
993. - Encryption. Sets the IMAP encryption mode; default:
ssl. Accepted values aressl,tls, andnone. - IMAP Username. Sets the IMAP login username; default: empty.
- IMAP Password. Sets the IMAP login password; default: empty. Leaving it empty while saving preserves the current stored password.
- IMAP Folder. Sets the mailbox folder to monitor; default:
INBOX. - Poll Interval. Default: 5 minutes. The shared scheduled task uses this value, with a minimum of one minute.
- Skip Auto-Replies and Bounces. Default: on. Saved preference; scheduled mailbox fetching does not skip automated mail using this setting.
- Honor Server Spam Verdict. Default: on. Saved preference; scheduled mailbox fetching does not skip messages marked as spam using this setting.
- Blocked Senders. Default: empty. Stores comma-separated email addresses or
@domains; scheduled mailbox fetching does not apply this blocklist. - Max Emails per Sender per Hour. Default: 10. Zero disables the limit; scheduled mailbox fetching does not apply it.
Enter a dedicated mailbox, for example host imap.example.com, port 993, Encryption ssl, username support@example.com and folder INBOX. Set the mailbox password and save. The password field preserves the stored password when you leave it blank.
Scheduled mailbox fetching requires the PHP IMAP extension and Enable IMAP Fetching. Without the extension, scheduled fetching stays disabled.
Only unread messages are processed. A matching reference such as [SR-000001] attaches the message to an existing ticket. Messages without a matching ticket create a ticket with source email. Incoming attachments are not imported. Scheduled fetching does not check whether the sender matches the ticket email and does not apply the sender filters above.
Configure the contact form
Open Support > Contact form. The submenu contains Dashboard, Forms, Fields, Submissions and Configuration. Installation creates a default form if one is missing. Select the correct shop, review its fields and submit it once from the storefront before using it as the public contact page.
Use Use Support Revolution as the shop's contact page in Support Settings to control contact-page ownership. Check the resulting submission in both Contact form > Submissions and Support > Tickets. Employee access to these controllers governs who can manage forms and view submissions.
Forms and Fields
In Forms, edit Internal Name, multilingual Form Title, Description, Success Message, Email Subject and GDPR Label. The factory creates Default Contact Form with the English title Contact us, a contact-message confirmation and a personal-data consent label. Translate and replace that text for your store.
New form model defaults are Send Admin Email on, Admin Email empty, Send Customer Confirmation on, Enable Honeypot on, Enable Time Check on, Min Submit Time 3 seconds, GDPR Checkbox on and Active on. Review them for each form. Support-created tickets use the support mail service and the notification switches in Support > Settings; generic contact-mail switches do not replace those ticket switches.
In Fields, choose Form, translate Label, Placeholder and Description, and set Field Name, Field Type, Required, Options, Position and Active. Use one option per line for a select field. The default form has required Full Name, Email Address, Subject and Message fields, with an optional Phone Number. Keep the internal subject and message names when you want those values mapped into the ticket subject and message. Other values are appended as labeled text.
Contact form Configuration
The shared contact package stores its settings separately from ticket settings. Open Contact form > Configuration and review:
| Tab and setting | Default | When to change it |
|---|---|---|
| General: Replace Core Contact Page | Off | This is the shared contact setting. For Support Revolution, control page ownership with Use Support Revolution as the shop's contact page in Support Settings. |
| General: Enable Schema.org Markup | On | Enable or disable contact-page LocalBusiness output. |
| Business Info: Show Business Info Cards | On | Show or hide business information. |
| Business Info: WhatsApp Number | Empty | Enter the contact number if you use this contact channel. |
| Business Info: Show Social Links | On | Hide the social-link section if unused. Stored links default to an empty list. |
| Business Info: Show FAQ Section | On | Review the built-in contact FAQ content before publication. Replace generic response-time, phone and office-visit answers with your own facts. |
| Location & Hours: Show Map | On | Hide the map if unused. |
| Location & Hours: Map Latitude / Map Longitude | Empty | Enter your actual location before expecting a useful map. |
| Location & Hours: Map Zoom Level | 15 | Adjust the displayed map scale. |
| Location & Hours: Show Opening Hours | On | Show or hide opening hours. The stored schedule starts at Monday to Friday 09:00 to 17:00, with weekends empty. Review it before publishing. |
| Location & Hours: Timezone | Shop PS_TIMEZONE | Use the timezone for the displayed hours. |
| Email: Send Admin Notification | On | Generic contact-mail setting; ticket notifications use Support Settings. |
| Email: Admin Email Address | Shop email | Generic contact recipient; check Support Email for ticket notifications. |
| Email: Send Customer Confirmation | On | Generic contact setting; check Notify Customer on New Ticket for the ticket confirmation. |
| Spam Protection: Enable Honeypot Protection | On | Keep the hidden-field check unless you have a specific form integration conflict. |
| Spam Protection: Enable Time-Based Check | On | Apply the minimum submission-time check. |
| Spam Protection: Minimum Submit Time (seconds) | 3 | Adjust the minimum elapsed time for submission. |
| Spam Protection: Max Submissions per IP/Hour | 10 | Set the contact-submission rate limit. |
| Spam Protection: Blocked Words | Empty | Enter terms to reject in the contact spam check. |
| Spam Protection: Cloudflare Turnstile Site Key / Cloudflare Turnstile Secret Key | Empty | Configure both keys together if you use Turnstile. |
| Spam Protection: Blocked IP Addresses | Empty | Enter addresses you want the contact check to reject. |
Theme styles uses shared detected theme values. Its contact-specific defaults include Form spacing 20px, WhatsApp color #25D366 and the package's normal/raised card shadows. Adjust these after checking the rendered form.
Use Dashboard and Submissions to check contact activity and the ticket linked to a submission. Test a permitted message and a rejected submission after changing spam settings.
Schedule maintenance
Module front cron URL
Copy the complete URL from the Cron Job panel in Support > Settings. It has this form:
https://your-shop.com/module/mprsupportrevolution/cron?token=YOUR_SUPPORT_CRON_TOKEN
This uses the module's CRON_TOKEN, generated as 32 hexadecimal characters during configuration installation. Regenerate Token invalidates the old URL, so update your scheduler afterwards.
The front controller runs IMAP polling, if allowed, and auto-closing whenever you call it. It does not apply the shared task intervals itself. For example, call it every five minutes if that is your chosen polling cadence. Auto-closing affects resolved tickets older than Auto-Close After; zero disables it.
Shared CLI runner
If you use the common MPR scheduler, its CLI entry point is:
php /var/www/html/modules/mprsupportrevolution/cron.php --token=YOUR_SHARED_MPR_CRON_TOKEN --max-tasks=20 --max-seconds=55 --context=cron
Replace the installation path and use the shared cron token from your MPR cron setup. This is different from the support URL token. The runner validates the global mprcron TOKEN value, generated as 64 hexadecimal characters when needed. It can execute due tasks across MPR modules using the shared scheduler.
The support tasks are IMAP polling at Poll Interval, resolved-ticket auto-close every 3600 seconds, and knowledge base cache-change checking every 300 seconds. A once-per-minute CLI invocation lets the scheduler honor those task intervals. Check the task results and errors after the first run.
Work with tickets
Customers open My Tickets from their account. With the default routes, they can browse /my-support, create at /my-support/create and open /my-support/ticket/{id_ticket}. Use generated links for the shop and language prefix.
The creation form collects subject, department, message, optional attachments and GDPR consent. New tickets start with medium priority. Logged-in customers use account identity. Guests enter their name and email if Allow Guest Tickets is enabled. Guest ticket links include a private token. Preserve that complete link when checking guest access.
Open Support > Dashboard for counts, status summaries and recent messages. Use Support > Tickets to filter by reference, customer, email, status, priority, department, assignee, message count and dates. Open a ticket to reply, add an internal note, attach files, change status or priority, and assign an employee. Assigning an open ticket moves it to in_progress.
Statuses are open, in_progress, waiting, resolved and closed. Priorities are low, medium, high and urgent. There is no editor for adding custom status or priority values. Internal notes remain in the back office. Closed tickets do not show the customer reply form.
Give employees only the ticket and department permissions needed for their work. Test an internal note from a customer account to confirm it is hidden.
Use the knowledge base
The module provides a public knowledge base with localized category and article routes, view tracking, helpful feedback, canonical/SEO output and sitemap contributions. There is no category or article editor in the module's admin menu. Publish content through your existing publishing workflow.
Typical routes are:
/knowledge-base
/knowledge-base/{category}
/knowledge-base/{category}/{article}
The base segment is taken from the localized CMS category with ID 5 when available. Fallback URL segments use the language ID: 1 knowledge-base, 2 wissensdatenbank, 3 base-de-connaissances, 4 baza-wiedzy, 5 base-di-conoscenza and 6 base-de-conocimientos. A different language-ID arrangement can therefore change which fallback appears. Follow generated links rather than assuming an ISO-to-slug mapping.
Article indexing follows the category's indexing setting. Articles 46 and 52 are always excluded from indexing. Indexable articles can emit article structured data. Include in Sitemap enables eligible URLs through gSitemapAppendUrls; a compatible sitemap generator must consume that hook.
Verify and troubleshoot
- Submit a test ticket as a customer and, if enabled, as a guest. Confirm the admin notification, customer confirmation and private guest link.
- Reply from the back office. Confirm the customer email and thread. Add an internal note and check that it remains private.
- Test a permitted attachment and an oversized or disallowed file. Check PHP upload limits if the permitted file fails.
- Send an unread email with a test reference, call the chosen scheduler and check that it is handled once. If no email is fetched, check extension availability, credentials, folder, unread state and token.
- Resolve a test ticket and check scheduler output for auto-close processing. Do not shorten a production inactivity setting merely to test old tickets.
- Open existing knowledge base content in each language. Check route generation and sitemap eligibility separately from ticket pages.
If a cron URL returns Invalid token, copy it again from the correct panel. A support URL token does not authenticate the shared CLI runner. If the mailbox connects but a message stays outside the thread, check the reference prefix and unread state. If customer confirmation does not arrive, check Notify Customer on New Ticket, mail configuration and mail delivery logs.
Customize templates and styles
Use these template override paths in your active theme:
themes/your-theme/modules/mprsupportrevolution/views/templates/front/ticket_create.tpl
themes/your-theme/modules/mprsupportrevolution/views/templates/front/ticket_view.tpl
themes/your-theme/modules/mprsupportrevolution/views/templates/front/tickets_list.tpl
themes/your-theme/modules/mprsupportrevolution/views/templates/hook/displayCustomerAccount.tpl
Put CSS in your theme's custom stylesheet. Load CSS through your theme's stylesheet settings. Useful selectors are #mprsupportrevolution-link, .mpr-support, .mpr-support__hero, .mpr-support__card, .mpr-support__status--open, .mpr-support__status--in_progress, .mpr-support__status--waiting, .mpr-support__status--resolved, .mpr-support__status--closed, .mpr-support__message--staff and .mpr-support__message--customer.
Disable or uninstall
Disable the module in Module Manager to stop its storefront integration. Before uninstalling, back up tickets, messages, attachments, contact forms, submissions, knowledge base content and settings. Remove or update your cron jobs. Uninstall removes scheduled tasks, admin pages, configuration and module database tables. Stored attachment files remain after uninstall; review them separately after backing them up.
Reference screenshots




Questions
1
What does a ticket store, and is consent required on the native ticket form?
A ticket stores customer identity, subject, department, priority, status, shop and submitter IP address, with its message thread and any saved attachments. The native ticket creation form rejects submission unless its data-processing checkbox is ticked. Internal notes are filtered out of the customer-facing conversation. Other intake routes have their own controls, so this checkbox requirement should not be assumed for every imported email or contact form.
Known Issues
21
Customer ticket list shows tickets from all shops in multistore
A customer who has accounts on multiple shops sees tickets from all shops merged into one list. The customer ID is shared but the ticket context is not shop-filtered.
Resolution note
Added id_shop filter to the customer ticket query.
Security hardening
Ticket notification emails failed on newer PrestaShop releases
Staff reply badge was difficult to read
Knowledge base title overlap on Classic
Mailbox polling ignored its interval setting
New-ticket confirmation was not sent
Administration ticket view failed to load
Administration labels remained in English
Knowledge base setup missed article shop information
Guest ticket links failed
Module refused to load on PHP 7.1
Email tickets missing from the customer portal
Reply and ticket details could become inconsistent
Open tickets could not be saved
Article content styles were missing
Unknown knowledge base addresses returned the wrong response
Knowledge base heading did not use the article title
Structured data on articles excluded from indexing
Knowledge base feedback attached incorrectly
Customer support page failed to open
Feature Requests
22
Implemented
IMAP email-to-ticket conversion
Knowledge base articles with view counts and reader feedback
Multilingual knowledge base
Article views and helpfulness feedback
Knowledge base categories
Article author and dates
FAQ previews and links
Installation checks and repair
One-click module updates
Formatted article code blocks
Public PrestaShop security scanner
Mailbox tickets without an IMAP extension
Incoming email filters
Ticket integrations
Knowledge base search integration
Knowledge base cache updates
Reusable variables in support content
Automatic detection of article updates
Article author setting
Contact messages become support tickets
Contact form management and spam protection
Public knowledge base page caching
Changelog
v2.1.182026-05-27
- AddedFinalize support hub SEO cleanup
- AddedShow FAQ previews in knowledge base
- AddedLink knowledge base back to FAQ
- Addedcomplete FR/DE/ES/IT/PL translations
- FixedUse article title for KB headings
- FixedSuppress KB schema on noindex articles
- FixedCreate support runtime tables from schema
- FixedWire support integrity services
Older releases
v1.3.02026-04-20
- AddedAdd KB category system with nested URLs and 301 redirects
- AddedAdd author byline and dates to KB footer bar, remove cache-busting
- AddedRedesign KB footer as compact inline bar with views + thumb counts
- AddedKnowledge Base — fully-owned KB articles with views + feedback
- Addedadmin menu management via MenuInstaller for streamlined module setup
- AddedLicense management tab with key management and renewal options
- Addedself-healing integrity checks for automatic diagnostics and repair
- Addedcomplete FR/DE/ES/IT/PL translations
- ImprovedRevert KB listing to simpler card design with category sections
- ImprovedPush views + thumbs to right side of KB footer bar
- Improvedadmin list columns with visual badge indicators and multiselect filters
- ImprovedSEO handling with proper canonical URLs and meta tags on all front pages
- FixedUpdate SCSS source for KB footer bar styles
- FixedKB insights — replace broken negative-ID hack with proper id_article column
- FixedKB SEO — 301 redirect ?slug= URLs, sitemap hook, version bump
- Fixedvarious stability and compatibility improvements (6 fixes total)
- Fixedadmin list filters — sorting, searching, and filtering now work correctly on all columns
v1.2.02026-02-10
- AddedPS 9 / Hummingbird theme compatibility
- AddedIMAP email-to-ticket bridge — incoming emails auto-create or reply to tickets
- Improveddepartment routing rules with keyword and category triggers
- Optimized ticket list query — 60% faster on stores with 10k+ tickets using indexed status
- Fixedthreaded reply notification not sending when customer updates closed ticket
v1.0.02026-02-05
- Initialrelease: customer support ticketing system for PrestaShop
- InitialThreaded ticket conversations between customers and agents
- InitialDepartment routing and agent assignment
- InitialCustomer-facing ticket portal in My Account section
- InitialCompatible with PS 1.7.x and PS 8.x
v1.1.02025-04-30
- Addedfile-attachment support (PDF, images) on ticket replies
- AddedSLA timer — displays response-due countdown in agent back office
- AddedCSAT rating request sent after ticket closure
Demo
Test the full module before you buy
Buy a licence later and keep your settings.
- Your 30-day demo Test it on your own shop for 30 days from the first install.
- Ready demo shop Explore a ready demo shop in your browser.
- No registration No account, email or store domain needed.
By downloading, you accept the demo terms and privacy policy.
By opening this demo you accept the demo terms and the privacy policy.