Skip to content

Releases: MahoCommerce/maho

24.11.0

25 Nov 17:03
043fd88
Compare
Choose a tag to compare

🎉🎉 Welcome to a new release of Maho, the ecommerce platform you already know! 🎉🎉
Remember our last release two months ago?
Well, time must be an illusion since we managed to pack two years' worth of changes (about 300 commits) into this new one!
For this reason we had to condense these release notes to spare you from a document that would make Lord of the Rings seem short.

🚨⚠ 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.

Before starting, a word about the future
We had to remove a major new feature from this release, the global attribute editor, Justin worked extremely hard on this (and not only on this ❤️), but the task is huge, it will bring a whole new set of features to our platform, and it simply requires a bit more time. We're confident that it will be ready for Maho 25.01 along with many other revolutionary changes, we aim for Maho 25.01 to have the first prototypejs-free frontend since the beginning of the M1 platform!

This massive effort 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 24.9.0 is based on OpenMage 21.0-beta2 + all the patches merged in the main branch up to 24th Nov 2024

Visible from outside: changes to the frontend theme

Maho 24.11 new frontend

And many, many other minor improvements.



🚀 New features and major improvements

Added back/forward cache support for CMS/category/product pages

This will allow extreme performance improvements when using the back/forward buttons, better pagespeed scores, and could lead to big bandwidth/load saving on your infrastructure. (read more)



Added support for AVIF images

AVIF is a modern, open-source image format that offers superior compression efficiency while maintaining excellent image quality. It's particularly important because it supports advanced features like HDR, wide color gamut, and transparency, necessary to highlight the characteristics of specific type of products on your store. (example)



Added possibility to set a file format (default WebP) for all images processing (resize, thumbnails etc)

Convert all your catalog to WebP with a single click. (read more)



SEO: Added automatic hreflang tag

This starts an effort to bring a complete set of SEO related tools to Maho. (read more)

From now on, multi store website will be linked across languages so that search engines will understand the language correlation between pages, out of the box.



Removed Mage_Persistent and improved cookie handling

Remember the "remember me"? Well, this change removed the ancient Mage_Persistent module, consolidate and merged all templates, cleaned up a lot of code and completely rewrote the cookie management for session, you may not see the difference with your naked eye, but you will know it will work so much better.




Replaced js calendar by Mihai Bazon with flatpickr with lazyload

The javascript library used for dates in all M1 installation was extremely old (last release was almost 20 years ago!) and it had to go, and it's now replaced with a lightweight, moderd looking and modernly coded one called flatpickr.


Massive improvements to Maho's autoloaders

The idea at the base of Maho itself was the new set of autoloaders that allow all of the platform to live inside composer's vendor folder, like any other modern framework would and that was never possible in the Magento world. With this PR Justin took this concept and made it 10 times better.



Improved jstranslator.xml capabilities

Jstranslator gives you the possibility to add translation strings to frontend's javascript code, without having to write any javascript. It's a great feature but it needed some love. This new version separates frontend/backend strings, allows to define a string relatively to a module, scope or if a specific javascript file is included in the target page. (read more)

Added option to redirect to register page during checkout

When your customer registration form is too long, it's probably not the best to have it inside the checkout procedure, with this new option you can decide that your users will be redirected to the customer registration page if they choose to register during the checkout phase. Simple, but effective.



Added MahoCLI command to create a new command

When developing an ecommerce project, you will find yourself developing some quick command line scripts, you could already integrate them into Maho CLI but today this is easier than ever with ./maho create-command.



Introduced ./maho health-check and migrate to Maho guide

You asked us for a migration guide and we delivered, but we thought we needed something more, that's why we created ./maho health-check, which will help you keep your project in good health, but also will ./maho health-check that a project could have.


❗ Major changes you need to know

  • [Products count is now disabled by default in layered navigation](https://gith...
Read more

24.9.0

19 Sep 11:29
Compare
Choose a tag to compare

🎉🎉 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