With over 250 pull requests merged in the project repositories, February was a busy month for the PrestaShop open source project. We released the security patch, PrestaShop 8.1.4, and made significant progress on the new API. Let’s take a look at the most important changes in the codebase.

Core Monthly banner

Release of PrestaShop 8.1.4

The 8.1.4 maintenance release of PrestaShop was a dedicated security release. This was the first instance where the decision was made to separate security fixes from other bug fixes and improvements, allowing for a quicker release of the security patch. The release went smoothly, leading to plans to continue this approach in future releases. It is recommended to upgrade to this version promptly to benefit from these security fixes. More details can be found in the release notes.

PrestaShop 8.1.5

The work on the next maintenance release, 8.1.5, has already started. The release is planned for March and will include a number of bug fixes and improvements. I’ll share more on this in a dedicated blog post soon.

PrestaShop 9.0

PHP 8.3 compatibility

PHP 8.3 has been enabled for the develop branch on GitHub. GitHub workflows in the project now run on PHP 8.1, 8.2 and 8.3, with all tests being passed. This is a significant step towards ensuring that PrestaShop 9.0 will be compatible with the latest version of PHP.

New API

The progress of the new API for PrestaShop 9.0 is going well. This new API is being built using the API Platform framework, which gives a strong base for creating modern web APIs. It is a significant upgrade from the current one, providing developers with a more consistent and predictable experience.

One of the recent additions to the project is the introduction of MutationTracker, which is responsible for tracking some of the changes made to the entities. Thanks to this, the API will be able to provide more information about the changes made to the resources. One example of this is the ability to track modifications to order history via API calls. What is important to underline is that this is not a logging system, but a way to track changes made to the resources.

It’s worth mentioning the API Platform has been updated to version 3.2. We wanted to make sure we are using the latest version of the API Platform framework, which will provide us with the latest features, improvements and fixes.

In the upcoming weeks, we will be releasing a series of blog posts to introduce the new API and its features. Stay tuned for more details.

Symfony 6

The work on upgrading the Symfony framework to version 6 is ongoing. The upgrade is a significant task, as it requires changes to many parts of the codebase. The upgrade will bring many improvements and new features, and it will also ensure that PrestaShop is using the LTS version of the Symfony framework.

As part of the migration process, we have three new pages in the back office that have been migrated to Symfony:

Filter stock page by EAN13

The stock management page in the back office now includes a new filter to search for products and combinations by their EAN13 code. This is a useful addition for merchants who need to quickly find products by their barcode.

Modules

Auto Upgrade

The Auto Upgrade module has been updated to version 5.0.1. This release includes a number of improvements and bug fixes. The module now supports the upcoming version of PrestaShop, 8.1.5. More details can be found in the release notes.

Google Analytics

The Google Analytics module has been updated to version 5.0.0. This is a big update that includes a number of new features and improvements. The module now supports most of the events available in Google Analytics 4 and works with maximum amount of data available in the new version of the platform. More details can be found in the release notes.

Links list

A new version of the Links list module has been released. The module has been updated to version 6.0.7. Releases from 6.0.5 to 6.0.7, include a number of improvements and bug fixes, some to critical issues reported by the community. More details can be found in the release notes.

API Resources

ps_apiresources includes the resources allowing the API’s use for the PrestaShop domain. All endpoints are based on CQRS commands/queries from the Core and we use the API Platform framework as a base. It’s a great example of how the new API endpoints implementation will look like. More details can be found in the module repository.

Wishlist module

There are no new features or improvements in the module, but it’s worth mentioning this module is the first one where the QA team introduced new automated tests. This is a great step towards improving the quality of the module and ensuring that it works as expected. More details can be found in the module repository.

Hummingbird theme

In February, we welcomed some new improvements to the Hummingbird theme, including a number of improvements regarding the theme’s accessibility. Thank you to everyone who contributed to these improvements. Make sure to check the theme repository for more details.

As we are getting closer to the release of PrestaShop 9.0, we are looking for more contributors to help us with the development and tests of Hummingbird. You can visit Issues in the Hummingbird repository to find out how you can help.

PrestaShop Project Live Update

In February 2024’s Live Update, Fabien Vallon introduced the upcoming Core Upgrade tool, and Tomas Ilginis from Invertus shared his experience working with PrestaShop modules. More details can be found in the Live Update summary. The next Live Update will be on March 13th, 2024 at 4 pm (Paris time). We will be sharing more details soon. We look forward to your participation!

Summary

That’s a wrap for February. Stay tuned for more updates and details about the upcoming releases and progress in the project.

Project releases

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

Code changes in the ‘develop’ branch

Back office

Core

Front office

Tests

  • #35514: Fix nightly 28-02 : ‘FO > Cart > Display modal’. Thank you, @nesrineabdmouleh
  • #35498: Functional Tests : Refactoring Install Hummingbird with remove zip. Thank you, @Progi1984
  • #35482: Revert MacOs runner because of its instability. Thank you, @jolelievre
  • #35476: Github Actions (UI Tests) : Check that all suites are executed. Thank you, @Progi1984
  • #35470: Bump fast-xml-parser from 4.3.4 to 4.3.5 in /tests/UI. Thank you, @dependabot
  • #35469: Bump dotenv from 16.4.4 to 16.4.5 in /tests/UI. Thank you, @dependabot
  • #35468: Bump eslint from 8.56.0 to 8.57.0 in /tests/UI. Thank you, @dependabot
  • #35459: Functional Tests : Mail alerts module - Uninstall and delete module. Thank you, @Progi1984
  • #35458: Functional Tests : Hummingbird > FO - Consult credit slip list & View PDF Credit slip & View order. Thank you, @Progi1984
  • #35455: Nightly : Fixed campaigns/functional/BO/02*/05*/03*. Thank you, @Progi1984
  • #35453: Functional Tests : Faceted search module - Add new template. Thank you, @Progi1984
  • #35452: Functional Tests : Hummingbird > FO - Account : Send a message with an ordered product. Thank you, @Progi1984
  • #35451: Functional tests - Add some refacto to ‘FO > Quick edit - Block cart modal’. Thank you, @nesrineabdmouleh
  • #35440: Functioanl tests - Add new test ‘FO > Hummingbird > Change quantity in cart page’. Thank you, @nesrineabdmouleh
  • #35437: Nighly : Fixed campaigns/functional/BO/02*/05*/01*. Thank you, @Progi1984
  • #35431: Functional Tests : Added some tests for some mocha tests. Thank you, @Progi1984
  • #35430: Functional tests - Add new test ‘FO > Hummingbird > Change quantity in quick view modal’. Thank you, @nesrineabdmouleh
  • #35415: Functional tests - Add new test ‘FO > Hummingbird > Add to cart’. Thank you, @nesrineabdmouleh
  • #35407: Bump dotenv from 16.4.2 to 16.4.4 in /tests/UI. Thank you, @dependabot
  • #35392: Functional Tests : Hummingbird > FO - Checkout - Personal information : Password reminder. Thank you, @Progi1984
  • #35389: Functioanl tests - Add tests in ‘FO > Hummingbird > Check slider - Display some products - Display all products - Quick view’. Thank you, @nesrineabdmouleh
  • #35388: Functional Tests : New products block module - Disable/Enable module. Thank you, @Progi1984
  • #35386: Functional Tests : Hummingbird > FO - Checkout - Addresses : CRUD address. Thank you, @Progi1984
  • #35364: Functional tests - Fix ‘FO:classic:01-03 get GDPR data in PDF’. Thank you, @nesrineabdmouleh
  • #35357: Functional Tests : New products block module - Reset module. Thank you, @Progi1984
  • #35352: Functional Tests : Hummingbird - FO - Checkout - Shipping methods : Add order message. Thank you, @Progi1984
  • #35338: Bump @typescript-eslint/eslint-plugin from 6.20.0 to 7.0.0 in /tests/UI. Thank you, @dependabot
  • #35335: Functional tests - Add tests in ‘FO > Hummingbird > Order as a guest - Sign in - Create account’. Thank you, @nesrineabdmouleh
  • #35328: Bump eslint-plugin-html from 7.1.0 to 8.0.0 in /tests/UI. Thank you, @dependabot
  • #35327: Bump dotenv from 16.4.1 to 16.4.2 in /tests/UI. Thank you, @dependabot
  • #35325: Bump mocha from 10.2.0 to 10.3.0 in /tests/UI. Thank you, @dependabot
  • #35324: Bump @typescript-eslint/parser from 6.20.0 to 6.21.0 in /tests/UI. Thank you, @dependabot
  • #35323: Bump @faker-js/faker from 8.4.0 to 8.4.1 in /tests/UI. Thank you, @dependabot
  • #35315: Functional Tests : Hummingbird : FO - Checkout - Shipping method - Select a carrier. Thank you, @Progi1984
  • #35312: Functional tests - Add tests in ‘FO > Hummingbird > Add attachment - Send message with customer - send message as anonymous. Thank you, @nesrineabdmouleh
  • #35310: Functional tests - Add new test ‘FO > Hummingbird > Check mailto link’. Thank you, @nesrineabdmouleh
  • #35309: Nightly : Add campaign Hummingbird 04 & 11. Thank you, @Progi1984
  • #35308: Functional tests - Add new test ‘FO > Hummingbird > Subscribe to newsletter’. Thank you, @nesrineabdmouleh
  • #35302: Functional tests - Add new test in ‘FO > Hummingbird > logout from user account page’. Thank you, @nesrineabdmouleh
  • #35300: Nightly : Fixed campaigns/functional/BO/02*/05*/*. Thank you, @Progi1984
  • #35298: Functional tests - Add new test to view voucher in FO - Hummingbird theme. Thank you, @nesrineabdmouleh
  • #35294: Nightly : Fixed tests/UI/campaigns/functional/FO/classic/01*/04*. Thank you, @Progi1984
  • #35290: Functional Tests : Fixed glob for package.json. Thank you, @Progi1984
  • #35284: Functional tests - Add new test ‘FO > Hummingbird > CRUD address’. Thank you, @nesrineabdmouleh
  • #35282: Functional Tests : Theme Customization module - Uninstall and delete module. Thank you, @Progi1984
  • #35271: Update GitHub actions using deprecated version of node. Thank you, @jolelievre
  • #35257: Bump jsdoc-to-markdown from 8.0.0 to 8.0.1 in /tests/UI. Thank you, @dependabot
  • #35256: Bump mysql2 from 3.9.0 to 3.9.1 in /tests/UI. Thank you, @dependabot
  • #35255: Bump @typescript-eslint/eslint-plugin from 6.19.1 to 6.20.0 in /tests/UI. Thank you, @dependabot
  • #35254: Bump fast-xml-parser from 4.3.3 to 4.3.4 in /tests/UI. Thank you, @dependabot
  • #35253: Bump playwright from 1.41.1 to 1.41.2 in /tests/UI. Thank you, @dependabot
  • #35249: Change runners to be based on macos environment. Thank you, @jolelievre
  • #35248: Functional Tests : Hummingbird : FO - Checkout - Payment - Choose a payment method. Thank you, @Progi1984
  • #35244: Functional tests - Fix random error in ‘BO > Catalog:07-08’. Thank you, @nesrineabdmouleh

Code changes in the ‘8.1.x’ branch

Back office

  • #35495: Add most used rule group to new products. Thank you, @Hlavtox
  • #34682: Add more information into cart view page. Thank you, @Hlavtox

Core

Front office

  • #35483: Bump classic to 2.1.3. Thank you, @Hlavtox
  • #35464: Do not show vouchers that should be hidden. Thank you, @Hlavtox
  • #35418: Fix: The new password policy is not present in the reset password page #35410. Thank you, @Codencode
  • #35372: Fix A pack set to Decrement products in pack only. cannot be added to cart. Thank you, @Codencode
  • #35166: Validate cart rule actions on load. Thank you, @Hlavtox

Code changes in modules, themes and tools

Architecture Decision Records repository

  • #33: 0021 - Model and repositories - Reading access. Thank you, @jolelievre

Auto Upgrade module

Automated tests on Pull Requests

  • #63: Nightly : Add campaign Hummingbird 04 & 11. Thank you, @Progi1984
  • #62: Update github actions using deprecated version of node. Thank you, @jolelievre

Changes in developer documentation sources

Classic theme

  • #141: Bump ip from 2.0.0 to 2.0.1 in /_dev. Thank you, @dependabot
  • #140: Fix: The new password policy is not present in the reset password. Thank you, @Codencode
  • #138: Added data-type on featured block. Thank you, @Progi1984
  • #136: Added missing width and height to image on Product Pack. Thank you, @buggyzap
  • #134: ci: Use GITHUB_OUTPUT envvar instead of set-output command. Thank you, @arunsathiya

Customer reassurance block module

  • #648: Added avif support to blockreassurance icon images. Thank you, @buggyzap
  • #647: Bump mini-css-extract-plugin from 2.7.7 to 2.8.0. Thank you, @dependabot
  • #646: Bump webpack from 5.90.0 to 5.90.1. Thank you, @dependabot
  • #645: Bump @babel/eslint-parser from 7.23.3 to 7.23.10. Thank you, @dependabot
  • #643: Bump sass-loader from 13.3.3 to 14.1.0. Thank you, @dependabot

Distribution API

  • #40: Automatically add next versions. Thank you, @Hlavtox
  • #38: Manually add 8.1.4 handled for the modules list #36. Thank you, @matks

Docker images

Email Alerts module

  • #140: Removed unused stylesheet that doesn’t exists anymore. Thank you, @buggyzap

Email subscription module

Faceted search module

Google Analytics module

Google Sitemap module

  • #179: remove caption and title tags of the images. Thank you, @Uhor

Hummingbird theme

  • #603: Search: fix string for translation. Thank you, @yannicka
  • #602: Templates: add some spacing. Thank you, @yannicka
  • #601: Templates: double quotes => single quote (for Smarty strings). Thank you, @yannicka
  • #597: Bump version to 0.1.7. Thank you, @Hlavtox
  • #592: Accessibility: add some “aria-label”. Thank you, @yannicka
  • #591: Accessibility: add “autocomplete” to the email/password fields on the forgotten password screens. Thank you, @yannicka
  • #587: Changed lazyloading with highest fetchpriority in category header. Thank you, @buggyzap
  • #585: Address Card: add border. Thank you, @yannicka
  • #584: Fix missing add to wishlist button and modals backdrop. Thank you, @SharakPL

Nightly board

Prestashop-flashlight

  • #80: fix(ga): yaml formatting and syntax error. Thank you, @jokesterfr
  • #79: chore(ga): define timeouts to avoid 6h timeout. Thank you, @jokesterfr
  • #78: chore(ci): add a cron job every night at 2 to publish the nightly. Thank you, @jokesterfr
  • #76: minor(env): test prestashop-flashlight with the latest release. Thank you, @jokesterfr
  • #73: docs: Some spell checks. Thank you, @Venatum
  • #72: Add freetype support. Thank you, @jokesterfr
  • #70: fea(release.sh): automates compatible & recommended php versions. Thank you, @jokesterfr
  • #69: Enhance examples. Thank you, @jokesterfr
  • #59: feat(build): add PrestaShop nightly support. Thank you, @jokesterfr
  • #57: feat(php): Php config. Thank you, @Venatum

Presthubot

  • #213: Bump symfony/console from 5.4.35 to 5.4.36. Thank you, @dependabot
  • #212: Bump symfony/var-dumper from 5.4.35 to 5.4.36. Thank you, @dependabot
  • #211: slack:notifier : Added blockwishlist for checking the nightly. Thank you, @Progi1984
  • #210: Bump phpunit/phpunit from 9.6.16 to 9.6.17. Thank you, @dependabot
  • #209: Bump phpstan/phpstan from 1.10.58 to 1.10.59. Thank you, @dependabot
  • #208: slack:notifier : Check UI Test Updates. Thank you, @Progi1984
  • #207: Bump phpstan/phpstan from 1.10.57 to 1.10.58. Thank you, @dependabot

Product Comments module

Ps_apiresources

  • #16: Update product endpoint query mapping to match new path for context values. Thank you, @jolelievre
  • #15: Rename ApiAccess into ApiClient. Thank you, @jolelievre
  • #14: Update Protected Endpoints tests. Thank you, @M0rgan01
  • #13: Update the resources with the custom operations, add the list hook endpoint. Thank you, @tleon
  • #12: Add condition for autoload. Thank you, @M0rgan01
  • #11: Merge dev into main. Thank you, @M0rgan01
  • #10: Update to api-platform v3. Thank you, @M0rgan01

QA nightly results

  • #150: build(deps-dev): bump phpunit/phpunit from 10.5.10 to 11.0.3. Thank you, @dependabot
  • #149: build(deps-dev): bump symfony/maker-bundle from 1.54.0 to 1.55.1. Thank you, @dependabot
  • #148: build(deps-dev): bump phpstan/phpstan from 1.10.58 to 1.10.59. Thank you, @dependabot
  • #147: build(deps-dev): bump friendsofphp/php-cs-fixer from 3.49.0 to 3.50.0. Thank you, @dependabot
  • #146: build(deps): bump doctrine/orm from 2.18.0 to 2.18.1. Thank you, @dependabot
  • #144: Merge develop into master. Thank you, @Progi1984
  • #143: Endpoint reports/{id} : Fixed import Playwright. Thank you, @Progi1984
  • #142: build(deps-dev): bump phpstan/phpstan from 1.10.57 to 1.10.58. Thank you, @dependabot
  • #141: Merge develop into master. Thank you, @Progi1984
  • #140: Revert “Doctrine Object : Move Suite Parent Id to object”. Thank you, @Progi1984
  • #139: build(deps-dev): bump symfony/maker-bundle from 1.53.0 to 1.54.0. Thank you, @dependabot
  • #138: build(deps): bump symfony/flex from 2.4.3 to 2.4.4. Thank you, @dependabot
  • #137: build(deps): bump beberlei/doctrineextensions from 1.3.0 to 1.4.0. Thank you, @dependabot
  • #136: build(deps): bump doctrine/doctrine-bundle from 2.11.1 to 2.11.3. Thank you, @dependabot
  • #135: build(deps): bump doctrine/orm from 2.17.4 to 2.18.0. Thank you, @dependabot
  • #134: build(deps-dev): bump symfony/browser-kit from 7.0.0 to 7.0.3. Thank you, @dependabot
  • #133: Merge develop into master. Thank you, @Progi1984
  • #132: Improve the README.md file. Thank you, @Progi1984
  • #131: Doctrine Object : Move Suite Parent Id to object. Thank you, @Progi1984
  • #130: Fixed filters behavior in endpoint /reports. Thank you, @Progi1984
  • #129: build(deps-dev): bump symfony/maker-bundle from 1.52.0 to 1.53.0. Thank you, @dependabot
  • #128: build(deps-dev): bump friendsofphp/php-cs-fixer from 3.48.0 to 3.49.0. Thank you, @dependabot
  • #127: build(deps): bump symfony/framework-bundle from 7.0.2 to 7.0.3. Thank you, @dependabot
  • #126: build(deps-dev): bump symfony/phpunit-bridge from 7.0.2 to 7.0.3. Thank you, @dependabot
  • #125: build(deps): bump symfony/dotenv from 7.0.2 to 7.0.3. Thank you, @dependabot
  • #124: build(deps): bump symfony/runtime from 7.0.0 to 7.0.3. Thank you, @dependabot
  • #123: build(deps-dev): bump phpunit/phpunit from 10.5.9 to 10.5.10. Thank you, @dependabot
  • #122: build(deps-dev): bump ergebnis/composer-normalize from 2.41.1 to 2.42.0. Thank you, @dependabot
  • #121: build(deps-dev): bump symfony/css-selector from 7.0.0 to 7.0.3. Thank you, @dependabot
  • #120: build(deps): bump symfony/yaml from 7.0.0 to 7.0.3. Thank you, @dependabot
  • #119: Merge develop into master. Thank you, @Progi1984
  • #118: Fixed download links in Report endpoint. Thank you, @Progi1984

The PrestaShop open source project

  • #256: Update leemyongpakvn account to leemyongpakva. Thank you, @matks
  • #255: Update how-issues-are-sorted.md. Thank you, @florine2623
  • #254: Move mparvazi, zuk3975 and lartist to alumni. Thank you, @matks
  • #253: Moving atomiix to alumni group. Thank you, @matks
  • #252: Mention Dist API and version number changes. Thank you, @matks

Theme customization module

TopTranslators

  • #77: Update README & clean structure. Thank you, @matks
  • #76: Change front/ Vite dynamic app to front/ PHP static app. Thank you, @matks

Wire payment module

Wishlist block module


Thank you to the contributors whose pull requests were merged since the last Core Monthly Report: @Codencode, @Hlavtox, @JevgenijVisockij, @M0rgan01, @PrestaEdit, @Prestaworks, @Progi1984, @SharakPL, @Uhor, @Venatum, @Vots1000, @arunsathiya, @boherm, @buggyzap, @denys202, @dependabot, @eternoendless, @florine2623, @gabrielroman13, @github-actions, @hherreros-webimpacto, @jokesterfr, @jolelievre, @kpodemski, @leemyongpakvn, @matks, @matthieu-rolland, @nesrineabdmouleh, @tleon, @yannicka!

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!