Adobe Commerce 2.4.6 brings in assistance for PHP 8.2. PHP 8.1 is still fully supported, while PHP 7.4 is no longer supported. It incorporates notable improvements in performance and scalability. The optimization has been applied to GraphQL operations for mass cart operations and rendering the response of the category tree. The introduction of the metapackage for Adobe Commerce Extension is a notable addition in this release.
This update incorporates more than 300 notable improvements and refinements. Fundamental Composer dependencies and external frameworks have been updated to their most recent iterations, ensuring compatibility with PHP 8.2.
Notes :
Adobe Commerce and Magento Open Source versions may include modifications that are not compatible with previous versions (BICs). To examine alterations that are not compatible with earlier versions, refer to the BIC reference. Significant discrepancies that are not compatible with previous versions are outlined in BIC highlights. It’s important to note that not every release introduces major BICs.
Other Release Informtion :
While the code for these functionalities comes together with the Adobe Commerce core code in releases, a number of these initiatives (such as B2B, Page Builder, and Progressive Web Applications (PWA) Studio) are also independently released. The documentation for each project provides specific release information, including bug fixes, which are not bundled with the main Adobe Commerce core code.
Adobe Commerce 2.4.6 Highlights
Identify the subsequent focal points in this version.
Security enhancements
This update incorporates a range of enhancements focused on bolstering platform security, alongside addressing eight critical security vulnerabilities.
To this day, there have been no verified incidents connected to these concerns. Nevertheless, specific weaknesses have the potential to be utilized for unauthorized access to customer data or the hijacking of administrator sessions. The majority of these problems necessitate the attacker initially gaining entry to the Admin. Consequently, we strongly urge you to implement all essential measures to safeguard your Admin, encompassing various initiatives such as:
- IP allowlisting
- Two-factor authentication
- Use of a VPN
- Use of a unique location rather than
/admin
- Good password hygiene
Additional security enhancements
Enhancements in security measures for this version enhance adherence to the latest security best practices, encompassing:
- Enhanced scrutiny of actions within grid views, mass actions, and exports has resolved gaps in Admin action logs, ensuring comprehensive auditing
- During payment processing, reCAPTCHA validation now remains unaffected by unexpected errors that may occur at checkout. GitHub-35093
- To bolster site security, a novel system configuration has been introduced. It involves mandating email confirmation whenever an admin user modifies their email address. By default, this system configuration setting is disabled. You can locate it at Stores > Settings:Configuration > Customers > Customer Configuration > Account Information Options > Require email confirmation if an email has been changed. Enabling this option prompts the application to solicit email confirmation each time an admin user alters their email address. The modification impacts the following module: Magento_Customer.
Platform enhancements
Adobe Commerce version 2.4.6 brings in compatibility for PHP 8.2. Full support for PHP 8.1 continues to be provided.
The support for PHP 7.4 has been eliminated in this version. It is not possible to execute Adobe Commerce 2.4.6 using PHP 7.4.
Adobe Commerce 2.4.6 now offers compatibility with:
- Composer 2.2.x. Composer 1.x has been eliminated.
- MariaDB 10.6 (LTS version). This release remains compatible with MariaDB 10.4, but we strongly advise upgrading to MariaDB 10.6.
- Elasticsearch 8.x. Refer to the Elasticsearch upgrade instructions.
- Redis 7.0.x. Although Redis 6.2 compatibility persists, we suggest implementing this version with Redis 7.0.x as Redis 6.2 is anticipated to reach its end of life in 2024.
- OpenSearch is now the default search engine for Adobe Commerce in both on-premises and cloud deployments. It is supported as an independent search engine for Magento Open Source. This release backs OpenSearch v2.x and has undergone testing with OpenSearch 2.5. While OpenSearch 1.x compatibility endures, we recommend utilizing this version with OpenSearch 2.x. You can set up and operate Adobe Commerce and Magento Open Source 2.4.6 with OpenSearch 2.x on both the Cloud and on-premises. The search engine prerequisites remain the same.
Other upgrades and replacements
- Compatibility with PHP 7.4 has been eliminated from the Commerce codebase.
- The DHL structure has undergone a migration from v6.2 to v10.0.
- Updated JavaScript frameworks have been implemented, and obsolete dependencies have been eliminated. These modifications are compatible with previous versions.
- Symfony dependencies have been updated to the latest LTS release. Required components encompass:
friendsofphp/php-cs-fixer
symfony/console
symfony/event-dispatcher
symfony/finder
symfony/process
web-token/jwt-framework
- The jQuery migration library, known as jquery-migrate, has been completely eliminated from the Commerce code repository. This modification has been implemented to enhance the codebase and adhere to best practices. The related change can be found on GitHub with the issue number 21406.
- Integrated the most recent iteration of the jQuery/fileUpload framework, namely v10.32.
- Zend framework (ZF1) components that have reached the end of their lifecycle have been eliminated from the code repository. Please refer to the highlights of the changes that are not compatible with previous versions.
- The Laminas dependencies have been enhanced to ensure compatibility with PHP 8.2.
- The laminas/laminas-reliance-extension Composer extension has been eliminated. GitHub-36515
- Updated the Zend_Filter with laminas/laminas-filter.
- Elevated web-token/jwt-framework raised to v3.0.5. (state-of-the-art version)
- Updated allure-framework/allure-phpunit to version 2.x.
- Implemented the latest version, v3.9.1, of the Chart-js library with enhanced functionalities.
Performance and scalability enhancements
- Enhanced efficiency for tasks impacting numerous customer groups. Businesses can enhance the effectiveness of tasks involving over 100 customer segments by activating a fresh setup option. The Live Verification of Customer Segment Match setting can be deactivated when necessary to shorten processing time by minimizing the validation process for each customer segment against customers. Refer to the validation of customer segments for more information.
- Introducing a fresh system arrangement for constraining the quantity of items showcased in the product matrix. Retailers now have the option to employ the brand-new Restrict Product Count in Grid arrangement, which enhances the overall performance of the product grid. By default, this restriction is set to 20,000 and exclusively impacts product collections utilized by user interface components. By curtailing the amount of products exhibited, operational efficiency can be significantly enhanced for grids that contain over 200,000 products. Take a look at the feature, “Limit the quantity of products displayed in the grid.”
- Enhanced import speed (up to 100,000 entries per minute). Retailers have the option to utilize the fresh POST /rest/<store_view_code>/V1/import/csv REST API endpoint to bring in information into Adobe Commerce. This particular endpoint offers identical functionalities as the Administrator import function and allows for the utilization of a CSV file to generate, modify, and eliminate items, pricing details, and customer entities.
- Enhanced efficiency in handling a large number of orders by distributing the workload evenly. Adobe Commerce 2.4.6 users on cloud infrastructure, dealing with a significant influx of concurrent orders (1000 orders per minute), now have the ability to enhance their order processing capabilities by evenly distributing the load across multiple nodes within their database. Merchants can achieve this load distribution by activating secondary connections for the MySQL database and Redis instances. Refer to the documentation on High-throughput order processing for more information.
Adobe Commerce Extension metapackage
This update presents the Adobe Commerce Extension package v1.1.0, which conveniently combines certain Adobe Commerce extensions with this primary release. The incorporated versions of these extensions are implemented during the execution of composer update, streamlining the procedure of upgrading these extensions while transitioning to the most recent core release. These extensions will continue to uphold their individual release schedules.
The metapackage for Adobe Commerce 2.4.6 encompasses the following two extensions:
Subsequent iterations of this expansion metapackage will encompass supplementary add-ons.
Adobe I/O Events for Adobe Commerce
Adobe I/O Experiences for Adobe Commerce records Commerce occurrences and transmits information from Adobe Commerce to other Adobe platforms. Programmers can construct cloud-based applications in Adobe Developer App Builder that enlist for Commerce occurrences like stock modifications, order condition adjustments, and price alterations. Developers can leverage this functionality to swap data for coordinating the complete consumer voyage throughout their vital systems.
Accessibility updates
The primary objective of this update has been to develop a storefront encounter on Venia (PWA) that appears distinct, functional, comprehensible, and resilient. These improvements encompass:
- The text label for the Sign in button’s visual appearance is now aligned with its accessible name. (It is highly advised to adhere to best practices wherein the accessible name of a UI element begins with the visible label text.)
- Buttons within the online shop now feature descriptive and easily understandable names.
- Descriptive labels in the form of spoken words have been included alongside the checkboxes for “Has Video” within the search filters.
- The storefront now offers complete functionality to keyboard-only users. In the past, shoppers faced limitations as they couldn’t access sub-navigation links solely through keystrokes.
Adobe Commerce integration with Adobe IMS
The Adobe IMS modules that were previously integrated into the core code of Adobe Commerce 2.4.6 have undergone a decoupling process. As a result, they are now presented as an independent metapackage, distinct from the main codebase.
adobe-ims
adobe-ims-api
admin-adobe-ims
Introducing the latest edition of the adobe-ims-metapackage, version 2.2.0! This fantastic package comes bundled with the highly sought-after Adobe Commerce 2.4.6. Rest assured, there have been no modifications to the functionality in this release.
Braintree
- A new feature, the LPM (Local Payment Methods) web hook, has been introduced to provide even more versatility and options for users
- Enhanced security measures have been implemented with the inclusion of Fraud Protection and ACH web hooks. The Fraud Protection web hook will promptly notify users when a risk decision has been reached within the Braintree system. On the other hand, the ACH web hook will trigger notifications whenever there is a change in the status of an ACH payment, whether it be settled or settlement decline.
- Italy and Spain can now take advantage of the Pay Later option and eye-catching banners provided by Braintree.
- Customers can now enjoy the convenience of PayLater messaging when utilizing PayPal Vault.
B2B
The GraphQL API now grants complete access to the Companies’ Purchase Orders feature. With this latest update, we present two distinct GraphQL schemas:
- The Purchase Order GraphQL schema encompasses a range of functionalities pertaining to Purchase Order Management for B2B company users. This includes the creation, editing, and deletion of purchase orders. For more information, refer to the section on Purchase orders (B2B).
- The Purchase Order Rule GraphQL schema empowers users to establish, modify, and remove approval rules, as well as manually validate purchase orders. To explore further details, consult the section on Purchase order approval rules (B2B).
Additionally, this release addresses several bugs and incorporates various bug fixes. To delve deeper into the specifics, please review the B2B Release Notes.
GraphQL
Enhancements for Improved GraphQL Performance
We have made several enhancements to improve the performance of GraphQL, resulting in faster response times and optimized operations. These changes ensure a smoother experience for users interacting with categories, products, and customer data. Let’s dive into the details:
- Quicker Category Queries:
- Response times for querying categories with category permissions enabled have been significantly improved.
- When querying products within these categories, which have numerous customer groups or shared catalogs, you’ll notice enhanced performance.
- To achieve this, we have optimized the GraphQL resolver operation.
- Additionally, the data provider no longer resets runtime-cached data for each new product processed, resulting in improved performance.
- Product permission processing has been optimized within the GraphQL resolver, now applied to product collections rather than on a per-product basis.
- The addProductsToCart mutation now reads permissions in shared catalogs more efficiently.
- We have optimized product permissions by utilizing product inline fragments.
- Category Tree Rendering:
- Rendering the category tree has been optimized, benefiting customers with a substantial number of categories.
- Merchants utilizing the categoryList query to search through over 1500 categories, with up to five levels of nested subcategories, will experience improved performance.
- This enhancement is achieved through code refactoring, eliminating unnecessary method calls, enhancing category tree caching, and loading category data recursively.
- We have also improved custom attributes metadata fetching for category models.
- Category ID fetching has been optimized, resulting in reduced getChildren calls.
- Loading category children has been improved for smoother performance.
- Faster Cart Operations:
- We have optimized the add product mutations to enhance query performance when adding simple and configurable products, up to a total of 500.
- Bundle products remain unaffected.
- The following mutations have been optimized: addProductsToCart, addConfigurableProductsToCart, addDownloadableProductsToCart, addSimpleProductsToCart, addVirtualProductsToCart, addWishlistItemsToCart, and updateCartItems.
- Sorting Orders with Ease:
- The customer query now supports sorting of orders.
- The orders output object within the customer query contains a sort field, enabling you to sort orders by order number or creation date in ascending or descending order.
In addition to these performance enhancements, we have also introduced a new mutation:
- deleteCustomer: This mutation allows for the deletion of customer data.
These improvements and additions aim to optimize GraphQL performance, providing a more efficient and seamless experience for users.
Page Builder
Page Builder v.1.7.3 is compatible with Adobe Commerce 2.4.6.
PWA Studio and Adobe Commerce Compatibility
PWA Studio version 13.0.x has been tested and verified to work seamlessly with Adobe Commerce version 2.4.6. This latest update brings several improvements to enhance accessibility, making it even easier for users to navigate and interact with the platform. To stay up to date with bug fixes and other improvements, make sure to check out the PWA Studio releases. For a comprehensive overview of PWA Studio versions and their corresponding compatible Adobe Commerce core versions, refer to the Version Compatibility list.
Important Note about New Relic Compatibility
Currently, there is an issue regarding the compatibility of New Relic with PHP 8.2. If you are using New Relic, it is recommended to run Adobe Commerce 2.4.6 on PHP 8.1 instead of PHP 8.2. This will ensure smooth operations until a new version of New Relic is released, which is expected in the summer of 2023, with full support for PHP 8.2.
Resolved Issues Our dedicated team has diligently addressed and resolved numerous issues in the core code of Adobe Commerce 2.4.6. This release tackles a wide range of bugs and glitches, resulting in a more stable and efficient platform. Below, you can find a selection of the fixed issues that have been successfully resolved in Adobe Commerce 2.4.6
Installation, upgrade, deployment
- Resolved issue where static content deployment would occasionally time out or fail during standard or compact deployments with multiple locales and websites.
- Fixed a bug in the compact strategy that caused an invalid reference to an external domain when executing static content deployment (bin/magento set:static-content:deploy -f –strategy compact).
- Improved error messaging when executing bin/magento setup:di:compile -vvv (or with the -v or -vv options) and encountering a failure. GitHub-35391
- Addressed an exception in Adobe Commerce that occurred when running the bin/magento setup:upgrade command in a deployment already utilizing the data migration tool. The exception was related to compatibility between the migration logger and Monolog. PHP Fatal error: Declaration of Migration\Logger\Logger::addRecord(int $level, string $message, array $context = []): bool must be compatible with Monolog\Logger::addRecord(int $level, string $message, array $context = [], ?Monolog\DateTimeImmutable $datetime = null): bool in /var/www/html/vendor/magento/data-migration-tool/src/Migration/Logger/Logger.php on line 34. GitHub-35604
- Resolved an issue with the bin/magento setup:db:status command in environments running MySQL 8.0.29. The command erroneously reported that the declarative schema was outdated. GitHub-35671
- Fixed an error where the composer install command would overwrite .gitignore files. GitHub-32888
- Resolved a failure when running bin/magento sampledata:remove to remove sample data after an upgrade on Alpine Linux. The error was related to an undefined constant “MagentoHackathon\Composer\Magento\Deploystrategy\GLOB_BRACE. GitHub-36062
- Ensured successful execution of bin/magento setup:upgrade after first running composer install –no-dev. GitHub-36351
- Updated var/log/exception.log to include exceptions and their corresponding stack traces. GitHub-36054
- Improved error handling in Adobe Commerce when setting a Redis connection without a password using the command line, resulting in a parameter validation error.
Enhanced Accessibility
Improvements have been made to enhance the accessibility of our checkout workflow. Users can now seamlessly navigate through the Proceed to Checkout, Review Order, and Place Order buttons using keyboard inputs. Additionally, when using the TAB or SHIFT + TAB keys to navigate through page controls, the buttons now provide a clear visual indication of focus.
Enhanced Screen Reader Experience
To improve the experience for users relying on screen readers, we have made adjustments to ensure accurate information is conveyed. The screen reader now correctly reads the image description on the order history page. Moreover, important details are now announced, such as the total item count in search results, the logged-in user’s name when signing in via keyboard controls, and the correct value for the <title> element on the product search result page.
Accurate Representation of User Interface
We have resolved various issues to ensure the accurate representation of the user interface in screen readers. Input fields now correctly indicate whether they are required or not. The current state of accordion elements, whether collapsed or expanded, is accurately conveyed. Furthermore, when the page content is refreshed after clicking the Create an account button, screen readers now provide the updated information seamlessly.
Enhancements to Bundle Products
We have addressed several issues related to bundle products, offering a more streamlined experience. Updating bundle products via the API for a specific store view no longer overrides data from other store views for the same bundle product. Previously, the option titles were overridden with the first option title from other store views. Additionally, bundled products can now be successfully filtered from the Admin Catalog > Products section when using a Dutch locale.
Improvements in Product Grid and PDF Rendering
We have made significant improvements to the product grid and PDF rendering for orders containing a mix of bundle and simple products. Columns in credit memo and invoice PDFs are now rendered correctly, ensuring that the information is not distorted or misaligned.
GraphQL Query Enhancements
We have resolved several issues related to GraphQL queries involving bundle products. The BundleProduct fragment now consistently provides the expected data within the items.options.product object. Previously, this object could be null in certain circumstances. Additionally, decimal quantities for bundle options are now rendered correctly when the “Quantity uses decimals” option is enabled. Previously, only the integer part of the quantity was displayed.
Refined Product Queries
GraphQL product queries now return only the bundle product options that are relevant to the specific store being queried. This refinement ensures that the queried data aligns with the intended scope.
Enhanced Cache Functionality
Improvements have been made to the caching mechanism, resulting in a more efficient and accurate caching process. The full-page cache is now only flushed after order fulfillment if the ordered product is out of stock, reducing unnecessary cache purging. Data is now successfully cached when the L2 cache is configured, even when remote data is partially evicted. Furthermore, defects in CatalogUrlResolverIdentity and CmsUrlResolverIdentity that previously hindered caching have been corrected, enabling smooth route query caching on multiple requests.
Cart and Checkout Updates
- Improved Cart Functionality: Customers now have the ability to add an extra item to their cart when the minimum quantity of a simple product is already present.
- Consistent Cart Data Retrieval: The REST API calls for retrieving cart data now provide consistent values for grand_total and base_grand_total, particularly when the store currency and base currency are the same. This enhancement can be found on GitHub-34649.
- Maximum Quantity in Shopping Cart: The exported value for the Maximum Qty Allowed in Shopping Cart now matches the default value set in the Admin configuration. This ensures accurate representation and control of the maximum quantity allowed.
- Accurate Refund Calculation: Adobe Commerce now correctly calculates the grand total for refunds of orders that include a discount for shipping. This improvement ensures accurate refund amounts for customers.
- Enhanced Google reCAPTCHA: The Google reCAPTCHA feature now functions as expected for storefront orders. Previously, Adobe Commerce displayed errors when Google reCAPTCHA was not initially selected before a customer attempted to place an order. The errors included “ReCaptcha validation failed, please try again” and “No such cart with id = ID.”
- CAPTCHA Image Refresh Control: The CAPTCHA image refresh functionality now adheres to the Admin configuration setting. It will no longer be triggered when the setting is disabled, ensuring a seamless checkout experience. Previously, the refresh was triggered whenever the payment method changed, regardless of the setting being enabled or disabled. This update can be found on GitHub-34855.
- Confirmation Popup for Cart Changes: Adobe Commerce now displays a confirmation popup before redirecting customers to the next page if they change the product quantity on the cart page without updating the cart and attempt to navigate away. This ensures customers are aware of the changes made and prevents unintentional actions.
- Decreasing Product Quantity in Cart: Customers can now decrease the quantity of a product in their cart after it has been decreased in the Admin. Previously, Adobe Commerce returned an error when customers attempted to decrease the product quantity, stating “The requested qty is not available.” This issue has been resolved and can be found on GitHub-35780.
- Improved Error Handling during Multi-Shipping Checkout: Adobe Commerce no longer throws an error in the JavaScript console when the product quantity exceeds the configured maximum during multi-shipping checkout. Instead, an informative error message is displayed, allowing customers to rectify the issue. This update can be found on GitHub-36184.
- Correct Representation of Item Quantity: The shopping cart page no longer displays negative numbers for item quantities when customers use the down arrow key on their keyboard to change the product quantity. This improvement ensures accurate and intuitive representation of the quantity. This issue has been resolved and can be found on GitHub-36299.
- Customer Group Permission Checks: Customers can no longer add products to their cart from a category that is now disallowed after changing their customer group. Adobe Commerce now checks customer group permission access for specific categories when the permission configuration settings have been modified. This ensures adherence to category restrictions based on customer group permissions.
- Preservation of Cart Contents: Customer shopping carts are no longer emptied before Admin order creation. In the event of order cancellation or abandonment, the cart contents are now properly restored. Items are only removed from the cart after order creation. This improvement prevents loss of cart contents and provides a smoother shopping experience. Previously, the cart was emptied whenever an admin user attempted to create an order on the Admin Manage Shopping Cart page.
- Correct Display of Product Images in Mini Cart: The mini cart now displays the correct product images after running the bin/magento catalog:image:resize command. Previously, all images were replaced by the default product placeholder image. This issue has been resolved and can be found on GitHub
Cart Price Rule
We have resolved an issue where free shipping options set during the creation of cart price rules were not being applied correctly to orders. Previously, these free shipping options were ignored during the checkout process, preventing customers from benefiting from the free shipping offer when the rule was applied. This problem has been addressed, and now the free shipping options associated with cart price rules are being properly applied to orders. (GitHub-35013)
Sales Order Item Discount Percentage
We have fixed an issue with the discount_percent column in the sales_order_item table. Previously, this column was not populated with the discount percentage for a product when the item discount quantity was not set or when it was greater than or equal to the order item quantity. However, we have rectified this problem, and now the discount_percent column is being populated as expected when a cart price rule is applied to the product.
Catalog Updates
The product list widget no longer displays incorrect or cached prices for logged-in shoppers. Now, the price displayed in the home page widget matches the shopper’s address and is updated accordingly when the shopper updates their address. Previously, the browser cache did not update product prices on the home page based on customer group tax rules.
The Compare Products list feature now functions correctly in a multi-website deployment and is dependent on the website. This means that the Compare Products list will work as intended, considering the specific website context.
We have resolved an issue where Adobe Commerce would briefly display data from the previous page when reloading a product detail page. Previously, data from the first tab would merge with the newly loaded data for a split second. This problem has been addressed, and now when you reload a product detail page, only the relevant data for that page is displayed, ensuring a seamless browsing experience.
Mobile Menu and Category Expansion
Categories with subcategories can now be expanded in the main menu on mobile devices, just as expected. Previously, shoppers were unable to open or expand categories with subcategories in mobile deployments. (GitHub-35329)
Category listings are now updated as expected when a product is assigned to a new website or store. Previously, the product price indexer did not mark the update as invalid and subsequently re-trigger it during a cron run. As a result, the product’s price entry was missing from the price index table, and it was not displayed on the new store or website.
Storefront Improvements
The storefront inventory count is now accurate when the “Display Out of Stock Products” configuration setting is enabled. This means that even with the setting enabled, the inventory count will reflect the availability of products correctly. (GitHub-35899)
The category page is no longer empty when the “Allow All Products Per Page” setting is enabled. This issue has been resolved, and now the category page will display the products correctly, even with the “Allow All Products Per Page” setting enabled. (GitHub-35900)
The “Display Out of Stock Products” configuration option now works as expected when enabled. Previously, all products were displayed as out-of-stock on the storefront when this option was enabled in the Admin. This issue has been fixed, and now the option behaves correctly, displaying products based on their availability. (GitHub-35898)
Wholesale Customers and Grouped Products
Customers assigned to a Wholesale group can now add grouped products to their cart when permitted by category permissions. If this permission is not defined for a Customer group, the configuration setting will take precedence.
Product Sorting and Related Products
Product sorting by Boolean attributes now functions properly, ensuring that products are sorted correctly based on the specified Boolean attributes. (GitHub-36390)
Catalog price rule discounts will no longer be applied to fixed price custom product options but will only be applied to the product’s original price.
Related products are now fetched successfully on the storefront product detail page when generated by the related product rule for alphanumeric product attributes. This means that the related products feature will work as intended, considering the alphanumeric product attributes. (GitHub-36285)
Catalog Price Rule and Scope
Catalog price rules now take into account the selected scope and apply to products only for the websites where the attribute has an option value that matches the rule. Previously, the rule did not consider the selected scope in multi-site deployments. This issue has been resolved, and now the catalog price rules function correctly based on the selected scope in multi-site deployments. (GitHub-36049)
Swatch Options and Pre-Selection
The swatch options for color and size attributes are now pre-selected on the product detail page when a shopper modifies the configurable product from the My Cart page. We have also updated the jQuery version to 3.x to support the swatchRenderer widget name in camel case. Previously, the swatch option was not pre-selected, but this issue has been fixed.
Price Drop Notifications and Catalog Rules
Customers are now properly notified of product price drops when they are subscribed to the price drop alert. Previously, price drop notifications were not always sent due to application-level caching. This problem has been addressed, and now customers will consistently receive notifications for price drops.
Catalog rules that are based on SKUs with the “is not one of” condition now work as expected, ensuring that the rules are correctly applied to the specified SKUs.
Category Hierarchy and Parent Categories
Adobe Commerce no longer assumes that one category is the parent category of another based solely on the category path. Previously, when two categories were adjacent and one category ID started with another category’s ID, Adobe Commerce incorrectly assumed that the categories had the same parent category. This issue has been resolved, and now the correct parent-child relationship between categories is maintained. (GitHub-32464)
Configurable Products:
In the latest update for Adobe Commerce, an issue has been resolved where an error was encountered when admin users manually added products to a configurable product that already had numerous simple products assigned to it. Previously, a message stating “Something went wrong with processing the default view and we have restored the filter to its original state” would appear. This error no longer occurs, providing a smoother experience for admin users.
Additionally, in deployments with back orders disabled, customers are now unable to add configurable products with a salable quantity of 0 to their shopping carts. Instead, Adobe Commerce accurately displays that the product is out of stock, preventing any confusion for shoppers. This improvement is reflected in the GitHub-35319 repository.
Another enhancement relates to creating a new product by importing a configurable product with multiple options from a different store view. Previously, the new product’s sort order of configurable options was incorrect, and the titles were not translated to match the locale of the new store view in deployments with multiple store views and locales. This issue has now been rectified, and the imported product is an exact copy of the original, with all the necessary translations and sort orders in place. This fix can be found in the GitHub-35200 repository.
Furthermore, configurable products that have all child products out of stock are now accurately displayed as out of stock on the storefront. This improvement provides clearer information to shoppers about the availability of configurable products.
Lastly, the display of configurable product SKUs and names has been corrected. Previously, after moving an attribute group above the Product Details group on the Stores > Attribute set page, the name and SKUs of configurable products were shown as undefined. This issue has been resolved, ensuring that the correct information is now displayed. The related fix can be found in the GitHub-36309 repository.
Coupons:
To enhance the Manage Coupon Codes workflow, validation logic has been implemented to enforce the coupon code settings during coupon generation. Previously, the Code Length setting was ignored when the Coupon Qty value exceeded 2500. This logic has been adjusted to consider the Code Length setting regardless of the Coupon Qty value.
Furthermore, when applying a rewards coupon during checkout with the PayPal Express payment method, the expected behavior of adding reward points to the customer’s account has been restored.
Admin users can now successfully apply a coupon code during the creation of an order in the Admin panel, even when the cart price rule includes weight as a condition. Previously, coupon codes were not set if other fields were left unselected for the product. This issue has been resolved and is documented in the GitHub-36271 repository.
Additionally, coupon reports can now be filtered by multiple cart price rules, allowing for more flexible analysis and tracking. This improvement can be found in the GitHub-36272 repository.
When configuring a product with custom options, the application and saving of custom options have been fixed. Previously, selecting options and adding the product to an order worked, but the options were not saved, and admin users were prompted to re-select the options. This issue has been resolved, improving the user experience for admin users. The fix is available in the GitHub-35284 repository.
Moreover, coupon codes can now be successfully exported to Excel XML format. Previously, the generated file did not include all the selected coupon codes, but only as many as were specified in the items per page selector. This limitation has been addressed, and the export functionality now works correctly. The fix is documented in the GitHub-36073 repository.
Cron:
The cron job catalog_index_refresh_price now executes without errors. Previously, an error was logged during cron execution, stating: “Cron Job catalog_index_refresh_price has an error: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match the number of tokens.” This issue has been resolved, ensuring smooth execution of the cron job.
Currency:
In terms of currency display, a missing space between custom currency symbols and prices has been rectified for both the storefront and Admin product prices. Additionally, the necessary condition and regex expression have been implemented to allow for a custom NBSP (non-breaking space) in currency symbols. This means that, for example, the display of “IDRx 105.00” was previously incorrect as “IDRx105.00,” but it is now shown correctly.
Customer Segment:
During the creation of a new cart price rule, the Yes/No filter on the Admin customer segments grid now functions as expected. This improvement ensures a smooth experience when setting up cart price rules and applying customer segments in the Admin panel.
Email Update
We have made some improvements to the email functionality in Adobe Commerce. Now, customers will no longer receive duplicate emails after an order is created from the Admin panel. Additionally, the Admin order emails will not be sent if the Email order confirmation setting is disabled (GitHub-36256).
Image Options
In the default email templates for credit memos, order confirmations, and invoice customer emails, we have fixed the issue where image options were displayed as HTML markup for products with custom options (GitHub-35901).
Frameworks
We have resolved an issue where Admin users were unable to open the Admin Store > Configuration page when no country was selected in the European Union Countries setting. Previously, an error was thrown when attempting to open this page, but now it is working as expected (GitHub-35901).
We have also fixed the dependencies for jquery.cookie, which were not working properly with JavaScript dependencies. Previously, aliases for jquery/jquery.cookie could not be used, but now they are functioning correctly (GitHub-35913).
The bin/magento i18n:collect-phrases command has been updated to include the <title> text in the exported CSV file (GitHub-35462).
We have made improvements to the Magento\Framework\Code\Reader\ArgumentsReader::getParentCall() function, which now supports named constructor arguments. This allows for calling a function by setting the parameters using their names.
Previously, errors were not being logged in the exception.log file, even though they were logged in the system.log file. We have fixed this issue, and now errors are correctly logged in var/log/exception.log as expected.
Merchants now have the ability to specify a custom external SMTP provider for email communication (GitHub-26104).
OAuth integrations can now be re-authorized without any issues on deployments running Adobe Commerce 2.4.3-p2. Previously, re-authorization failed with an error, and there were problems decrypting unencrypted values (GitHub-35313).
We have resolved the issue where the wrong rowId parameter was passed when saving the category URLKey for categories with child categories. Now, the correct categoryId is passed when saving the category URLKey.
To avoid errors on the storefront, we have added the product attribute code “event” to the list of reserved product attribute codes. Previously, using “event” as an attribute caused an error on the product detail and search/product list pages (GitHub-35651).
We have fixed the issue where AMQP consumers failed on deployments running PHP 8.1 due to a deprecated trim() function. Previously, an error was thrown when the AMQP consumer started after installation, but now it is working correctly (GitHub-35380).
The getFilteredTimerIds method now functions as expected, and the Magento\Framework\Profiler\Driver\Standard\Stat class is compatible with PHP 8.1. Previously, an exception was thrown when calling this method (GitHub-35307).
We have removed the dependency on the imagemin-svgo library.
The minifying template process now successfully processes consecutive comments when the first comment begins with “//” (GitHub-34880).
We have corrected a database query issued by the BundleGraphQl module that resulted in an error. The query no longer returns the “Undefined offset” notice (GitHub-34991).
General Fixes
We have addressed various issues and made improvements to Adobe Commerce:
- The Admin statistics dashboard now displays an accurate time range when the Last 24 Hours option is selected by an admin user. Previously, an incorrect time range was displayed due to a timezone issue with the database.
- Credit memos can now be generated for both integer and decimal quantities. Previously, only integer quantities were supported.
- The Customer Zip Code input validation rule for numeric values now functions correctly in the Edit Customer Address.
Media Gallery Update:
The default setting for the legacy Media Gallery has been changed to disabled. Previously, the option to enable the old Media Gallery was set to Yes. Furthermore, the new Media Gallery has been optimized to enhance the loading speed of the directory tree on the category page.
Logging Improvement:
A system report can now be generated for log files with a size of 0 bytes. Previously, Adobe Commerce would throw an error when attempting to generate a report for a collection of log files if one or more files were empty.
Order Enhancements:
On the Admin sales order credit memo page, the correct grand total is now displayed for orders that were created with Store Credit and multiple invoices. In the past, there was an issue with the grand total calculation, and users were unable to generate a credit memo. Additionally, the order prefix specified in the installation script is now correctly added to the order ID. Moreover, the order details page now loads successfully when an order contains a product with a long custom text value. Previously, the order details page would not load, and the value for the text custom option in the sales_order_item.product_options column was not stored properly if the product had a long value.
Storefront Enhancements:
The order status in the storefront is now accurately reflected for partially refunded orders. Previously, an order would remain in the processing state after shipment when a partial refund was applied. Moreover, for orders created by guest users, the customer group is now represented accurately as “Not Logged in.” Previously, in guest order summaries, the customer group was displayed as NULL, which affected confirmation emails and order export. Additionally, virtual orders are now assigned a status of “Closed” as expected after a credit memo is issued and the customer is refunded. Previously, virtual products were displayed as “Complete” in the Status drop-down but as “Closed” in the footer of the order comments when the comment was added from the Admin. Guests can now place orders for products with a quantity of less than one, and the product quantity is now strictly typed as a float. Previously, because the product quantity was strictly typed as an integer, orders for a quantity less than one would fail with the error message: “Some of the products are disabled.”
Shipping and Order Management Improvements:
Shipping refunds are now correctly calculated when the “Apply discount on prices” configuration option is set to include taxes. Furthermore, the invoice, shipment, and credit memo grids are now updated asynchronously after orders are archived to improve efficiency. Duplicate orders no longer result from concurrent identical GraphQL requests. Quotes are now locked for up to 10 seconds to prevent duplicate order creation, and the second request fails with the following errors: “The cart isn’t active” or “The order has already been placed and is currently processing.” The lock value can be configured through di for the Magento\Quote\Model\PlaceOrderMutex class lockWaitTimeout parameter. Additionally, adding a comment to an archived order no longer brings it back to the unarchived orders grid while maintaining its archived status. Company attribute values are now displayed correctly in the billing and shipping address sections of the checkout workflow. Previously, company attributes were not properly displayed on the order detail page due to incorrect store settings during order creation. Attribute values were stored correctly only when the “Show Company” property was set to optional for the Main Website in multi-store deployments. Moreover, the customer_address_id value is now set correctly for a new billing address when the “My billing and shipping address are the same” checkbox is checked. An additional condition has been introduced to identify whether the billing address is the same as the shipping address before setting the customer address ID for the shipping address. Furthermore, concurrency issues with order placement have been resolved. Previously, if two orders were placed from different browsers at the same time or nearly the same time, both orders would be assigned the same order ID. Placing an auto-invoiced order for a free product now works as expected when asynchronous indexing is enabled. No entries are added to the sales_order_grid or sales_invoice_grid table for these orders. Previously, Adobe Commerce would throw an exception because the application tried to index the grids during order placement instead of relying on cron.
Page Builder Updates:
The Page Builder now supports bulk importing of images into the gallery using the drag-and-drop feature. Additionally, issues with the Page Builder slider CSS rule have been resolved. Dropdown, Text area, and Text field attributes are now available in the Page Builder product attribute list. Previously, only Dropdown and Text area attributes were available.
Payment Enhancements:
The COD (Cash on Delivery) payment method is no longer displayed in the storefront checkout workflow when COD is exempted for the country specified in the shipping and billing addresses. Previously, the Admin configuration settings for this feature were not implemented. Vault payment information is no longer shown in the Payment section of the Admin order creation workflow if the shopper has not saved a token. Custom prices are no longer doubled after a discount is applied by a cart price rule. The new order pending status is now correctly honored when an order is placed using the Zero Subtotal Checkout payment method. Guest email settings are now respected during order creation for a guest shopper using PayPal Express via GraphQL. Previously, the email address set was overridden by the email address set in the PayPal account.
Braintree Updates:
Order IDs are now included in settlement requests for payment transactions in Braintree. Adobe Commerce no longer throws an error when a merchant clicks on Reports > Braintree Settlement due to an undefined constant error. The customerPaymentTokens query no longer returns Braintree tokens when the vault is turned off in the Admin. The Pay Later button and banners have been enabled for Italy and Spain. Admin users can now create an order or reorder when the Braintree payment method is enabled without encountering an error. Checkout using the Braintree payment method now completes successfully when Braintree PayPal is enabled and Enable Card Payments is disabled. Previously, the progress bar never resolved, and Adobe Commerce displayed a console error. Fraud protection, ACH payment, and local payment method webhooks have been implemented. The fraud protection webhook is triggered only if a risk decision has been made in Braintree, and the ACH webhook is triggered only after an ACH payment has been updated to settled or settlement decline. The Tagline and Layout configuration fields have been removed from all PayPal buttons in the Admin Styling section. The Braintree Vault payment method option remains selected in the checkout workflow when a shopper updates their billing address. Line items are now passed for PayPal transactions when the Send Line Items configuration setting is enabled from the Admin. Validation logic on the ACH payment method’s Account Number field now supports four to 17 digit text. The customerPaymentTokens query no longer returns Braintree tokens when the vault is turned off in the Admin. Admin users can now create an order or reorder for customers when the Braintree payment method is enabled without encountering an error. Shoppers can now use the Braintree payment method in storefronts where Enable Card Payments has been disabled without encountering a JavaScript error.
Improvements in Performance
We have made some enhancements to the price indexer. Now, when we perform partial re-indexing of large catalogs, the outdated data is properly deleted after replacing the records. Previously, the re-indexing process would remove outdated records before replacing them, causing temporary disappearance of products from the storefront. This issue has been resolved (GitHub-35616).
Furthermore, we have improved the performance of the bin/magento/setup:upgrade command. Previously, executing this command would recreate the database triggers, leading to significant downtime. Additionally, the indexers would not revert back to the scheduled mode and remained in save mode. These issues have been addressed, resulting in improved performance (GitHub-33386).
The speed of updating tier prices through the API has also been increased. Previously, there were unnecessary SELECT queries generated during the update process, causing delays when multiple customer groups were assigned to a product.
We have optimized the loading of pages that include the catalog widget product list. In the past, non-global attributes were directly loaded from the database, causing inefficiencies. This has been resolved to improve page loading speed.
Reports
In the Admin log report, the Value before change value is now accurately displayed when a category rule is updated.
The Order Total report now properly displays the selected from and to dates after choosing them from the date picker.
In the Braintree/Ui/Component/Report/Listing/Column/PaymentType.php file, the ANDROID_PAY_CARD constant has replaced GOOGLE_PAY_CARD. This update resolves issues with the Braintree report.
Return Merchandise Authorizations (RMA)
The RMA comment field (Orders > Return) no longer contains unnecessary whitespace, and the <textarea> and <?php tags are now on one line.
The Use Config Settings checkbox for the Enable RMA field now correctly saves its value when a product is saved.
Reviews
Admin users with restricted access to a specific scope can now delete product reviews as expected.
Roles
We have added a missing ACL (Access Control List) for the Stores > Configuration > Services > OAuth section. Previously, it was not possible to define access to this OAuth configuration setting when setting up role permissions.
Search
Searches for strings within quotation marks now function properly when the Minimum Terms to Match configuration setting is enabled. Previously, there was an error thrown by Adobe Commerce when using this feature (GitHub-36055).
The Signed up point search filter for customer records on the sales order customer grids now works correctly during order creation.
The quality of search suggestions for multi-word queries has been improved.
Search results now include out-of-stock option outputs for all available products when the “Display Out Of Stock Products” feature is enabled (GitHub-36055).
Shipping
Shipping rates for FedEx, USPS, and UPS are now accurately calculated when the Free Shipping Cart rule is set to apply to only a subset of items in the cart.
The free shipping option is no longer displayed on the Admin shipping page when the order total is less than the specified minimum order amount eligible for free shipping (GitHub-33697).
Adobe Commerce now respects the Admin customer Show Company configuration setting when displaying shipping or customer address. When this setting is disabled, the shipping company is no longer included in the shipping, customer address, or the database order record. Previously, this information would still be displayed despite the setting being disabled (GitHub-33729).
We have eliminated a redundant save operation on quotes when estimating shipping.
The storeId scope is now directly applied from $request->getStoreId() to ensure that the scope is not lost when a quote is created by an admin user. Previously, there were occasional issues with shipping methods when a quote was created from the Admin using third-party modules.
SEO-friendly URLs are now generated correctly for products whose url_key setting is overridden on the store-view level. Previously, category product URLs were not redirected to SEO-friendly URLs.
Adobe Commerce no longer throws a minimum order amount error when a discount is applied to shipping costs.
Shipping refunds are now correctly calculated when tax is applied after a discount has been applied to shipping.
All applicable promotions for a requested cart through GraphQL cart query are now returned together. These promotions include line item discounts, cart rules/discounts, coupons, gift cards, and store credit (GitHub-35545).
We have added the price_excl_tax and price_excl_tax types to the output of the setShippingMethodsOnCart mutation (GitHub-31206).
Unique shipping IDs are now included in GraphQL responses as expected, providing shipping details for orders shipping to multiple addresses for GraphQL queries.
Staging
We have addressed an issue where rescheduling a staging update’s end date would result in an error after the update was completed. Previously, administrators were unable to open product pages and grids, and an error message was thrown: “Exception: Item (Magento\Catalog\Model\Product\Interceptor) with the same ID “1” already exists” in Adobe Commerce. This issue has now been resolved.
Furthermore, we have made improvements to the staging dashboard. It now displays the correct total number of records, and the pagination feature works as expected. Previously, the dashboard was limited to displaying only 20 records.
To enhance performance in deployments with multiple stores, we have optimized the loading speed of content staging previews. Preview re-indexing now re-indexes only the selected stores, resulting in faster loading times.
We have also addressed an issue where products could not be added to the shopping cart in scheduling preview mode. By updating the breadcrumb links with the correct parameters (version, timestamp, and signature), this issue has been resolved.
Tax
We have fixed an issue related to the Display Zero Tax Subtotal configuration setting for orders in deployments offering multiple shipping methods. Previously, even when this setting was disabled, the zero tax field was visible on the cart page during checkout before a shipping method was selected. This behavior has now been corrected.
In deployments running PHP 8.1, Adobe Commerce can now correctly display grouped products with tax on the storefront category page. Previously, a list of products was not displayed, and the following exception was thrown: “Exception: Deprecated Functionality: ucfirst(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/m24/vendor/magento/module-tax/Pricing/Render/Adjustment.php on line 188 in /var/www/m24/vendor/magento/framework/App/ErrorHandler.php:61.”
We have addressed an issue where scheduling updates for cart price rules would create duplicate schedules when moved to another update containing the same rule ID. Merchants can no longer perform such a move, resolving the problem of duplicate schedules.
Automatic customer group assignment now functions correctly, even when there is no VAT ID associated with the customer’s address. In cases where the address does not contain a VAT ID, Adobe Commerce treats it as belonging to a non-VAT registered customer and changes the customer group to a non-VAT group. Previously, with the “Enable Automatic Assignment to Customer Group” option enabled, the customer account was not automatically assigned to the customer group when the VAT ID was deleted from the account.
The correct dynamic blocks are now shown for staged catalog rules in staging preview mode. Previously, unrelated dynamic blocks were displayed.
We have also fixed an issue related to multiple taxes in the Tax Summary section of invoices and credit memos when multi-shipping is applied during checkout. Now, multiple taxes are rendered correctly in this section.
Discounts
Previously, there was an issue where discounts were applied even when the order subtotal, including tax and Fixed Product Tax amount, exceeded the cart rule condition on the cart page. We have addressed this issue, and discounts are no longer applied in such cases.
Additionally, we have made improvements to the GraphQL functionality by allowing the specification of a vat_id when adding or updating the address of a guest shopper.
Test
We have resolved errors encountered in unit tests when using different versions of the ICU and libxml libraries.
Developers can now instruct the system to execute a data fixture in a specific store view by using the new optional parameter “scope.” This parameter accepts a string corresponding to the store fixture alias.
Furthermore, we have added the ability to generate multiple instances of a data fixture using the optional “count” parameter.
In the MFTF framework, we have removed the non-native “array_first” function from dev dependencies.
Translations and locales
We have fixed an issue related to inline translation and special characters, including extended unicode characters, in phrases located within SCRIPT tags. Previously, Japanese characters were rendered incorrectly when using inline translation to edit scripts.
During URL key generation, the character “ñ” in a product name is now converted to “n” as expected.
The output of running “bin/magento i18n:collect-phrases” now includes mail template translations in depend constructs as intended.
Directly inputting Japanese characters into the product page attribute set (combo box) no longer results in changed or deleted characters when using the Firefox browser on MacOS. We have replaced the “Value” and “valueUpdate” attributes with the “textInput” HTML attribute, which can handle Japanese character conversion better in all browsers.
The “getOptions” method now correctly fetches price attribute label values based on the store view. Previously, the price attribute was translated incorrectly during GraphQL operations for the wrong store view.
UI
The Admin products grid now uses the website-specific currency as expected for the Special Price, Cost, and MSRP columns. Previously, the correct currency symbol was not displayed in the grid when filtering by the store view for a special price.
The drag and drop functionality of product custom options now works as expected. Users can now move a customizable option from one page to another when multiple pages are available in the customizable option grid.
Admin dashboard charts now display Year-to-Date (YTD) time intervals correctly, from the beginning of the current calendar year to the current date. Previously, the date ranges included more than 12 months.
We have added a missing default favicon on the storefront home page.
The Admin now displays the latest login date of each admin user accurately. Previously, when an admin user logged in for the first time, an empty login date value was shown on the Admin user grid.
The preview email template feature (Marketing > Communications > Email Templates) now correctly displays templates. Previously, the preview image was truncated.
To support styling of the new shipping address modal, we have added the “new-shipping-address-modal” class.
Informative text has been added beneath the Storefront Properties input field for the Search Weight attribute on Admin Stores > Attributes > Product.
Email previews now open in a separate tab instead of a popup window, providing a wider view of the email content. Previously, the email content was truncated.
The filter function for the user role grid (Admin System > Permissions > User roles > Administrators) now works as expected. The array value is now handled separately. Previously, entering a query in this grid caused Adobe Commerce to throw a console error, preventing the page from loading: “Uncaught TypeError: Cannot read properties of null.”
We have added validation for attribute values when creating a customer through the REST API. The creation process now fails when invalid attribute values are provided. Previously, there was no validation for the gender attribute, which is not a required field. During customer creation, the value passed for gender was saved in the customer_entity table.
Addresses added during checkout now maintain their expected format. Previously, blank lines were ignored.
Changing the column view of the product grid and selecting new columns for a custom view no longer triggers a “Select All Grid Columns” action. Previously, the column box disappeared, and products in the grid were selected or deselected.
Admin users can now successfully clear the Admin completed tasks log. Previously, the Admin displayed the error message: “Something went wrong.”
The “Welcome Text” setting in the theme header can now contain a single quote character without causing any JavaScript errors. Previously, Adobe Commerce threw the error: “Uncaught SyntaxError: Unable to process binding ‘ifnot: function(){return customer().fullname }’.”
URL Rewrites Enhancement:
When changing the product visibility to “Not Visible Individually” in the global All Store Views scope, the system now removes URL rewrites only for store views that haven’t overridden the visibility attribute. Additionally, this change generates URL rewrites for all store views, including those that have overridden the URL key attribute (excluding the visibility setting). Previously, URL-rewrite rules were not applied when visibility settings were modified.
Visual Merchandiser Update:
In Visual Merchandiser category listings, manual changes to product positions are no longer allowed for products matched by rule.
Administrative Users Improvement:
Administrative users with access restricted to a single store can no longer drag and drop products within a category in Visual Merchandiser. Instead, they can utilize the Position column to rearrange the product position. Previously, these users were only able to change product position within a category by using drag and drop.
Category Editing Enhancement:
The “Products in Category” section of the category edit page now accurately displays the correct quantity of configurable products. The correct table column is now utilized to retrieve the quantity of configurable products.
Web API Framework Update:
The REST API endpoint DELETE /rest/V1/products/:sku/media/:entryId now returns an error message if an image cannot be removed from the product because it is assigned to a role in other store views. Previously, the API returned a successful response even when the image was not successfully removed.
Credit Memo Creation Enhancement:
Merchants can now utilize the REST API to create a credit memo for an order with a zero grand total. Previously, attempting to create a credit memo for such orders in Adobe Commerce resulted in an error: “The order does not allow a credit memo to be created. The credit memo’s total must be positive. We can’t create a credit memo for the invoice/order.”
Product Assignment Update:
After changing a product’s website assignment using the REST API, the Admin product edit page now accurately reflects the product’s assignments.
Bulk API Improvement:
During bulk REST API requests to update products, duplicate option IDs are no longer accepted for multi-select attributes. Previously, it was possible to set duplicate option IDs for multi-select attributes when sending a bulk API request to update a product. This led to EAV indexing failures with a “Duplicate entry” error when the multi-select attribute was configured for inclusion in layered navigation.
Cart Functionality Enhancement:
Product names in shopping carts now correctly display the values specific to the selected store view in REST API cart responses. Previously, product names in the cart always returned the default store view value.
Custom Option Update:
Cart item custom option values can now be updated using the REST API.
Bulk API Request Improvement:
Bulk API requests for more than 20 source items now successfully complete in deployments where Inventory is enabled.
Currency Service Fix:
The Fixer currency service now functions as expected with keys generated via ApiLayer, and currency rates are exported correctly. Previously, an error was thrown in Adobe Commerce when merchants attempted to import currency rates through the Admin.
Enhanced Querying Capability:
The REST API request /rest/V1/bulk?searchCriteria[filter_groups] can now be used to query bulk operations based on specific search criteria. Previously, this request returned an error: “report.CRITICAL: Report ID: webapi-624bbb1db96c4; Message: Item (Magento\AsynchronousOperations\Model\Operation) with the same ID ‘0’ already exists.”
Price Update Improvement:
Product prices are now accurately updated on both the Admin and storefront catalog search pages using the Manage Base Price API.
Wish List Functionality Update:
Shoppers can now add products to their wish list after logging in. Previously, due to form key validation issues after login, the form key submitted with the add-to-wishlist request was invalidated.
Improved Wish List Functionality:
Products are now successfully added to the wish list from both product list and view pages after a guest customer confirms their account from a confirmation email. Previously, products were not added to the wish list after account confirmation.
Custom Option Error Handling:
The addProductsToWishlist query now returns a helpful error message when a shopper attempts to add an item to a wish list with an invalid value for the product select custom option. Previously, server validation for the dropdown custom option value was missing, resulting in an invalid value in the database. This caused the endpoint to return an internal server error.
Known Issue:
There is currently an issue where a credit memo cannot be created when free shipping is enabled (Stores > Configuration > Sales > Delivery Methods) and the displayed shipping price includes tax. Attempting to create a credit memo in this scenario results in an exception: “Division by zero” at vendor/magento/module-sales/Model/Order/Creditmemo/Total/Tax.phpLine 139.
Workaround:
A hotfix for this issue is now available. To resolve the problem, please use the Quality Patches Tool and search for the patch ACSD-50814.
Leave a Reply