Knowledge Base Guide

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 modulesURL 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

  1. Upload the module ZIP to your staging site's Back Office → Modules → Upload
  2. Watch for any installation errors — if the installer fails, do not proceed
  3. 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:

  1. Add to cart flow: Add a product to cart from a product page, from a category page, and from search results
  2. Complete checkout: Go through the entire checkout process — address, shipping, payment — and confirm the order succeeds
  3. Customer registration: Create a new account and verify you can log in
  4. Search: Search for a product and confirm results appear correctly
  5. Category navigation: Click through your main category tree
  6. 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:

ContainerPS VersionPHP VersionPurpose
ps-test-1761.7.67.2Legacy support
ps-test-1781.7.87.4Most common 1.7 version
ps-test-818.18.1PS 8 early
ps-test-828.28.2PS 8 current
ps-test-919.18.3PS 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:

  1. Access your server via SSH or FTP
  2. Rename the module directory: mv modules/modulename modules/modulename_disabled
  3. Clear the cache: rm -rf var/cache/*
  4. Your back office should be accessible again
  5. Contact the module vendor with the error details from var/logs/

Module Causes White Screen

Enable debug mode to see the actual error:

  1. Edit config/defines.inc.php
  2. Change define('_PS_MODE_DEV_', false); to define('_PS_MODE_DEV_', true);
  3. Reload the page — you should see the full error message
  4. Remember to set it back to false after debugging

Module Conflicts with Another Module

If two modules conflict, the debugging process is:

  1. Disable both modules
  2. Enable the first module — test
  3. Enable the second module — test again
  4. 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)
  5. 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:

StepCheckStatus
1Staging site is fresh copy of production
2Database backup taken before install
3Module installed without errors
4Module configuration page works
5Module features work as documented
6No JavaScript console errors
7Add to cart works on all page types
8Full checkout completes successfully
9Customer registration/login works
10Search returns correct results
11Mobile responsive — no layout breaks
12Page 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.

Loading...
Back to top