Read about what has been going on in the PrestaShop Project in July 2023. It was a good month with over 340 merged pull requests! 🎉

Core Monthly banner

Even during the Summer we see a lot of great progress in the PrestaShop Project. In July, we merged over 340 pull requests.

We welcomed three new committers:

You can see all current project members on the updated People and Roles page on the project’s website.

Now, let’s see what happened in July from a technical point of view!

PrestaShop 8.1.1. The first patch version and upgrade issues.

In July we worked to prepare the first patch version for PrestaShop 8.1.x branch. It contains a lot of bug fixes and small improvements. Most notable changes are related to the checkout process validation, there are also some fixes regarding upgrades from previous versions of PrestaShop.

We are discovering more issues related to the upgrade process from previous versions to PrestaShop 8.1. One repeatedly reported issue is related to the SSL configuration on Windows. You can read more about this issue here. The proposed way to fix this issue can be found below:

  1. Open php.ini for the currently enabled PHP version.
  2. Find your SSL cert file, you can see some common names here: https://github.com/composer/ca-bundle/blob/main/src/CaBundle.php#L85
  3. Set path to your cert: openssl.cafile = "path_to_the_crt_file";

We also noticed that, on certain servers, the upgrade fails if you perform it on PHP 8.1. We will investigate this issue and try to fix it in the next patch version. For the time being, if you encounter some problems, it’s recommended to try on PHP 7.4 instead of PHP 8.1. You can change the PHP version after the upgrade.

When you read this article, the 8.1.1 version should have already been released.

PrestaShop 9

A lot of work has been done on PrestaShop 9 in July. If you see a list of merged PRs on the develop branch you will notice a lot of PRs like: “Add/Replace something as/with a Twig component.”, this is an ongoing project that aims to rework the back office to be fully Symfony-based. At the moment, the full Symfony layout is behind the feature flag.

Other than that, a lot of cleaning is happening! Things like removed deprecations or unused services. Also, reworked mechanism of dealing with Feature Flags has been merged. You can learn more about this mechanism from @boherm’s presentation during the Live Update.

The project that also deserves attention is the one Daniel @Hlavtox started, which consists in improving the front office’s performance. A few initial pull requests have been merged already, and there are more to come. Examples: improved loading of product features, category controller using LazyArray mechanism. Daniel’s goal is to make Product::getProductProperties() method lighter, and, eventually, replace it with a more performant solution.

Autoupgrade module

Thanks to @Hlavtox we managed to release a new version of the autoupgrade module with a few very important fixes. Version 4.16.2 introduces a few extra checks in the process, which should prevent some issues that were reported by users. There are also some improvements such as more informative log messages, and a fix for the servers with opcache enabled.

Changes in the developer documentation

In July, we published a new guide explaining how to create a basic configuration form for your module. You can visit the guide to learn more about it. There is also an example module that you can use as a reference.

Meet at the PrestaShop Developer Conference in November!

If you didn’t know yet, we are organizing a PrestaShop Developer Conference in November! It will be a great opportunity to meet the PrestaShop team, learn about the latest news, best practices, and share your experience with other developers. The conference will take place in Paris, France, on November 30th.

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

Project releases

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

Code changes in the ‘develop’ branch

Back office

  • #33453: Revert php errors twigs component. Thank you, @lartist
  • #33388: An exception is displayed when we create a new store. Thank you, @M0rgan01
  • #33347: Get notifications center independent twig component. Thank you, @lartist
  • #33309: Deprecate SendCartToCustomer in v9. Thank you, @Progi1984
  • #33301: Get employee dropdown twig component independent. Thank you, @lartist
  • #33288: Add page header toolbar twig component. Thank you, @lartist
  • #33214: Flash messages Bridge from legacy to Symfony. Thank you, @lartist
  • #33208: Symfony layout feature flag. Thank you, @jolelievre
  • #33207: Disable wrapping of maintenance mode. Thank you, @Hlavtox
  • #33173: Replace mobile quick access smarty template by twig component. Thank you, @lartist
  • #33172: Replace non responsive smarty template by twig component. Thank you, @lartist
  • #33167: Replace php error smarty template by twig component. Thank you, @lartist
  • #33165: Replace search form smarty template by twig component. Thank you, @lartist
  • #33162: Replace footer smarty template by twig component. Thank you, @lartist
  • #33142: Replace notifications center smarty template by twig component. Thank you, @lartist
  • #33128: Handle partial output for an API based on a single DTO. Thank you, @tleon
  • #33127: Replace nav bar (left menu) smarty template by twig component. Thank you, @lartist
  • #33117: Replace employee dropdown smarty template by twig template. Thank you, @lartist
  • #33089: Update date_time.html.twig better check for emptiness. Thank you, @Kaikina
  • #33081: First smarty template replaced by twig. Thank you, @lartist
  • #33078: Create new order : The listing of carts/orders doesn’t work. Thank you, @M0rgan01
  • #33076: Cart rule group restrictions handling in SetCartRuleRestrictions CQRS command. Thank you, @zuk3975
  • #33045: Cart rule carrier restrictions CQRS handling. Thank you, @zuk3975
  • #33035: Cart rule country restrictions CQRS handling. Thank you, @zuk3975
  • #33026: Rework commands with getters. Thank you, @aleksiuno
  • #32948: Implement Search Aliases For Association Query. Thank you, @aleksiuno
  • #32494: Add of GeoCoordinates form type. Thank you, @LouisAUTHIE
  • #31504: Order Statuses/Order Return Statuses : Use the new form theme. Thank you, @Progi1984
  • #29850: Hide the current user’s profile checkbox for bulk actions. Thank you, @0x346e3730

Core

Front office

Installer

  • #32540: Add lazy tag for ThemeManager and ThemePageLayoutsCustomizer service. Thank you, @M0rgan01
  • #32496: Create CategoriesProviderBuilder. Thank you, @M0rgan01

Tests

  • #33507: Bump league/oauth2-server from 8.5.1 to 8.5.3. Thank you, @dependabot
  • #33500: Bump playwright from 1.36.1 to 1.36.2 in /tests/UI. Thank you, @dependabot
  • #33499: Bump fast-xml-parser from 4.2.6 to 4.2.7 in /tests/UI. Thank you, @dependabot
  • #33498: Bump eslint-plugin-import from 2.27.5 to 2.28.0 in /tests/UI. Thank you, @dependabot
  • #33497: Bump eslint-plugin-deprecation from 1.4.1 to 1.5.0 in /tests/UI. Thank you, @dependabot
  • #33496: Bump eslint from 8.45.0 to 8.46.0 in /tests/UI. Thank you, @dependabot
  • #33456: Functional tests - Refacto some tests in employee pages. Thank you, @nesrineabdmouleh
  • #33410: Functional Tests : Hummingbird : FO - Header & Footer - Check links in header. Thank you, @Progi1984
  • #33391: Functional tests - Fix random errors in the nightly. Thank you, @nesrineabdmouleh
  • #33386: Functional Tests : FO - Consult credit slip list & View PDF Credit slip & View order (Add check for email). Thank you, @Progi1984
  • #33375: Functional Tests : Wishlist module - Statistics tab settings. Thank you, @Progi1984
  • #33370: Functional Tests : BO - Advanced Parameter - Authorization Server - View detail. Thank you, @Progi1984
  • #33360: Functional tests - Fix random error in ‘Design > Add new theme’ test and in CI. Thank you, @nesrineabdmouleh
  • #33354: Functional Tests : Bump Hummingbird to 0.1.6. Thank you, @Progi1984
  • #33346: Bump fast-xml-parser from 4.2.5 to 4.2.6 in /tests/UI. Thank you, @dependabot
  • #33344: Bump maildev from 2.0.5 to 2.1.0 in /tests/UI. Thank you, @dependabot
  • #33343: Bump @xmldom/xmldom from 0.8.9 to 0.8.10 in /tests/UI. Thank you, @dependabot
  • #33334: Functional tests - Add new test to Editprofile permission. Thank you, @nesrineabdmouleh
  • #33328: UI tests: use tsconfig-paths and delete module_alias. Thank you, @boubkerbribri
  • #33323: Nightly : Develop - Fixed Mocha Loader. Thank you, @Progi1984
  • #33316: Functional Tests : Hummingbird - FO - Login - Password reminder. Thank you, @Progi1984
  • #33308: Functional Tests : BO - Orders - Create order : Check summary (Add check for email). Thank you, @Progi1984
  • #33274: Bump playwright from 1.35.1 to 1.36.1 in /tests/UI. Thank you, @dependabot
  • #33273: Bump @typescript-eslint/parser from 5.61.0 to 5.62.0 in /tests/UI. Thank you, @dependabot
  • #33272: Bump @xmldom/xmldom from 0.8.8 to 0.8.9 in /tests/UI. Thank you, @dependabot
  • #33271: Bump eslint from 8.44.0 to 8.45.0 in /tests/UI. Thank you, @dependabot
  • #33252: Functional Tests : FO - Login : Create account (Add check for email). Thank you, @Progi1984
  • #33249: Functional Tests : Faceted search module - Edit template - Product brand filter. Thank you, @Progi1984
  • #33248: Bump @typescript-eslint/eslint-plugin from 5.60.1 to 5.62.0 in /tests/UI. Thank you, @dependabot
  • #33244: Functional Tests : BO - Advanced Parameter - Authorization Server - CRUD. Thank you, @Progi1984
  • #33243: Functional tests - Refacto ‘Design > Pages’ tests. Thank you, @nesrineabdmouleh
  • #33233: Functional tests - Add new test ‘Design > Theme and logo > Add new theme’. Thank you, @nesrineabdmouleh
  • #33224: Product Page : Remove v1 & Set v2 as main for Sanity Tests. Thank you, @Progi1984
  • #33216: Functional Tests : WS - Countries : Check Blank & Synopsis. Thank you, @Progi1984
  • #33160: Bump eslint-plugin-deprecation from 1.3.3 to 1.4.1 in /tests/UI. Thank you, @dependabot
  • #33149: Sanity tests - Fix CRUD product with combination. Thank you, @nesrineabdmouleh
  • #33129: Nightly : Develop : Fixed error in filterTaxes. Thank you, @Progi1984
  • #33105: Functional tests - Add new test ‘Multistore > Edit url options’. Thank you, @nesrineabdmouleh
  • #33094: Bump @typescript-eslint/parser from 5.60.0 to 5.61.0 in /tests/UI. Thank you, @dependabot
  • #33070: Bump typescript from 5.1.3 to 5.1.6 in /tests/UI. Thank you, @dependabot
  • #33069: Bump @typescript-eslint/eslint-plugin from 5.60.0 to 5.60.1 in /tests/UI. Thank you, @dependabot
  • #33067: Bump eslint from 8.43.0 to 8.44.0 in /tests/UI. Thank you, @dependabot

Web services

  • #33350: Added www-authenticate: bearer if the access token is invalid. Thank you, @nicosomb
  • #32686: New API Modularity - Modules can add Ressources. Thank you, @0x346e3730

Code changes in the ‘8.1.x’ branch

Back office

  • #33495: Check if external carrier module exists. Thank you, @Hlavtox
  • #33458: Fix select for when multishop is not enabled. Thank you, @tleon
  • #33428: Prevent checking nonsupported image formats. Thank you, @Hlavtox
  • #33394: Add message when duplicating product. Thank you, @Hlavtox
  • #33296: Change translation key when enable/disable/delete product. Thank you, @mflasquin
  • #33278: Update dependencies. Thank you, @mflasquin
  • #33255: Prevent deleting main URL of a store. Thank you, @Hlavtox
  • #33236: Module manager - Empty category - Add raw filter to display html content. Thank you, @sowbiba
  • #33164: Fix authorized application column length. Thank you, @mflasquin
  • #33152: Generate image for store after uploading it. Thank you, @Hlavtox
  • #33151: Fix for product editor is not storing some fields in multi shop context conservative fix for 8.1.x. Thank you, @cruftex
  • #33120: Fix bad display alert when changing product combination quantity. Thank you, @fatm-dev
  • #33107: Fix new file button target in product attachment form;. Thank you, @fatm-dev
  • #32493: Fix: When updating object images, old thumbnails are not deleted and updated. Thank you, @Codencode

Core

  • #33436: Add some comments to Product class. Thank you, @Hlavtox
  • #33433: Use proper limit for CMS page content. Thank you, @Hlavtox
  • #33322: Delete data from product_carrier table after deleting product. Thank you, @Hlavtox
  • #33212: Prevent removing non restricted cart rules. Thank you, @Hlavtox
  • #33148: Update autoload library to v1.0.1. Thank you, @jolelievre
  • #33136: Register commonly used deprecated modifiers to Smarty config. Thank you, @kpodemski
  • #33133: Fix for child themes/multishop themes translations. Thank you, @kpodemski
  • #31637: Do not interfere with PDF files. Thank you, @Hlavtox

Front office

  • #33387: Do not overwrite legend by empty value. Thank you, @Hlavtox
  • #33156: Check if product is active and orderable during checkout. Thank you, @Hlavtox
  • #33113: Add conditions for manufacturer fields. Thank you, @M0rgan01
  • #33043: Fix wrong discount amount displayed. Thank you, @boherm
  • #32597: Update checkOrGenerateImageType $sourceFilePath. Thank you, @M0rgan01

Tests

Web services

  • #32885: Added www-authenticate: bearer if the access token is invalid. Thank you, @nicosomb

Code changes in the ‘1.7.8.x’ branch

Core

Installer

Tests

Code changes in the ‘8.0.x’ branch

Back office

  • #33276: Add file headers and bump some dependencies. Thank you, @mflasquin
  • #33234: Update module’s information cache and add clear cache for doctrine. Thank you, @M0rgan01
  • #33124: Fix issue when disable tax, do not delete tax rules. Thank you, @mflasquin
  • #33048: Add string casting for boolean fields. Thank you, @nicosomb
  • #33008: Fix ‘New’ Translation domain. Thank you, @mflasquin

Tests

Code changes in modules, themes and tools

Auto Upgrade module

Automated tests on Pull Requests

  • #43: feat: upload screen and logs only when it fails. Thank you, @boubkerbribri
  • #42: fix screenshot path. Thank you, @boubkerbribri
  • #41: ga.tests.ui.pr : Add new campaign for Authorization Server. Thank you, @Progi1984
  • #40: ga.tests.ui.pr : Remove “sanity:productV2” for develop. Thank you, @Progi1984
  • #30: Add option to switch backoffice layout to experimental symfony layout. Thank you, @jolelievre

Available quantities statistics module

Best-selling products statistics module

Best categories statistics module

Best customers statistics module

Best manufacturers statistics module

Best sellers module

Best suppliers statistics module

Best vouchers statistics module

Bootstrap-compatibility-layer

Brands list module

Carrier distribution statistics module

Cash on delivery module

Catalog evaluation statistics module

Catalog statistics module

Changes in developer documentation site

  • #25: Add some config values for version banner and docsearch. Thank you, @thomasnares

Changes in developer documentation sources

Changes in developer documentation theme

Check payment module

Classic theme

Contact Form module

Contact informations module

Currency selector

Customer data privacy block module

Customer reassurance block module

Custom text module

Dashboard Activity module

Dashboard Goals module

Dashboard Products module

Data mining for statistics module

Distribution API Client

DocToolsBundle

Docker images

Email Alerts module

Email subscription module

Example modules

  • #158: Add complete example module for a (simple) configuration page for a module. Thank you, @thomasnares
  • #149: API Module example. Thank you, @0x346e3730

Faceted search module

GDPR module

Google Analytics module

Google Sitemap module

Hummingbird theme

Image slider module

Issues Bot

  • #113: build(deps-dev): bump word-wrap from 1.2.3 to 1.2.4. Thank you, @dependabot

Kanbanbot

Keycloak_connector_demo

  • #20: Change version number for release. Thank you, @nicosomb
  • #10: PrestaShop 9 Compability + Namespace fix. Thank you, @0x346e3730

Language selector module

LocalizationFiles

  • #41: Added states (provinces) to ie.xml according to ISO 3166-2.. Thank you, @rickygzz
  • #40: Added states (counties) to hu.xml according to ISO 3166-2.. Thank you, @rickygzz
  • #39: Added states (Land) to de.xml according to ISO 3166-2.. Thank you, @rickygzz
  • #38: Added states (metropolitan regions) to fr.xml according to ISO 3166-2.. Thank you, @rickygzz
  • #37: Added states (regions) to fi.xml according to ISO 3166-2.. Thank you, @rickygzz
  • #36: Added states (counties) to ee.xml according to ISO 3166-2.. Thank you, @rickygzz
  • #35: Added states (districts) to cz.xml according to ISO 3166-2.. Thank you, @rickygzz
  • #34: Added states (districts) to cy.xml according to ISO 3166-2 (both Gree…. Thank you, @rickygzz
  • #33: Added states (counties) to hr.xml according to ISO 3166-2.. Thank you, @rickygzz
  • #32: Added states (districts) to bg.xml according to ISO 3166-2.. Thank you, @rickygzz
  • #30: Updated states (provinces) in pa.xml according to ISO 3166-2.. Thank you, @rickygzz
  • #29: Updated states (departments) in gt.xml according to ISO 3166-2.. Thank you, @rickygzz
  • #28: Updated states (departments) in sv.xml according to ISO 3166-2.. Thank you, @rickygzz
  • #27: Updated states (provinces) in do.xml according to ISO 3166-2.. Thank you, @rickygzz
  • #26: Updated states (provinces) in cr.xml, missing accents wrong ISO codes…. Thank you, @rickygzz
  • #22: Added states (regions) in pe.xml according to ISO 3166-2.. Thank you, @rickygzz
  • #17: Added states (departments) to bo.xml according to ISO 3166-2.. Thank you, @rickygzz

MJML Theme Converter

New Products module

Newsletter statistics module

Nightly board

Order Notifications on the Favicon module

Pages not found module

PrestaShop Core Autoloader

  • #5: Fix: Update Finder Configuration to Follow Symlinks. Thank you, @SebBareyre

PrestaShop contributors website

Presthubot

PrestonBot

Product Comments module

Product details statistics module

Products in the same category module

QA nightly results

Registered customer information statistics module

Registrations statistics modules

Sales and orders statistics module

Search Bar module

Share Buttons module

Shopping cart module

Shop search statistics module

Social Follow module

Special offers module

Stats Dashboard module

Suppliers list module

The PrestaShop open source project

TopTranslators

Viewed products block module

Webservice-postman-examples

Wire payment module

Wishlist block module

Zip-archives


Thank you to the contributors whose pull requests were merged since the last Core Monthly Report: @0x346e3730, @Codencode, @CrochetFeve0251, @FabienPapet, @Hlavtox, @JMorinPS, @Kaikina, @LouisAUTHIE, @M0rgan01, @MatShir, @Oksydan, @PrestaSafe, @Prestaworks, @Progi1984, @SebBareyre, @aleksiuno, @boherm, @boubkerbribri, @cruftex, @davidglezz, @dependabot, @elodie-bil3, @eternoendless, @fatm-dev, @florine2623, @ga-devfront, @gfilippakis, @github-actions, @hugofintecture, @jolelievre, @kpodemski, @lartist, @leemyongpakvn, @matks, @mehov, @mflasquin, @nesrineabdmouleh, @nicosomb, @okom3pom, @rickygzz, @sowbiba, @tblivet, @thomasnares, @tleon, @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 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!