The first Release Candidate of PrestaShop 9.1 is now available for testing. This is the last major milestone before the stable release, and your feedback is what determines whether 9.1 ships on schedule and in great shape.

PrestaShop 9.1 RC1


Download & testing instructions

What is a Release Candidate?

A Release Candidate is the final pre-release stage in our development cycle. All planned features are in place, and the focus has fully shifted to quality, stability, and catching any remaining regressions. RC1 is functionally what we intend to ship as the final 9.1 release. Any fixes applied from this point on will be based directly on your reports.

What’s inside PrestaShop 9.1 RC1?

All the features introduced during the beta phase are included. Here’s a quick recap of the highlights:

Hummingbird 2.0: new default theme

Hummingbird 2 is now the default theme in PrestaShop 9.1. Built on Bootstrap 5, it prioritizes performance, developer experience, and accessibility, achieving over 95% compliance with the European Accessibility Act (EAA).

Tech overview Release notes Discussions & feedback


Multi-carrier / Multi-shipping

PrestaShop 9.1 introduces shipment-based order management, giving merchants the ability to split and merge shipments within a single order. This removes the long-standing “1 order = 1 carrier” limitation and improves clarity for both merchants and customers.

Note: this feature is behind a feature flag.

Watch the demo Read the article


Improved Discounts

The discount system has been redesigned around four types (Catalog, Cart, Free Shipping, and Free Gift), replacing the legacy cart rules with a clearer and more performant structure.

Note: this feature is behind a feature flag.

Watch the demo Read the article


What is a feature flag?

Some 9.1 features are experimental and must be enabled manually before you can test them. You can find these settings under Advanced Parameters -> New & Experimental Features.

Changelog

  • Back Office:
    • Improvement:
      • #40720: Add actionUpdateDefaultCombinationAfter hook when default combination is set (by @Codencode)
      • #40536: Add discountType endpoint (by @nicosomb)
      • #40517: Add some help boxes to product page (by @Hlavtox)
      • #40481: Improved UX for API client creation (by @kpodemski)
      • #40330: Add usage limits fields for new discount system (by @boherm)
      • #40094: Fix: Doctrine auto-mapping in modules: only the first subfolder inside src/Entity is recognized (by @Codencode)
      • #39923: Improve wording of some settings, better explain the meaning of them (by @Hlavtox)
      • #39459: Set optin and newsletter off for John DOE (by @Touxten)
    • Bug fix:
      • #40809: Clean discount form (by @jolelievre)
      • #40743: Fix: Bug: when invoicing is disabled, changing order status to “paid=1” does not register any payment on the order (by @Codencode)
      • #40710: Fix: Feature values count is duplicated when using “All shops” with multiple shops (by @Codencode)
      • #40682: Fix the collision when we create / delete product customization in the same action (by @nicosomb)
      • #40640: Fix EntitySearchInput::setValues forEach callback argument order (by @Codencode)
      • #40620: Update AdminSecurity permissions logic in OrderController (by @rsoulard-prolaser)
      • #40578: Dynamic pack quantity (by @jolelievre)
      • #40563: Admin API improvements for combination endpoints (by @jolelievre)
      • #40556: Fix: CsvFileReader service fails with “You have requested a non-existent service ‘session’” (by @Codencode)
      • #40554: Fix: always display taxes total in order summary (by @Codencode)
      • #40532: BO Product page, fix feature value collection indexes (by @jolelievre)
      • #40525: Update module ps_apiresources (by @jolelievre)
      • #40518: Fix position of minimum_product_quantity field in table (by @nicosomb)
      • #40499: Fix: When saving an Attribute is_color_group is not updated. (by @Codencode)
      • #40475: Fix link for redirection on country BO page (by @jolelievre)
      • #40433: Fix: Module update problem (by @Codencode)
      • #40329: Prevent NoResultException when checking for existing translations (by @ChillCode)
      • #40317: Fix: Backoffice data grids can yield different random results every time (by @Codencode)
      • #40066: Fix: [BO] Admin Countries page redirect issue with multishop after changing shop (by @Codencode)
      • #40054: Use URL when building urls to prevent subtle mistakes with &? (by @tswfi)
      • #40050: Fix: Incorrect redirect from HTTP to HTTPS on the admin login page when PrestaShop is in a subfolder (by @Codencode)
      • #40036: BO - Product : Fixed feature display in multishop (by @Progi1984)
      • #39854: Fix: Quick Access links redirect to root instead of subdirectory, causing 404 (by @Codencode)
      • #38775: Fix: Multishop - error loading CMS pages removed from the default shop (by @Codencode)
    • Refactoring:
  • Front Office:
    • New feature:
      • #40403: Allow easily hooking into country and currency selection logic (by @Hlavtox)
    • Improvement:
    • Bug fix:
      • #40814: Update classic theme to 3.1.1 (by @jolelievre)
      • #40626: Fix “Free shipping” displayed for discounts with free shipping off an… (by @Hlavtox)
      • #40614: Fix “Free shipping” displayed on cart when a discount haven’t free shipping enabled and with a reduction amount = 0 (by @boherm)
      • #40538: Fix quantity input, add to cart button and availability labels when items are added in a cart (by @Hlavtox)
      • #40246: Fix preview in multilang (by @tleon)
    • Refactoring:
      • #40673: Use proper delivery times (by @Hlavtox)
      • #40662: Corrects the error message when the quantity is less than 1 in cart (by @Touxten)
      • #40653: Add cart product presenter and cart availability (by @Hlavtox)
      • #40570: Prevent accidental usage of quantity_wanted from request (by @Hlavtox)
      • #40406: Comment how language setting works in FO (by @Hlavtox)
  • Core:
  • Installer:
  • Web Services:
    • Bug fix:
      • #40442: Fix: PHP Fatal error when deleting product image by Webservice API #39111 (by @semicolonSimp)
  • Localization:
  • Tests:

See the changelog on GitHub

How to test PrestaShop 9.1 RC1

This is a pre-release version. Do not install it on a production shop. Test it in a dedicated staging or development environment only.

Download PrestaShop 9.1 RC1

  1. Download and install RC1 in a test or staging environment (never on a live shop).
  2. Enable the relevant feature flags to test experimental capabilities.
  3. Test your themes, modules, and customizations for compatibility.
  4. Report any bugs or regressions on GitHub with clear reproduction steps.

Requirements for PrestaShop 9.1 RC1

  • PHP 8.1 (up to PHP 8.5 is supported)
  • Composer 2
  • Node.js 20 and NPM 10

Please check all system requirements in the documentation. You must also have Git installed on your machine.

Creating a custom ZIP

If you prefer not to use the Classic version, you can build a custom ZIP file with the PrestaShop Release Creation tool:

  1. Clone the repository using the 9.1.0-rc.1 tag: git clone [email protected]:PrestaShop/PrestaShop.git --branch "9.1.0-rc.1" .
  2. Run composer create-release or php tools/build/CreateRelease.php in the root of the repository.
  3. The ZIP file will be generated in the tools/build/releases/ directory.

Known limitations

No upgrade path

You cannot upgrade from Beta to RC1, nor from RC1 to the final release using the Update Assistant module. Always use a fresh installation for testing pre-release versions.

Do not install on live shops. This version may still contain bugs. It is intended for testing purposes only.

Your feedback matters

RC1 is the last major checkpoint before the final release, and your testing during this window directly shapes the quality of what ships. There’s no beta cycle left. Only your reports between now and the final release.

Here is how you can help:

  1. Install RC1 in a dedicated test environment.
  2. Enable feature flags to verify the new functionality.
  3. Test your setup: themes, modules, integrations, and customizations.
  4. Report issues early via GitHub Issues, with environment details and reproduction steps.

You’re also welcome to discuss your findings in the GitHub Discussions or on Slack.

Thank you to our contributors

PrestaShop 9.1 RC1 would not exist without the dedication of our community. A warm welcome to the new contributors joining for the first time in this release cycle: Salvo Passaro, Giuseppe Tripiciano, rsoulard-prolaser, and semicolonSimp. Thank you for your contributions!

A huge thank you to everyone who contributed to this release! Your dedication helps make PrestaShop stronger, more secure, and better for everyone. We truly appreciate your time and expertise.

Want to join the movement? Start contributing today and help shape the future of open source e-commerce!

Final notes

We’d like to thank everyone who has tested, contributed, and supported the development of PrestaShop 9.1 so far. Your help is what makes this community and this software stronger.