This blog highlights backward-incompatible changes between Magento 2 and Magento Open Source releases that have a major impact and require detailed explanations and special instructions to ensure third-party modules continue working.
Major backward-incompatible changes were introduced in the 2.4.6 Adobe Commerce and Magento Open Source.
- The new default value for automatic redirects
- New system configuration for customer segments
- New system configuration for limiting products in the grid
- Symfony dependencies upgraded to the latest LTS version
- Zend_Filter replaced with laminas-filter
- Zend_HTTP replaced with laminas-HTTP
- Zend_Json replaced with laminas-json
- Zend_Validate replaced with laminas-validator
1. The new default value for automatic redirects
The new default does not change existing records in the catalog_url_rewrite_product_category
and url_rewrite
database tables when upgrading to 2.4.6, but no new rewrites are added. You can enable the Generate “category/product” URL Rewrites setting if you want to continue using it after upgrading.
To improve performance, the default value for generate_category_product_rewrites
in the app/code/Magento/CatalogURLRewrite/etc/config.xml
the file was changed from 1
to 0
, also this change disables automatic category/product URL rewrites, but only if you have not changed the previous default setting prior to upgrading to 2.4.6.
2. New system configuration for customer segments
A new system configuration setting was added in the enterprise edition to avoid performance degradation when you have a large number of customer segments.
To avoid performance degradation, you can set the Real-time Check if Customer is Matched by Segment system configuration option to No to validate customer segments by a single combined condition SQL query.
To enable this optimization, go to Stores > Settings > Configuration > Customers > Customer Configuration > Customer Segments > Real-time Check if Customer is Matched by Segment.
3. New system configuration for limiting products in the grid
To improve product grid performance for large catalogs, a new system configuration setting (disabled by default) was added in the new releases to limit the number of products in the grid: Stores > Settings > Configuration > Advanced > Admin > Admin Grids > Limit Number of Products in Grid.
The product grid limitation only affects the product collections used in UI components. As a result, not all product grids are affected after this limitation.
4. Symfony dependencies upgraded to the latest LTS version
- friendsofphp/php-cs-fixer
- symfony/console
- symfony/event-dispatcher
- symfony/finder
- symfony/process
- web-token/jwt-framework
This change adds support for the latest version of Symfony so that you can use the latest solutions to build more stable functionality and avoid hypothetical security issues.
For example, this change updates the return type for the Magento\Backend\Console\Command\AbstractCacheTypeManageCommand class from void
to int
, which extends Symfony\Component\Console\Command\Command and the int
type.
If you override or extend the Magento\Backend\Console\Command\AbstractCacheTypeManageCommand class, you should check the return type for the execute
method to avoid errors when executing command-line commands.
5. Zend_Filter replaced with laminas-filter
This change replaces the outdated Zend_Filter
library with the actively supported laminas-filter
library.
These changes affect the below modules.
- Magento_Framework (translation and validation functionality)
- Magento_GoogleAdwords (backend)
6. Zend_HTTP replaced with laminas-HTTP
This change replaces the outdated Zend_HTTP
library with the actively supported laminas-http
library. These changes affect the below modules:
- Magento_payment
- Magento_Framework
7. Zend_Json replaced with laminas-json
This change replaces the outdated Zend_
Json Library with the actively supported laminas-j
son library.
8. Zend_Validate replaced with laminas-validator
This change replaces the outdated Zend_
Validate library with the actively supported laminas-validator
library. These changes affect the below modules:
- Magento_Framework (translation and validation functionality)
- Magento_Store
- Magento_User
- Magento_GoogleAdwords
9. Security enhancements
This release includes eight security fixes and platform security improvements.
- IP allow listing
- Two-Factor Authentication
- Use of a VPN
- Use of a unique location rather than
/admin
- Good password hygiene
- New system configuration for requiring email confirmation when an admin user changes their email. To reduce site vulnerability, a new system configuration setting (disable by default) is added to require email confirmation when an admin user changes their email: Stores > Settings: Configuration > Customers > Customer Configuration > Account Information Options > Require email confirmation if an email has been changed
When this option is enable, the application will request email confirmation every time the admin user changes their email address.
These changes affect the Magento_Customer module.
10. Platform enhancements
Adobe Commerce 2.4.6 introduces support for PHP 8.2. PHP 8.1 remains fully supported. You cannot run Adobe Commerce 2.4.6 on PHP 7.4.
Adobe Commerce 2.4.6 now supports:
- Composer 2.2.x. In the next releases, Composer 1. x will remove.
- Redis 7.0.x. Although compatibility with Redis 6.2 remains, we recommend deploying this release with Redis 7.0.x. In 2024 Redis 6.2 will expect to reach the end of its life.
- Elasticsearch 8. x.
- MariaDB 10.6 (LTS version). This release is still compatible with MariaDB 10.4, but we recommend upgrading to MariaDB 10.6.
11. Merchants now have the ability to specify a custom external SMTP provider.
You can set up the SMTP server from Stores > Settings > Configuration > System > Mail Sending Setting in the new
The session is based on the functionality changes in the Magento open source and Adobe Commerce 2.4.6 releases.
Hope this will help you.
Be the first to comment.