In this Core Monthly, most important topics include new patch releases for PrestaShop 8, improvements in the developer documentation, data transparency policy, and more. Discover the latest updates on our ongoing projects and catch up on what our project members have been working on throughout the month of March.

Core Monthly banner

Patch releases for PrestaShop 8

Two new versions for PrestaShop 8 are now available. 8.0.2 and 8.0.3 versions were both released a few weeks ago. You can read more about those releases in their release notes, for 8.0.2, and for 8.0.3.

Changes in core for PrestaShop 8.1 and PrestaShop 9

Work around PrestaShop 8.1 is almost finished. Work in March was mostly about remaining tasks around the new product page, which will be enabled for new installations of PrestaShop starting with version 8.1. If you want to know more about PrestaShop 8.1, watch March’s Live Update where I presented some of the best features of this version.

Of course, a lot is going on around PrestaShop 9.0. Thanks to @Progi1984, we see a lot of deprecated code being removed from the core for the next major version. If you develop solutions for PrestaShop, it’s worth following these changes.

Apart from refactoring, there are new existing features coming to v9. Improved guest management in back office is now available thanks to work from @Hlavtox. Daniel (Hlavtox) also took some time to work on various improvements around wording in back office. His PR unifying page names, grid names and form names is now merged to the develop branch.

We also had a chance to merge some performance improvements. Worth checking are two PRs, one optimizing db structure for connections table from @lmeyer1, and one from @tom-combet drastically improving performance for StockManager queries. There’s also one PR improving shopping cart performance in the front office, @lmeyer1 optimized CartPresenter so it no longer calls present() function multiple times on the same page.

Improvements in the developer documentation

Developer documentation is undoubtedly a significant part of your project. In March, we took the time to improve it where required, focusing on the search feature. We didn’t act blind, as we use Algolia DocSearch: we could analyze the most frequently searched items, and based on that, we made adjustments and produced new content. We discovered some undocumented things. Some were searched using different phrases than those indexed by Algolia (e.g., FormHelper instead of HelperForm, etc.).

Thanks to the improvements we made, from now on:

  • there’s a much more precise search feature in the developer documentation
  • thanks to the new tags mechanism, we can improve search results by mapping some of the phrases that are used by developers to corresponding results that are indexed using a different wording
  • hooks with normal and dynamic names (for example, actionUpdateAfter, etc.) are now visible in the search results
  • Link, and Locale components are now documented, as well as hookModuleRoutes and some other elements.

Below are links to the developer documentation sections that were improved or added:

Google Analytics 4

A new version of Google Analytics integration is now available. Full support for GA4 is now integrated directly into the module. If you want to keep collecting Universal Analytics data, a module created by @Hlavtox does just that. You can read more in the module’s repository. If you want to download the newest version of the Google Analytics module, you can do that from the releases page.

Project’s telemetry

In addition to the numerous updates last month, starting with PrestaShop 8.0.3, during the software installation, a “Privacy note” section has been added, detailing the potential telemetry included in PrestaShop modules. As we strive for transparency, the telemetry implementation in the upcoming Distribution API release will provide valuable insights into software usage patterns, enabling more informed decision-making in the future. To learn more, please refer to the new “Data transparency” page on the project’s website.

Project releases

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

Code changes in the ‘develop’ branch

Back office

Core

  • #31893: Removed deprecated controller AdminRequestSqlController. Thank you, @Progi1984
  • #31892: Removed deprecated methods generateDeliverySlipPDFByIdOrder & generateInvoicePDFByIdOrder in class AdminPdfController. Thank you, @Progi1984
  • #31891: Removed deprecated methods stripslashes & safePostVars in class Tools. Thank you, @Progi1984
  • #31890: Removed deprecated method isAnything in class Validate. Thank you, @Progi1984
  • #31889: Removed deprecated method addJquery in Controller class. Thank you, @Progi1984
  • #31824: No need to check error_get_last exist it exists since PHP 5.2. Thank you, @justeen35
  • #31752: Fix ProductCore::getDefaultCategory to return an int consistently. Thank you, @lea-BMS
  • #31531: Standardize filterManufacturerContent hook. Thank you, @micka-fdz
  • #31511: Fix exception ‘Template ::base.html.twig is not defined’. Thank you, @lmeyer1
  • #31418: Remove ModuleRepository and ModuleRepositoryFactory. Thank you, @FabienPapet
  • #31391: Continue form type optimization. Thank you, @FabienPapet
  • #28988: Remove deprecated in Core namespace. Thank you, @Progi1984

Front office

  • #31825: Improve smartyClassname(). Thank you, @justeen35
  • #31571: Fix error Uncaught TypeError: abs() in CartController. Thank you, @lmeyer1
  • #31487: FO: Fix cart rule detail amount. Thank you, @idnovate
  • #31300: Mitigate multiple function call CartPresenter::present. Thank you, @lmeyer1
  • #31074: Fix and unify sort orders in default search providers. Thank you, @Hlavtox

Tests

  • #31990: Remove deprecated hook in Behat Tests. Thank you, @Progi1984
  • #31960: Nightly : Fixed FO/08*/02*/01* & productV2/functional/03*. Thank you, @Progi1984
  • #31942: Nightly : Use app/config/security_test.yml rather than app/config/security_dev.yml. Thank you, @Progi1984
  • #31927: Bump playwright from 1.31.2 to 1.32.1 in /tests/UI. Thank you, @dependabot
  • #31926: Bump @typescript-eslint/parser from 5.55.0 to 5.56.0 in /tests/UI. Thank you, @dependabot
  • #31925: Bump @typescript-eslint/eslint-plugin from 5.55.0 to 5.56.0 in /tests/UI. Thank you, @dependabot
  • #31923: Use assertSame instead of assertEquals when type must match in ThemeTest. Thank you, @justeen35
  • #31837: Bump @typescript-eslint/eslint-plugin from 5.54.1 to 5.55.0 in /tests/UI. Thank you, @dependabot
  • #31836: Bump mochawesome-merge from 4.2.2 to 4.3.0 in /tests/UI. Thank you, @dependabot
  • #31835: Bump @typescript-eslint/parser from 5.54.1 to 5.55.0 in /tests/UI. Thank you, @dependabot
  • #31834: Bump typescript from 4.9.5 to 5.0.2 in /tests/UI. Thank you, @dependabot
  • #31783: Functional Tests : ps_linklist : Fixed selector for the language selector. Thank you, @Progi1984
  • #31745: Bump @typescript-eslint/parser from 5.54.0 to 5.54.1 in /tests/UI. Thank you, @dependabot
  • #31744: Bump @typescript-eslint/eslint-plugin from 5.54.0 to 5.54.1 in /tests/UI. Thank you, @dependabot
  • #31743: Bump eslint from 8.35.0 to 8.36.0 in /tests/UI. Thank you, @dependabot
  • #31742: Bump js-image-generator from 1.0.3 to 1.0.4 in /tests/UI. Thank you, @dependabot
  • #31723: Fix nightly Develop - ‘BO > Customers > View customer’. Thank you, @nesrineabdmouleh
  • #31716: Update disallowed calls. Thank you, @FabienPapet
  • #31661: CI : Nightly : Added BO:dashboard & API. Thank you, @Progi1984
  • #31653: Bump @typescript-eslint/parser from 5.53.0 to 5.54.0 in /tests/UI. Thank you, @dependabot
  • #31652: Bump playwright from 1.31.1 to 1.31.2 in /tests/UI. Thank you, @dependabot
  • #31651: Bump @typescript-eslint/eslint-plugin from 5.53.0 to 5.54.0 in /tests/UI. Thank you, @dependabot
  • #31632: Functional Tests : Add the script test:functional:productV2. Thank you, @Progi1984
  • #31628: Fix Sanity Product V2 tests blocking CI. Thank you, @0x346e3730
  • #31592: Functional Tests : Splits Tests in small packages. Thank you, @Progi1984
  • #31567: Fix some phpdocs return types. Thank you, @hugofintecture

Code changes in the ‘8.1.x’ branch

Back office

  • #31928: Move namespace from Core/Domain/Product/AttributeGroup to Core/Domain/AttributeGroup. Thank you, @JevgenijVisockij
  • #31885: Final multishop fields that needed to be renamed. Thank you, @jolelievre
  • #31874: Create security_test.yml and move default credentials for api in it. Thank you, @mflasquin
  • #31866: Fix memory leak on suppliers filter. Thank you, @mflasquin
  • #31855: Refactor product stock update. Thank you, @jolelievre
  • #31823: Disable legacy_feature_flag for migrated feature page. Thank you, @zuk3975
  • #31776: Remove command handler definition that was removed. Thank you, @jolelievre
  • #31722: Add force_hide_bulk_actions_btn in HelperList for AdminCartsController.php. Thank you, @boherm
  • #31691: Add admin tabs hook. Thank you, @cvng
  • #31682: Cast featureId into int to fix InvalidFeatureIdException. Thank you, @boherm
  • #31674: Add _legacy_feature_flag for customer threads routes. Thank you, @boherm
  • #31662: Put multiple image feature toggle into the “new feature” block. Thank you, @matthieu-rolland
  • #31657: Clean product & combination command builders. Thank you, @zuk3975
  • #31611: Clean ProductImageMultiShopRepository. Thank you, @zuk3975
  • #31584: Product page v2 : Footer UX improvements. Thank you, @jolelievre
  • #31568: Fix virtual product file constraints. Thank you, @zuk3975
  • #31560: Duplicate product for multishop final part. Thank you, @jolelievre
  • #31512: Implement ShopConstraint into DeleteProductCommand. Thank you, @zuk3975
  • #31508: Fix errors when submitting empty feature or feature values ppv2. Thank you, @zuk3975
  • #31472: Fix “generate for all shops” button visibility when multiShop is off. Thank you, @zuk3975
  • #31463: Validate product image size depending on upload quota configuration. Thank you, @zuk3975
  • #31296: Update summary quantity on combination list refresh. Thank you, @zuk3975
  • #30769: Carrier selection improvement in BO product page. Thank you, @zuk3975

Core

Front office

  • #31695: Do not enable add to cart button if catalog mode is enabled. Thank you, @Hlavtox
  • #31688: Add avif to htaccess allowed formats. Thank you, @Hlavtox
  • #31620: Fix sitemap url conflict, allow using the hook with fallbacks. Thank you, @Hlavtox

Tests

  • #31964: Functional tests - Add new test ‘Catalog > CRUD cart rule > Product selection’. Thank you, @nesrineabdmouleh
  • #31947: Nightly : Fixed Tests functional/FO/08*. Thank you, @Progi1984
  • #31911: Functional tests - Fix nightly ‘FO > Menu and navigation > Sort products’. Thank you, @nesrineabdmouleh
  • #31881: Functional Tests : Hummingbird : FO - Login - Create an account. Thank you, @Progi1984
  • #31868: Functional Tests : CLDR - Delete a currency. Thank you, @Progi1984
  • #31861: Functional Tests : BO - Design - Image Settings - Regenerate thumbnail. Thank you, @Progi1984
  • #31845: Functional tests - Add some new tests on ‘FO > Navigation and display’. Thank you, @nesrineabdmouleh
  • #31818: Functional Tests : CLDR - Edit symbol / format currency. Thank you, @Progi1984
  • #31808: Functional Tests : API : Authorization Endpoint. Thank you, @Progi1984
  • #31800: Replace non existent steps with their replacement. Thank you, @jolelievre
  • #31762: Functional tests - Add 2 tests ‘BO > Cart rule > Check priority and disabled status’. Thank you, @nesrineabdmouleh
  • #31761: Functional Tests : CLDR - Reset symbol / format settings. Thank you, @Progi1984
  • #31710: Fix nightly 10-03 - ‘BO > Orders > View invoice’. Thank you, @nesrineabdmouleh
  • #31702: (ui-test) Fix AfterEach to not fail trying to take a screenshot. Thank you, @boubkerbribri
  • #31701: Functional tests - Add new test ‘BO > CRUD cart rules > Enable/disable partial use’. Thank you, @nesrineabdmouleh
  • #31687: Functional Tests : CLDR - Enable/Disable a currency. Thank you, @Progi1984
  • #31676: Functional Tests : BO - Design - Image Settings - Image Generation options. Thank you, @Progi1984
  • #31671: Functional tests - Delete the test of best sellers block in home page. Thank you, @nesrineabdmouleh
  • #31669: Functional Tests : API - Resource Endpoint. Thank you, @Progi1984
  • #31631: Functional Tests : Add the script test:functional:productV2. Thank you, @Progi1984
  • #31608: Functional tests - Refacto ‘BO > Catalog > CRUD cart rule with & without code’. Thank you, @nesrineabdmouleh
  • #31591: Functional Tests : Splits Tests in small packages. Thank you, @Progi1984
  • #31590: Functional tests - Add new test ‘BO > Orders > Shopping carts > Export shopping carts’. Thank you, @nesrineabdmouleh
  • #31573: Functional tests - Add new test ‘BO > CRUD features and values’. Thank you, @nesrineabdmouleh
  • #31102: Functional Tests : API - Basic Test. Thank you, @Progi1984

Code changes in the ‘8.0.x’ branch

Back office

  • #31902: Remove cache clear lock file after it is not needed. Thank you, @jolelievre
  • #31820: Handle custom lock file during the cache clear and force module actions one by one. Thank you, @jolelievre
  • #31772: Fix wordings in BO for keys WS. Thank you, @boherm
  • #31667: Catch PrestaShopException to validate sql-requests properly in PHP 8.X. Thank you, @boherm
  • #31654: Fix addslashes not working. Thank you, @mflasquin
  • #31647: Prevent email enumeration. Thank you, @MathiasReker
  • #31603: Fix generating of preload.tpl. Thank you, @kpodemski
  • #31514: Fix sorting attribute do not works. Thank you, @mflasquin
  • #30957: Redirect to product list with warning message instead of raising an exception when we try to access a product which doesn’t exist. Thank you, @lartist

Core

Installer

  • #31787: Installer : Fixed link to docs in Installer. Thank you, @Progi1984
  • #31697: Link to the “data transparency” page inside installer. Thank you, @lartist

Tests

Code changes in modules, themes and tools

Auto Upgrade module

Automated tests on Pull Requests

Available quantities statistics module

Best manufacturers statistics module

Best suppliers statistics module

Changes in developer documentation site

Changes in developer documentation sources

Changes in developer documentation theme

  • #27: Create new Shortcode to help with algolia searches. Thank you, @thomasnares
  • #26: Improve hook search - Generic hooks available via Algolia DocSearch. Thank you, @thomasnares
  • #25: Improve hook search. Thank you, @thomasnares
  • #24: Fix hahahugoshortcode-hbhb : Switch to a regex to match s1, s2, s3; …. Thank you, @thomasnares
  • #23: Fix hahahugoshortcode issues in titles and table of contents. Thank you, @thomasnares
  • #22: Remove example site from theme. Thank you, @eternoendless
  • #21: Add support for Google Analytics 4. Thank you, @eternoendless

Classic theme

  • #110: Adapt theme to dynamic sitemap URLs. Thank you, @Hlavtox

Contact Form module

Contact informations module

  • #56: Release 3.3.2. Thank you, @Hlavtox
  • #55: add missing hooks when upgrading from old versions. Thank you, @kpodemski

Customer reassurance block module

Dashboard Goals module

Dashboard Products module

Distribution API Client

  • #25: Update Master branch (Release 1.1.0). Thank you, @matks
  • #24: Bump version 1.1.0. Thank you, @jolelievre
  • #23: Release 1.1.0. Thank you, @matks
  • #22: Add shop information to API calls if env var PS_URL_TRACKING is set to true. Thank you, @mflasquin

Docker images

Email Alerts module

Example modules

Faceted search module

GDPR module

Google Analytics module

Hummingbird theme

  • #481: run npm audit fix. Thank you, @tswfi
  • #480: Reproducible installs with npm. Thank you, @tswfi
  • #468: Fix subcategories images. Thank you, @SharakPL
  • #466: Release 0.1.5. Thank you, @Hlavtox
  • #465: customer tables improvement. Thank you, @JBLach
  • #464: Adapt theme to dynamic sitemap URLs. Thank you, @Hlavtox
  • #462: Language selection not displaying correctly because of the currency b…. Thank you, @JBLach
  • #452: Fix price slider implementation stripping parameters. Thank you, @Hlavtox

Image slider module

Language selector module

  • #134: Test rigorously for URLs while allowing relative URLs.. Thank you, @lmeyer1

NVD3 Charts module

Nightly board

Payment example module

  • #14: Update PaymentExample with custom OrderState. Thank you, @Matt75

PrestaShop Specifications

Prestashop-shop-creator

Prestashop UI Kit

Presthubot

PrestonBot

  • #138: Handle branch 8.1.x for wording. Thank you, @lartist

Product Comments module

QA nightly results

Social Follow module

The PrestaShop open source project

Theme customization module

Webservices PHP Client

Wire payment module

Wishlist block module

  • #213: FO / Blockwishlist - bad display when wishlist name is too long in ta…. Thank you, @akrambak

Thank you to the contributors whose pull requests were merged since the last Core Monthly Report: @0x346e3730, @FabienPapet, @Hlavtox, @JBLach, @JevgenijVisockij, @MathiasReker, @Matt75, @PrestaEdit, @Prestaworks, @Progi1984, @Quetzacoalt91, @SharakPL, @Thymotep, @akrambak, @bibips, @boherm, @boubkerbribri, @cvng, @davidglezz, @dependabot, @dkarvounaris, @eternoendless, @fox-john, @github-actions, @hugofintecture, @idnovate, @jf-viguier, @jolelievre, @justeen35, @kpodemski, @lartist, @lea-BMS, @leemyongpakvn, @lmeyer1, @margud, @matks, @matthieu-rolland, @mflasquin, @micka-fdz, @nesrineabdmouleh, @nicosomb, @sharkooon, @thomasnares, @tom-combet, @tswfi, @web-cooking-factory, @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 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!