PrestaShop 9.2 is here, and it is a big one! 🎉 This release brings some of the most requested features of recent years straight into the platform: a native One Page Checkout module to make buying faster and smoother, an AI assistant right inside the back office with Ask AI, and a brand new Extra Properties system that lets developers extend any core entity natively, and merchants create their own custom fields directly from the back office. That’s not all; this release also ships another batch of pages migrated to Symfony, and a long list of improvements and bug fixes. Months of work by the PrestaShop teams and our amazing community come together in this version, and we can’t wait for you to try it!

PrestaShop 9.2 is available!


Download & upgrade instructions

What’s new in PrestaShop 9.2?

One Page Checkout: 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. Merchants get a faster, guest-friendly flow that helps reduce friction and improve conversion, and they can switch between the one-page and the four-page checkout from the back office.

Read the article

Payment and shipping module developers, this is for you

If you maintain a payment or shipping (carrier) module, check that it behaves correctly in the one-page flow using the module developers guide and the theme developers guide.

Extra Properties: native extra fields for every entity

Extra Properties is a new native way to attach extra fields to core entities such as Product, Combination, Customer, or Order. Each field has its own type and rules, understands languages and shops out of the box, and shows up automatically in Back Office forms and grids, on the Front Office, and in the Admin API.

For module developers, this means less boilerplate and a single, reusable extension point instead of rebuilding the same persistence logic in every module.

Merchants can also create and manage their own extra fields directly from the back office, under Advanced Parameters > Extra Properties, and choose where each field appears: in forms, in grids, or in the Admin API.

Editing an extra property in the back office

Read the article Read the documentation

Extra Properties is the result of a joint effort between Kiwik and the PrestaShop SA teams. A big thank you to everyone involved for bringing this feature to life.

Ask AI: a native AI assistant in your back office

“Ask AI” is a built-in conversational assistant available right in the back office. Merchants can ask questions about their store data and trigger actions in plain, natural language. It is powered by the PrestaShop MCP Server, so you can connect the AI provider of your choice.

Ask AI is part of the PrestaShop Classic edition.

Discover the PrestaShop MCP Server


PrestaShop Automation with Klaviyo

PrestaShop Automation with Klaviyo is included in the PrestaShop Classic edition. It connects your store to Klaviyo so you can build automated email and SMS campaigns, segment your audience, and personalize communication based on real shop data, right after installation.

Read more


The Symfony migration continues

Another batch of back office pages has been migrated to Symfony, making them easier to maintain and extend:

  • Countries
  • Merchandise Return
  • Hook a module
  • Quick Access
  • Email body translations
  • Tax rules

These migrated pages are available behind a feature flag, so you can switch to them and share your feedback before they become the default.

What is a feature flag?

Feature flags let you enable experimental features individually. Find them under Advanced Parameters > New & Experimental Features in the back office.

What’s more in the core?

Thumbnail fitment for image types

Image types now come with a new image fitment setting that defines how source images are resized when thumbnails are generated. You can pick one of three modes for each image type:

  • Fit: fit the image into the thumbnail and fill the rest with empty space (the default, same as before).
  • Crop: fill the thumbnail entirely and crop the overflowing parts, for clean miniatures.
  • Bound: keep the original image ratio within the configured maximum bounds, for large gallery images or brand logos without extra whitespace.

Hummingbird 2.1.2 already takes advantage of it with its new manufacturer_product_page image type. Thank you to @Hlavtox for this contribution, sponsored by TRENDO s.r.o. (#41977).

Hummingbird 2.1.2

Hummingbird, the default front office theme since PrestaShop 9.1, keeps evolving alongside the core. PrestaShop 9.2 ships with Hummingbird 2.1.2, which builds on the 2.1.1 maintenance release with checkout and order fixes, accessibility improvements, and small product and store page enhancements. Version 2.1.2 also removes development files from the theme package for security.

Checkout and orders

  • The checkout address step no longer nests forms, so the Continue button works while editing an address with a separate billing address.
  • The guest order tracking form now submits with POST, and the order lookup is kept in the guest-to-customer transformation form.
  • A new displayOrderDetailProductLine hook call on every order product line lets modules display information next to a single product of an order.

Accessibility

  • Store page accordion toggles are now real <button> elements.
  • Reassurance icons are marked as decorative.

Customization and features

  • A new manufacturer_product_page image type uses the thumbnail fitment feature introduced in PrestaShop 9.2, so brand logos on the product page no longer get extra whitespace.
  • Phone number, fax number, and email address are now clickable links in store details.
  • The account menu sidebar is now sticky.
  • Breadcrumb styles are updated so the breadcrumb displays correctly on error pages.

Notable fixes

  • B2B tax-excluded prices are now formatted with the currency.
  • The country tax label setting is respected on the product page, and the tax info block only renders when there is something to show.
  • The product list rating display (productcomments) no longer throws an error.

Developer experience

  • A new QA testing checklist (beta) covers a full theme test pass: pages, back office settings, native modules, overrides, accessibility, and responsive, plus a seed script to prepare a test shop. It also serves as the reference for an AI agent skill that runs QA on the theme. Both are still evolving, so feedback is welcome.
Building the theme from source now requires Node.js 24 and npm 11 (see .nvmrc). This does not affect shops using the packaged theme.

Hummingbird 2.1.2 release notes Hummingbird 2.1.1 release notes

Adapt your solutions to PrestaShop 9.2

If you develop modules, themes, or custom integrations for PrestaShop, we recommend reviewing the notable changes introduced in this version. The documentation covers breaking changes, deprecated components, and updated best practices that may affect your solutions.

Review notable changes in PrestaShop 9.2

Changelog

v9.2.0
v9.2.0 RC1 (click to expand)
  • 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:
v9.2.0 Beta 1 (click to expand)

See the full release notes

Download PrestaShop 9.2

Download the Classic version, which includes the PrestaShop core along with additional modules from PrestaShop SA compatible with this version, and integration with the PrestaShop Marketplace.

Download PrestaShop 9.2.0 now!

Requirements for PrestaShop 9.2

  • PHP 8.1 (up to PHP 8.5 is supported)

Please check all system requirements in the documentation.

Update to PrestaShop 9.2

If you are running PrestaShop 9.0.x or 9.1.x, you can update to 9.2 using the Update Assistant module. Version 7.6.6 is now available with full support for PrestaShop 9.2. It also makes the update process more resilient: it can now move forward even when the cache cannot be entirely removed, and it gives priority to the modules bundled in the release over the ones downloaded from the Marketplace when both provide the same version.

As with any update, we strongly recommend:

  1. Back up your shop (files and database) before starting.
  2. Test the update in a staging environment before applying it to your production shop.
  3. Review your modules and themes for compatibility with 9.2.

Important

If you were testing a pre-release version (Beta or RC1), you cannot upgrade from it to the final release using the Update Assistant. Please use a fresh installation instead.

Acknowledgments

PrestaShop 9.2 is the result of contributions from both the PrestaShop team and the open source community. A warm welcome to the new contributors who joined during this release cycle: Sayed Nabhan and samilmarekrygula.

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!

What’s next?

Work on the next version of PrestaShop is already underway. Stay tuned to the build blog and follow the project on GitHub to keep up with the latest developments.

We encourage you to share your feedback on PrestaShop 9.2 in the GitHub Discussions or on Slack.