Your PHP code should be compatible with PHP compatibility chart
Your HTML/CSS/JS code should work with at least:
Use spaces for indentation in every language (PHP, HTML, CSS, etc.):
4 spaces for PHP files, 2 spaces for all other file types.
Use our .editorconfig file in order to easily configure your editor: https://github.com/PrestaShop/PrestaShop/blob/develop/.editorconfig
You should follow the PSR-2 standard, just like PrestaShop does.
In general, we tend to follow the Symfony coding standards.
Use HTML 5 tags:
All open tags must be closed in the same file (a
<div> should not be opened in
header.tpl then closed in
footer.tpl). Subtemplates (templates meant to be included in another template) must reside inside a
We recommend that you follow the RSCSS structure
Make sure your linter tool follows our .eslint file: https://github.com/PrestaShop/PrestaShop/blob/18.104.22.168/js/.eslintrc.js
If you wish to write ECMAScript 2015 (ES6) code, we recommend using the Babel compiler to maximize compatibility.
A good JS practice consists in splitting files per use, and then compiling them into one.
Learn more about the ES2015 standard: https://babeljs.io/docs/learn-es2015/