In this Core Monthly, I will focus on a few important topics that are being worked on inside the project, the new product page, initiatives, new releases, and some great contributions from the community.

Core Monthly banner

Dear developers,

Here it is! The first edition of the Core Monthly. I know through community feedback about the impact weekly summaries recently had, this is why it was decided to summarize the entire month in one article to make them more useful. This way, more time can be invested in providing you with relevant news about the project.

Here’s what happened in November:

Office hours

Let’s start with something very exciting: regular meetings with the community have started. They are different from our monthly Public Demos. The Office Hours initiative is about project members making themselves available to you, to the community, (almost) every Tuesday at 11 AM CET, to discuss everything related to the project.

These meetings have already proven it was a great idea. There have been constructive discussions about many ongoing projects, Pull Requests, architectural decisions, etc. This is also a chance to answer some community questions and help them finish their contributions.

Looking forward to meeting you at our next meetings.

Public Demo

The eighth demo of the year was held - this time with two presentations from project members. If you haven’t watched it already, make sure to read the summary.

Committers

In November, three new committers were welcomed. An important development is that it was decided to make committers act as code owners. What does it mean? Until then, the rules were as follows: a Pull Request to the Core had to be approved by at least one maintainer. Now, two committers can approve it without requiring a maintainer to step in. This seemingly small step is significant for the entire project, as it should help Pull Requests get approved more quickly.

If you are an active member of the project and want to join as a committer, you can read how to do this on the article on the project’s website.

Focus on code changes

With PrestaShop 8.0 released a month ago, the feature freeze for PrestaShop 8.1 is only two months away. There are a few major subjects for this version that project members are working on.

Product page

The first subject is a new product page. The team responsible for this project is working hard to make all the needed changes in the code.

Ongoing work on the unification of some commands and some refactoring, crucial for the page to be more efficient: so developers can use reliably created commands. In almost every Pull Request related to the new product page, you may notice several new or modified automated tests. This should help the team deliver a product page more stable than ever.

You can also find some Pull Requests about improving or adding multi store compatibility to the new product page.

New features coming to PrestaShop 8.1

In November, the community created a few outstanding Pull Requests (which are now merged) with features that are going to be available in the next minor version. Starting with three (!) changes from Daniel (@Hlavtox). He added a new setting to decide if the order should switch to backorder state. The second is the highly requested possibility of adding availability labels to each combination. In PrestaShop 8.1, this will be possible thanks to Daniel and his changes. Last but not least, more options for discontinued products should help merchants better manage such articles in PrestaShop.

If you’ve already seen the Public Demo in November, you know there’s ongoing work related to the API in PrestaShop. You can check one of @atomiix’s Pull Requests to see more details, and read the Epic that summarizes all the work planned around this API.

There will also be a new option to disable the “Shop Name” prefix from outgoing emails, thanks to the change from @rmilecki.

PrestaShop 1.7.8.8

The next patch version for PrestaShop 1.7 is at the very last step of the release process, and you can expect to see it live anytime now.

It is important to know that PrestaShop 1.7 has entered Extended Support mode since the release of PrestaShop 8.0. This means that no further development will be done on 1.7, except for security of critical fixes. The extended support for PrestaShop 1.7 will continue until PrestaShop 9.0 is released, estimated by the end of 2023.

What do you think?

How do you like the new monthly format for the core report? Send us your feedback here!

Project releases

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

Code changes in the ‘8.0.x’ branch

Back office

Core

  • #30273: Test id_manufacturer index before accessing it. Thank you, @Hlavtox
  • #30230: Upgrade cancel-workflow-action so that previous AND next same jobs are canceled except the last one. Thank you, @lartist

Front office

  • #30347: Pass variable by reference to reuse it in modules. Thank you, @idnovate
  • #30252: Do not return customization values if cart is not set. Thank you, @Prestaworks
  • #30093: Add install fixtures for new registration page.. Thank you, @Hlavtox
  • #30084: Added check to see if delivery option is an array. Thank you, @nicosomb

Tests

Code changes in the ‘develop’ branch

Back office

  • #30434: Enable unified UpdateCombinationCommand in product page v2. Thank you, @jolelievre
  • #30421: Add behat scenarios for combination generation and deletion in all shops. Thank you, @zuk3975
  • #30402: 16592: added behat tests for customer service. Thank you, @margud
  • #30387: HelperList callback is not called when column data is null. Thank you, @PululuK
  • #30381: Unified combination command - isDefault, prices and stock. Thank you, @jolelievre
  • #30380: BO > Shopping Carts : Force Bulk Column. Thank you, @Progi1984
  • #30378: Enable unified UpdateProductCommand in product page v2. Thank you, @zuk3975
  • #30372: Handle product status update in UpdateProductCommand. Thank you, @zuk3975
  • #30369: Unification combination command details. Thank you, @jolelievre
  • #30360: UpdateProductCommand unification - handle stock properties. Thank you, @zuk3975
  • #30359: Simplify Profile form. Thank you, @Progi1984
  • #30297: Introduce Dimension value object. Thank you, @zuk3975
  • #30258: Fix recording last connection of a user. Thank you, @mflasquin
  • #30248: Create independent SetCarriersCommand. Thank you, @jolelievre
  • #30228: UpdateProductCommand unification - Shipping related properties handling. Thank you, @zuk3975
  • #30197: UpdateProductCommand unification - Details related properties handling. Thank you, @zuk3975
  • #30178: Fixed Stats dashboard when AdminStats module is not enabled. Thank you, @nicosomb
  • #30160: Fix exception throwing in CategoryRepository. Thank you, @zuk3975
  • #30146: Fix #29436 - The override directory is deleted when a module is uninstalled. Thank you, @idnovate
  • #30106: Manage image by multi shop matrix. Thank you, @lartist
  • #30065: 28673 quick access new product. Thank you, @margud
  • #30054: Add a modal window when the user clicks on ‘Regenerate thumbnails’ button. Thank you, @Progi1984
  • #30035: Allow legacy link feature flag. Thank you, @FabienPapet
  • #29985: Simplify Employee Options Form. Thank you, @Progi1984
  • #29900: Handle multishop for packed products in product page V2. Thank you, @mflasquin
  • #29793: Add a button to delete logo image on Manufacturer/Supplier form. Thank you, @Progi1984
  • #29753: Allow to configure if order should switch to backorder. Thank you, @Hlavtox
  • #29739: Remove short_description field from the Suppliers importer. Thank you, @kpodemski
  • #29732: Customer service controller migration (grid part). Thank you, @margud
  • #29722: Disable “Features” section in Product Page when Features are disabled. Thank you, @Progi1984
  • #29646: Call parent stylesheets were missing. Thank you, @zuk3975
  • #29630: Fix display issues on BO employee page when cancel the modification of the password. Thank you, @mflasquin
  • #29624: Use INTL_IDNA_VARIANT_2003 when INTL_IDNA_VARIANT_UTS46 is not defined (servers whith ICU < 4.6). Thank you, @javdome
  • #29571: Fixed the duplication of Alias when update. Thank you, @Progi1984
  • #29569: Don’t get info about email exists when reset admin password. Thank you, @PululuK
  • #29377: Make new-theme npm 8 compatible. Thank you, @NeOMakinG
  • #29232: Uncheck truncate input if its hidden. Thank you, @korbi551
  • #28640: Add movements history grouping in product page. Thank you, @jolelievre
  • #28568: Fix form_help block shown twice in text fields. Thank you, @elboletaire
  • #28395: Combination generation & deletion multishop handling. Thank you, @zuk3975
  • #28141: Add breadcrumbs for categories with identical names. Thank you, @zuk3975
  • #27712: Create product for shop, shop selection modal. Thank you, @jolelievre

Core

  • #30437: Upgraded to latest symfony 4.4.x. Thank you, @nicosomb
  • #30418: Deprecate prestashop.core.string.character_cleaner. Thank you, @FabienPapet
  • #30406: Refacto StoresController::getTemplateVarStores. Thank you, @PululuK
  • #30398: Simplify default currency fetching for easier code understanding. Thank you, @FabienPapet
  • #30384: refactor(Configuration): Simplify configuration class methods. Thank you, @davidglezz
  • #30363: Add ShopConstraintEventListener. Thank you, @FabienPapet
  • #30310: Add default config value for backorder status. Thank you, @Hlavtox
  • #30269: Add comments to customer logic. Thank you, @Hlavtox
  • #30194: Add an isset test on id_manufacturer while getting product properties. Thank you, @PrestaEdit
  • #30087: Bump version to 8.1.0 & Github Actions : Removed Skip Conditions. Thank you, @Progi1984
  • #30034: Add comment to explicit range_behavior attribute on Carrier class. Thank you, @thomasnares
  • #29981: Rotate Symfony log file. Thank you, @jf-viguier
  • #29904: Add support multiple attribute in HelpOptions select type. Thank you, @PululuK
  • #29832: Wrong datas in order return with multiple products. Thank you, @PululuK
  • #29609: Fix AdminProductsController minor code issue. Thank you, @PululuK
  • #29411: Add availability labels to combinations. Thank you, @Hlavtox
  • #29295: Move copyImg to ImageManager and make reusable. Thank you, @PululuK
  • #29087: Update phpstan/phpstan from 1.7.4 to 1.8.11. Thank you, @Progi1984
  • #28618: Fix PrestashopLogger attr object_type validate. Thank you, @PululuK
  • #27927: Add Hook actionProductPriceCalculation. Thank you, @carmas123
  • #25984: Provide modules with information how much a quantity changed. Thank you, @Hlavtox

Front office

Installer

Tests

Web services

Code changes in the ‘1.7.8.x’ branch

Back office

  • #29693: Update material icons lib to fix the slow npm installation. Thank you, @NeOMakinG

Core

  • #30114: Do not build a domain from the module name (Cherry pick of #30080). Thank you, @atomiix
  • #29586: Disable execution of multiple statements in a single SQL query. Thank you, @atomiix

Front office

  • #28838: Update AbstractForm.php for Multilanguage fields. Thank you, @panariga

Code changes in modules, themes and tools

Architecture Decision Records repository

Webservices PHP Client

PrestaShop contributors website

Auto Upgrade module

Customer reassurance block module

Wishlist block module

Classic theme

  • #85: Bump loader-utils from 2.0.3 to 2.0.4 in /_dev. Thank you, @dependabot
  • #84: Check that $category exists. Thank you, @PrestaEdit
  • #82: Bump ansi-regex from 4.1.0 to 4.1.1 in /_dev. Thank you, @dependabot
  • #77: Bump scss-tokenizer and node-sass in /_dev. Thank you, @dependabot
  • #76: Bump postcss, autoprefixer and postcss-flexibility in /_dev. Thank you, @dependabot
  • #74: Bump loader-utils from 2.0.0 to 2.0.3 in /_dev. Thank you, @dependabot
  • #73: Fix position of newsletter block in footer. Thank you, @mflasquin
  • #52: Change contact page widget to hooks. Thank you, @NeOMakinG
  • #37: Fix jQuery event shorthand is deprecated - focus, focusout, hover. Thank you, @leemyongpakvn

Contact Form module

  • #64: Fix type of customer_thread attribute. Thank you, @sowbiba
  • #63: Bump version 4.4.0. Thank you, @sowbiba

Contextual Help API

Dashboard Activity module

  • #34: Support for PHP 8.2 & Added PHPStan for PS 8.0. Thank you, @Progi1984

Dashboard Products module

  • #55: Support for PHP 8.2 & Added PHPStan for PS 8.0. Thank you, @Progi1984

distribution-api

  • #17: Put assets (modules, logo, PrestaShop versions) in the bucket. Thank you, @atomiix

Docker internal images

  • #41: chore: install xdebug in docker images without default enabling it. Thank you, @emmanuelgautier

Changes in developer documentation sources

Example modules

  • #128: Update demoproductform README.md. Thank you, @micreas
  • #120: Bump loader-utils from 1.4.0 to 1.4.1 in /demodoctrine/js. Thank you, @dependabot
  • #107: Introduce module demoextendtemplates. Thank you, @zuk3975

Automated tests on Pull Requests

  • #10: Fix CI. Thank you, @atomiix
  • #9: Fix CI for ubuntu-22.04. Thank you, @Progi1984
  • #8: Split scripts for reducing time. Thank you, @Progi1984
  • #7: Added support for PHP 8.2. Thank you, @Progi1984
  • #5: Update actions based on deprecated Node12. Thank you, @jolelievre
  • #4: Update workflows to avoid using deprecated commands set-output and save-state. Thank you, @jolelievre

Hummingbird theme

Nightly board

The PrestaShop open source project

PrestaShop PHP Informations Tool

PrestaShop Shop Creator

  • #30: Upgrade phpunit and deps, fix composer. Thank you, @yanmakouf
  • #27: Improve shop creator with php linter to check if there is no syntax errors in the project. Thank you, @mflasquin
  • #26: Improve shop creator with phpstan. Thank you, @mflasquin
  • #25: Improve shop creator with php-cs-fixer. Thank you, @mflasquin
  • #24: Avoid infinite loop when we can’t find a matching relation with conditions. Thank you, @mflasquin
  • #16: Fix faker image provider error. Thank you, @mflasquin
  • #15: Fix error when adress country is ES_es and dni is mandatory. Thank you, @mflasquin

Prestashop UI Kit

Contact informations module

Cross-selling module

Email Alerts module

Faceted search module

Google Analytics module

  • #126: Display Cross-Domain confirmation only when Multistore Active. Thank you, @leemyongpakvn

Image slider module

  • #161: Bump loader-utils from 1.4.1 to 1.4.2 in /views. Thank you, @dependabot
  • #160: Configure typescript properly to fix the build. Thank you, @NeOMakinG
  • #159: Bump minimatch from 3.0.4 to 3.1.2 in /views. Thank you, @dependabot
  • #158: Bump glob-parent from 3.1.0 to 5.1.2 in /views. Thank you, @dependabot
  • #157: Bump loader-utils from 1.4.0 to 1.4.1 in /views. Thank you, @dependabot

Stylelint configuration

Traces

OnBoarding module


Thank you to the contributors whose pull requests were merged since the last Core Monthly Report: @FabienPapet, @HanaRebaiQA, @Hlavtox, @NeOMakinG, @PrestaEdit, @PrestaSafe, @Prestaworks, @Progi1984, @PululuK, @Quetzacoalt91, @Triloworld, @angelo983, @atomiix, @boubkerbribri, @carmas123, @cfarhani06, @davidglezz, @dependabot, @elboletaire, @emmanuelgautier, @eternoendless, @florine2623, @hendaghanmi, @idnovate, @javdome, @jf-viguier, @jolelievre, @khouloudbelguith, @korbi551, @kpodemski, @lartist, @leemyongpakvn, @lmeyer1, @margud, @marsaldev, @matks, @matthieu-rolland, @mflasquin, @micka-fdz, @micreas, @mparvazi, @nesrineabdmouleh, @nicosomb, @okom3pom, @panariga, @rmilecki, @sowbiba, @thomasnares, @webeshop, @yanmakouf, @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 on project’s Slack (@kpodemski).

Happy contributin’ everyone!