PrestaShop 9.0.1 is available
The first maintenance release for PrestaShop 9 is here!
The first patch version for PrestaShop 9 is now available! This maintenance release focuses on resolving some of the key issues to ensure a smoother experience for all users.
A strong start for PrestaShop 9
Since its release, PrestaShop 9 has been met with great enthusiasm from our community. Many developers, agencies, and merchants have actively tested the new version and shared their valuable feedback. This collaborative effort has been instrumental in helping us refine the new version. We want to thank each and every one of you for your contributions and engagement.
What’s New in PrestaShop 9.0.1
This maintenance release, the first patch for PrestaShop 9, is dedicated to resolving key issues that directly impact the day-to-day operations of our merchants.
A primary focus has been placed on addressing challenges encountered during the installation process on some environments, ensuring a smoother and more reliable deployment experience for everyone.
Version 9.0.1 includes more than 60 bug fixes and more than 140 pull requests. You will also get changes from the recent PrestaShop patch release 8.2.2 and 8.2.3.
Details are available in the changelog below. Update now to benefit from these enhancements.
Download PrestaShop 9.0.1
You can download the Classic version from the official PrestaShop website. This version includes the PrestaShop SA modules, such as:
- PrestaShop Checkout
- PrestaShop Account
- PrestaShop Marketplace in back office
- PrestaShop CloudSync
- PrestaShop Shipping
- PrestaShop Marketing
- PrestaShop Socials
Download PrestaShop 9.0.1 now!
Creating a custom ZIP ℹ️
If you don’t want to use a Classic version, you can build your custom ZIP file with the PrestaShop 9.0.1 installer, which has no PrestaShop SA modules included. You can read the instructions on how to do it in the PrestaShop Release Creation Tool readme.
Update to PrestaShop 9.0.1
We strongly encourage you to update your shop to PrestaShop 9.0.1 promptly to benefit from the extensive bug fixes and enhancements included in this release. Before updating, ensure you create a full backup of your shop to safeguard your data.
Updating to the latest version of PrestaShop 9.0.x
is straightforward with the Update Assistant. This tool streamlines the update process, ensuring your shop remains current with minimal effort.
If you encounter any problems during the update that, in your opinion, are not caused by third-party modules or modifications used in your shop, submit a bug report.
Full changelog
- Back Office:
- New feature:
- #39021: Bring back the ability to fill the login fields from the URL query params (by @Quetzacoalt91)
- #39050: Prompt people to migrate to new page (by @Hlavtox)
- Improvement:
- #39399: Fix: It is not possible to remove the texture and clear the color field when configuring the Attribute value (by @Codencode)
- #39451: Add customer_service to contact query selection (by @PrestaEdit)
- #39404: Allow filtering module list for translation export (by @kpodemski)
- #39277: Make the TinyMCEEditor more flexible and extensible via module (by @Codencode)
- #39196: Change 404 admin template (by @Hlavtox)
- #39322: Update Distribution API Client to include the new wall of fame (by @jolelievre)
- #39321: Update Distribution API Client to include the new wall of fame (by @jolelievre)
- #39192: Add product errors (by @Hlavtox)
- #38042: Added field “Module name” to admin carrier list (by @Codencode)
- #39175: Improve API misconfiguration error (by @jolelievre)
- #39162: Add new hooks: actionOrderHasBeenShipped and actionOrderHasBeenDelivered (by @Codencode)
- #39092: Fix: harmonize carrier page style (by @tblivet)
- #39084: Fix: Date picker handle color (by @tblivet)
- #39078: Fix: carrier logo preview size (by @tblivet)
- #38717: Use v8 documentation in HelperCard (by @PrestaEdit)
- #39022: Styles header notifications (by @tblivet)
- #38634: Improved regex in StringModifier (by @nicosomb)
- #38773: Disable autofill of password for edit customer in BO (by @ShaiMagal)
- Bug fix:
- #39559: Update HTMLTemplateOrderSlip.php (by @ShaiMagal)
- #39472: Add missing “Stock location” in the defaults product csv (by @MattKelvin)
- #39062: Fix display of Nav Bar with NULL icons (by @Quetzacoalt91)
- #39554: [BC Break] Revert PR 38745 (by @tleon)
- #39335: BO : Titles : When editing, fetch dimensions of the image (by @Progi1984)
- #38006: Fix: Problems with customer groups category discounts (by @Codencode)
- #39310: [BC Break] Remove property from documentation that are not in the ressources (by @tleon)
- #37707: Fix unsecure payment request link (by @SebBareyre)
- #39326: BO : HelperForm : Fixed for select the hard defined width (by @Progi1984)
- #39430: Fix quantity in delivery slip if we have a refunded product (by @Touxten)
- #39358: Create ModuleParser to parse module information (by @jolelievre)
- #37590: Patch tinymce fullscreen (by @nicohery)
- #39407: Update CancelProductType to display only refundable quantities as available quantity to refund (by @iNem0o)
- #39400: Fix: Help is displayed two times (by @Codencode)
- #38622: Fix: New product catalog does not load images in multi-store (by @Codencode)
- #39340: Fix product / category access in BO when seo redirection related category is deleted (by @aomaxime)
- #39375: Don’t allow delete default country (by @Touxten)
- #39333: Fix product access in BO when seo redirection related entity is deleted (by @aomaxime)
- #39287: Fix + simplify last positions and add comments to it (by @Hlavtox)
- #39314: BO : Orders : Modal Discount reset when it’s hidden (by @Progi1984)
- #39337: Fix: Cannot use newline in textarea on product page (by @Codencode)
- #39269: BO : Admin API : Fixed selectors for copying secret (by @Progi1984)
- #39271: BO : TinyMCE : Fixed checkbox icon (by @Progi1984)
- #39272: BO : Fixed the memorization of the language used in Admin in the cookie (if option is enabled) (by @Progi1984)
- #39292: BO : Fixed redirection when permission is not allowed (by @Progi1984)
- #39312: Fix ALT shop name. (by @Touxten)
- #39297: Update PHPDoc of ActionsBarButtonInterface (by @Quetzacoalt91)
- #39295: [BC Break] Admin API CQRSDelete can use CQRSCommand and empty bodies can be used (by @jolelievre)
- #39209: BO : Fixed HTML in informations & warnings block (by @Progi1984)
- #39203: BO : Invoices : Harmonize Helper Text (by @Progi1984)
- #39274: Added closure of the ‘deleteCategoriesForm’ form (by @Codencode)
- #39208: Fix: Carrier search not working when editing order’s carrier (by @Codencode)
- #39160: Fix OrderStateType form to show all languages, including disabled ones (by @Codencode)
- #39053: Add logic to generate random password on employee profil (by @PoulainMaxime)
- #39257: Add missing attribute tag on constraints (by @jolelievre)
- #39216: Fix: Call to a member function getClassName() on null when the Employee default tab does not exist anymore (by @Codencode)
- #39228: Fix the result of Admin API paginated response (by @jolelievre)
- #39206: Apply filters mapping on the orderBy query parameter in API listing (by @jolelievre)
- #39168: Fix RouteValidator by checking unknown keywords in schema URL (by @cnavarro-prestashop)
- #39193: When enriching the module data always keep most recent version (by @jolelievre)
- #39153: BO Theme import : Fixed bad display when filename is too long (by @Progi1984)
- #38810: Support for brand named as numbers (by @borjagarciab)
- #39028: Fix carrier edit form name (by @Hlavtox)
- #38549: Fix: Misleading maximum attachment upload size in configure/advanced/administration (by @Codencode)
- #37933: Price final critical error fix (by @jf-viguier)
- #38982: BO : Product Form : Use the correct configuration for the Max Filesize (by @Progi1984)
- #39007: Client API - Help card is not displayed in sidebar as it should (by @seiwan)
- #38966: Add missing Content-Type header in stock quantity update request (by @nborkowska)
- #37928: Fix datacollector caster for reference object property including smarty cache_locking fatal error (by @jf-viguier)
- #38846: BO Countries : Set two fields
call_prefix
&zip_code_format
as non-required (by @Progi1984) - #38593: Fix query builder to find translations by key in Backoffice during the translations saving process (by @mcaldex)
- #38532: Fix: Multistore: CMS page error on new empty store creation (by @Codencode)
- #38337: Fix: Max password length allowed in the password policy is longer than bcrypt can handle and hardcoded max pass length for customer (by @Codencode)
- #38581: Allow refund on an order of a deleted customer (by @jf-viguier)
- Refactoring:
- #39182: Improve warning on languages page (by @Hlavtox)
- #39080: Remove getCasters override not necessary anymore with SF 6.4 (by @jolelievre)
- New feature:
- Front Office:
- Improvement:
- #39704: Chore: Update classic theme to v3.0.3 (by @tyloo)
- #39445: Propagate auth header (by @Hlavtox)
- #39537: Backport Fix CartPresenter translation domain (by @Codencode)
- #39406: Display full history time (by @Hlavtox)
- #39366: Add hook on rendertemplate in CheckoutStep (by @alexandrebrubeyonds)
- #38992: Improve combination images speed (by @Hlavtox)
- #38586: Add hook into formfield class method toArray + add property attr (by @Mch0)
- #38480: New Hook: actionPaymentModuleProductVarTplAfter (by @gwojcik7)
- #38487: New Hook: actionGetPdfTemplateObject get pdf template object (by @Markus-Gurkcity)
- #38868: Update CHANGELOG.txt (by @Touxten)
- Bug fix:
- #39592: Reintroduce email unicity validation (by @bibips)
- #39245: Fix: Back Office becomes inaccessible if the employee’s assigned language is deleted (by @Codencode)
- #39010: Save address choice on click (by @Matt75)
- #39191: Fix: recoverCart link does not log the user. Stuck to process checkout step 1 (by @Codencode)
- #39008: Fix customer birthdate validation in FO (by @boherm)
- #38926: Fix favicon path (by @Hlavtox)
- #38903: CustomerAddressForm : Set a minimum length in HTML5 (by @Progi1984)
- Refactoring:
- Improvement:
- Core:
- New feature:
- Improvement:
- #39589: Improved generation of queries and commands (by @kpodemski)
- #39591: Improve customer unicity check and add comments (by @Hlavtox)
- #39541: Admin API Openapi multistore context documentation (by @iNem0o)
- #39379: Updated PrestaShop Packages (by @github-actions[bot])
- #39344: Updated PrestaShop Packages (by @github-actions[bot])
- #39479: Bump PrestaShop version to 8.2.3 (by @matthieu-rolland)
- #39466: Update Symfony components after 6.4.25 release (by @nicosomb)
- #39264: Update Symfony components after 6.4.24 release (by @nicosomb)
- #39371: Refacto ConnectionsSource.php for little better performance (by @ShaiMagal)
- #39372: Refacto of few $_SERVER variables (Tools.php) (by @ShaiMagal)
- #39364: Add genuine Czech republic bot (SeznamBot) to “isBot” function (by @ShaiMagal)
- #38822: Another level of protection for Tools::unSerialize (allowed_classes => false) + refacto (by @ShaiMagal)
- #39217: Fix changelog date for 8.2.2 (by @boherm)
- #39145: Bump PrestaShop version to 8.2.2 (by @boherm)
- #39006: Verify if category exists before accessing it (by @Hlavtox)
- #39180: Bump patch version 9.0.1 (by @jolelievre)
- #39150: Updated PrestaShop Packages (by @github-actions[bot])
- #39063: Add option to automatically generate text version of emails (by @Hlavtox)
- #39141: Update hummingbird to v1.0.1 (by @tblivet)
- #39135: Updated PrestaShop Packages (by @github-actions[bot])
- #39043: Silence some last smarty deprecations (by @Hlavtox)
- #39034: Update Symfony components after 6.4.23 release (by @nicosomb)
- #38441: Relax validation rules for first batch of characters (by @Hlavtox)
- #38952: Add 2 hooks in getImageLink (by @ludoviccardinale)
- #38924: Backport improved profiler from v9 (by @Hlavtox)
- #38847: Skip rector.php and PHPStan files during build (by @kpodemski)
- #38772: New hook at TOP of customer my account section - displayCustomerAccountTop (by @ShaiMagal)
- Bug fix:
- #39535: Backport Filemanager should load AdminKernel (by @Codencode)
- #38871: Ensure specific prices are deleted safely on customer deletion by validating passed ID (by @gilles-knani)
- #39463: CORE : Fix Cart constructor initialization order to prevent null configuration errors (by @djbuch)
- #39480: Fix docker initialisation (by @nicosomb)
- #39442: Stabilize cache clear (by @jolelievre)
- #39453: Fix CI with mysql suddenly going crazy over SSL certificate (by @jolelievre)
- #39327: Fix symlink issues on install (by @boherm)
- #39331: Fix: using dev version of ps_apiresources (by @PrestaEdit)
- #39260: Adding taxes for shipping cost if needed (by @lukaslau)
- #38997: Remove dead code watermark types (by @tswfi)
- #38905: Cast properties to prevent issues (by @Hlavtox)
- #38989: Fix carrier ID for modules (by @Hlavtox)
- Refactoring:
- #39505: Method getIdFromClassName incorrect phpdoc - phpstan is complaining (by @ShaiMagal)
- #39373: Small Refacto Store.php for semantic (backticks unification) (by @ShaiMagal)
- #39311: Backport Unify error handling in FO and get rid of Tools::displayError calls (by @Hlavtox)
- #39167: Comment carrier logic (by @Hlavtox)
- #39129: Use constants instead of integers (by @Hlavtox)
- #39057: Comment the mail class after migration to symfony (by @Hlavtox)
- #39051: Wipe @since tags that serve no value anymore (by @Hlavtox)
- #38990: Secure .env files and comment htaccess (by @Hlavtox)
- #38877: Clean and comment postSave (by @Hlavtox)
- #38761: Refactor Warehouse::getProductLocation() (by @ShaiMagal)
- Installer:
- Improvement:
- #39619: Update default catalog 9.0.x (by @ps-jarvis)
- #39508: Add the parameter
--symlink
to the commandassets:install
of Symfony (by @Quetzacoalt91)
- Bug fix:
- #39336: Install : Configure : Hide password error on keyup (by @Progi1984)
- #39110: Fix installation of en-GB during install, improve installation error report (by @jolelievre)
- #38919: Update installer favicon (by @matks)
- Improvement:
- Web Services:
- Tests:
- Improvement:
- #39594: Functional Tests : Added new endpoints (by @Progi1984)
- #39583: Functional Tests : API : DELETE /attributes/group/{attributeGroupId} (by @Progi1984)
- #39575: Functional Tests : API : GET /customers/groups (by @Progi1984)
- #39565: Functional Tests : Bump @prestashop-core/ui-testing (by @Progi1984)
- #39528: Functional Tests : Bump @prestashop-core/ui-testing (by @Progi1984)
- #39329: Update api module and optimise API UI tests (by @jolelievre)
- #39284: Command
prestashop:list:commands-and-queries
: Filter CQRS with (1) or without (0) an endpoint (by @Progi1984) - #39291: Functional Tests : Bump @prestashop-core/ui-testing (by @Progi1984)
- #39215: Functional Tests : Bump @prestashop-core/ui-testing (by @Progi1984)
- #39172: Functional Tests : Bump @prestashop-core/ui-testing (by @Progi1984)
- #39159: Functional Tests : Bump @prestashop-core/ui-testing (by @Progi1984)
- #39123: Functional Tests : Bump @prestashop-core/ui-testing (by @Progi1984)
- #39077: Functional Tests : Bump @prestashop-core/ui-testing (by @Progi1984)
- #39064: Functional Tests : Bump @prestashop-core/ui-testing (by @Progi1984)
- #38927: Functional Tests : Bump @prestashop-core/ui-testing (by @Progi1984)
- #38890: Functional Tests : Bump @prestashop-core/ui-testing (by @Progi1984)
- #38885: Functional Tests : API : PATCH /product/{productId}/shops (by @Progi1984)
- Bug fix:
- #39551: Functional Tests : Fixed #38788 (by @Progi1984)
- #39500: Functional Tests : Fixed tests for PSC (by @Progi1984)
- #39299: BO : Products - Bulk Actions : Fixed error when no permissions (by @Progi1984)
- #39285: BO : Export SQL from Grid : Format SQL (by @Progi1984)
- #39139: Docker 7.2-apache : Fixed use of archive Debian repo (by @Progi1984)
- #39049: BO : Theme : Export current theme > Protect directories (by @Progi1984)
- #38999: Fix FormFieldTest (by @boherm)
- #38963: BO : Specific Price : Hide label (by @Progi1984)
- Refactoring:
- #38873: Functional Tests : Reorganize endpoints based on domains (by @Progi1984)
- Improvement:
Acknowledgments
PrestaShop is an open-source platform where many contributors, though not directly connected to PrestaShop SA, play vital roles in its development alongside the community.
This release is made possible thanks to PrestaShop SA, but also individual contributors from the community, and companies from our ecosystem.
A big thank you to all contributors (in alphabetical order):
Alexandre Bru, aomaxime, Arnaud, bibips, Blivet Thibault, Boki, Boris Hermans, Codencode, Cyril Navarro, Daniel Hlavacek, David-Julian BUCH, Dominik Shaim Ulrich, Fabien Papet, Franck Lefèvre, Gilles Knani, Jean-François Viguier, Jonathan Danse, Jonathan Lelievre, Julien Bonvarlet, Krystian Podemski, Ludovic Cardinale, Lukas Laurinaitis, Léo Cunéaz, Mathieu Ferment, Matthias Raigne, Matthias-Kelvin Daous, Matthieu Rolland, Mattia, Maxime Poulain, Maxime Sieczkowski, Morgan Pichat, Natalia Borkowska, Nico H, Nicolas Lœuillet, okom3pom, PrestonBot, Progi1984, Sébastien BIDAULT, Tatu Wikman, Thibault Blivet, Thomas Leone, Thomas Nabord, Thomas Roux ( Old Okom3pom )