PrestaShop Core Monthly - April 2026
A critical security release, AI tooling taking shape across the project, and a save-the-date for PS Summit in Lyon.
A busy month in the codebase: a critical security release, fast iteration on bringing AI into the project’s workflows, and a save-the-date for PS Summit in Lyon.

Dear community,
April was a heads-down month. GitHub activity stayed high, with 254 pull requests merged across the project and a critical security patch shipped on both supported branches. The One Page Checkout module, the new pricing engine, and a fresh layer of AI-assisted tooling all kept moving forward, and several of you may already have noticed the latter showing up in pull request reviews.
Critical security release: 9.1.1 and 8.2.6
On April 28th, we released PrestaShop 9.1.1 and PrestaShop 8.2.6 simultaneously. Both patches address the same critical stored Cross-Site Scripting vulnerability in the back office Customer Service view (GHSA-w9f3-qc75-qgx9, severity 9.3/10). If you have not updated yet, please do so as soon as possible. The release articles also document a hotfix module and a manual patch for shops that cannot update immediately.


A reminder: the safest path to apply the fix is the Update Assistant, which received its own version bumps (7.6.2 and 7.6.3) during the same window thanks to work from @Quetzacoalt91 and @ga-devfront.
AI tooling takes shape across the project
@jolelievre introduced an AI-driven pre-review workflow, packaged as a reusable GitHub Action so it can eventually be shared across repositories. The shared workflow lives in the project’s .github repository and is currently piloted on ps_apiresources only, where it runs on a small set of opted-in contributors and specific labels rather than every pull request. The setup adds explicit guard failures, label management, and a documented CONTEXT.md that gives the AI reviewer enough information about the codebase to be useful instead of noisy. The intent is to learn from this pilot before considering wider rollout.
The work goes beyond reviews. A new skills repository was created (with initial contributions from @Quetzacoalt91) to host reusable Claude Code skills for the project, and @tleon opened the door for AI assistants to operate inside the core itself with two foundational PRs: #41205 introducing the base AI structure and contexts, and #41279 adding a Symfony migration skill. AI context files also landed in Hummingbird (AI context enhancement by @tblivet) and in ps_apiresources for the skills endpoint (by @boherm). And on the human side, the developer documentation gained a dedicated page on AI-assisted development, also by @jolelievre.
The direction is consistent: bring AI assistants into the contributor workflow as helpers, not gatekeepers, and make sure every repository carries the context an assistant needs to be accurate. We are planning a dedicated article to walk through the approach in detail, including how we help AI assistants navigate a codebase as large and layered as PrestaShop’s. Expect more on this in the coming months.
Save the date: PS Summit, November 4-5 in Lyon
We rarely have the chance to put the whole ecosystem in the same room, and this autumn we will. The PS Summit brings the PrestaShop and Sylius open source communities together at the Palais des Congrès in Lyon on November 4 and 5, 2026. Around 500 merchants, developers, agencies, and partners are expected, with hands-on workshops, dedicated tech tracks, and shared sessions on commerce strategy and trends. Admission is free, and registration is opening soon. If you contribute to the project, this is a great opportunity to meet the people behind the pull requests in person, including the core team. Bookmark the date.

Most active contributors
Counting all merged pull requests across the project’s repositories in April:
- @nesrineabdmouleh (17 PRs): kept up a remarkable pace on functional tests, with extensive coverage added for catalog price rules and the new Discounts feature in both the PrestaShop core and the UI Testing Library.
- @jolelievre (15 PRs): drove the AI pre-review workflow rollout, fine-tuned the Claude integration, and pushed the pricing v2 work forward by integrating the new price calculator into
getPriceStaticandgetProductProperties. - @Progi1984 (14 PRs): completed the removal of the 9.0.x branch from the PrestaShop core, test-scenarios and presthubot, bumped the core to 9.1.2, and shipped functional tests for the new admin discount API.
- @Hlavtox (13 PRs): single-handedly modernized six native front-office modules (ps_bestsellers, ps_categoryproducts, ps_featuredproducts, ps_newproducts, ps_viewedproduct, and a start on ps_specials), pushing them to new majors.
- @Quetzacoalt91 (12 PRs): kept the Update Assistant busy with two version bumps (7.6.2 and 7.6.3), wording improvements around incompatible modules, and the addition of an
updateoption for module uninstallation. Also kicked off the new skills repository.
Spotlight on community contributors
April brought meaningful work from outside the core team. Five contributors stood out:
- @Hlavtox for steady work on several native modules this month. The kind of focused contribution that keeps the ecosystem healthy.
- @PrestaEdit for keeping the traces registry accurate as the project’s footprint shifts: adding
skillsandps_onepagecheckoutto the modules list, movingminimal-themeto documentation, and listingthemeinstallator. - @MAX-IT-Tech for a careful pass on the developer documentation, updating internal and external links for the 9.1.x branch and pinning line-anchored GitHub references to the right tag.
- @Codencode for several core bug fixes, including child theme translation loading in the BO translation API, a fix for the
actionCarrierUpdatehook on the migrated carrier page, and adding sortable social fields in the ps_socialfollow configuration form. - @soledis-contributeur for a B2B-oriented contribution that spanned two repositories: adding a
labelcolumn and dropping the legacyenterprise_idfrom theBusinessIdentifierentity in the PrestaShop core, with the matching change in the Update Assistant.
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!
And the rest
A few other strands of work kept moving in the background. The Multi-carrier and Improved Shipments features picked up more pieces, with @Poulinhoo merging shipment management into the existing order command and @Nakahiru adding shipment information to invoices. The new pricing engine progressed with the introduction of CartCalculator by @boherm. Analytics tracking was wired into ps_onepagecheckout by @dylanDenizonPresta, and @ga-devfront finally removed jQuery from the Hummingbird theme dependencies.
The full breakdown of every merged PR is below. As always, thanks to everyone who contributed code, reviews, issues, or comments this month.
Project releases
-
PrestaShop, PrestaShop 9.1.1 released on 2026-04-27.
-
PrestaShop, PrestaShop 8.2.6 released on 2026-04-27.
-
Dashboard Goals module, v2.0.5 released on 2026-04-04.
-
Best sellers module, v2.0.0 released on 2026-04-15.
-
Products in the same category module, v2.0.0 released on 2026-04-15.
-
Featured products module, v3.0.0 released on 2026-04-15.
-
New Products module, v2.0.0 released on 2026-04-16.
-
Viewed products block module, v2.0.0 released on 2026-04-15.
A quick update about PrestaShop’s GitHub issues and pull requests:
- 94 new issues have been created in the project repositories;
- 657 have been closed, including 2 fixed issues on the core;
- 328 pull requests have been opened in the project repositories;
- 360 pull requests have been closed, including 254 merged pull requests.
Code changes in the ‘9.1.x’ branch
Back office
- #41193: Fix child theme translation loading in BO translation API. Thank you, @Codencode
- #41100: Fix email HTML previews for module emails. Thank you, @axel-paillaud
- #40975: Fix sidebar blanking on RTL. Thank you, @cnavarro-prestashop
- #40971: Fix pass shop group ID when setting context in LogoUploader. Thank you, @mehdiboissat-bron
- #40829: Fix validate medium pass. Thank you, @tleon
- #40070: Fix: actionCarrierUpdate not triggered on migrated carrier page. Thank you, @Codencode
Core
- #41358: Bump 9.1.2. Thank you, @Progi1984
- #41230: Bump the version of the prestashop/dashgoals package from v2.0.4 to v2.0.5. Thank you, @cnavarro-prestashop
- #41188: Update Symfony components after 6.4.36 release. Thank you, @nicosomb
Tests
- #41236: Functional Tests : @prestashop-core/ui-testing. Thank you, @Progi1984
Code changes in the ‘develop’ branch
Back office
- #41260: TEST [E2E] update Design Pages page with meta title column. Thank you, @paulnoelcholot
- #41116: Fix: align on the same line inline grid action and regular grid action. Thank you, @Nakahiru
- #41081: Merge add shipment in existing command. Thank you, @Poulinhoo
- #41026: Add form builder for edit shipment form. Thank you, @Poulinhoo
- #40591: Feat(shipment): add shipments information on invoices. Thank you, @Nakahiru
Core
- #41336: Improves stale issues workflow : increases cron interval to 20 minutes and adjusts the GitHub API operations limit to 1000.. Thank you, @cnavarro-prestashop
- #41279: Create a skill for symfony migration in prestashop. Thank you, @tleon
- #41277: Ai fine tunes, update readme and release builder. Thank you, @jolelievre
- #41229: Bump the version of the prestashop/dashgoals package from v2.0.4 to v2.0.5. Thank you, @cnavarro-prestashop
- #41227: Remove 9.0.x branch. Thank you, @Progi1984
- #41095: Init CartCalculator for pricing v2. Thank you, @boherm
- #41089: Integrate the price calculator in getPriceStatic and getProductProperties. Thank you, @jolelievre
Front office
Installer
- #41205: Base of ai structure and contexts. Thank you, @tleon
- #41200: B2B Contribution - Add “label” column & remove enterprise_id column to BusinessIdentifier entity. Thank you, @soledis-contributeur
Tests
- #41306: Functional tests : BO - Catalog price rules - CRUD - Price(tax excl.). Thank you, @nesrineabdmouleh
- #41282: Functional tests : Add new test to CRUD catalog price rules with different groups. Thank you, @nesrineabdmouleh
- #41242: Functional tests - Add new test to CRUD country in catalog price rules. Thank you, @nesrineabdmouleh
- #41207: Functional tests : BO - Discount - Create a discount that applies automatically or via promo code. Thank you, @nesrineabdmouleh
- #41202: Functional Tests : API : POST /admin-api/discounts. Thank you, @Progi1984
- #41153: Functional tests : BO - Discount - Trigger based on the total quantity of products in the cart. Thank you, @nesrineabdmouleh
- #41150: Functional tests : BO - Discount - Check period. Thank you, @nesrineabdmouleh
- #40384: Fix: SQL syntax for table checksum query (fixes #40383). Thank you, @the-ge
Code changes in the ‘8.2.x’ branch
Back office
- #41240: Fix the shop name in BO login. Thank you, @alexandrebrubeyonds
Code changes in modules, themes and tools
.github
- #45: Add job display names and upgrade actions/checkout to v6. Thank you, @jolelievre
- #44: Add reusable ai-guarded-review workflow. Thank you, @jolelievre
- #43: Add debug output to ai-prereview-guard workflow. Thank you, @jolelievre
- #42: Add reusable AI pre-review guard workflow and labels. Thank you, @jolelievre
API Resources
- #200: Add job display names and upgrade actions/checkout to v6. Thank you, @jolelievre
- #199: Simplify workflow to use reusable ai-guarded-review. Thank you, @jolelievre
- #198: Fix execution file JSON parsing in validation step. Thank you, @jolelievre
- #197: Improve Claude review: fix tools, increase turns, focus on PR diff. Thank you, @jolelievre
- #196: Fix claude-code-action inputs and label management. Thank you, @jolelievre
- #195: Add explicit guard failure and use official guard workflow. Thank you, @jolelievre
- #194: Update the url for the check guard action. Thank you, @jolelievre
- #192: Add Claude AI pre-review workflow and enrich CONTEXT.md. Thank you, @jolelievre
- #190: Add AI context and rework on the skill endpoint. Thank you, @boherm
- #189: Remove support for 9.0.x. Thank you, @Progi1984
- #162: Search Engine endpoints. Thank you, @boherm
- #152: Add Profile API Platform. Thank you, @tblivet
Auto Upgrade module
- #1793: Add missing mention of latest update option in Readme. Thank you, @Quetzacoalt91
- #1788: Merge
7.6.xindevbranch. Thank you, @Quetzacoalt91 - #1787: UI tests - Skip run tests on docker images with problem. Thank you, @nesrineabdmouleh
- #1784: Bump to v7.6.3. Thank you, @Quetzacoalt91
- #1778: Make wording about incompatible module more explicit about uninstallation. Thank you, @Quetzacoalt91
- #1777: Add update option for module uninstallation. Thank you, @Quetzacoalt91
- #1776: Merge
7.6.xindevbranch. Thank you, @Quetzacoalt91 - #1771: B2B Contribution - Add “label” column to BusinessIdentifier entity. Thank you, @soledis-contributeur
- #1770: Bump version to 7.6.2. Thank you, @ga-devfront
- #1769: Make sure checkModuleRequiresAttention() is called for all channels expect when version is unknown or store is up-to-date. Thank you, @Quetzacoalt91
- #1767: fix: avoid undefined array key warnings in AjaxResponseBuilder. Thank you, @Quetzacoalt91
- #1766: Merge
7.6.xindevbranch. Thank you, @Quetzacoalt91 - #1753: Handle no chain mode configuration. Thank you, @M0rgan01
- #1712: Maintenance GitHub workflows. Thank you, @ga-devfront
- #1711: Update header stamps. Thank you, @ga-devfront
- #1663: Refacto config files. Thank you, @ga-devfront
Best sellers module
- #41: Release version 2.0.0. Thank you, @Hlavtox
- #40: Remove caching system and bump version to 2.0.0. Thank you, @Hlavtox
Cash on delivery module
- #213: Functional Tests : Update matrix. Thank you, @Progi1984
Changes in developer documentation site
- #45: Exclude context from the build. Thank you, @tblivet
- #44: Exclude claude from the build. Thank you, @tblivet
Changes in developer documentation sources
- #2138: Update PHP branch in workflow configuration. Thank you, @kpodemski
- #2137: Document AI assisted development. Thank you, @jolelievre
- #2136: Fix incorrect internal documentation links for the 9.1.x transition. Thank you, @MAX-IT-Tech
- #2134: Update external documentation links for clarity and accuracy. Thank you, @MAX-IT-Tech
- #2133: Pin line-anchored GitHub links to the 9.1.0 tag. Thank you, @MAX-IT-Tech
- #2132: Update documentation links to the PrestaShop 9.1.x branch. Thank you, @MAX-IT-Tech
- #2130: Update objectNodeName from ‘articles’ to ‘article’. Thank you, @dali-rajab
- #2128: Update theme name description in installation guide. Thank you, @PrestaEdit
- #2084: Update service definitions and add webservice container. Thank you, @islemdev
Changes in developer documentation theme
Dashboard Goals module
- #46: Release 2.0.5. Thank you, @cnavarro-prestashop
- #45: Update version to 2.0.5 in config.xml and dashgoals.php. Thank you, @cnavarro-prestashop
- #44: Fix tooltip content logic in bar_chart_goals function to handle null values and improve readability.. Thank you, @cnavarro-prestashop
Distribution API
- #87: Enable updates to PS 8.2.6 and 9.1.1. Thank you, @Quetzacoalt91
- #86: Update latest version of autoupgrade to be 7.6.3. Thank you, @ga-devfront
- #85: chore: update autoupgrade version to 7.6.2. Thank you, @ga-devfront
Docker images
- #477: Sync backlog of Docker images. Thank you, @ps-jarvis
- #476: Sync backlog of Docker images. Thank you, @ps-jarvis
Featured products module
- #64: Release version 3.0.0. Thank you, @Hlavtox
- #63: Remove caching system and bump version to 3.0.0. Thank you, @Hlavtox
Hummingbird theme
- #992: Allow HTML in product flags. Thank you, @Hlavtox
- #987: Add PrestaShop compatibility table on the readme . Thank you, @tblivet
- #986: Fix order detail hook display. Thank you, @tblivet
- #983: AI context enhancement. Thank you, @tblivet
- #981: Enhanced product-list-jsonld. Thank you, @tblivet
- #978: [FORWARDPORT] Sync 2.x into develop. Thank you, @tblivet
- #977: fix ps_customersignin.tpl Sign in url. Thank you, @mcaldex
- #975: Fix checkout step hook navigation. Thank you, @ga-devfront
- #969: Remove JQuery from dependencies. Thank you, @ga-devfront
New Products module
- #35: Release version 2.0.0. Thank you, @Hlavtox
- #34: Remove extra settings and bump compatibility. Thank you, @Hlavtox
- #33: Remove caching system and bump version to 2.0.0. Thank you, @Hlavtox
PrestaShop Flashlight
- #175: List all PS9 versions with their php flavour. Thank you, @Alexandre-Lematre
PrestaShop test scenarios
- #695: Remove 9.0.x branch. Thank you, @Progi1984
Presthubot
- #456:
slack:notifier: Remove 9.0.x support. Thank you, @Progi1984 - #453:
slack:notifier: PR Stats for QA (Remove 1.7.8.x => 8.1.x) & By Community. Thank you, @Progi1984
Products in the same category module
- #49: Release version 2.0.0. Thank you, @Hlavtox
- #48: Remove caching system and bump version to 2.0.0. Thank you, @Hlavtox
- #46: Fix: Respect customer group show_prices setting. Thank you, @drhide16
Ps_onepagecheckout
- #37: [fix] Analytics: fix trackCheckoutStarted/Completed calling trackEvent with wrong number of arguments. Thank you, @dylanDenizonPresta
- #36: [SPE-82] feat(analytics): track Checkout Started and Checkout Completed. Thank you, @dylanDenizonPresta
- #35: [SPE-25] - Add confirmation modale for payout layout switch . Thank you, @sylardiere
- #34: [SPE-30] - Multicarrier => Vérifier le bon affichage des transporteurs lorsque le feature flag “Improved shipment” est actif. Thank you, @sylardiere
- #32: [SPE-81] feat(analytics): track OPC module lifecycle and checkout layout events. Thank you, @dylanDenizonPresta
- #31: SPE-113/ Add XLF translations (Admin+Shop). Thank you, @dylanDenizonPresta
- #28: [SPE-83] feat(analytics): track OPC critical errors. Thank you, @dylanDenizonPresta
- #25: fix(opc): SPE-110 sync pay button amount on voucher changes. Thank you, @julienr114
- #23: [SPE-105] feat(analytics): add Segment PHP client bootstrap. Thank you, @dylanDenizonPresta
- #22: fix: eager-evaluate tax-sensitive cart properties before temp address cleanup. Thank you, @julienr114
- #21: Feat: finish opc migration. Thank you, @ThbPS
- #20: [SPE-106] BO - Checkout configuration modal modification. Thank you, @sylardiere
- #19: Feat: use Core interface to resolve checkout process provider. Thank you, @ThbPS
Skills
- #2: Remove trailing pipes in PR template. Thank you, @Quetzacoalt91
- #1: Use commands with quiet param. Thank you, @Quetzacoalt91
Social Follow module
- #56: Renaming Twitter by X. Thank you, @AureRita
- #51: Add sortable social fields in module configuration (HelperForm). Thank you, @Codencode
Special offers module
- #26: Remove caching system and bump version to 2.0.0. Thank you, @Hlavtox
- #23: Change product sort for performance and UX. Thank you, @jf-viguier
Traces
- #210: Add ‘skills’ to the documentation list. Thank you, @PrestaEdit
- #209: Add ‘ps_onepagecheckout’ to modules. Thank you, @PrestaEdit
- #208: Move ‘minimal-theme’ to documentation. Thank you, @PrestaEdit
- #207: Add ’themeinstallator’ to modules list. Thank you, @PrestaEdit
- #206: Add ‘minimal-theme’ to supported themes list. Thank you, @PrestaEdit
UI Testing Library
- #949: Added method
getValueinboProductSettingsPage. Thank you, @Progi1984 - #948: Add some fixes to orders - view - block tab list (Related to multicarrier). Thank you, @nesrineabdmouleh
- #943: Data - Demo : Bump the current version of psNewProducts module 1.0.5 to 2.0.0. Thank you, @nesrineabdmouleh
- #942: Multicarrier - Adapt add tracking number with the refactoring. Thank you, @nesrineabdmouleh
- #941: Added method
getContributionPercentageforBOWallOfFamePage. Thank you, @paulnoelcholot - #937: Catalog price rules : Fix leave initial price condition. Thank you, @nesrineabdmouleh
- #936: Add generateRobotsTextFile method to BOSeoUrlsPage. Thank you, @mattgoud
- #935: Catalog proce rules : Fix initial price to true. Thank you, @nesrineabdmouleh
- #934: Catalog price rule - Add some checks to catalog price rule. Thank you, @nesrineabdmouleh
- #917:
boProductsCreateTabDescriptionPage: FixedgetNumberOfImageson slow pages. Thank you, @Progi1984 - #910: Add generate random code to discount v2. Thank you, @nesrineabdmouleh
- #909: Discounts : Fetch input data. Thank you, @Progi1984
- #908: Add the string type to product number. Thank you, @nesrineabdmouleh
- #906: Fix discount period condition. Thank you, @nesrineabdmouleh
- #904: Adapt discount with product quantity. Thank you, @nesrineabdmouleh
Viewed products block module
- #46: Fix CI with tag 9.0.3. Thank you, @jf-viguier
- #45: Release version 2.0.0. Thank you, @Hlavtox
- #44: Remove caching system and bump version to 2.0.0. Thank you, @Hlavtox
Wishlist block module
- #426: Functional Tests : Update matrix. Thank you, @Progi1984
- #409: Fixed CI PHPStan. 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!
Alexandre-Lematre
alexandrebrubeyonds
AureRita
axel-paillaud
boherm
cnavarro-prestashop
Codencode
dali-rajab
drhide16
dylanDenizonPresta
ga-devfront
Hlavtox
islemdev
jf-viguier
jolelievre
julienr114
kpodemski
M0rgan01
mattgoud
MAX-IT-Tech
mcaldex
mehdiboissat-bron
Nakahiru
nesrineabdmouleh
nicosomb
paulnoelcholot
Poulinhoo
PrestaEdit
Progi1984
ps-jarvis
Quetzacoalt91
soledis-contributeur
sylardiere
tblivet
ThbPS
the-ge
tleon
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!