How to Test PrestaShop Modules Properly
A practical testing workflow for PrestaShop modules — pre-flight checks, functional testing, regression testing, and a printable checklist. Never break your live store again.
Why Proper Module Testing Matters
Installing a new PrestaShop module on your live store without testing is like changing the engine of your car while driving. It might work — but if it doesn't, you're stranded in traffic with angry customers behind you.
Module conflicts, theme incompatibilities, and unexpected side effects are the most common causes of store downtime. Almost all of them are preventable with a basic testing workflow. This guide shows you how.
The time you invest in testing is always less than the time you spend fixing a broken live store. A 15-minute test on staging can save you hours of emergency troubleshooting.
Before You Install: Pre-Flight Checks
Before you even download a module, check these things first:
1. Compatibility Matrix
Every reputable module vendor lists which PrestaShop versions the module supports. Check that your exact version is covered — not just the major version. A module that says "PS 1.7" might not work on PS 1.7.6 if it was built for 1.7.8.
Also check PHP compatibility. If the module requires PHP 8.1+ and your server runs PHP 7.4, it won't work regardless of the PrestaShop version.
2. Module Quality Indicators
Look for signs that the module is well-maintained:
- Recent updates: When was the last version released? A module last updated 3 years ago is a red flag.
- Multi-version support: Does the vendor actively support multiple PrestaShop versions? This shows they understand the ecosystem.
- Documentation: Is there a user guide or installation manual? Good documentation correlates with good code quality.
- Support policy: What happens when something goes wrong? Is there email support, a ticket system, or just a community forum?
3. Existing Module Conflicts
Some module categories are known for conflicts:
- Checkout modules — multiple modules hooking into the checkout process can interfere with each other
- SEO modules — URL rewriting modules can conflict with each other and with the PrestaShop core's routing
- Theme-altering modules — modules that inject custom HTML/CSS can break theme layouts
- Override-heavy modules — modules that override core classes may conflict with other overrides
If you already have modules in the same category, be extra cautious and test thoroughly.
Setting Up Your Test Environment
You need a staging site — a copy of your live store where you can test safely. If you don't have one yet, read our guide on setting up a PrestaShop staging site first.
Your staging site should be:
- A recent copy of your production database and files (refreshed within the last week)
- Running the same PHP version as production
- Running the same PrestaShop version as production
- Using the same theme as production
- Having the same modules installed as production
This is crucial — a staging site that doesn't match production is useless for testing. The whole point is to simulate exactly what will happen when you install the module on your real store.
The Testing Workflow
Phase 1: Backup
Even on staging, take a backup before installing anything. This lets you quickly revert if something goes catastrophically wrong.
# Quick database backup
mysqldump -u root -p prestashop > ~/backup_before_module.sql
If you're using Docker:
docker exec staging-shop-db mysqldump -u root -p'password' prestashop > ~/backup_before_module.sql
Phase 2: Install the Module
- Upload the module ZIP to your staging site's Back Office → Modules → Upload
- Watch for any installation errors — if the installer fails, do not proceed
- Note the module version number for reference
If the module fails to install, check:
- PHP error logs (
var/logs/or your server's PHP error log) - Whether the module requires specific PHP extensions (GD, cURL, intl, etc.)
- Whether file permissions are correct (the
modules/directory needs to be writable)
Phase 3: Functional Testing
Now test everything the module claims to do. Go through the module's feature list systematically:
Back Office Testing
- Can you access the module's configuration page?
- Do all settings save correctly?
- Does the module appear in the expected menu location?
- Are translations working (if applicable)?
- Do any new admin pages load without errors?
Front Office Testing
- Visit every page type where the module should appear (homepage, category, product, cart, checkout)
- Test on both desktop and mobile — responsive issues are common
- Check that the module's visual elements match your theme
- Test all interactive elements (buttons, forms, filters, popups)
- Verify JavaScript console for errors (press F12 in your browser)
Phase 4: Regression Testing
This is the step most people skip — and it's the most important one. A module might work perfectly on its own but break something else.
Test these critical paths even if the module has nothing to do with them:
- Add to cart flow: Add a product to cart from a product page, from a category page, and from search results
- Complete checkout: Go through the entire checkout process — address, shipping, payment — and confirm the order succeeds
- Customer registration: Create a new account and verify you can log in
- Search: Search for a product and confirm results appear correctly
- Category navigation: Click through your main category tree
- Admin orders: Check that existing orders still display correctly in the back office
If the checkout works, you're probably fine. Most module conflicts surface during checkout because it's the most complex part of PrestaShop — dozens of hooks, AJAX calls, and JavaScript dependencies all converging on one page.
Phase 5: Performance Check
Some modules add significant overhead — loading extra JavaScript, making API calls, or running heavy database queries on every page.
- Open your browser's Network tab (F12 → Network) and check if the module adds large JS/CSS files
- Compare page load times before and after the module using PageSpeed Insights or your browser's Performance tab
- Check if the module makes external API calls on every page load (these can add 200-500ms of latency)
A well-built module should add minimal overhead. If a single module adds more than 200ms to your page load time, that's worth investigating.
Testing Module Updates
Updating an existing module requires the same testing workflow as a fresh install — sometimes more, because updates can change behavior you've already configured.
Before Updating
- Read the changelog carefully — what changed? Are there breaking changes?
- Check if the update requires a specific update path (e.g., "must update to 2.x before 3.x")
- Backup your current module folder and configuration
After Updating
- Verify all your existing settings are preserved
- Test any features that were listed as "changed" or "improved" in the changelog
- Run the full regression testing checklist (Phase 4)
- Clear PrestaShop cache and check for Smarty/template compilation errors
Testing with Multiple PrestaShop Versions
If you're a module developer or manage multiple stores across different PrestaShop versions, you need to test across all of them. The most practical setup is Docker containers, one per version:
| Container | PS Version | PHP Version | Purpose |
|---|---|---|---|
| ps-test-176 | 1.7.6 | 7.2 | Legacy support |
| ps-test-178 | 1.7.8 | 7.4 | Most common 1.7 version |
| ps-test-81 | 8.1 | 8.1 | PS 8 early |
| ps-test-82 | 8.2 | 8.2 | PS 8 current |
| ps-test-91 | 9.1 | 8.3 | PS 9 latest |
This is exactly the approach we use at mypresta.rocks — every module is tested across all supported PrestaShop versions before release. It's the only way to guarantee cross-version compatibility.
What to Do When Something Goes Wrong
Module Crashes on Install
If a module crashes during installation and leaves your back office inaccessible:
- Access your server via SSH or FTP
- Rename the module directory:
mv modules/modulename modules/modulename_disabled - Clear the cache:
rm -rf var/cache/* - Your back office should be accessible again
- Contact the module vendor with the error details from
var/logs/
Module Causes White Screen
Enable debug mode to see the actual error:
- Edit
config/defines.inc.php - Change
define('_PS_MODE_DEV_', false);todefine('_PS_MODE_DEV_', true); - Reload the page — you should see the full error message
- Remember to set it back to
falseafter debugging
Module Conflicts with Another Module
If two modules conflict, the debugging process is:
- Disable both modules
- Enable the first module — test
- Enable the second module — test again
- If the conflict appears only when both are active, check whether they:
- Hook into the same position (common with display hooks)
- Override the same core class
- Load conflicting JavaScript libraries (e.g., different jQuery versions)
- Report the conflict to both vendors — responsible developers will work together to resolve it
Automated Testing for Developers
If you're a module developer, consider adding automated tests to your workflow:
PHPUnit for Backend Logic
Test your module's PHP classes independently of PrestaShop. This catches logic errors before they reach a real store.
Playwright or Cypress for Frontend
Automated browser tests can verify that your module's UI works correctly across different scenarios. Especially valuable for checkout modules where manual testing is tedious.
GitHub Actions for CI/CD
Run your test suite automatically on every commit. This prevents regressions from reaching your release builds.
A Simple Testing Checklist
Print this out and use it every time you install or update a module:
| Step | Check | Status |
|---|---|---|
| 1 | Staging site is fresh copy of production | ☐ |
| 2 | Database backup taken before install | ☐ |
| 3 | Module installed without errors | ☐ |
| 4 | Module configuration page works | ☐ |
| 5 | Module features work as documented | ☐ |
| 6 | No JavaScript console errors | ☐ |
| 7 | Add to cart works on all page types | ☐ |
| 8 | Full checkout completes successfully | ☐ |
| 9 | Customer registration/login works | ☐ |
| 10 | Search returns correct results | ☐ |
| 11 | Mobile responsive — no layout breaks | ☐ |
| 12 | Page load time not significantly impacted | ☐ |
Summary
Module testing isn't complicated — it's just a habit. The workflow is: backup → install on staging → test features → test everything else → check performance → deploy to production. Every time, no exceptions.
The store owners who never have emergency downtime aren't lucky — they just test before they deploy. You can be one of them.
All modules from mypresta.rocks come with a free 30-day demo so you can test on your staging site before purchasing. We believe in test-first, buy-later — because you shouldn't have to take our word for it.
More guides available
Browse our knowledge base for more practical PrestaShop tutorials, or reach out if you need help.