Adobe Commerce 2.4.4 introduces support for PHP 8.1. All project libraries and dependencies have been updated for compatibility with PHP 8.1. Core Composer dependencies and third-party libraries have also been upgraded to the latest versions that are compatible with PHP 8.1. This release also provides support for OpenSearch 1.2.
This release includes almost 250 quality fixes and enhancements.
Thanks to our partner Atwix for their substantial contributions to making our 2.4.4 framework compatible with PHP 8.1.
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.
AC-3022.patch
to continue offering DHL as a shipping carrierDHL has introduced schema version 6.2 and will deprecate schema version 6.0 in the near future. Adobe Commerce 2.4.4 and earlier versions that support the DHL integration support only version 6.0. Merchants deploying these releases should apply AC-3022.patch
at their earliest convenience to continue offering DHL as a shipping carrier. See the Apply a patch to continue offering DHL as shipping carrier Knowledge Base article for information about downloading and installing the patch.
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.
All vendor-bundled extensions, with the exception of Braintree, have been removed from Adobe Commerce 2.4.4.
Composer 2.2 introduced a security feature that requires merchants to identify trusted plugins in their composer.json
file before the plugins will be executed. Currently, plugins that are included in the composer.json
file but not marked as trusted are automatically installed. However, as of July 2022, Composer will not load plugins unless they have been explicitly allowed. See the Composer plugins issues when upgrading to Adobe Commerce 2.4.4 Knowledge Base article for instructions on how to modify the composer.json
file to explicitly allow plugin loading.
Adobe Commerce 2.4.4 includes resolution of all issues that were addressed by the following hotfixes, which were provided for Adobe Commerce and Magento Open Source 2.4.3, 2.4.3-p1, and 2.3.7-p2:
The vulnerability addressed by MDVA-43395_EE_2.4.3-p1_COMPOSER_v1.patch
and MDVA-43443_EE_2.4.3-p1_COMPOSER_v1.patch
has been resolved in this release.
AC-384_Fix_Incompatible_PHP_Method__2.4.3_ce.patch
. This patch addresses a fatal PHP error that occurred during upgrade. See the Adobe Commerce upgrade 2.4.3, 2.3.7-p1 PHP Fatal error Hotfix Knowledge Base article.
We recommend that you apply the following patch after you install Adobe Commerce 2.4.4:
braintree-disabled-partial-capture-for-applepay-googlepay.patch
. Merchants cannot submit partial refunds for orders paid with Apple Pay through Braintree. When a merchant tries to create a credit memo for a partial refund from the order invoice, the Qty to Refund field is not editable. This hotfix addresses that issue. See the Adobe Commerce 2.4.4: Unable to create partial invoices Knowledge Base article. Look for the following highlights in this release.
This release includes one security fix and platform security improvements. This security fix has been backported to Adobe Commerce 2.4.3-p2 and Adobe Commerce 2.3.7-p3.
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:
Email variable usage was deprecated back in 2.3.4 as part of a security risk mitigation in favor of a more strict variable syntax. This legacy behavior has been fully removed in this release as a continuation of that security risk mitigation.
As a result, email or newsletter templates that worked in previous versions of Adobe Commerce may not work correctly after upgrading to Adobe Commerce 2.4.4 or Magento Open Source 2.4.4. Affected templates include admin overrides, themes, child themes, and templates from custom modules or third-party extensions. Your deployment may still be affected even after using the Upgrade compatibility tool to fix deprecated usages. See Migrating custom email templates for information about potential effects and guidelines for migrating affected templates.
Integration tokens can no longer be used for API Bearer token authentication. Previously, an integration token could be used as a standalone key for token-based authentication. However, this behavior has been disabled by default due to the security implications of a never-expiring access token. The previous behavior can be enabled through the command line or Admin. See Token-based authentication.
Session IDs are no longer stored in the database.
OAuth access tokens and password reset tokens are now encrypted when stored in the database.
Validation has been strengthened to prevent the upload of non alpha-numeric file extensions.
Added reCAPTCHA support to coupon codes.
Swagger is now disabled by default when Adobe Commerce is in production mode.
HTTPS is now enabled by default for the Adobe Commerce storefront. The Use Secure URLs on Storefront and Use Secure URLs in Admin settings are enabled by default, and all built-in cookies are now set as secure.
The dependency confusion plugin is now required for all Adobe Commerce installations. Previously, this plugin was required for Composer-based installations only. It now permits trusted versions. Merchants can bypass the constraints set in this plugin that prohibit certain combinations of Composer installations. The constraints can be bypassed for trusted versions, and Adobe Commerce now displays a warning before proceeding with installation.
Developers can now configure the limit on the size of arrays accepted by Adobe Commerce RESTful endpoints on a per-endpoint basis. See API security.
Added mechanisms for limiting the size and number of resources that a user can request through a web API on a system-wide basis, and for overriding the defaults on individual modules. This resolves the issue addressed by MC-43048__set_rate_limits__2.4.3.patch
. See API security.
Adobe Commerce 2.4.4 now supports PHP 8.1. All project libraries and dependencies have been updated for compatibility with PHP 8.1. Additional platform enhancements include:
Adobe Commerce 2.4.4 provides support for Elasticsearch 7.16 and OpenSearch 1.2. Adobe Commerce merchants with deployments hosted on-premises can use either solution. However, OpenSearch is now the default search engine for Adobe Commerce 2.4.4 deployments hosted in the cloud. All customers with cloud deployments who upgrade to version 2.4.4 must use OpenSearch. See Switching to OpenSearch for Adobe Commerce on Cloud 2.4.4
The JQuery
library has been upgraded to version 3.6. The jquery-ui
library has been upgraded to version 1.13.0. Several other JavaScript libraries have been updated to the latest versions.
TinyMCE 5.8.1 is now supported. TinyMCE 4 has been removed from the codebase.
The RequireJS
library has been upgraded to the latest version (v2.3.6). GitHub-33672
PHPUnit has been upgraded to the latest version (9.5.x). Tests and test frameworks have been updated to be compatible with the new version.
Most Laminas dependencies have been upgraded to the latest versions that are compatible with PHP 8.1. Three Laminas dependencies were removed from the codebase to reduce the number of dependencies.
jQuery UI has been upgraded to the latest version (v1.13.0). The following v1.10.0 jQuery components have been removed:
ajaxOptions
and cache
options for tabs. See Tabs.
.zIndex()
. jQuery UI v1.12.1 includes jquery/z-index.js
, which supports the use of .zIndex()
. See UI Core.
Data fallbacks for widget names. You must use the full name for the .data()
key.
Hard coding of classes such as ui-corner-all
in widgets.
Adobe Commerce performance enhancements boost high throughput order processing and message queue optimization. The asynchronous orders feature introduced in this release supports the creation of approximately 60,000 orders/hour. Earlier versions of Adobe Commerce supported the processing of approximately 10,000 orders/hour, which presented a potential bottleneck for flash sales. The new multiple consumers feature supports scaling the number of message queue consumers on a single Cloud instance and increases the number of orders processed per hour.
Performance enhancements in this release:
The AsyncOrder feature supports faster order placement than synchronous execution provides. When AsyncOrder is enabled, order placement is executed in the background while shoppers complete other tasks on the storefront.
The new Enable Inventory Check On Cart Load configuration option provides a switchable inventory check when loading a product in the cart. It is enabled by default. When you disable this option, Adobe Commerce skips the inventory check as the quote loads, which speeds up checkout, especially for carts containing many items.
The new multiple_processes
configuration option supports running parallel consumers in multiple processes. Previously, cron
ran a single consumer when needed. Launching multiple consumers to run processes in parallel can improve task execution speed. To enable this feature, add multiple_processes
to the app/etc/env.php
file.
Cart operations for carts containing over 750 configurable products have been improved by increasing the memory limit set by max_input_vars
in the php.ini
file to support input variables volume.
Optimization of sales rules processing during checkout by deferring total calculation. Typically, sales rule processing occurs every time a shopper adds a product to their cart, updates product quantity, or clicks the Place Order button. Merchants can enable this deferment by setting the checkout/deferred_total_calculating
variable in the env.php
file. Alternatively, you can run bin/magento setup:config:set --deferred-total-calculating 1|0
.
Improvements to the validation process for orders affected by a cart price rule during asynchronous order placement.
See High-throughput Order Processing.
This release includes these GraphQL enhancements:
assignCustomerToGuestCart
mutation
placeNegotiableQuoteOrder
mutation
setNegotiableQuoteBillingAddress
mutation
setNegotiableQuotePaymentMethod
mutation
setNegotiableQuoteShippingMethods
mutation
setNegotiableQuoteShippingAddress
mutation
Performance improvements:
The performance of GraphQL cart operations has improved. The collectQuoteTotals()
method is now called only once during a GraphQL request, which reduces response time.
Storefront performance has been improved by changes to how GraphQL requests are cached. Fastly and Varnish now cache GraphQL requests sent with auth
tokens.
New storefront-related Admin configuration settings. The storeConfig
query now returns the configuration settings for the Zero Subtotal Checkout and Check/Money Order payment methods.
Updated core GraphQL library. The webonyx
library, which enables core GraphQL to function, has been upgraded to version ^14.9.
Fixed translation issues in GraphQL with multi-site and multi-language stores. The GraphQL resolver now returns translated strings based on store scope as expected.
GraphQL now provides New Relic with descriptive transaction names, which can be helpful for debugging. GitHub-30915
See the GraphQL Developer Guide for details on these enhancements.
This release includes multiple bug fixes. See B2B Release Notes.
With the exception of Braintree, all vendor-bundled extensions have been removed from the Adobe Commerce 2.4.4 code base. Merchants should migrate to the official extensions, which are available on the Commerce Marketplace.
PWA Studio v.12.3.0 is compatible with Adobe Commerce 2.4.4. It includes support for reCaptcha, Page Builder content optimization, and personalized content. 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.
The Venmo payment option is now supported.
Pay Later has been added as an option for shoppers based on the shopper’s location, not the merchant’s location.
Merchants can now set the shopper country when testing the shopper experience in their country of choice. Previously, tests were limited to testing only for the country in which the merchant is located. This change is valid in sandbox mode only.
Messaging on the checkout page now displays accurate messaging on how much and in how many increments shopper will be expected to pay when using Pay Later.
Live Search now supports PHP 8.1.
The new Magento_ElasticsearchCatalogPermissionsGraphQl
module is disabled during the updated Live Search installation. Existing Live Search installations must be upgraded to Live Search 2.0.0 to take advantage of these features. For more information, see the Live Search Release Notes.
This release brings increased conformance to standard accessibility guidelines. These enhancements improve the experience of users with limited vision or with limited language, cognitive, and learning abilities. Screen Reader tools performance has also improved.
Accessibility enhancements include:
alt_text
) to images (Image, Banner, Slide) to enhance content accessibility. GitHub-746 We are fixing hundreds of issues in the Adobe Commerce 2.4.4 core code. A subset of those fixed issues is described below.
Import failed: Notice: Trying to access array offset on value of type null in app/code/Magento/Cron/Model/Config/Backend/Sitemap.php on line 78
. GitHub-31428bin/magento app:config:import
command now executes without error when you update time
values in config.php
. Previously, changing product alert configuration by manual editing (that is, not using the Admin) resulted in an error.Invalid security or form key. Please refresh the page
.We can't add this item to your shopping cart right now
.data-validate
and min
attributes has been added to the cart quantity field to prevent negative values for bundle products.products
query now filters bundle products correctly when child products are disabled on the store-view level. Previously, the query returned child products that were disabled at the store-view level.cron
now clears the product category cache as expected during indexer_update_all_views
execution. Previously, Adobe Commerce displayed an incorrect product count on the category page after the mass update of many products in the category.categoryList
returned child products that were not salable.cart
query responses now return accurate discounts for bundle products with dynamic prices. Previously, query responses included discounts applied to each bundle product individually.POST /V1/guest-carts/:cartId/items
to add simple products with different options to a cart. Previously, this call changed the quantity of the first simple product you added instead of adding a second simple product with the specified options. GitHub-32302Poland
country and PLN
currency. Previously, the shopping cart and checkout page displayed the amount PLN 0.The quote item isn't found. Verify the item and try again
.products
queries for configurable products in a specific store now return the price ranges of products on the specified store only. Previously, requests returned price ranges for simple products on non-specified stores.Uncaught TypeError: Unable to process binding "text: function(){return currentBillingAddress().street.join(', ') }"
. GitHub-33826Uncaught TypeError: Unable to process binding "text: function(){return currentBillingAddress().street.join(', ') }"
. GitHub-33826addConfigurableProductsToCart
mutation to add a configurable product to a cart directly after changing the store view.addConfigurableProductsToCart
mutation to add a disabled child of a configurable product to the cart. Previously, Adobe Commerce threw an integrity constraint violation error.customer_address_id
to null
to treat it as a new customer address. Previously, If the customer saved the address without validation at checkout and the same customer tried to place an order using the same address after validation was applied to checkout field , Adobe Commerce did not accept the edited address and threw an exception.auto
option enabled. If you try to save this rule without enabling the auto
option, Adobe Commerce displays this message: Rule is not saved with auto generate option enabled. Please save the rule and try again
.report.ERROR: Warning: Division by zero in /home/mer33515/public_html/ee24develop/app/code/Magento/SalesRule/Helper/CartFixedDiscount.php on line 85
.cart
query returned an inaccurate discount amount when shopping cart rules with fixed amount discounts were activated.datetime
attribute.Item (Magento\Catalog\Model\Product\Interceptor) with the same ID "<ID>" already exists
. GitHub-33145catalog_product_entity_varchar
table, and not all options were present when you reopened the product in the Admin. GitHub-33486PHP Error: Cannot instantiate abstract class Magento\Catalog\Controller\Product\Compare
.addConfigurableProductsToCart
mutation to add a configurable product to the cart on a non-default store view. Previously, you could not add a configurable product to a cart when website ID and store ID differed. GitHub-30948products
queries no longer return data about the disabled child products of configurable products.enabled
after new variations were generated.We're sorry, an error has occurred while generating this content
.Content-Disposition: inline
headers in email as expected. GitHub-29258storeCode
value has been assigned to the second array argument that is passed to the UrlInterface
getUrl
function. This value distinguish URLs in respect to different stores/websites and generates a correct baseUrl
for the email content that is sent to customer.)0 == "not-a-number"
is now considered false. GitHub-33780Magento\Payment\Helper\Data
no longer creates new layouts in constructors. Previously, when this helper was used in custom commands without specifying an area code, Adobe Commerce threw an error. GitHub-33908allure-framework/allure-php-api
Composer dependency.symfony/console
no longer causes a failure when running bin/magento setup:di:compile
. GitHub-33595.htaccess
and nginx.conf
files that are distributed with Adobe Commerce for PHP 8.x support. Outdated options have also been removed. GitHub-34358Notice: Undefined index: extension in /app/7ha7zds7wvqys_stg/vendor/magento/framework/File/Uploader.php on line 699
. This occurred because Adobe Commerce tried to append a file extension to the name irrespective of whether the uploaded file name had an extension.sprintf(__())
and sprintf(Magento\Framework\Phrase())
construction for compatibility with PHP 8.x throughout the codebase. Previously, Adobe Commerce threw this type of error: Expected parameter of type 'string', 'Magento\Framework\Phrase' provided
. GitHub-34085bin/magento support:backup:code
now creates a backup as expected. Previously, Adobe Commerce created a backup but threw an error.cron
processes are now assigned a status of success
. Previously, the same cron
process could be run twice because successful cron
processes were assigned a pending
status.staging_synchronize_entities_period
cron
job now works as expected. Previously, the first staging update was applied successfully, but Adobe Commerce threw this error with subsequent updates: report.ERROR: Cron Job staging_synchronize_entities_period has an error: The active update can't be deleted
.Magento_Logging
module now supports IPv6.global
scope.Make sure the To Date is later than or the same as the From Date
.bin/magento queue:consumers:start async.operations.all
generated this error: Broken pipe or closed connection
.QuoteIdToMaskedQuoteId
in an extension no longer significantly increases response time. GitHub-33676BundleDiscountPrice
in magento2/app/code/Magento/Bundle/Pricing/Price/ConfiguredPrice.php
is now declared as expected. Previously, Adobe Commerce threw this error: Class Magento\Bundle\Pricing\Price\BundleDiscountPrice not found
. GitHub-33334A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later
.mage-messages
cookie is not reset if there are no new messages.generateCustomerToken
and revokeCustomerToken
mutations now provide the correct cache ID for the user state. Previously, these mutations used an invalid x-magento-cache-id
, which degraded performance.setBillingAddressToCart
mutation now correctly uses the same_as_shipping
parameter to set the billing address to match the shipping address as expected. Previously, Adobe Commerce displayed this error: The shipping method is missing. Select the shipping method and try again
. GitHub-30924addProductsToCart
mutation now adds to the cart only products that are assigned to the store that is defined in the header.products
queries using layered navigation filters now return correct child category lists. GitHub-33387ConfigurableCartItem
object contain information about configured variants as expected.products
query now returns configuration product option values and variant attribute values. Previously, these values were empty in query responses.products
query now filters bundle products correctly when child products are disabled on the store-view level. Previously, the query returned child products that were disabled at the store-view level.setShippingAddressesOnCart
mutation now supports setting shipping addresses on a shopping cart with an empty telephone number value when the Show Telephone Admin configuration setting is set to optional. Previously, Adobe Commerce threw this error: Field CartAddressInput.telephone of required type String! was not provided
.addSimpleProductsToCart
mutation allowed you to add simple products to a cart that are not assigned to the target website.products
queries that use search parameters to refine search results.addConfigurableProductToCart
mutation no longer supports adding a product to a cart if the product is not included in the requested scope.products
query now returns only configurable variants that are assigned to the requested storeview. Previously, all variants of the requested configurable product were returned.addSimpleProductsToCart
requests can now run successfully in parallel. Previously, multiple requests for the same SKU created duplicate line items for the same cart ID rather than increasing the product quantity as expected.addProductsToCompareList
mutation can now be used to compare variants of configurable products.addProductsToCart
mutation now adds all selected options to the cart when used to add bundle products with multiple selection options. Previously, the mutation added only the last selection. GitHub-33123products
query response now lists products according to the specified sort order when multiple products have the same relevance or price value.addSimpleProductsToCart
and addProductsToCart
requests no longer result in duplicated quote items.products
query layered navigation filters now return correct child categories lists. Only direct subcategories are now included when the includeDirectChildrenOnly
flag is provided in the request. Previously, all categories were included in response in the aggregation section when a product was assigned to several categories.OrderAddress.telephone
field is now optional in the customer
query or other queries and mutations that return or modify customer order addresses.bin/magento remote-storage:sync
no longer fails when filenames are similar but differ by only one or two characters. Previously, the first image was stored correctly, but the second, similarly named image triggered a sync failure and this error: Notice: Undefined index: media/catalog/product/5/_ in /src/vendor/magento/module-remote-storage/Driver/Adapter/Cache/Generic.php on line 197
. GitHub-34337Import failed: Area code not set: Area code must be set before starting a session
. GitHub-16171bin/magento app:config:dump
and manually editing config.php
. GitHub-31428indexer.xml
files. The allowed values in classType
are now the same in unmerged and merged indexer.xml
files. GitHub-29609str_contains
method has been replaced with a supported function. This was a known issue for Adobe Commerce 2.4.3. GitHub-33680Refactored the codebase to correct usage of the keyword match
, which is a reserved keyword in PHP 8.x. GitHub-33626
HTML tags are now nested and closed properly to meet standards in JQuery 3.5.x for non-void elements including custom elements.
abs()
and round()
functions for compatibility with PHP7.x and PHP8.x. GitHub-34322symfony/console
no longer causes failure when running bin/magento setup:di:compile
. GitHub-33595 colinmollenhour/cache-backend-redis
Composer dependency. GitHub-34177phpunit/phpunit
. GitHub-33916pubs/media
tries to access the product details page for a product that includes images. Previously, Adobe Commerce threw a PHP error. GitHub-32819@api
annotations have been moved to their class throughout the codebase.gift-card Cms
widget data has been moved from Magento/WidgetSampleData
(Magento Open Source) to Magento/GiftCardSampleData
(Adobe Commerce). This has resolved problems installing (Magento Open Source) with sample data on PHP8.1.@api
as needed. GitHub-32875Magento\Payment\Helper\Data
no longer creates new layouts in constructors. Previously, when this helper was used in custom commands without specifying an area code, Adobe Commerce threw an error. GitHub-33908data
argument to a block instance constructor by di.xml
.Generator.php
for readability. GitHub-33809JwsManager
class to handle situations when the algorithm is set directly in the header. Previously, this check ignored this valid scenario. GitHub-32636Functions that have been deprecated in PHP 8.1 have been removed from the codebase. GitHub-34497
Added return type declarations to internal methods with incomplete return types for compatibility with PHP 8.1. GitHub-34498
Updated the root composer.json
metapackage and composer.json
file for each module to PHP 8.1. GitHub-34009
Third-party jquery.tabs
library (latest version)
NPM packages (latest version) GitHub-33512, GitHub-33972
jquery.cookie
third-party library (latest version) GitHub-34427
All Composer dependencies were updated to the versions compatible with PHP 8.1.
PHPUnit has been upgraded to the latest version (9.5.x). Tests and test frameworks have been updated to be compatible with the new version.
jquery-validate
third-party library GitHub-33853Less.js
(v3.13.1) GitHub-32845The following libraries have been removed because all browsers that Adobe Commerce 2.4.x supports have built-in support for this functionality:
es6-collections.js
MutationObserver.js
Modernizr
FormData.js
Removed the unused jquery.hoverIntent
JavaScript library. GitHub-33732
lib/internal/Magento/Framework/Filter/Money.php
has been deprecated. It contains the money_format()
function, which was removed in PHP 8.x. GitHub-33870
Removed the deprecated, unsupported grunt-autoprefixer
package. GitHub-34037
The following libraries have been upgraded to more recent versions:
script.aculo.us
Chart.js
moment.js
moment-timezone-with-data.js
matchMedia.js
underscore.js
PrototypeJS
RequireJS
LessCSS
int
has been removed for auto-incremented invoice IDs when prefixed with a string. As a result, invoices now display a 0 for numbers that are prefixed with a string. GitHub-34451phpunit/ phpunit
to the latest version for the magento-coding-standard
repository. GitHub-33622webonyx/graphql-php
dependency to version ^14.9 in the Adobe Commerce coding standard repository. GitHub-32863Magento2.PHP.ArrayAutovivification
to the Adobe Commerce coding standard to identify the auto-creation of arrays from a false value. GitHub-34509Magento2.Functions.DeprecatedFunction
to the Adobe Commerce coding standard. GitHub-34547Magento2.Functions.DiscouragedFunction
in the Adobe Commerce coding standard. GitHub-34548Magento2.Annotation.MethodAnnotationStructure
sniff no longer fails with a false positive. GitHub-34679bin/magento media-gallery:sync
command no longer fails in deployments where AWS S3 is enabled.CURLOPT_POSTFIELDS
no longer accepts objects as arrays. To interpret an object as an array, perform an explicit (array
) cast. This practice also applies to other options that accept arrays. GitHub-33781
curl_init()
now returns a CurlHandle
object rather than a resource. The curl_close()
function no longer has an effect. Instead, the CurlHandle
instance is automatically destroyed if it is no longer referenced. GitHub-33781
CliCacheFlushActionGroup
from CatalogSearch
, GroupedProduct
, Newsletter
, Paypal
, Quote
, and Review
modules. GitHub-33531parse_url()
now distinguishes between absent and empty queries and fragments. GitHub-33782ReflectionType::isBuiltin()
method. GitHub-34194AdminCheckOrderStatusInGridActionGroup
GitHub-33747
StorefrontSelectFirstShippingMethodActionGroup
GitHub-33773
AdminClickUpdateChangesOnCreateOrderPageActionGroup
GitHub-33689
Repetitive actions have been replaced with action groups in these tests:
AdminAddInStockProductToTheCartTest
GitHub-34512
AdminAddBundleItemsTest
GitHub-34312
AdminConfigurableProductAddConfigurationTest
GitHub-34511
AdminConfigurableProductBulkUpdateTest
GitHub-34435
AdminConfigurableProductDisableAnOptionTest
GitHub-34511
AdminConfigurableProductOutOfStockAndDeleteCombinationTest
GitHub-34316
AdminConfigurableProductOutOfStockTestDeleteChildrenTest
GitHub-34316
AdminConfigurableProductRemoveAnOptionTest
GitHub-34511
AdminConfigurableProductRemoveConfigurationTest
GitHub-34511
AdminCreateAndEditSimpleProductSettingsTest
GitHub-34435
AdminCreateAndEditVirtualProductSettingsTest
GitHub-34435
AdminCreateInactiveFlatCategoryTest
GitHub-34490
AdminCreateInactiveInMenuFlatCategoryTest
GitHub-34510
AdminCreateDuplicateCategoryTest
GitHub-34414
AdminCreateDuplicateProductTest
GitHub-34414
AdminDeleteSimpleProductTest
GitHub-33783
AdminEditRelatedBundleProductTest
GitHub-34313
AdminMassDeleteBundleProductsTest
GitHub-34313
AdminNavigateMultipleUpSellProductsTest
GitHub-34314
AdminSimpleProductSetEditContentTest
GitHub-34435
AdminSimpleProductTypeSwitchingToConfigurableProductTest
GitHub-33788
AdminConfigurableProductTypeSwitchingToVirtualProductTest
GitHub-33788
AdminCreateConfigurableProductWithDisabledChildrenProductsTest
GitHub-33775
AdminUpdateFlatCategoryAndAddProductsTest
GitHub-34490
AdminUpdateTopCategoryUrlWithNoRedirectTest
GitHub-33774
AdminUpdateTopCategoryUrlWithRedirectTest
GitHub-33774
CatalogProductListWidgetOperatorsTest
GitHub-34579
CreateProductAttributeEntityWithReservedKeysTest
GitHub-34422
EnableDisableBundleProductStatusTest
GitHub-34313
StorefrontCheckRefundGrandTotalActionGroup
GitHub-34315
StorefrontInactiveCatalogRuleTest
GitHub-33556
StorefrontConfigurableProductCantAddToCartTest
GitHub-33786
StorefrontConfigurableProductOptionsTest
GitHub-33785
StorefrontConfigurableProductCanAddToCartTest
GitHub-33784
StorefrontConfigurableProductGridViewTest
GitHub-34311
StorefrontConfigurableProductListViewTest
GitHub-34311
StorefrontProductNameWithHTMLEntitiesTest
GitHub-33806
StorefrontProductNameWithDoubleQuoteTest
GitHub-32991
AdminCreateOrderWithCheckedAppendCommentCheckboxTest
GitHub-32381
CheckoutWithEnabledCaptchaTest
GitHub-32991
StorefrontAddProductWithBackordersAllowedOnProductLevelToCartTest
GitHub-33635
StorefrontGiftMessageForOrderOnCheckoutCartPageTest
GitHub-32821
StorefrontCaptchaCheckoutWithEnabledCaptchaTest
GitHub-32821
StorefrontCheckoutWithEnabledMinimumOrderAmountOptionTest
GitHub-33460
CaptchaWithDisabledGuestCheckoutTest
GitHub-30828
Call to a member function getId() on array
.bin/magento setup:upgrade
now runs as expected when upgrading from Adobe Commerce 2.4.2-p1. Previously, Adobe Commerce threw this error: Unable to apply data patch Magento\Paypal\Setup\Patch\Data\UpdateBmltoPayLater for module Magento_Paypal
. GitHub-33678Something went wrong
.To check out, please sign in with your email address
. GitHub-33445magento_giftcardaccount.code
to improve performance.search_query
table, the longer a search query took to complete. GitHub-27559di.xml
file.glob()
system calls improves performance by reducing the number of glob()
calls. GitHub-34025product_alert
consumer improves the sending of customer alerts by creating queue messages, running the consumer, and improving execution time. Previously, Adobe Commerce threw an out-of-memory exception when sending more than 100,000 product alerts. Adobe Commerce also took more than 20 hours to send all alerts.tax/calculation/price_includes_tax
flag.sales_shipment_grid.order_id
has been added.POST V1/orders
calls now update extension attributes without error. Previously, an SQL syntax error occurred.category_name
has been added to the system-reserved product attribute codes. Adobe Commerce now shows an error if a user tries to create a product attribute with the attribute code category_name
. Previously, products were not listed in the expected category, and an Elasticsearch error was logged.File "https://[bucket].s3.eu-central-1.amazonaws.com/[prefix]/tmp/phpLjGmHf" not found
. GitHub-33072StorefrontPOWorkflowVerifyApprovalFlowTabTest
. GitHub-34378call_user_func_array
. GitHub-34301Magento\GraphQl\CatalogGraphQl\ProductSearchTest
test no longer throws this error when run with AWS Elasticsearch: Magento\GraphQl\CatalogGraphQl\ProductSearchTest::testSearchSuggestions Failed asserting that an array is not empty. /var/www/html/dev/tests/api-functional/testsuite/Magento/GraphQl/CatalogGraphQl/ProductSearchTest.php:94 /var/www/html/dev/tests/api-functional/framework/Magento/TestFramework/TestCase/GraphQlAbstract.php:257
.Fixed numerous non-critical unit test warnings by renaming all mock variables to include the Mock
suffix and removing references to a deprecated Object Manager class. GitHub-33695
The Magento\Framework\MessageQueue\TopologyTest
test is now compatible with the AWS MQ for RabbitMQ service. Previously, this test failed with this message: Invalid exchange configuration: magento-topic-based-exchange1 Failed asserting that two arrays are equal
.
The following unit tests have been refactored to use PHPUnit
instead of AspectMock
:
AllureHelperTest
GitHub-33294
ObjectHandlerUtil
GitHub-33584
MockModuleResolverBuilder
GitHub-33583
MagentoTestCase
GitHub-33582
ModuleResolverTest
GitHub-33308
ParallelGroupSorterTest
GitHub-33306
SuiteGeneratorTest
GitHub-33299
OperationDataArrayResolverTest
GitHub-33296
aria-label
element to the storefront page template to indicate the page to which the shopper will navigate to when clicking a link. Previously, the same link text was used for links to different pages. GitHub-33075The store will not work correctly in the case when cookies are disabled
.UserExpiration
validator no longer fails with de_DE
and uk_UA
locales. Previously, Adobe Commerce threw an error when an administrator tried to set an expiration date when creating a new user from the Admin with locales set to de_DE
or uk_UA
. GitHub-32497zip_codes.xml
patterns for Guernsey to support GY10 postcodes for the Island of Sark. GitHub-33144directory_country_region
table. GitHub-33924maps.googleapis.com
..action-close
buttons now work as expected when Multiselect
is used in a modal. Previously, the action-close
button did not work because it inherited the CSS of the .action-close
button of the modal. GitHub-27240date
custom attributes, as expected. Previously, Adobe Commerce threw an error and did not display the Admin customer grid correctly when the date
attribute set was set as a column.The store will not work correctly in the case when cookies are disabled
. GitHub-33811bin/magento setup:upgrade
. GitHub-32954\Magento\Framework\Api\AbstractSimpleObjectBuilder
on PHP 7.3. Previously, preg_match
threw this warning message when Adobe Commerce was hosted on Redhat with PHP 7.3: Warning: preg_match(): Compilation failed: unrecognized character follows...
.PUT /V1/guest-carts/:cartId/collect-totals
request are now updated by the correct shippingMethod
. GitHub-18508webapi.xml
file. GitHub-33843customertoken
by GraphQL or REST API requests as expected after multiple consecutive failed login attempts. Previously, Adobe Commerce did not check whether the value of lock_expires_at
in oauth_token_request_log
was greater than the current date and time, and always returned the number of failed attempts, which prevented the customer from ever logging in. GitHub-34067QuoteRepository::getList
no longer causes an infinite loop. Previously, using the payment processor that relied on the REST API to update orders triggered this behavior. GitHub-33675/rest/all/V1/categories/<above_created_category_id>
PUT call now respects the values specified by available_sort_by
. Previously, the Available Product Listing Sort By drop down was selected with all possible options on the Category page, and the Use All checkbox was selected. GitHub-32596Fatal error: Allowed memory size of ********** bytes exhausted (tried to allocate **** bytes) in vendor/magento/module-store/Model/StoreRepository.php on line 75
.Issue: Merchants may notice package version downgrade notices during upgrade from Adobe Commerce 2.4.4 to Adobe Commerce 2.4.4-p1. These messages can be ignored. The discrepancy in package versions results from anomalies during package generation. No product functionality has been affected. See the Packages downgraded after upgrading from 2.4.4 to 2.4.4-p1 Knowledge Base article for a discussion of affected scenarios and workarounds.
Issue: Merchants cannot submit partial refunds for orders paid with Apple Pay through Braintree. When a merchant tries to create a credit memo for a partial refund from the order invoice, the Qty to Refund field is not editable. Workaround: Apply patch braintree-disabled-partial-capture-for-applepay-googlepay.patch
. See the Adobe Commerce 2.4.4: Unable to create partial invoices Knowledge Base article.
Issue: Shoppers cannot add a product to their cart when no options are selected in Admin Store > Configuration > General > Country Options > Allow Countries. Adobe Commerce instead displays this following console error: Failed to load resource: the server responded with a status of 400 (Bad Request)
.
Issue: The description of Dotdigital on Find Partners and Extensions > Magento Marketplace is outdated. Here is an updated description:
Dotdigital is a customer engagement platform that helps digital marketers and developers deliver communications across the customer journey. We harness the power of customer data, powering engagement, conversion, and loyalty for brands as they grow and scale. Customers love our easy-to-use platform that connects first party data across the systems, surfacing powerful insights and automating predictive cross-channel messages.
Dotdigital’s 350+ employees serve mid-market and enterprise companies around the world and across industries. We aspire to inspire responsible marketing and are committed to sustainability, privacy, and security. Dotdigital is proud to be the world’s first carbon-neutral marketing automation platform, certified for ISO 14001, ISO 27701, and ISO 27001.
See Dotdigital — Marketing Automation for purchase and download information.
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.4 using Composer.
The Data Migration Tool helps transfer existing Magento 1.x store data to Magento 2.x. This command-line interface includes verification, progress tracking, logging, and testing functions. For installation instructions, see Install the Data Migration Tool. Consider exploring or contributing to the Data Migration repository.
The Code Migration Toolkit helps transfer existing Magento 1.x store extensions and customizations to Magento 2.x. The command-line interface includes scripts for converting Magento 1.x modules and layouts.