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

PrestaShop 9.2 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.2 release. Any fixes applied from this point on will be based directly on your reports.

What’s inside PrestaShop 9.2 RC1?

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

One Page Checkout: native module for a faster, smoother checkout

PrestaShop 9.2 includes a native One Page Checkout module in the bundle, bringing the entire checkout experience together onto a single page. This gives merchants a faster, smoother flow that helps reduce friction and improve conversion, without depending on third-party solutions.

Read the article


Extra Properties: native extra fields for every entity

PrestaShop 9.2 introduces Extra Properties, a native way to attach extra fields to core entities such as Product, Customer, or Order, with built-in support for multistore, multilang, Back Office forms and grids, Front Office access, and the Admin API.

Read the article


Ask AI: a native AI assistant in your back office

PrestaShop 9.2 introduces “Ask AI”, a built-in conversational assistant available right in the back office. Merchants can ask questions about their data and trigger actions using plain, natural language, powered by the PrestaShop MCP Server, so you are not locked into a single AI provider.

Discover the PrestaShop MCP Server


PrestaShop Automation with Klaviyo

PrestaShop Automation with Klaviyo is natively integrated into the PrestaShop Classic distribution, giving merchants marketing automation (email, SMS, segmentation) right after installation, with no separate module to hunt down.

Read more


The Symfony migration continues

Another batch of legacy pages, including Countries, Merchandise Return, Hook a module, Quick Access, Email body translations, and Tax rules, has completed its migration to the Symfony framework and is available for testing behind a feature flag.

What is a feature flag?

Some 9.2 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:
    • New feature:
      • #42022: Improve the carrier domain and the Admin API for the new carrier endpoints (by @nicosomb)
    • Improvement:
      • #42350: Index new CMS pages by default (by @Hlavtox)
      • #41942: Add shared stock help message to combination availability form (by @Codencode)
      • #41932: Paginate the orders grid by id first to avoid a full-table sort (by @boo-code)
      • #41703: Tax rules list apiAdd tax rules list API support to TaxRule grid query builder (by @nicosomb)
      • #41409: Add multistore support to administration and product settings configuration forms (by @Codencode)
    • Bug fix:
      • #42768: Fix the theme selector in the Translations page (by @tblivet)
      • #42600: Fix supplier ID type in SetSuppliersCommand (by @Codencode)
      • #42475: Fix product ID type in product grid decorator (by @Codencode)
      • #42411: Fix the Shipment domain defects that do not depend on the Admin API (by @mattgoud)
      • #42400: Fix Carts page performance regression on connections query (by @Codencode)
      • #42374: Order confirmation email ignores the order state’s “Attach invoice PDF to email” setting (by @aomaxime)
      • #42245: Fix tax rule groups grid duplicates in multistore context (by @Codencode)
      • #42241: Offer the default route for every language in the SEO and URLs form (by @boo-code)
      • #42203: Let a grid status menu show past the scrolling table (by @boo-code)
      • #42197: Let the SMTP transport choose implicit TLS by port so 587 works (by @boo-code)
      • #42057: Fix changing an employee role when the default page is specific to the new role (by @boo-code)
      • #42032: Display the employee who created a back-office order in the Messages block (by @PrestaEdit)
      • #42004: Fix UTF-8 string truncation in StringModifier::cutEnd() (by @Codencode)
      • #42001: Guard order message name-uniqueness check on partial edit (backport 9.1.x) (by @mattgoud)
      • #41950: Show an empty order status dropdown when the order has no status (by @boo-code)
      • #41948: Fix manual order discount bug (by @tleon)
      • #41944: Connect GET /discount-types to the BO (by @nicosomb)
      • #41929: Fix catalog price rule links when feature flag is enabled (by @Codencode)
      • #41919: Fix: Problem with manual special price setting with comma becoming dot (product page) (by @Codencode)
      • #41871: Use the small_default thumbnail for product/combination cover URLs (by @boo-code)
      • #41797: Fix: Color preview is still displayed after changing an attribute group from color to another type (by @Codencode)
      • #41665: Display invoice prefix in employee language on order view page (by @PrestaEdit)
      • #41652: Fix: Changing an order’s status throws “Duplicate entry <idp>-<idpa>-0-0 for product_sqlstock” when the order contains a deleted combination (single-shop) (by @Codencode)
      • #41468: Fix: Multishop: cache_default_attribute is not reset for all shops when changing a product with combinations to a standard product (by @Codencode)
      • #41238: Fix: Inconsistent escaping of displayCustomization output (by @Codencode)
    • Refactoring:
      • #42284: Do not block working with order if it’s shipped (by @Hlavtox)
  • Front Office:
    • New feature:
    • Improvement:
      • #42571: Improve structured data by adding product features and shop contact info (by @Hlavtox)
      • #42058: Set stable version of Hummingbird in composer.json (by @Quetzacoalt91)
      • #40977: Add prices in all variants to make displaying them easier in templates (by @Hlavtox)
    • Bug fix:
      • #42725: Preserve pagination in product listing hreflang URLs (by @Hlavtox)
      • #42439: Fix PHP 8.5 null array offset deprecations (by @Codencode)
      • #42396: Fix #42395: Prevent template variables from being overwritten (by @Codencode)
      • #42189: Give the not found and checkout pages a breadcrumb entry of their own (by @boo-code)
      • #42143: Fix delivery option cache for changed delivery addresses (by @Codencode)
      • #42114: Backport #40575 to 9.2.x (by @Codencode)
      • #42000: Fix ProductController::getProduct() nullable return type (by @Codencode)
      • #41928: Use constant-time comparison for order secure_key checks (by @nabhan06)
      • #40929: Update geoip2/geoip2 to fix deprecation warnings on PHP 8+ (by @Hlavtox)
    • Refactoring:
      • #42016: Finalize structured data (not found products etc.) (by @Hlavtox)
      • #41845: Add simple HTML to text stripper, refactor getting meta (by @Hlavtox)
      • #41699: Distinguish missing images of manufacturers and categories (by @Hlavtox)
  • Core:
    • New feature:
    • Improvement:
      • #42826: Updated native modules (by @nicosomb)
      • #42787: Carry extra property constraints as their DSL string on the CQRS boundary (by @jolelievre)
      • #42726: Extra Property: store constraints as their DSL, dropping PHP serialization (by @Jeremie-Kiwik)
      • #42538: Handle non-conventional entity naming, default value typing and the cart entity in extra properties (by @jolelievre)
      • #42490: Allow restricting extra property definitions to a list of shops (by @jolelievre)
      • #42478: Update Symfony components after 6.4.45 release (by @nicosomb)
      • #42428: Update Symfony components after 6.4.44 release (by @nicosomb)
      • #42421: Handle multishop across the Extra Properties feature (by @jolelievre)
      • #42375: Add language ID to actionMailAlterMessageBeforeSend hook (by @Hlavtox)
      • #42239: Update Symfony components after 6.4.43 release (by @nicosomb)
      • #42145: Add version compatibility filtering for Admin API endpoints (by @jolelievre)
      • #42071: Decouple EmployeePasswordResetter from the admin router (by @PrestaEdit)
      • #41832: Cover getCustomerCartRules using the passed cart for product restrictions (by @boo-code)
      • #41803: Guard stock movement when the context employee has no id (by @PrestaEdit)
    • Bug fix:
    • Refactoring:
      • #41713: Fix unit price ratio currency conversion and specific price issue (by @Hlavtox)
  • Installer:
  • Web Services:
    • Improvement:
      • #42011: Wrap plain list query results under _queryResult for non-collection operations (by @mattgoud)
    • Bug fix:
  • Tests:

See the full release notes

How to test PrestaShop 9.2 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.2 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.2 RC1

  • PHP 8.1 (up to PHP 8.5 is supported)

Please check all system requirements in the documentation.

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.2 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: Sayed Nabhan and samilmarekrygula.

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.2 so far. Your help is what makes this community and this software stronger.