24.9.0
🎉🎉 Welcome to the first public release of Maho, the new ecommerce platform you already know! 🎉🎉
This might sound odd, and that's intentional 😉 Maho is part of the M1 ecosystem, started in 2008 with Magento1, then followed by OpenMage and now here we are. A platform you're already familiar with, but brand new in many many aspects!
Maho wants to provide a forward-thinking approach, fun for developers, a modern environment but keeping our strong roots of the M1 platform.
We have about 250 commits for this release 🤯, ranging from minor tweaks to major feature additions, so... buckle up! And notice that we had to omit many minor details for brevity but we hope to have highlighted everything important.
🚨⚠ DISCLAIMER ⚠🚨
Maho is a big shift in the M1 paradigm so please, for the time being, handle it with care. As much as we'd love to see production stores going live on Maho, be sure to test everything very carefully.
Maho rocks! 🚀
https://mahocommerce.com
Foundation
Maho 24.9.0 is based on OpenMage 21.0-beta2 + all the patches merged in the main branch up to 18th Sep 2024
The new paradigm
Three main pillars set Maho apart from any other M1 based platform:
- Project structure: no duplicates files from the core is your project folder, like any other modern PHP project, frameworks and libraries live only in the
vendor
folder, thanks to composer, our new composer-plugin and our completely rewritten autoloaders.
This means a clean project structure that only contains YOUR code and less possibilities for inexperienced developers to "patch the core". - Built in CLI tool ./maho: with inspirations from Laravel Artisan, Laravel starter project and the great n98-magerun (three extremely important pieces of software both historically and in the current open source landscape) we decided to create our own CLI tool, make it as complete as possible, and bundle it. In the meanwhile we also made it expandable so that you can build your own commands.
media
,js
andskin
folders now live inside thepublic
directory, it is now mandatory to set the document root of your web server (Apache, Nginx, Caddy or FrankenPHP) topublic
.
This may be a bit more uncomfortable on some shared hostings, but it's needed to keep things simpler and, most importantly, more secure.
Important things you must know
- API: Adjusted WSDL attributes for Maho branding
If your project has custom APIs you've to search forurn:Magento
andurn:OpenMage
and replace all occurrences withurn:Maho
, to do that you can run these commands- on Linux
find app -type f -exec sed -i 's/urn:\(Magento\|OpenMage\)/urn:Maho/g' {} +
- on MacOS (be sure to have
gsed
installed)find app -type f -exec gsed -i 's/urn:\(Magento\|OpenMage\)/urn:Maho/g' {} +
- on Linux
- PHP 8.2 minimum: more performant end secure, this change also allows us to remove a lot of polyfills from our composer.json, slimming down your final vendor folder but also ensuring that you use native PHP functionalities instead of the less performant 3rd party polyfills
- The ancient Scriptaculous was completely removed, thanks to html5sortables and the creation of MahoAutocomplete and a basic vanilla js version of Prototype Effect
- Removed prototypejs/window.js (along many unused prototypejs subfiles) in favor of the new vanillajs/HTML5 maho-dialog.js
- The
/errors
folder doesn't exist anymore and it's replaced withmahoErrorReport()
New features
- Maho supports SVG format for product image placeholders
- Added ability to view orders paid with removed payment method without breaking
- TinyMCE WYSIWYG editor
- TinyMCE is now optional and not required by the core anymore
- The dependency has been moved to the Maho starter project. It was made this way so that you can remove it quickly and safely from your projects.
- In the meanwhile we also fixed security vulnerability CVE-2024-29881.
- Added support for PHP 8.4, but also added PHP 8.3+ #[\Override] to all our codebase
Minor bugfix and changes
- Fixed a bug with swatches shown even for out-of-stock variants
- Removed obsolete Mage_All.xml and references to this file
- Adminhtml: Fixed active menu highlighting
- Web installer was simplified a restyled, removing a lot of unused files from the skin/install folder and some installation options that are no longer needed in 2024 (use_rewrites, enable_charts, skip_url_validation)
- phtml files now use short echo tags
<?=
- Huge cleanup of old/unused files throughout the whole project
- Mage_Backup, Mage_Captcha and Mage_Sendfriend were removed, together with SCSS in RWD/admin themes
- In the backend, Magento1 theme is no longer available and the icons next to the page name were removed
- Redis modules are no longer required but only suggested
Upgrade from Magento1 or OpenMage
At the moment we don't have an upgrade script or an upgrade guide, we will work on both of them very soon.
Be sure to check all of the documentation we have at https://mahocommerce.com/getting-started