
The 2024.10 release for Laravel and TYPO3 with long term support offers some exciting new features and a lot of internal improvements to make live of developers easier than ever before. The highlights of this release are:
- AI-based image generation and background removal
- Extended JSON:API and GraphQL API
- Laravel Octane support
- TYPO3 v13 support
- Simplified managers
- Improved frontend and backend
AI-based image generation and background removal
This release introduces an AI-based image generation feature to create images for categories and CMS articles automatically based on the prompt provided by the editor. This can generate appealing visuals for e.g. cover images quickly without the need of a designer when used correctly. The feature is based on the OpenAI Dall-e 3 API and requires a paid OpenAI account.
Also, Aimeos now includes an automatic background removal feature for newly uploaded (product) images. Before, removing backgrounds was a labor intensive task for designers using expensive Adobe suites but now, it’s done in a matter of seconds and works with humans and products in the front. It uses the RemoveBG API and also requires a paid account for high resolution images.
Extended JSON:API and GraphQL API
After the last release has improved the API documentation, the current version extended the JSON REST and GraphQL APIs.
The JSON:API includes the possibility to fetch type items for attributes, products, services and stocks on request. You only need to add attribute.type
, product.type
, service.type
or stock.type
to the “include” parameter of the relevant JSON REST URLs, e.g. &include=attribute.type
for attribute endpoint requests. This will return the type item(s) for the attributes in the included
section of the response and contains e.g. the translation of types for each language.
The GraphQL API has been extended be able to return and update all order related information. Now it’s possible to manage orders completely by the GraphQL API instead of just retrieving basic information from orders.
Laravel Octane support
Aimeos is already known for its ultra fast response times and the support for Laravel Octane in combination with Swoole or Roadrunner takes this to a new level! The Laravel and Aimeos application is always kept in memory and only the scoped services and the request object are passed to the application on each browser request. Thus, the whole bootstrapping of Laravel is only done on start-up.
Performance tests have shown that when using a Laravel Octane based setup, you can get response times down to 20ms very easily and it can triple the number of concurrent request on your existing hardware.
TYPO3 v13 support
The Aimeos TYPO3 extensions supports TYPO3 v13.4+ now, the latest LTS release of the TYPO3 CMS. It’s available as composer package, TER extension and as TYPO3 distribution. If you plan to use one or more payment providers, using the composer based package or distribution should be preferred.
As the relevant changes in TYPO v13 are supported by v12 LTS too, the new version of the Aimeos TYPO3 extension is still backward compatible to TYPO3 v12.4.x. That allows you to upgrade to the latest Aimeos release without the need to upgrade the TYPO3 CMS installation too.
Simplified managers
A lot of work has been done to simplify the managers in the Aimeos core. Before, creating a new manager using lists of referenced items and properties required writing a lot of code. Now, the code for retrieving and fetching those dependent items is part of decorator classes which can be wrapped around every manager just by configuration. For example, the decorator configuration for the product manager is now:
'mshop' => [ 'product' => [ 'manager' => [ 'decorators' => [ 'global' => [ 'Lists' => 'Lists', 'Property' => 'Property', 'Type' => 'Type', 'Site' => 'Site', ], ], ] ] ]
These settings wrap the “Lists”, “Property”, “Type” and “Site” decorators around the product manager to fetch and retrieve the connected items. For managers which has addresses attached, there’s also an “Address” decorator available. Almost all managers of the Aimeos core have been rewritten to use the decorators and we were able to remove several thousand lines of code.
Improved backend and frontend
To simplify configuration of AI-based services for each site, a new sub-panel has been added to the “Settings” panel. There, site administrators can add the API keys and other relevant configuration settings for the DeepL, OpenAI and RemoveBG APIs. Configuration for other APIs can be added easily by implementing a new sub-part for the settings/api sub-panel and a custom template for the necessary fields.
Also, the product sub-panel in the catalog and supplier panels have been rewritten to support document based storage like ElasticSearch now. During that change, the filtering for items has been removed because it was based on the database queries of the lists managers, which are not available in a document-oriented storage.
The frontend got some minor improvements and a new feature for removing all items in the basket at once, so users are not required to delete every line separately any more.