Skip to content

24.9.0

Compare
Choose a tag to compare
@fballiano fballiano released this 19 Sep 11:29
· 405 commits to main since this release

🎉🎉 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 and skin folders now live inside the public directory, it is now mandatory to set the document root of your web server (Apache, Nginx, Caddy or FrankenPHP) to public.
    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 for urn:Magento and urn:OpenMage and replace all occurrences with urn: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' {} +
  • 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 with mahoErrorReport()

New features

Minor bugfix and changes

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