PrestaShop is an Open Source e-commerce web application, committed to providing the best shopping cart experience for both merchants and customers. It is written in PHP, is highly customizable, supports all the major payment services, is translated in many languages and localized for many countries, has a fully responsive design (both front and back office), etc. See all the available features.
This repository contains the source code of PrestaShop, which is intended for development and preview only. To download the latest stable public version of PrestaShop (currently, version 8.1), please go to the releases page.
The first stable version of PrestaShop 8.0 was released on October 26th, 2022.
The first stable version of PrestaShop 8.1 was released on June 26th, 2023. Further updates have been released since then. Learn more about it on the Build devblog.
The develop
branch of this repository contains the work in progress source code for the next version of PrestaShop. Currently, the next version will be PrestaShop 9.0.
For more information on our branch system, read our guide on installing PrestaShop for development.
To install the latest PrestaShop 9.0, you need a web server running PHP 8.1+ and any flavor of MySQL 5.6+ (MySQL, MariaDB, Percona Server, etc.).
You will also need a database administration tool, such as phpMyAdmin, in order to create a database for PrestaShop. We recommend the Apache or Nginx web servers (check out our example Nginx configuration file).
You can find more information on our System requirements page and on the System Administrator Guide.
If you downloaded the source code from GitHub, read our guide on installing PrestaShop for development. If you intend to install a production shop, make sure to download the latest version from our releases page, then read the install guide for users.
PrestaShop can also be deployed with Docker and its tool Docker compose.
To run the software, use:
docker compose up
Then reach your shop on this URL: http://localhost:8001
Docker will bind your port 8001 to the web server. If you want to use other port, open and modify the file docker-compose.yml
.
MySQL credentials can also be found and modified in this file if needed.
Note: Before auto-installing PrestaShop, this container checks the file app/config/parameters.php does not exist on startup.
If you expect the container to (re)install your shop, remove this file if it exists. And make sure the container user www-data
has write access to the whole workspace.
To fully reset your repo and get a fresh start, run (be careful: this removes all your extra files):
# clean everything that is not part of the original repository (node_modules, etc.)
git fetch origin
git reset --hard origin/develop
git clean -dfx
# inform build scripts to reinstall shop
rm app/config/parameters.php
# clear all docker caches and rebuild everything
docker compose down -v
docker compose build --no-cache
docker compose up --build --force-recreate
To add a PHPMyAdmin service to your Docker Compose setup, you can copy the existing docker-compose.override.yml.dist
to docker-compose.override.yml
and then start your Docker Compose setup (override file will be included as it is a convention)
cp docker-compose.override.yml.dist docker-compose.override.yml
docker compose up
By default, blackfire will not be installed. During the install process, the installation of blackfire is based on 3 environment variables:
BLACKFIRE_ENABLE: 1
BLACKFIRE_SERVER_ID: "your_server_id"
BLACKFIRE_SERVER_TOKEN: "your_blackfire_server_token"
Those env variables are self-explanatory, you can either set them yourself or override the docker-compose default values:
Open the file docker-compose.override.yml
(copy it from docker-compose.override.yml.dist
if it's not already done, see command just above in the PHPMyadmin section).
Then uncomment the 3 docker lines and fill the BLACKFIRE_SERVER_ID and BLACKFIRE_SERVER_TOKEN with your account's server id and token.
For technical information (core, module and theme development, performance...), head on to PrestaShop DevDocs
If you want to learn how to use PrestaShop 8, read our User documentation.
First-time users will be particularly interested in the following guides:
- Getting Started: How to install PrestaShop, and what you need to know.
- User Guide: All there is to know to put PrestaShop to good use.
- Updating Guide: Switching to the newest version is not trivial. Make sure you do it right.
- Merchant's Guide: Tips and tricks for first-time online sellers.
- The FAQ page should also be of tremendous help to you.
PrestaShop is an Open Source project, and it wouldn't be possible without the help of the hundreds of contributors, who submitted improvements and bugfixes over the years. Thank you all!
If you want to contribute code to PrestaShop, read the CONTRIBUTING.md file in this repository or read the tutorials about contribution on the documentation site.
Don't know where to start? Check the good first issue label to have a look at all beginner-friendly improvements and bug fixes.
If you want to help translate PrestaShop in your language, join us on Crowdin!
Our bugtracker is on GitHub. We encourage you to create detailed issues as soon as you see them.
Read our Contribute by reporting issues guide for details and tips.
Responsible (and private) disclosure is a standard practice when someone encounters a security problem: before making it public, the discoverer informs the Core team about it, so that a fix can be prepared, and thus minimize the potential damage.
The PrestaShop team tries to be very proactive when preventing security problems. Even so, critical issues might surface without notice.
This is why we have set up a Bug Bounty Program where anyone can privately contact us with all the details about issues that affect the security of PrestaShop merchants or customers. Our security team will answer you, and discuss of a timeframe for your publication of the details.
Understanding a security issue means knowing how the attacker got in and hacked the site. If you have those details, then please do contact us privately about it (and please do not publish those details before we answer). If you do not know how the attacker got in, please ask for help.
PrestaShop is a very extensible e-commerce platform, both through modules and themes. Developers can even override the default components and behaviors. Learn more about this on the Modules documentation and the Themes documentation.
You can discuss about e-commerce, help other merchants and get help, and contribute to improving PrestaShop together with the PrestaShop community on PrestaShop Slack channel, project's discussions on GitHub or on the the PrestaShop forums.
Thank you for downloading and using the PrestaShop Open Source e-commerce solution!