Skip to content

25.1.0

Latest
Compare
Choose a tag to compare
@fballiano fballiano released this 14 Jan 11:59
· 30 commits to main since this release
fcb4c25

🎉🎉 Welcome to a new release of Maho, the new ecommerce platform you already know! 🎉🎉
First release of 2025, huge release already, fasten your seatbelts for this ride, cause we powered through the holidays, cramming ~150 commits into Maho 25.1, shaking the foundations of open source ecommerce once more!

Creating Maho is a massive effort that requires all the help possible, please consider joining our sponsorship program.
It will make all the difference in the world!
become a sponsor

Maho rocks! 🚀
https://mahocommerce.com
https://demo.mahocommerce.com

Foundation

Maho 25.1.0 is based on OpenMage 21.0-beta2 + all the patches merged in the main branch up to 13th Jan 2025.

🚀 New features and major improvements

Completely removed prototypejs from our frontend!

This doesn't really need an explanation right? PrototypeJS was an ancient javascript library that was at the base of the M1 platform but that became anachronistic and unsupported, its last release was in 2015... It had to go, but removing it from the frontend was a huge, huge effort that took years in rewriting and testing thousands of lines of code. We focused on the frontend first because it's for sure the most important part, backend will come later. Better security, modern code, lighter frontend with hundreds of KB of javascript saved at each request.


Converted all colors into variables for easy color scheme customization

Customizing the color scheme of your store was never this easy!

We've reviewed 10k lines of CSS, extracted and cleaned all colors and moved them into 25 CSS variables to allow you to have complete control, but also to make a another step forward in the modernization of Maho's frontend.




Added optional 2 Factor Authentication for backend

In 2025 security is no joke to anybody, 2FA was a requested feature since long time and we wanted Maho to have native support for that.

With Maho 25.1 your backend users can decide to enable 2FA, scan the autogenerated SVG QR code (no temporary image files are generated, for enhanced security and easier sysadmin maintenance), save, done.




Added Order Status color

Having a great support for modules was the key to the success of the M1 platform, but at Maho we believe that key functionalities should be bundled in the core, that's why we decided to add support for assigning a color to each order-status, something that a lot of stores were already using with 3rd party code.

Now, natively, with just a few clicks, store managers have an easier way to overview the orders, allowing for faster workflow and less possibility to forget to process an order.




Composer plugin v3

Bootstrapping Maho now just requires 3 lines of code, gone are the days of including bootstrap.php, Mage.php and then still it wasn't working.
Our composer plugin v3 enables full composer autoload for the whole platform, autoloading performance improvement and full support for Modman based modules.




Removed the ancient ExtJS and replaced with Maho Tree

ExtJs is a powerful tool, but because of licensing, the version that was bundled in the M1 platform for 10+ years was extremely obsolete. Here again we rethought the whole thing, looking for alternatives and deciding to create our own minimal js tree library based on standard HTML elements like details/summary. HTML/CSS are extremely powerful now and we should always try to leverage the standards as much as possible, this will assure better maintainability, security and performance.




New design for star rating

The previous implementation looked old and outdated, it was time for a complete overhaul. It's not a big deal in the great schema of things, but reviews are still important for ecommerce websites and the need for a quick, clear and modern interface to allow customers to leave a review was absolutely necessary.




Dashboard charts are now based on Chart.js

Dashboard charts relied on a 3rd party server for many, many years, in the M1 platform. That is a problem on multiple levels, what if that server goes down? Also, in order to generate the charts, all the data was obviously sent to that service and... well.. let's say we don't want to leak our precious sales data. At Maho we are dedicated at tackling these infrastructural problems and here we are again, with a local-only chart solution for the backend dashboard, modern, interactive and safe.




Added "Cron Jobs" mask to "System -> Tools"

For many years the M1 platform had a few modules to see and modify cron jobs, we think such a configuration is better held via code, but it's extremely helpful to be able to see which cron jobs are running, for how long and if there are any errors. This is now possible without having to install any 3rd party module.


🐛 Minor bugfix, improvements and changes

  • Fixed target file format conversion for images (#79)
  • Added $this->getResponse()->setBodyJson() method (#85)
  • Backend: Rewrote file uploader without flow.js (now removed from the repo) and prototype.js (#91)
  • Backend: Rewrote WYSIWYG without PrototypeJS (#87)
  • Backend: Removed double span element from HTML buttons
  • RWD: Removed double span element from HTML buttons
  • RWD: Removed DOM element span.swatch-label from layered navigation
  • Frontend: Restyled swatches with flexbox, also made them slightly bigger to respect touch-point-sizing
  • Frontend: Removed a few "go back" and "change" links from checkout for better readability
  • Removed obsolete install scripts (#65)
  • Fixed bug with Mage::getModel('core/url')->getUrl('', ['_current' => true, '_query' => false]) (#82)
  • Fixed configurable swatches undefined array key warning (#80)

🛠️ Technical updates

  • Updated PHPStan to 2.1
  • Updated Rector to 2.0

And many more, be sure to check the full changelog.