PrestaShop Core Monthly - January 2026
9.1 Beta opens for feedback, Developer Conference videos go live, and big features take shape
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.

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
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
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
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
-
Dashboard Products module, v2.2.1 released on 2026-01-07.
-
Distribution API Client, v2.1.1 released on 2026-01-07.
-
Faceted search module, v4.0.3 released on 2026-01-04.
A quick update about PrestaShop’s GitHub issues and pull requests:
- 71 new issues have been created in the project repositories;
- 72 have been closed, including 0 fixed issues on the core;
- 368 pull requests have been opened in the project repositories;
- 355 pull requests have been closed, including 280 merged 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
Front office
- #40587: [Multi-shipments] Added a compatibility layer for orders without shipments. Thank you, @M0rgan01
Installer
- #40224: B2B Contribution - EPIC 0-US0: Creation of the “improved_b2b feature” feature flag. Thank you, @soledis-contributeur
NO
Tests
- #40566: Nightly : Remove 8.0 & 8.1. Thank you, @Progi1984
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
- #40521: Fix default fixtures translation. Thank you, @jolelievre
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
API Resources
- #134: Release 0.3.0. Thank you, @jolelievre
- #132: Revise contributing guidelines for API improvements. Thank you, @kpodemski
- #131: Discount API and tests refacto. Thank you, @jolelievre
- #129: Add endpoint to duplicate a discount. Thank you, @boherm
- #121: Add combinations endpoint. Thank you, @sebajps
- #119: Make nullable discount quantity and quantity per user. Thank you, @boherm
Auto Upgrade module
- #1626: UI tests - Fix the matrix of the nightly CLI. Thank you, @nesrineabdmouleh
- #1621: Fix loading of container on very old versions of PS. Thank you, @Quetzacoalt91
- #1619: UI tests - Add upgrade from 8.2.3 on php 8.1. Thank you, @nesrineabdmouleh
- #1618: Prepare release 7.5.1 of Update Assistant (PrestaShop 9.0.3). Thank you, @Quetzacoalt91
- #1617: New Crowdin updates. Thank you, @ps-jarvis
- #1616: Translation catalog update. Thank you, @github-actions
- #1615: New Crowdin updates. Thank you, @ps-jarvis
- #1612: New Crowdin updates. Thank you, @ps-jarvis
- #1611: Update hooks for 9.0.3. Thank you, @jolelievre
- #1610: Translation catalog update. Thank you, @github-actions
- #1609: Allow copy of errors in report modal. Thank you, @Quetzacoalt91
- #1607: New Crowdin updates. Thank you, @ps-jarvis
- #1605: Update wording regarding the error report. Thank you, @Quetzacoalt91
- #1602: Let the file_get_contents method throw warnings about the issues they encountered. Thank you, @Quetzacoalt91
- #1601: Translation catalog update. Thank you, @github-actions
- #1600: Add stack trace when possible in error report modal. Thank you, @Quetzacoalt91
- #1599: Speed up execution of files updates by moving files instead of copying them. Thank you, @Quetzacoalt91
- #1598: UI tests - Fix check module configuration page title of PS 1.7.1.2. Thank you, @nesrineabdmouleh
- #1597: Fix position of minimum_product_quantity field in table. Thank you, @nicosomb
- #1595: Update aliases of Environment classes in Container. Thank you, @Quetzacoalt91
- #1594: Add changes for PR 40403 [Dev branch]. Thank you, @Quetzacoalt91
- #1593: Improve display of update:check-modules command. Thank you, @Quetzacoalt91
- #1592: Translation catalog update. Thank you, @github-actions
- #1590: Change how we get the Request object. Thank you, @Quetzacoalt91
- #1589: [FIX] Toggle off events on web when requested. Thank you, @ga-devfront
- #1587: New Crowdin updates. Thank you, @ps-jarvis
- #1585: Translation catalog update. Thank you, @github-actions
- #1584: [FIX] PHP deprecation notices break JSON responses in AJAX endpoints. Thank you, @ga-devfront
- #1582: Add changes for PR 40403. Thank you, @Hlavtox
- #1581: Make
quantityandquantity_per_usernullable incart_ruletable. Thank you, @boherm - #1580: Initiate new discount types table in 9.1.0. Thank you, @boherm
- #1577: Insert new hooks for 9.1.0 version. Thank you, @jolelievre
- #1547: Allow a module to be updated even if it does not have a config.xml file. Thank you, @Quetzacoalt91
- #1543: Fix the paths of the deleted files, which were absolute but invalid paths. Thank you, @Quetzacoalt91
- #1542: B2B Contribution - EPIC 0-US0: Creation of the “improved_b2b feature” feature flag. Thank you, @soledis-contributeur
- #1541: Avoid impacting statistics of succesfull updates with test cases. Thank you, @Quetzacoalt91
- #1528: Create “update:check-modules” command. Thank you, @M0rgan01
- #1522: Add nullable type on implicit types. Thank you, @Quetzacoalt91
- #1485: Introduce a safe mode of PrestaShop to avoid loading modules. Thank you, @Quetzacoalt91
Cash on delivery module
- #178: Functional Tests : Fixed tests for Nightly with Hummingbird. Thank you, @Progi1984
Changes in developer documentation site
- #43: Some improvements. Thank you, @kpodemski
Changes in developer documentation sources
- #2098: Fix indentation style. Thank you, @nekoprog
- #2097: Update nginx configuration documentation. Thank you, @nekoprog
- #2095: Add new hooks from 9.0.x. Thank you, @jolelievre
- #2094: Update Symfony Console documentation links [Module]. Thank you, @marsaldev
- #2093: Notable changes in PrestaShop 9.1. Thank you, @kpodemski
- #2092: Fix formatting in tutorial.md for ps_versions_compliancy. Thank you, @MrBaiame
- #2091: Improvement for API Contributions documentation. Thank you, @kpodemski
- #2089: Fix problem with minver shortcode. Thank you, @kpodemski
- #2088: [FEAT] Add theme changes for PS 9.1. Thank you, @ga-devfront
- #2087: Missing doc for 9.0 and ManufacturerPresenter + related changes. Thank you, @kpodemski
- #2086: FormChoiceFormatter documentation. Thank you, @kpodemski
- #2085: Missing form types. Thank you, @kpodemski
- #2083: Improvements for 9.0.x docs. Thank you, @kpodemski
- #2082: Fix description for ‘identifier’ key in helperOptions. Thank you, @jf-viguier
- #2081: fix identifier description in helperOptions. Thank you, @jf-viguier
- #2080: Remove PrestaShop SA marketplace specific guidelines for module overr…. Thank you, @jf-viguier
- #2079: New commands listing. Thank you, @kpodemski
- #2078: Updated commands for PrestaShop 9.1. Thank you, @kpodemski
- #2077: Fix information about using translator in PS9. Thank you, @kpodemski
- #2076: Fix link to DemoProductForm example module. Thank you, @jf-viguier
- #2075: Update links to version 9.0.x in domain services. Thank you, @jf-viguier
- #2064: [UPDATE] Autoupgrade documentation for 1.7.x. Thank you, @ga-devfront
- #2063: [UPDATE] Autoupgrade documentation for 8.x. Thank you, @ga-devfront
- #2062: [UPDATE] Autoupgrade documentation for 9.x. Thank you, @ga-devfront
Changes in developer documentation theme
- #68: Fix for cookie popup. Thank you, @kpodemski
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
- #68: Prepare release of v2.1.1 of ps_distributionapiclient. Thank you, @Quetzacoalt91
- #67: Bump to v2.1.1. Thank you, @Quetzacoalt91
- #66: Fix return type of upgrade methods. Thank you, @Quetzacoalt91
Docker images
- #462: Sync backlog of Docker images. Thank you, @github-actions
- #461: Sync backlog of Docker images. Thank you, @github-actions
- #459: Sync backlog of Docker images. Thank you, @github-actions
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
- #802: Fix page title of upgrade config page title PS 1.7.1. Thank you, @nesrineabdmouleh
- #794: Hummingbird 2 : Part 4. Thank you, @Progi1984
- #793: Add selectors to check multicarrier in FO. Thank you, @nesrineabdmouleh
- #788: Export FO pages (depending on the env value PS_THEME_FO) (Part 2). Thank you, @Progi1984
- #787: Fix autoupgrade page for 1712. Thank you, @nesrineabdmouleh
- #786: Export FO pages (depending on the env value PS_THEME_FO). Thank you, @Progi1984
- #781: Adapt HB selectors for module GDPR. Thank you, @jolelievre
- #779: Hummingbird 2 : Part 3. Thank you, @Progi1984
- #778: Hummingbird 2 : Part 2. Thank you, @Progi1984
Wishlist block module
- #383: Functional Tests : Fixed CI. Thank you, @Progi1984
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!
boherm
Codencode
ga-devfront
Hlavtox
ilsalvopss
jf-viguier
jolelievre
kpodemski
M0rgan01
marsaldev
matrixino
mattgoud
mgielecinski
MrBaiame
nekoprog
nesrineabdmouleh
nicosomb
Peter-Liska
pjouglet
Prestaplugins
Progi1984
ps-jarvis
Quetzacoalt91
sebajps
semicolonSimp
ShaiMagal
soledis-contributeur
tblivet
tleon
Touxten
tswfi
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!


