We welcomed 2026 with a lot of exciting news and progress across the PrestaShop ecosystem. Read on for a recap of the biggest highlights from January, including the release of PrestaShop 9.1 Beta, deep dives into the new multi-carrier and discounts features, and the first videos from our Developer Conference 2025.

Core Monthly banner

Happy New Year! January was a great way to start 2026: we opened the PrestaShop 9.1 Beta for community testing, shared deep dives into two major changes (Shipments and the improved Discounts system), and continued publishing the video recaps from the PrestaShop Developer Conference 2025.

PrestaShop 9.1 Beta: time to test what’s next

PrestaShop 9.1 Beta banner

If you’ve been waiting for a good moment to try the next minor version of PrestaShop, this was it. We released the first beta of 9.1 and, more importantly, asked for feedback early so we can polish things before the stable release. You can explore the changes, and tell us what works (and what doesn’t): PrestaShop 9.1 Beta is open for feedback!.

This beta is also a nice checkpoint for front-office developers. 9.1 is where Hummingbird v2 becomes the new default theme, bringing a modern stack, strong performance, and a big focus on accessibility.

Shipping without the “one order = one carrier” headache

Shipments feature preview banner

One of the biggest changes in 9.1 is the move from a carrier-centric model to a shipment-centric one. This is not a small refactor: it’s a structural improvement that finally makes multi-carrier scenarios clearer for merchants and less confusing for customers. It also opens the door to future features like more advanced fulfillment flows (and it does it safely, behind a feature flag): Introducing Shipments in PrestaShop.

Discounts rebuilt for clarity (and performance)

Discounts are another area where we chose to rebuild instead of patch. The new system in 9.1 makes discount rules easier to understand and aims to avoid the messy edge cases that appear when many cart rules start interacting. It’s also a step toward better performance in day-to-day catalog operations, again introduced behind a feature flag so you can test it progressively: Improved Discounts System in PrestaShop 9.1.

Developer Conference 2025: videos and takeaways

PrestaShop Developer Conference 2025 banner

We also continued Developer Conference 2025 recap series. If you couldn’t attend live (or want to rewatch the key moments), you can start with the opening sessions and Q&A and then pick the topics you care about most, like modern development practices, AI and productivity, or developer enablement and growth. All recordings are also available as a playlist on YouTube.

Summary

Besides these big topics, January was also full of steady improvements across the core, modules, themes, and tools. If you’re looking for the details, the PR list below is the best place to explore what changed and discover the people who made it happen.

Project releases

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

Code changes in the ‘develop’ branch

Back office

  • #40530: [multi-shipment] Fix split shipment carrier choice. Thank you, @M0rgan01
  • #40514: [Multi-carrier] Handle product deletion in order. Thank you, @M0rgan01
  • #40477: Add clickable product links in stock management pages. Thank you, @kpodemski

Core

FO / BO

  • #40424: Fixed inconsistancy use of variable in CartRule.php. Thank you, @pjouglet

Front office

  • #40587: [Multi-shipments] Added a compatibility layer for orders without shipments. Thank you, @M0rgan01

Installer

NO

Tests

Code changes in the ‘9.0.x’ branch

Back office

  • #40563: Admin API improvements for combination endpoints. Thank you, @jolelievre
  • #40556: Fix: CsvFileReader service fails with “You have requested a non-existent service ‘session’”. Thank you, @Codencode
  • #40554: Fix: always display taxes total in order summary. Thank you, @Codencode
  • #40532: BO Product page, fix feature value collection indexes. Thank you, @jolelievre
  • #40517: Add some help boxes to product page. Thank you, @Hlavtox
  • #40499: Fix: When saving an Attribute is_color_group is not updated.. Thank you, @Codencode
  • #40475: Fix link for redirection on country BO page. Thank you, @jolelievre
  • #40433: Fix: Module update problem. Thank you, @Codencode
  • #40066: Fix: [BO] Admin Countries page redirect issue with multishop after changing shop. Thank you, @Codencode
  • #40054: Use URL when building urls to prevent subtle mistakes with &?. Thank you, @tswfi
  • #40050: Fix: Incorrect redirect from HTTP to HTTPS on the admin login page when PrestaShop is in a subfolder. Thank you, @Codencode
  • #40036: BO - Product : Fixed feature display in multishop. Thank you, @Progi1984
  • #39854: Fix: Quick Access links redirect to root instead of subdirectory, causing 404. Thank you, @Codencode
  • #38775: Fix: Multishop - error loading CMS pages removed from the default shop. Thank you, @Codencode
  • #37667: Apply backoffice optimizations. Thank you, @Hlavtox

Core

  • #40604: Update classic to 3.0.6. Thank you, @Hlavtox
  • #40588: Update Changelog 9.0.3. Thank you, @jolelievre
  • #40585: Preliminary tasks for patch version 9.0.3. Thank you, @jolelievre
  • #40562: Update VAT rates for Estonia and Romania. Thank you, @Codencode
  • #40498: Fix: doctrine throws error from the beginning: There is no column with name “theme_name” on table “ps_image_type”. Thank you, @Codencode
  • #40496: Fix some type issues related to carriers. Thank you, @Hlavtox
  • #40479: Fix legacy profiler in the back office. Thank you, @kpodemski
  • #40423: Fix empty extra vars / product list when using the new automatic text email option. Thank you, @matrixino
  • #40040: Always request a non cached result in Order::getIdByCartId. Thank you, @ilsalvopss

FO, BO, WS

  • #40442: Fix: PHP Fatal error when deleting product image by Webservice API #39111. Thank you, @semicolonSimp

Front office

  • #40538: Fix quantity input, add to cart button and availability labels when items are added in a cart. Thank you, @Hlavtox
  • #40537: Remove unnecessary force refresh in checkout. Thank you, @Hlavtox
  • #40403: Allow easily hooking into country and currency selection logic. Thank you, @Hlavtox
  • #40246: Fix preview in multilang. Thank you, @tleon

Installer

  • #40574: Fix Makefile to prevent build assets twice. Thank you, @jolelievre
  • #40077: Install Console : Allow characters “<” & “>” in admin password. Thank you, @Progi1984

LO

Tests

  • #40607: Functional Tests : Bump @prestashop-core/ui-testing. Thank you, @Progi1984
  • #40512: Functional Tests : Bump @prestashop-core/ui-testing. Thank you, @Progi1984
  • #40458: Functional Tests : Bump @prestashop-core/ui-testing. Thank you, @Progi1984

Code changes in modules, themes and tools

.github

  • #13: Update doc link if doc change. Thank you, @Touxten

API Resources

Auto Upgrade module

Cash on delivery module

  • #178: Functional Tests : Fixed tests for Nightly with Hummingbird. Thank you, @Progi1984

Changes in developer documentation site

Changes in developer documentation sources

Changes in developer documentation theme

Classic theme

  • #199: Remove shipping cost in order details for multi-shipment scenarios. Thank you, @M0rgan01
  • #195: Remove outdated message. Thank you, @Hlavtox
  • #194: Backport - Use proper, standardized values in quantity input. Thank you, @Hlavtox
  • #193: Added a compatibility layer for orders without shipments. Thank you, @M0rgan01
  • #191: Update readme to clarify the version for each PrestaShop version. Thank you, @jolelievre
  • #189: Use proper, standardized values in quantity input. Thank you, @Hlavtox
  • #188: Bump 3.1.0 version. Thank you, @jolelievre
  • #187: Keep existing hooks in the theme config. Thank you, @jolelievre
  • #160: Removing backslashes in meta elements. Thank you, @Peter-Liska

Dashboard Products module

  • #67: Release 2.2.1. Thank you, @jolelievre
  • #66: Use translation domain convention for AdminGlobal xlf files. Thank you, @mattgoud

Distribution API

  • #76: Add missing release notes for beta and RC versions. Thank you, @jolelievre

Distribution API Client

Docker images

Faceted search module

  • #1205: Switched to external ci actions. Thank you, @tleon
  • #1203: Change “data” column from TEXT to LONGTEXT in layered_filter_block table. Thank you, @Prestaplugins

Hummingbird theme

  • #918: Remove shipping cost in order details for multi-shipment scenarios. Thank you, @M0rgan01
  • #916: Converted UPC to gtin13 in product schema. Thank you, @mgielecinski
  • #914: Fix structured data related to conditions. Thank you, @Hlavtox
  • #913: Add data for UI tests on ps_facetedsearch. Thank you, @tblivet
  • #912: Add alert message on ps_emailalerts. Thank you, @tblivet
  • #911: Fix for UI test blockwishlist. Thank you, @tblivet
  • #907: Update configuration and add explicit configuration in hooks. Thank you, @tblivet
  • #906: Added a compatibility layer for orders without shipments. Thank you, @M0rgan01
  • #903: Refactor emailalerts and psgdpr modules. Thank you, @tblivet
  • #902: Use proper, standardized values in quantity input. Thank you, @Hlavtox
  • #901: Add sticky position to the right column on the cart and checkout page. Thank you, @mgielecinski
  • #899: Feat webp support on category and subcategories. Thank you, @tblivet
  • #898: Feat add specific CSS class on product details. Thank you, @tblivet
  • #897: Feat add missing hook displayAddressSelectorBottom. Thank you, @tblivet
  • #895: Feat harmonize toast and colors. Thank you, @tblivet
  • #894: Keep existing hooks in the theme config. Thank you, @jolelievre
  • #892: Add a conditional alert message for TOS validation. Thank you, @tblivet
  • #891: Fix product discount table update and show_price condition. Thank you, @tblivet
  • #890: Fix bad contact link on 404 and 410 pages. Thank you, @tblivet
  • #889: Add distinction class on discounts on checkout page. Thank you, @tblivet
  • #883: Fix the supplier page and update the brand page. Thank you, @tblivet
  • #880: Fix missing labels when a product has no images. Thank you, @tblivet

Native-modules

  • #3: Add config for module ps_apiresources. Thank you, @jolelievre

The PrestaShop open source project

  • #304: Add affiliation details for external contributors. Thank you, @kpodemski

Traces

  • #175: Added new companies. Thank you, @Progi1984
  • #174: Fixed error “Call to undefined method Symfony\Component\Console\Application::add”. Thank you, @Progi1984
  • #172: Add okom3pom. Thank you, @Touxten

UI Testing Library

Wishlist block module


Acknowledgments

Thank you to all contributors this month!

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 just 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!