Before selling your module on the PrestaShop Marketplace, it must pass a technical validation. This crucial step ensures the quality, compatibility, and security of your product for merchants.
This guide will walk you through everything from preparation to submission, helping you maximize your chances of success.
Tools to Get Started
1. The Validator
The Validator is your go-to tool to ensure your module meets PrestaShop’s technical standards. With it, you can:
Upload a ZIP archive of your module
Submit the URL of your GitHub repository
The Validator will automatically scan your module and generate a detailed report listing the necessary improvements. By following these recommendations, you’ll ensure your module is clean and ready for submission.
💡 Good to know: Since version 1.6.1.0, PrestaShop follows the PSR-2 coding standard. While recommended, it’s not mandatory, and non-compliance will not result in rejection.
2. Built-in Search Engine
The Validator also includes a built-in search engine to help you check which methods are available in different PrestaShop versions. Use it to target your development efficiently and save time.
Steps to Pass Technical Validation
1. Create a Local Development Environment
We recommend developing and testing your module in a local environment, using tools like WampServer (for Windows). This allows you to easily view all errors and PHP warnings.
To enable Developer Mode:
Open the file:
/config/defines.inc.phpChange the line:
define('_PS_MODE_DEV_', false);
to:
define('_PS_MODE_DEV_', true);
⚠️ Important: Never enable Dev Mode on a live store.
2. Follow Best Practices
Don’ts:
Don’t include external links in your code or documentation
Don’t include personal contact details
Don’t direct users to personal support platforms
Don’t use external AJAX files
Don’t use unsafe directory traversal code
Don’t alter PrestaShop core database tables
Do’s:
Include your documentation and Addons support link in your ZIP file
Follow the PSR-2 standard for modules targeting version 1.6.1.0 and above
Create your own tables
Use
_PS_CONFIG_DIR_to accessconfig.inc.phpDevelop your module in English and use PrestaShop’s translation system
Separate views using Smarty templates and helper classes like PrestUI
-
Prefix your:
Modules
Configuration parameters
Tables
CSS classes
Delete your configuration and tables during uninstallation
Show confirmation or error messages when forms are submitted
Validate user inputs (see the
Validateclass)Secure your files (especially cron jobs), and always use tokens
Limit overrides to a maximum of 2–3
Add JS to the back office only when relevant. Example:
if (Tools::getValue('configure') == $this->name) {
// Your JS here
}
🔐 Security Reminder: Use
pSQL()andbqSQL()in SQL queries, check uploaded file types usingmime_content_type(), and always sanitize user inputs to prevent vulnerabilities.
3. Optimize with the Validator
The Validator will highlight:
Technical errors
Forbidden features
Structural issues
Correct all issues to speed up your module’s approval.
Submit your module
1. Technical Information
Add your module_key to the constructor like this:
public function __construct() {
$this->module_key = 'your_module_key_here';
}
When releasing updates, list the changes made and specify which PrestaShop versions your module is compatible with.
2. File naming and ZIP format
Make sure your ZIP file follows these naming rules:
Main file:
module_name.phpFolder:
/module_nameZIP archive:
module_name.zip(same name, no version number)
Choose a clear and unique name for your module. Avoid using “PrestaShop” or “module” in the name. Feel free to personalize it with your brand name or initials.
What Happens Next?
Once submitted, your module will be reviewed by our technical team.
You’ll receive an email indicating whether it was approved or rejected
If rejected, we’ll provide a list of issues to address
Use the link in the email to contact the team directly for clarification
Fix the issues and resubmit your module
Bonus: Theme & Email templates recommendations
For Themes:
All included modules must be validated with the Validator
Never remove native PrestaShop hooks
Don’t include HTML in PHP code
Avoid "recolored" themes based on the default theme—create something unique
Keep the default store logo in the header and footer
For Email Templates:
Use our official SDK
Build valid ZIP archives with the SDK
Test your emails with the official test module
Ready to Get Started?
By following these best practices and using the right tools, you’ll improve your chances of getting your module validated and published on the Addons Marketplace—fast!
❓ Have questions? Need help? Contact us at partners-support@prestashop.com — we’re here to support you!