Adobe Commerce introduces improvements to platform quality, payment methods, GraphQL caching performance, and accessibility. It includes updates to integrated Google modules and the Upgrade Compatibility Tool and introduces Live Search B2B support.
This release includes over 400 quality fixes and enhancements.
Adobe Commerce and Magento Open Source releases may contain backward-incompatible changes (BICs). To review backward-incompatible changes, see BIC reference. Major backward-incompatible issues are described in BIC highlights. Not all releases introduce major BICs.
Although code for these features is bundled with quarterly releases of the Adobe Commerce core code, several of these projects (for example, B2B, Page Builder, and Progressive Web Applications (PWA) Studio) are also released independently. Bug fixes for these projects are documented in the separate, project-specific release information that is available in the documentation for each project.
Adobe Commerce 2.4.5 includes resolution of all issues that were addressed by the following hotfixes, which were provided for Adobe Commerce:
Braintree_disabled_partial_capture_for_applepay_googlepay.zip
. This patch addresses the inability of users to create partial invoices when using either Apple Pay or Google Pay through Braintree as a payment method. See the Adobe Commerce 2.4.4: Unable to create partial invoices Knowledge Base article.
AC-2655_2.4.4.patch.zip
. This patch addresses an issue where shoppers cannot add a product to their cart when the Allow Countries option is unselected. See the Users not able to add product to cart if nothing selected in Allow Countries Knowledge Base article.
Look for the following highlights in this release.
This release includes 20 security fixes and platform security improvements. This security fix has been backported to Adobe Commerce 2.4.3-p3 and Adobe Commerce 2.3.7-p4.
No confirmed attacks related to these issues have occurred to date. However, certain vulnerabilities can potentially be exploited to access customer information or take over administrator sessions. Most of these issues require that an attacker first obtains access to the Admin. As a result, we remind you to take all necessary steps to protect your Admin, including but not limited to these efforts:
/admin
See Adobe Security Bulletin for the latest discussion of these fixed issues.
Security improvements for this release improve compliance with the latest security best practices, including:
reCAPTCHA support has been added to the Wish List Sharing, Create New Customer Account, and Gift Card forms.
ACL resources have been added to Inventory.
Inventory template security has been enhanced.
The MaliciousCode
filter has been upgraded to use the HtmlPurifier
library.
Adobe Commerce on-premises deployments: Adobe Commerce 2.4.5 has been tested and confirmed to be compatible with Elasticsearch 7.17 (~7.17.0 with constraint). Merchants hosting Adobe Commerce on-premises can use either Elasticsearch or OpenSearch 1.2.
Adobe Commerce cloud-hosted deployments: ElasticSearch 7.11 or later is not supported on Adobe Commerce 2.4.5 cloud-hosted deployments. OpenSearch is the default search engine for Adobe Commerce 2.4.5 cloud deployments.
Adobe Commerce 2.4.5 now supports
Composer 2.2
TinyMCE (5.10.2). Earlier versions of TinyMCE (v5.9.2 or earlier) allowed arbitrary JavaScript execution when a specially crafted URL or an image with a specially crafted URL was updated.
jQueryUI (1.13.1)
PHPStan
(^1.5.7 with constraint) GitHub-35315
The DHL Integration schema has been updated from v6.0 to v6.2. This upgrade will not result in a change in product behavior.
Outdated JavaScript libraries have been updated to their latest versions, and outdated dependencies have been removed. These changes are backward compatible.
The following Composer dependencies have been updated to the latest versions with constraint:
colinmollenhour/credis
(1.13.0)? guzzlehttp/guzzle
(^7.4.2)laminas/laminas-captcha
(updated with a constraint ^2.12) laminas/laminas-db
(^2.15.0)laminas/laminas-di
(^3.7.0)laminas/laminas-escaper
(~2.10.0)laminas/laminas-eventmanager
(^3.5.0)laminas/laminas-feed
(^2.17.0)laminas/laminas-mail
(^2.16.0)laminas/laminas-mvc
(^3.3.3)laminas/laminas-server
(^2.11.1)laminas/laminas-servicemanager
(^3.11.0)laminas/laminas-validator
(^2.17.0)league/fly
(2.4.3) monolog/monolog
(^2.5)phpmd/phpmd
(^2.12.0)phpstan/phpstan
(^1.5.7)phpunit/phpunit
(~9.5.20)php-cs-fixer
(^3.4.0) webonyx/graphql-php
(14.11.6)The laminas/laminas-session
, laminas/laminas-text
, and laminas/laminas-view
dependencies have been removed.
The DHL Integration schema has been updated from v6.0 to v6.2.
The default Gateway URL for USPS shipping has been updated to use https
instead of http
.
The Froogaloop
library has been replaced with the Vimeo Player.js
library (2.16.4).
The grunt-eslint
(NPM) library has been upgraded to the latest version.
The jQuery Storage
libraries have been replaced with julien-maurel/js-storage
.
The php-cs-fixer
and phpcs
static code analysis tools are now compatible with PHP 8.x.
glob.js
dependency (upgraded with constraint to ~7.2.0)
serve-static.js
dependency (upgraded with constraint ~1.14.2)
underscore.js
dependency (NPM) (1.14.2)
moment-timezone-with-data.js
(0.5.34)
The library jquery/jquery-cookie
has been replaced with js-cookie/js-cookie
.
The jarallax.js
and jaralax-video.js
libraries have been updated to use the latest version of the Vimeo REST API.
Primary index performance has been improved by reducing the number of primary indexes from 3 to 1 for the catalog_product_index_price_tmp
table. This enhancement reduced the number of records created in the price index by reducing eSKU multiplication that resulted from shared catalogs. Indexing time has been significantly reduced.
The focus of this release has been on creating a storefront experience on Venia (PWA) that is more perceivable, operable, understandable, and robust. These enhancements include:
Merchants can now allow customers to electronically sign customized agreements, such as warranty documents, purchase agreements, and terms and conditions, during Adobe Commerce checkout.
Adobe Commerce merchants who have an Adobe ID and want a streamlined login to Adobe Commerce and Adobe Business products can integrate Commerce authentication with the Adobe IMS authentication workflow. After this integration is enabled for your Commerce store, each Admin user must use their Adobe credentials — not their Commerce credentials — to log in. See Adobe Identity Management Service (IMS) Integration Overview.
The Admin has been updated to align with Adobe’s brand strategy. Changes affect headers, footers, data grid color updates, and navigation elements.
We have optimized the normalized database data that is needed to implement the Shared Catalogs feature. This reduction in eSKU multiplication results in a performance boost as fewer database rows must be stored. Previously, Adobe Commerce duplicated every SKU in the catalog for each Shared Catalog. Adobe Commerce now creates unique eSKUs for those directly assigned to a Shared Catalog.
Enabling the new Enabled Shared Catalog direct product price assigning configuration option also improves product price indexer performance.
This release includes multiple bug fixes. See B2B Release Notes.
Google has updated the tracking and integration mechanisms of AdWords and Analytics in web applications through integration with GTag. This integration of Google functionality into website pages extends opportunities to track and manage content through Google Services. Adobe Commerce has a set of built-in modules including Google AdWords, Analytics, Optimizer, and TagManager that leverage the former API for integration with Google services. In this release, we have re-implemented this integration using the GTag approach. See Migrate from analytics.js to gtag.js (Universal Analytics).
GraphQL performance enhancements include:
Developers and administrators experience faster rebuilding of the unified storefront GraphQL schema on deployment or when changing attributes in production. Shoppers also experience significantly faster page load speeds when the GraphQL schema must be rebuilt for any reason.
Added capability to consume the expiration date/time of the authorization token through the use of JSON Web Tokens (JWT) in the GraphQL API.
The bin/magento config:set graphql/session/disable 1
command allows merchants to completely disable the creation of session cookies for all GraphQL operations. By default, Adobe Commerce creates these cookies and relies on them for authorization, which affects performance. Going forward, we recommend using tokens as the only form of authorization for GraphQL requests. We do not recommend using session cookies alone or in conjunction with authorization tokens. See GraphQL Authorization.
Session cookies are now launched in GraphQL operations using class proxies only when needed.
Session usage has been removed from http
header processors in GraphQL such as store, customer, or currency.
See the GraphQL Developer Guide for details on these enhancements.
Inventory template security has been enhanced.
This release introduces support for B2B customer groups and custom pricing. Live Search now respects product assignments to customer groups and the pricing that is set for a specific customer group/shared catalog.
Page Builder v.1.7.2 is compatible with Adobe Commerce 2.4.5.
Page Builder column layout includes these enhancements:
Columns are now exposed, permitting users to control column settings on the storefront.
Column resizing now supports wrapping triggered by user actions.
Apple Pay is now available to all merchants running deployments with Payment Services enabled. This payment method does not require shoppers to enter their credit or debit card details. Apple Pay is available on the product details page, mini cart, shopping cart, and checkout workflow. Merchants can toggle on this feature.
Merchants in Spain and Italy can now offer PayPal Pay Later to shoppers.
Previews of the PayPal, Credit and Pay Later buttons are now available in the Admin for the checkout, mini cart, cart, and product pages. Previews reveal how these buttons will look when they are enabled and rendered on the storefront.
Braintree has discontinued the KOUNT fraud protection integration. It has been removed from the Adobe Commerce codebase.
The Always request 3DS option has been added to the Admin.
PWA Studio v.12.5.x is compatible with Adobe Commerce 2.4.5.
New features for this release include:
Shopper behavior data is collected on PWA Studio storefront for web analytics services. Merchants can now subscribe and extend these events as needed.
Merchants can now select a service to deploy from the Admin (Google Tag Manager).
For information about enhancements and bug fixes, see PWA Studio releases. See Version compatibility for a list of PWA Studio versions and their compatible Adobe Commerce core versions.
Enhancements include:
Method signature validation now identifies incompatible changes within a method or a constructor signature.
Database schema validation now identifies schema changes and incompatibilities.
DI configuration validation now verifies references to removed or deprecated non-API core classes in di.xml
and preferences for core classes and interfaces.
UCT now identifies code deprecations and provides specific recommendations for resolving each issue.
We have fixed hundreds of issues in the Adobe Commerce 2.4.5 core code.
patch_list
database table. Adobe Commerce now checks whether data patch aliases already existed in the database before applying the patch. Previously, Adobe Commerce threw an error under these conditions.PUT /V1/products
endpoint to update product price attributes for a specific website. Previously, if some product attributes were overridden for a specific store view, you could not update a price attribute for that product in that same store view.use_stale_cache
is enabled.addProductsToCart
mutation now works correctly with multiple products. Previously, this query returned the first product with an accurate subtotal, but returned a subtotal of 0 for other products.There has been an error processing your request
.cart
query no longer return null responses when a product is out of stock. A new errors
element containing the error message was introduced to the response. Previously, when you ran a query with an out-of-stock product, Adobe Commerce displayed a null
value under the items
section in the response. See cart query.Parent Only
attribute scope is now used properly in the Cart Rule condition.PUT /V1/products/
for a store view. Previously, a new URL key was generated based on the new product name and assigned to the product, which overrode the URL key in that store view.Unfortunately there are no products in this category on our website currently
.catalogrule_product_price
table after a full re-index. Previously, triggers were removed from the catalogrule_product_price
table after a catalogrule_rule
or catalogrule_product
full re-index.PUT /V1/products/tier-prices
returned an incorrect error message.ConfigurableWishlistItem.configured_variant
field has replaced the ConfigurableWishlistItem.child_sku
field. The latter field triggered an internal error when a customer wishlist contained an un-configured configurable product.Synchronize widget products with backend storage
setting is enabled, Adobe Commerce adds recently view product data into the catalog_product_frontend_action
database table. It includes the customer or visitor ID when adding records. The recently_viewed_product
section in the response is now empty if customer ID and visitor ID are null. As a result, when the customer/section/load
Ajax request is sent, Adobe Commerce can correctly filter recently viewed products based on customer or visitor ID. Previously, the response included all the data available in the catalog_product_frontend_action
database table because there was no check for an empty customer or visitor ID.Quantity
attribute for configurable products now work correctly when staging is implemented. Previously, when products had different values for row_id
and entity_id
in the catalog_product_entity
table due to staging updates, the Visual Merchandiser Match product by rule functionality did not correctly filter the products.Item (Magento\Catalog\Model\Product\Interceptor) with the same ID "<ID>" already exists
. GitHub-33145form_key
and UI form_key
differed, and Adobe Commerce displayed this error: Invalid Form Key. Please refresh the page
.int
to prevent possible performance issues.Adobe Commerce now displays an error message as expected when you try to create an attribute from the product page without completing the Admin field. GitHub-33099
Product ratings are now correct on all catalog product lists when the home page contains multiple catalog lists. GitHub-33867
products
query now retrieves prices for configurable products that accurately reflect the Display Out Of Stock configuration setting. Previously, the query did not return accurate prices.POST /V1/configurable-products/configurable1/child
.select
attributes via a patch script. Previously, eligible global attributes were hidden.addConfigurableProductsToCart
mutation can now be used to add configurable products with custom options. Previously, Adobe Commerce threw this error: Magento 2.3.4 graphql Notice: Undefined index: option_value in /var/www/html/mg234/vendor/magento/module-configurable-product-graph-ql/Model/Resolver/ConfigurableCartItemOptions.php on line 62
. GitHub-28860Adobe Commerce now correctly displays a configurable product’s stock status, available configurations, and displayed price when the availability of one of the configurable product’s child product is changed by a scheduled update. Previously, when a configurable product had two children and the availability of one child product was disabled with a scheduled update, the parent product’s stock status was incorrectly displayed as Out of Stock when the update was active, After the update completed, the displayed price and the availability of its configurations was miscalculated.
You can now re-order configurable products with optional custom options. Previously, re-order attempts failed, and meant displayed this error: Some of the selected options are not currently available
. GitHub-35409
addConfigurableProductsToCart
mutation now works as expected with multiple products. Previously, incorrect product information was returned, or an invalid error message was returned. GitHub-30948TIMESTAMPDIFF(DAY, ,)
SQL function has replaced the TO_DAYS()
function and calculates the difference in the timestamps on the basis of date and time. Previously, email reminders were not sent per schedule because of the incorrect calculation of two date-time values of cart abandonment (any timezone) and server time (UTC).bin/magento setup:config:set
command no longer overrides already set cache ID prefixes in app/etc/env.php
.bin/magento setup:static-content:deploy -s compact
command now includes styles from child themes as expected. Previously, theme CSS files were not present on the storefront after deployment.void
elements.di.xml
file after update.updateCartCurrency
function now sets string instead of an object inside the cart object. Previously, Adobe Commerce did not load a quote using getQuote
because the updateCartCurrency
function set an object instead of a string inside the cart object. GitHub-34199\DateTimeFormatter::formatObject()
. This method now works as expected with numeric values for $format
.preg_replace()
error on the Admin. The third argument ($subject
) is now of type array|string
instead of bool
.isFreeShipping
method now returns an integer rather than a Boolean.GitHub-35164vendor/magento/module-backend/Model/Menu.php
: Error: Call to undefined method ReflectionUnionType::getName()
. GitHub-35292/checkout/sidebar/updateItemQty/?item_qty=error
on the storefront. Previously, this error was thrown: Warning: A non-numeric value encountered in /vendor/magento/module-checkout/Controller/Sidebar/UpdateItemQty.php on line 69
. GitHub-34380trim(): Passing null to parameter #1 ($string) of type string is deprecated
error when the AMPQ connection is configured without SSL configuration.longblog
database definition to long blob
. GitHub-35108TypeError
in magento2/app/code/Magento/Security/Model/AdminSessionsManager.php
has been corrected from int
to string
. GitHub-34415.htpasswd
has been added to banned locations in the nginx
configuration file. GitHub-35150Magento_Ui/js/core/app
as a deps
to app/code/Magento/Ui/view/frontend/requirejs-config.js
. GitHub-34847ProductRepository.php:get
method now returns cache keys once. Previously, they were returned twice. GitHub-34958GraphQl-GroupedProductGraphQl
modules have been updated. GitHub-34951Name is not valid!
error.products
query now returns product information that accurately reflects the “Show Related Products” configuration. The related_products
, upsell_products
, and crosssell_products
fields in the GraphQL ProductInterface are now resolved according to Show Related Products, Show Upsell Products, and Show Cross-Sell Products configuration respectively.multiselect
attributes.tier_price
) to product comparisons. Previously, the product comparisons page crashed when the Comparable on storefront setting for this attribute was enabled. GitHub-35244A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later
.app/code/Magento/NewRelicReporting/etc/adminhtml/system.xml
. GitHub-31947csp_whitelist.xml
files. GitHub-30607products
queries now correctly returns product data that contains gift card products with a gift-card
URL key.price_range
attribute has been added to the GraphQL BundleItemOption
type. GitHub-35010products
query no longer returns attributes as an aggregation when the Use in Search Results Layered Navigation setting is disabled. GitHub-33318price_including_tax
field has been added to CartItemPrices
. GitHub-29057new_from_data
and new_to_datefields
in ProductInterface
are no longer deprecated. GitHub-34783categories
query no longer throws an exception when fetching a list of categories one of which contains an image that cannot be found on the filesystem. Previously, Adobe Commerce threw this exception: Category image not found
. GitHub-34266products
query now returns category_uid
as an aggregation as expected. GitHub-32557updateCartItems
mutation now removes products as expected when the product stock has reached the maximum stock amount. GitHub-30220urlResolver
query now resolves the path delimiter (/) correctly when multiple homepages have the same identifier. Previously, the query did not resolve the delimiter and returned null. GitHub-33615customer
queries now fetch bundle product multi-select options as expected when querying orders. GitHub-34717ClearCustomerSessionAfterRequest
plugin logged out the shopper. GitHub-34550products
query no longer returns price_range
values for configurable products that are affected by disabled variants. GitHub-33629products
query responses are now correctly calculated when the Display Out of Stock Products configuration setting is enabled. Previously, disabled options were taken into account in the minimum and maximum price calculation.products
query now returns correctly filtered multiple categories when sorting by position.setShippingAddressesOnCart
requests now successfully validate region IDs. Previously, Adobe Commerce threw an error when you used region ID instead of region code.products
queries now return only the categories associated with the store passed in the request.categoryList
query now returns results that reflect the queried store’s root category when the store is specified in the header. Previously, categories from the default root category were included in results even though another store was specified in the header.products
query no longer returns attributes as an aggregation when the Use in Search Results Layered Navigation setting is disabled. GitHub-33318cart
query now returns only one payment methods for free orders. Previously, all active payment methods were returned in the query response. GitHub-34036collectQuoteTotals
call to ensure store credits are not applied multiple times.generateCustomerTokenAsAdmin
mutation now retrieves customer tokens as expected. Previously, tokens were not returned, and this error was returned: Customer email provided does not exist
.type
product attribute is defined. Previously, the schema was invalid because the type
attribute on products types was overwritten by the custom type
attribute. GitHub-34929createCustomer
, createCustomerV2
, updateCustomer
, or updateCustomerV2
mutation are now added with active newsletter subscriptions. Previously, customers were unsubscribed from newsletters even when the request contained proper input parameters. GitHub-33599products
query for a specific store view now returns only categories that are in the specific website’s root category in multi-site deployment. Previously, the query returned categories from the root categories of other websites. GitHub-34570products
query now returns only the subcategory of provided category ID. Previously, it returned all categories. GitHub-35220customerOrders
query now responds as expected when the gift_message
object is specified in the response but no gift message exists. Previously, the query returned this message: Can't load gift message for order is returned
. GitHub-28957catalog_category_product
indexer that caused the products
query to return categories from another store. GitHub-31253generateCustomerToken
mutation now creates an entry in the customer_log
as expected after generating a customer token. GitHub-33378Imported resource (image) could not be downloaded from external resource due to timeout or access permissions in row(s):
.populateExistingOptions
method. The option title is also displayed correctly. Previously, after the initial import, successive imports resulted in corrupted behavior and doubled options. Shoppers could not add the product to the cart, either.catalog_url_rewrite_product_category
table are now deleted before inserting new ones. Previously, the following error occurred during multi-store product import: SQLSTATE[23000]: Integrity constraint violation
. GitHub-34210delayedRender
logic for the toolbar in TinyMCE.contentUpdated
event listener. GitHub-32068getTypeID
function now returns product type ID not product ID. GitHub-35458jQuery UI slider and SelectMenu
mapping has been corrected in vendor/magento/module-theme/view/base/requirejs-config.js
.
Observers placed on sales_order_state_change_before
now support the retrieval of data from the order object. The sales_order_state_change_before
event
argument has been updated. GitHub-26789
indexer:reset
has been refactored to call $indexer->invalidate()
. GitHub-34988htmlClass
attribute value, which supports the use of additional components such as the Tailwind UI. GitHub-34430postDispatch
handler had not been specified in configuration settings.Repetitive actions have been replaced with action groups in these tests:
AdminConfigurableProductChildrenOutOfStockTest
GitHub-32378
AdminCreateStoreViewTest
GitHub-34631
AdminUnlockAdminUserEntityTest
GitHub-34836
StorefrontNewsletterSubscriptionWithEnabledNeedToConfirmConfigTest
GitHub-33344
AdminCancelTheCreatedOrderWithCashOnDeliveryPaymentMethodTest
GitHub-33692
customer_firstname
and customer_lastname, x_forwarded_for
.The store that was requested wasn't found. Verify the store and try again
.The store that was requested wasn't found. Verify the store and try again. Exception in /var/www/html/vendor/magento/module-store/Model/StoreRepository.php:75
. GitHub-35122increment_id
column in the sales_order
table has been increased. Previously, third-party modules that assumed that sales_order.increment_id
had a length of 50 characters saved only the first 32 characters of an increment_id
. GitHub-34521No such entity with cartId = 0
.cart
query no longer returns all active payment methods for free orders. GitHub-34036paypal_credit
field. GitHub-35180Grid Filter Condition Type
customer/customer address attribute controls how an attribute filter is matched against the attribute values in the database, Options include Partial Match
, Prefix Match
, and Full Match
.array_merge
in loops. GitHub-33929GET /V1/returnsAttributeMetadata
endpoint now works correctly when the rma_item
entity default attribute set ID differs from the default installation ID. Previously, this endpoint returned an empty result if these IDs differed.entity
is null, then the database query will not be executed because querying the magento_reward_history
table is not mandatory under the circumstances.customer_id
, which skips querying the magento_reward_history
database table table for reward points. This change has improved performance.int
is configured as a searchable backend type
attribute. Previously, Adobe Commerce threw an Elasticsearch\Common\Exceptions\BadRequest400Exception
exception.PageCache
key did not include filter parameters for configurable products.catalogsearch/advanced/result
and catalogsearch/advanced/index
pages. Previously, Adobe Commerce displayed this error when an array was passed in any advanced search string : Warning: trim() expects parameter 1 to be string, array given | magento/module-catalog-search
. GitHub-33586custom_design_to
attribute value is now updated as expected when a scheduled update is changed. Previously, two separate category design updates with no end time were treated as one. When one of the scheduled updates was deleted while the first one was running, the custom_design_from
time value became greater than the custom_design_to
time values in the next scheduled update.vendor/magento/module-catalog-staging/Setup/Patch/Data/MigrateCatalogProducts.php
data patch no longer fails when the database includes product with custom options and the special_from_date
attribute is set.to be moved
scheduled updates. Previously, information about these failures was available in the cron.log
file only.cart
query no longer includes tax when returning subtotal_with_discount_excluding_tax
. GitHub-33905GET /V1/orders/
) no longer returns negative values for row totals.Magento.GraphQl.CatalogGraphQl.ProductSearchTest.testSearchSuggestions
when run with AWS Elasticsearch configuration.The testCreateProductOnStoreLevel
integration test no longer causes a nested transaction on the database.
The following exception no longer occurs when running WebAPI tests for the Send Friend feature when product image has not set on PHP 8.1: exception main.ERROR: /var/www/html/lib/internal/Magento/Framework/DataObject.php:131 strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated
. GitHub-34864
translate_strategy=embedded
. Previously, the text reverted to English after the product was added to the cart.magento.com
no longer causes performance issues during Admin login. A timeout on the request to fetch release notification has been added.Magento_LoginAsCustomerAdminUi
is enabled and Store View To Login To is set to manual selection. Previously, Adobe Commerce threw this error: (Magento\Framework\Exception\LocalizedException): Unable to get Customer ID
. GitHub-33096aria-label
element instead of a placeholder on the Catalog > Product page..ico
file types. Previously, when you tried to upload a favicon file with this extension type in the Admin, Adobe Commerce displayed this error: Warning: imagecreatefromstring(): one parameter to a memory allocation multiplication is negative or zero, failing operation gracefully in /var/www/html/vendor/magento/module-media-storage/Model/File/Validator/Image.php on line 64
. GitHub-34858url_rewrite
table and Admin after the attribute code visibility status for the specific store view is changed to Not Visible Individually. Previously, all URLs were removed for the product in the url_rewrite
table. GitHub-34937banner
element when CSP is set to restrict mode
. Previously, Adobe Commerce threw a JavaScript error./rest/schema
) now uses unique operation IDs.POST /V1/salesRules/
endpoint now retain existing coupon code values after changing status from disabled to enabled. GitHub-35298POST /V1/salesRules/
endpoint now contain valid from_date
and to_date
values. GitHub-35265CartItemInterface
now includes customizable_options
. GitHub-31180Magento_ReCaptchaWebapiRest
module is enabled. GitHub-35348bySku
option for configurable products. Previously, it returned a 500 error./V1/products/base-prices
endpoint now works as expected with Catalog Price Mode - Website. GitHub-30132POST /V1/products/special-price
endpoint now works as expected. Previously, the endpoint returned this error: Future Update already exists in this time range. Set a different range and try again
.qty
field of product detail page from the wishlist itself.Issue: Admin users cannot create an order or re-order for customers from the Admin when Braintree is enabled. When the Admin user clicks either Order or Reorder, Adobe Commerce does not submit the order, and the system.log
displays this error: report.CRITICAL: Error: Call to a member function getMethodInstance() on null in /app/vendor/paypal/module-braintree-core/Block/Form.php:174
. Workaround: BUNDLE-3137-composer.patch
is now available. See the Admin can’t create order/reorder when Braintree payment enabled Knowledge Base article for a discussion of this issue and access to the patch. Cloud merchants should download Cloud Patches for Commerce v1.0.18. A fix will also be included in Adobe Commerce 2.4.5-p1.
Issue: RabbitMQ infrastructure elements (exchanges, queues) may be not initialized after a fresh installation (not upgrade) of Adobe Commerce 2.4.5. This incorrect configuration of RabbitMQ may result in a fatal error when asynchronous operations are executed or a performance profile is generated. Cloud deployments are not affected. Workaround: Merchants performing a fresh installation of Adobe Commerce 2.4.5 on-premises should run bin/magento setup:upgrade --keep-generated
after using bin/magento setup:config:set
to configure RabbitMQ or install Adobe Commerce by passing RabbitMQ configuration options to the setup:install
command. See RabbitMQ.
We are grateful to the wider Magento Open Source community and would like to acknowledge their contributions to this release.
The Community Engineering team Magento Contributors maintains a list of top contributing individuals and partners by month, quarter, and year. From that Contributors page, you can follow links to their merged PRs on GitHub.
The following table highlights contributions made by Partners. This table lists the Partner who contributed the pull request, the external pull request number, and the GitHub issue number associated with it (if available).
The following table identifies contributions from our community members. This table lists the community member who contributed the pull request, the external pull request number, and the GitHub issue number associated with it (if available).
Our technology stack is built on PHP and MySQL. For more information, see System Requirements.
You can install Adobe Commerce 2.4.5 using Composer.