The first stable release of the Aimeos ecommerce framwork for Laravel and TYPO3 in 2024 offers a whole bunch of updates compared to previous versions and is prepared for the upcoming accessibility requirements in the EU. The most important features and changes are:
- Full Laravel 11 support
- WCAG AAA compatible template
- Top-level URLs for products/categories/pages
- Product CSV upload in backend and imports per site
- VueJS 3 in admin backend with locally bundled JS libs
- Improved GraphQL admin API
- Simplifications for developers
Full Laravel 11 support
The Aimeos Laravel package has support for Laravel 11 since its release a month ago. The number of breaking changes in Laravel 11 had been low so adapting the package was possible immediately.
Now, with the Aimeos 2024.04 release, the Aimeos shop distribution as well as the Aimeos headless distribution are based on Laravel 11 too. The most important change in Laravel 11 is the simplified ./app/ directory but the old structure is still supported. Only the AuthServiceProvider class isn’t used any more.
WCAG AAA compatible template
Starting in 2025, almost all companies in the EU need to have accessible web sites which can be used by handicapped persons too. The W3C Web Content Accessibility Guidelines provides useful help to comply to the required accessibility standards.
The default Aimeos theme as well as the Berlin theme for marketplaces is now prepared for WCAG 2.2 AAA. Most of the required changes related to controls, buttons and other active elements which needs to be big enough for easy usage.
Top-level URLs for categories/products/pages
The Aimeos Laravel package and the Aimeos shop distribution based on Laravel support now URL segments without sub-paths. Than means, you can have URLs like /sneakers
, /nice-blue-top-sneaker
and /contact
as URLs for categories, products and CMS content pages.
All those top-level URLs are handled by the ResolveController, which checks if a category, product or CMS page with that URL segment exists. This feature isn’t enabled by default because it requires additional database queries to check what type of entity is assigned to that URL segment. The README of the Aimeos shop distribution contains a section how to enable the multi-routing feature.
Product CSV upload in backend and imports per site
One of the major changes in Aimeos 2024.x compared to previous versions is that CSV and XML files can now be imported per site in multi-site environments. Therefore, the files must be stored in sub-directories of the product, catalog, supplier, etc. directories named after the code of the site to import the files for within the fs-import file system.
That change allowed to implement uploading CSV files in the product list panel. Then, these files are stored in the appropriate directory of the fs-import file system and are processed by the product CSV job controller that needs to be executed regularly by a cron job because of time and memory constraints in HTTP requests.
VueJS 3 in admin backend with locally bundled JS libs
The Aimeos admin backend has been rewritten and uses VueJS 3.x for the dynamic features now. You will only notice the upgrade of the VueJS library if you have overwritten parts of the admin backend with custom templates. The code for initializing the VueJS apps must be different now as well as inline templates are not supported any more.
Instead of using the JS files from a content delivery network, they are now bundled by NPM and included from the local file system. This reduces the dependency from external CDNs, supports environment without internet connections and the bundled files are also smaller which improves the loading time.
Improved GraphQL admin API
The Aimeos GraphQL API is now almost feature complete. It can handle the necessary requests to fetch and manage all resources including the aggregations required for the dashboard. Compared to previous versions, the API supports getting the total number of items too. Only file uploads for the media resources are missing and will be added in the next version.
Beginning of 2025, the existing JSON admin API will be deprecated and removed in later versions so you should use the GraphQL API in the backend from now on. The JSON API for the frontend won’t be affected in any way and is the only supported option for fetching data for building your own frontend.
Simplifications for developers
We always work hard to make things as simple as possible for developers using Aimeos for their own projects. Creating new managers required to write a lot of code in the past but now, it has become very simple. The article about implementing new managers describes the few steps with examples that are required to create the necessary migration and the manager class which defines the properties.
In the HTML frontend, the address sections in the checkout process and the account profile page have been unified and use a common address partial now. Thus, they can be configured using the same settings now but that required renaming the existing configuration options.
To simplify the structure, the controller/common and controller/jobs code in the ai-controller-jobs extension has been merged and the controller/common code from the aimeos-core package has been moved to the media and order managers where they belong to.