The new PrestaShop 8.1, ongoing work on PrestaShop 9.0, new content in the developer documentation and more! Read about all this news in the Core Monthly report for June.

Core Monthly banner

PrestaShop 8.1 is out!

You read that right! The new PrestaShop 8.1 is out! 🎉 Congratulations to the whole PrestaShop project team, contributors and community members who made this release possible. Version 8.1 is a minor upgrade, with major improvements. The all-new product management page, full support for WebP and Avif and lots of other improvements are waiting for you. Read about this in the release notes.

With the release of PrestaShop 8.1, the development of PrestaShop 8.0.x has been stopped. The 8.0.x branch will not be updated anymore and existing fixes will be moved to version 8.1.1. Branch 8.1.x will be used for handling upcoming patch versions for PrestaShop 8.1. If you want to know more, the project’s website contains all the details about the PrestaShop release cycle.

If you want to upgrade to PrestaShop 8.1, the new version of the PrestaShop Upgrade Module is available.

Important note: if you upgrade from a previous version, the new product management page will not be enabled by default. You need to enable it in Advanced Parameters -> New & Experimental Features -> New product page.

PrestaShop Developer Conference

The first-ever PrestaShop Developer Conference is coming! On November 30th, 2023, in Paris, we will have a full day of technical talks about PrestaShop. This conference is a great opportunity to meet the PrestaShop project team and community members.

You can read more details and register on the conference website. The call for papers is open until September 29th, 2023. If you want to share your knowledge about PrestaShop, don’t hesitate to submit your talk!

PrestaShop 9.0 is coming

Things are not slowing down in the PrestaShop project. The development of PrestaShop 9.0 is in full swing. Some new features and improvements are already available in the develop branch. The dev version is already based on Symfony 5.4 and PHP 8.1, which is a great opportunity to improve the codebase and make it more modern.

RectorPHP in PrestaShop

Thanks to @FabienPapet, the core is already getting some improvements and getting them quickly!

His contribution with RectorPHP helps to refactor some of the code to use all the new features from PHP 8.1.

Upgrade to the Symfony 5.4 also required some changes in the codebase. For one, Swift Mailer has been replaced with Symfony Mailer, some unused Symfony libraries have been removed and some libraries that were forked in the past have been replaced with the original ones.

PHP 8.2 compatibility

Thanks to @Progi1984 the version 9.0 is now compatible with PHP 8.2. You can read more about the changes in this PHP version on the php.net website. As dynamic properties are now deprecated, I’m sure there will be some work for module developers in the PrestaShop ecosystem.

Codebase cleanup

The major version is also a great moment to clean the code from deprecations or some unused features that were supposed to be removed in the past. One example is a generation of HighDPI images removed from the core, as it is no longer helpful. You can use the <picture> tag with the srcset attribute to load images depending on the screen resolution.

The same goes for the “Disable/Enable module for mobile devices feature”. It has been removed from the core since we believe there are ways to achieve the same result with the help of different means. It also caused some troubles with Smarty cache not being differentiated between devices.

There are also some examples of removed deprecations, like Tab::getClassName() or quite a significant change with Tools::displayPrice and Tools::displayNumber removed. You can check the details in this pull request.

New features

New versions are not only about removing and cleaning up things. Some new features are already available in the develop branch. One is the debug mode enabled only if the specific cookie exists. This is the first part to make this feature more secure and explicitly available for those needing it. There’s also ongoing work on the Symfony migration. More and more pages are being migrated to Symfony, like the features page, and some others are in the works.

Hummingbird theme

The Hummingbird theme is getting some nice improvements recently! You should definitely check the theme’s repository to see latest developments. Thanks to the help from the Theme&Design squad from the PrestaShop company we are getting closer to the first stable release of the theme.

If you are interested in using Hummingbird in the future, it is time to start testing it and reporting issues. You can do it here. You may also want to contribute to the theme. You can find more information about it in the contributing guide.

The theme is still in the development phase, so it is not recommended to use it on production websites.

Changes in modules

There are some minor changes in the native modules. You can review them all in the list on the bottom of the page. A lot of modules have been updated by our new committer @leemyongpakvn. He changed the build part, so that new versions use build script from the organization. This should make them easier to maintain them in the future.

As PrestaShop 8.1 is now available, we took some time to test the example modules against this version. If you work with PrestaShop, this repository is a great starting point to understand the current architecture and some of the latest features of the software.

Developer documentation

The developer documentation is getting more and more new content and improvements. The PrestaShop DevDocs is a great place to start if you want to learn more about PrestaShop development. It contains information about the PrestaShop core, how it works, how to contribute to the project, how to create a module or a theme and much more. The documentation is open source, so if you find any issues or want to contribute, you can do it on GitHub.

In June, a few changes have been made. We upgraded to the new version of Mermaid, which is used to generate diagrams in the documentation. We also improved canonical link for the “List of hooks” page, so if you search for it in Google, you will be pointed (hopefully!) to the correct page. We also improved a button visible if you browse documentation for older versions of PrestaShop, now it should be more visible.

Button informing about the docs for new version being available

Content-wise, some new things have been added to the PrestaShop 8.1 Notable Changes page. We recommend checking it out if you want to know more about the changes in the latest version of PrestaShop.

We also managed to merge some bigger improvements in the sections below:

And last but not least, a brand new documentation for PrestaShop on Docker. There are also some other improvements, thanks to all contributors for their work!

Project releases

A quick update about PrestaShop’s GitHub issues and pull requests:

Code changes in the ‘8.0.x’ branch

Back office

Front office

Tests

Code changes in the ‘develop’ branch

Back office

Core

Front office

  • #32946: FrontController should not drop existing notifications. Thank you, @Tofandel
  • #32861: Fix invalid token in redirection after editing himself. Thank you, @boherm
  • #32634: Introduce supplier presenter & simplify manufacturer presenter. Thank you, @Hlavtox
  • #32631: Cache backup fix with no products. Thank you, @M0rgan01

Installer

Tests

  • #33032: Nightly : Fixed install Node 16. Thank you, @Progi1984
  • #33010: Nightly : Fixed mocha loader (develop). Thank you, @Progi1984
  • #33002: Bump @typescript-eslint/parser from 5.59.11 to 5.60.0 in /tests/UI. Thank you, @dependabot
  • #33001: Bump @typescript-eslint/eslint-plugin from 5.59.11 to 5.60.0 in /tests/UI. Thank you, @dependabot
  • #32983: Replace legacy cart rule creation methods in behats with new CQRS steps. Thank you, @zuk3975
  • #32935: Nightly : 1.7.8.x : Fixed Admin password & Removed sanity:productV2 campaign. Thank you, @Progi1984
  • #32934: Bump dotenv from 16.1.4 to 16.3.1 in /tests/UI. Thank you, @dependabot
  • #32933: Bump eslint from 8.42.0 to 8.43.0 in /tests/UI. Thank you, @dependabot
  • #32932: Bump @typescript-eslint/eslint-plugin from 5.59.9 to 5.59.11 in /tests/UI. Thank you, @dependabot
  • #32931: Bump @typescript-eslint/parser from 5.59.9 to 5.59.11 in /tests/UI. Thank you, @dependabot
  • #32930: Bump playwright from 1.35.0 to 1.35.1 in /tests/UI. Thank you, @dependabot
  • #32916: Remove deprecated functions for Faker V8 and use new functions. Thank you, @boubkerbribri
  • #32891: Nightly : Move 1.7.8.x to Github Actions. Thank you, @Progi1984
  • #32878: Bump @typescript-eslint/parser from 5.59.8 to 5.59.9 in /tests/UI. Thank you, @dependabot
  • #32877: Bump @typescript-eslint/eslint-plugin from 5.59.8 to 5.59.9 in /tests/UI. Thank you, @dependabot
  • #32876: Bump playwright from 1.34.3 to 1.35.0 in /tests/UI. Thank you, @dependabot
  • #32863: Nightly : Fixed call to campaign Order. Thank you, @Progi1984
  • #32836: Nightly : Develop : Fixed error in package.json. Thank you, @Progi1984
  • #32822: Bump typescript from 5.0.4 to 5.1.3 in /tests/UI. Thank you, @dependabot
  • #32821: Bump @typescript-eslint/parser from 5.59.7 to 5.59.8 in /tests/UI. Thank you, @dependabot
  • #32820: Bump @xmldom/xmldom from 0.8.7 to 0.8.8 in /tests/UI. Thank you, @dependabot
  • #32818: Bump eslint from 8.41.0 to 8.42.0 in /tests/UI. Thank you, @dependabot
  • #32817: Bump dotenv from 16.0.3 to 16.1.4 in /tests/UI. Thank you, @dependabot
  • #32816: Bump module-alias from 2.2.2 to 2.2.3 in /tests/UI. Thank you, @dependabot
  • #32802: Nightly - Split commands for optimizing time. Thank you, @nesrineabdmouleh
  • #32785: Nightly : Add WS & Modules campaigns. Thank you, @Progi1984
  • #32483: Refacto cart rule tests. Thank you, @zuk3975

Web services

  • #32884: Error Webservice combinations or categories on a blank schema. Thank you, @crezzur
  • #32701: Deleting an attached file from the webservice API does not work. Thank you, @olecorre
  • #30565: Allow only tlsv1.2+ for api calls. Thank you, @atomiix
  • #29391: Fix issue where field updates by api when they are not supposed to. Thank you, @Prestaworks

Code changes in the ‘8.1.x’ branch

Back office

  • #32906: Fix clear filter options on missing category. Thank you, @FabienPapet
  • #32894: Admin search - Transmit the search query param. Thank you, @sowbiba
  • #32789: Warning on Modules List page when Distribution API cannot be contacted. Thank you, @0x346e3730
  • #32615: Update ImageGenerator resize destination path. Thank you, @M0rgan01

Tests

Web services

  • #32842: Changed error code when access token is invalid. Thank you, @nicosomb

Code changes in the ‘1.7.8.x’ branch

Tests

Code changes in modules, themes and tools

Auto Upgrade module

Automated tests on Pull Requests

  • #55: Using the getConfigInMultipleLangs method instead of getInt (Deprecated). Thank you, @M0rgan01
  • #54: Add badges in README and update links. Thank you, @justeen35
  • #53: Bump validator and mochawesome in /tests/E2E. Thank you, @dependabot

Best-selling products statistics module

Best categories statistics module

Best vouchers statistics module

Brands list module

  • #19: Update build-release.yml with Organization config (recommit from fork). Thank you, @leemyongpakvn
  • #18: Update build-release.yml with Organization config. Thank you, @leemyongpakvn

Carrier distribution statistics module

Changes in developer documentation sources

Changes in developer documentation theme

Check payment module

Classic theme

  • #117: Adapt theme for new presenter system. Thank you, @Hlavtox
  • #111: Bump webpack from 5.53.0 to 5.76.0 in /_dev. Thank you, @dependabot

Contact informations module

Cross-selling module

Currency selector

Customer data privacy block module

Customer reassurance block module

Custom text module

Distribution API Client

  • #26: Warning on Modules List page when Distribution API cannot be contacted. Thank you, @0x346e3730

DocToolsBundle

  • #2: Update dependencies & fix parser. Thank you, @mflasquin

Docker images

Email Alerts module

  • #131: Update build-release.yml using Organization config. Thank you, @leemyongpakvn
  • #121: We must not switch context (shop and language). Thank you, @lmeyer1

Email subscription module

Example modules

  • #151: Example modules improvements and tests against PrestaShop 8.1. Thank you, @kpodemski

Faceted search module

Google Analytics module

  • #149: Update build-release.yml using Organization config. Thank you, @leemyongpakvn
  • #148: Remove old code, fix translation domains, bump compatibility. Thank you, @Hlavtox

Google Sitemap module

Hummingbird theme

  • #524: Improvement: Rework Hn Structure. Thank you, @tblivet
  • #515: Fix: product listing responsive. Thank you, @ga-devfront
  • #514: fix: icon color on hover inside hompeage cta. Thank you, @ga-devfront
  • #511: Format templates “cms”. Thank you, @yannicka
  • #510: Accessibility: add aria-hidden, title and remove uppercase. Thank you, @yannicka
  • #508: Show/Hide Password: Accessibility on the button. Thank you, @yannicka
  • #506: Accessibility: add aria-hidden (and some aria-label). Thank you, @yannicka
  • #505: Fixed searchbar blank space on mobile screen. Thank you, @GytisZum
  • #501: Several bug fix on cart related with products stock. Thank you, @GytisZum
  • #500: Bump theme compatibility to 8.1 min. Thank you, @kpodemski
  • #498: Fix smarty deprecation stripslashes. Thank you, @lmeyer1
  • #436: product page - gallery zoom photoswipe. Thank you, @JBLach

Image slider module

  • #90: Update build-release.yml using Organization config . Thank you, @leemyongpakvn
  • #89: Delete PULL_REQUEST_TEMPLATE.md. Thank you, @JoseNOM
  • #88: Remove useless Google Analytics parameters. Thank you, @JoseNOM
  • #87: Release 3.1.3. Thank you, @JoseNOM
  • #86: Bump version to 3.1.3 for release. Thank you, @JoseNOM

Issues Bot

Kanbanbot

Module Releases Monitor

Newsletter statistics module

Order Notifications on the Favicon module

PHP Developer Tools

Pages not found module

Payment example module

PrestaShop on Docker

Presthubot

Product Comments module

Registered customer information statistics module

Sales and orders statistics module

Shopping cart module

Shop search statistics module

Stats Dashboard module

The PrestaShop open source project

  • #201: Add Thomas Leone to committers. Thank you, @kpodemski
  • #197: Update slack invitation link. Thank you, @matks
  • #196: Add leemyongpakvn to committers. Thank you, @matks
  • #194: Include step ZIP archive in the release process. Thank you, @matks
  • #178: Landing page ps81. Thank you, @kpodemski

Theme for the PrestaShop open source project website

  • #11: Improved releases template, common styles and scripts in one place. Thank you, @kpodemski

User-documentation-en

  • #5: Add possible sources to update geolocation IP list. Thank you, @lmeyer1

Wire payment module

Wishlist block module

  • #191: Fix Issue : FO / Blockwishlist - Translations are not take in account for “Wishlist default title” part. Thank you, @paul-jolimoi

Thank you to the contributors whose pull requests were merged since the last Core Monthly Report: @0x346e3730, @FabienPapet, @GytisZum, @Hlavtox, @JBLach, @JMorinPS, @JoseNOM, @Kaikina, @M0rgan01, @PrestaEdit, @PrestaSafe, @Prestaworks, @Progi1984, @Samar-al, @Tofandel, @aleksiuno, @atomiix, @boherm, @boubkerbribri, @cquintini, @crezzur, @cvng, @davidglezz, @dependabot, @ga-devfront, @jocel1, @jolelievre, @justeen35, @kpodemski, @lartist, @leemyongpakvn, @lmeyer1, @matks, @matthieu-rolland, @mflasquin, @nenes25, @nesrineabdmouleh, @nicosomb, @olecorre, @paul-jolimoi, @prettytree, @sowbiba, @tblivet, @thomasnares, @tleon, @unlocomqx, @yannicka, @zuk3975!

Thank you to the contributors whose PRs haven’t been merged yet! And of course, a big thank you to all those who contribute with issues and comments on GitHub!

Coding is only just one of the ways you can contribute. Here are some ideas on how you can get involved in the project.

If you need help with contributing or have questions about it, feel free to contact me, @kpodemski, on the project’s Slack.

Happy contributin’ everyone!