Release notes published on June 25, 2019 and last updated on June 3, 2020.
We are pleased to present Magento Commerce 2.3.2. This release includes over 200 functional fixes to the core product, over 350 pull requests contributed by the community, and over 75 security enhancements. It includes contributions from our community members. These contributions range from minor clean-up of core code to significant enhancements to Inventory Management and GraphQL.
Other release information
Although code for these features is bundled with quarterly releases of the Magento core code, several of these projects (for example, Page Builder, Inventory Management, and Progressive Web Applications (PWA) Studio) are also released independently. Bug fixes for these projects are documented in separate, project-specific release information which is available in the documentation for each project.
New security-only patch available
Merchants can now install time-sensitive security fixes without applying the hundreds of functional fixes and enhancements that a full quarterly release (for example, Magento 2.3.3) provides. Patch 126.96.36.199 (Composer package 2.3.2-p2) is a security-only patch that provides fixes for vulnerabilities that have been identified in our previous quarterly release, Magento 2.3.2.
If you have already upgraded to the pre-release version of this patch (2.3.2-p1), we strongly recommend that you upgrade to 2.3.2-p2 as soon as possible. Patch 2.3.2-p2 contains the critical security fixes that are included in Magento 2.3.3, 2.2.10, 188.8.131.52, and 184.108.40.206, but that are not included in patch 2.3.2-p1.
For general information about security-only patches, see the Magento DevBlog post Introducing the New Security-only Patch Release. For instructions on downloading and applying security-only patches (including patch 2.3.2-p1), see Install Magento using Composer.
Apply updated hot fix for CVE-2019-8118
The patch addresses an issue with CVE-2019-8118 that was included in Magento 2.3.3 and 2.2.10. While the original fix for that bug stopped the logging of failed login attempts, information collected prior to updating to these current versions may still exist, and previous, unpatched versions of Magento may still have this issue. This hotfix includes both a patch (first released in Oct 2019) that stops the logging of failed login attempts and a new script that clears the login attempts that were previously collected. We recommend that all merchants download and apply this patch and download and run the clean-up script. See Remove failed login attempts from the database for information on how to download and run the patch and clean-up script.
Apply the Scope parameter for Async/Bulk API patch to address an issue with the Async/Bulk REST API
In certain versions of Magento Open Source and Magento Commerce, the Asynchronous and Bulk REST endpoints support the default store view scope only. After this patch is applied to deployments running those versions of Magento, the current Magento message queue implementation will factor in the store that executes queue operations. See Patch for Magento Framework Message Queue and Store Scopes for a full discussion of this scope-related issue and patch contents. See Applying patches for specific instructions on downloading and applying Magento patches. Navigate to the Magento Security Center, and select the patch associated with the version of Magento you are running.
Look for the following highlights in this release:
Substantial security enhancements
This release includes extensive security enhancements:
75 security enhancements that help close cross-site scripting (XSS), remote code execution (RCE), and sensitive data disclosure vulnerabilities as well as other security issues. 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. See Magento Security Center for a comprehensive discussion of these issues. All known exploitable security issues fixed in this release (2.3.2) have been ported to 2.2.9, 2.1.18, 220.127.116.11, and 18.104.22.168, as appropriate.
Google reCAPTCHA module for PayPal Payflow checkout. The new PaypalRecaptcha module adds Google reCAPTCHA and CAPTCHA to the Payflow Pro checkout form. This enhanced functionality has been added in response to malicious targeting of Magento deployments that implement Payflow Pro. Configuration information can be found in Google reCAPTCHA.
Starting with the release of Magento Commerce 2.3.2, Magento will assign and publish indexed Common Vulnerabilities and Exposures (CVE) numbers with each security bug reported to us by external parties. This will allows users of Magento Commerce to more easily identify unaddressed vulnerabilities in their deployment.
Redesign of checkout page to support customers working with many addresses. The checkout page now provides the ability to search addresses instead of listing addresses only on the Select shipping and Billing address steps. This new search feature can substantially increase checkout performance for customers with thousands of addresses. It is disabled by default and must be enabled from the Admin. See Checkout.
Significant improvement to storefront page response time. The page response times for the catalog, search, and advanced search pages have been significantly improved under high load.
Improved concurrent access to block cache storage. We have optimized the logic of concurrent access to the block cache, which has improved the response of storefront pages under high load by approximately 20%.
Product page gallery load optimization. Product images are now loaded as quickly as other page content. In previous releases, although the product page loaded quickly, product images needed two to four additional seconds to load completely.
This release contains 130 enhancements to core quality, which improve the quality of the Framework and these modules:
Checkout/One Page Checkout,
UI. Here are some additional core enhancements:
Braintree payment method is now supported for checkout with multiple addresses. Previously, you could not use Braintree and Braintree PayPal when checking out an order that was being shipped to multiple addresses.
The CGI URL gateway in UPS module has been updated from HTTP to HTTPS. The CGI URL gateway endpoint in the UPS module has been updated from HTTP to HTTPS in response to the disablement of the HTTP gateway by UPS in mid-2019. See Magento User Guide for information about using the UPS shipment method. Shipping method configuration settings are described in Shipping methods.
Google chart API updated to the Image-Charts. Magento now uses the Image-Charts free service to render static charts in Admin dashboards. Earlier deployments used Google Image Charts, which was deprecated in 2012 and turned off on March 18, 2019.
Merchant tool enhancements
Magento now performs the following tasks as asynchronous background processes and sends system messages to alert Admin users when tasks complete. Moving these common administrative tasks to the background frees administrators to work on other tasks while the initial tasks are processing.
- Discount coupon generation. See Coupon Code.
- Mass editing of products.
- Data export. Previously, connection timeouts occurred during export of large data sets (for example, the export of 200,000 products). See Export for more information.
Inventory Management enhancements
New commands allow merchants to check for reservation inconsistencies and resolve any that occur. See Inventory CLI reference.
Improved user interface for assigning sources to products. This redesigned interface includes:
- Support for decimal order quantity
- New test scenarios created to cover Credit Memo use cases
- New InventoryGraphQl module provides attributes that return correct information about product quantities
- Single product save (using asynchronous synchronization with legacy catalog inventory)
- Multiple product save
- Bulk inventory transfer
New endpoint for Bulk Partial Stock Transfer to bulk transfer a custom product quantity between sources. See Inventory Bulk Actions.
Fixes to multiple bugs. See Inventory Management release notes.
GraphQL performance improvements include these enhancements:
GraphQL caching. GraphQL can now cache the
urlResolverqueries, which improves response times. To enable this feature, send these queries using HTTP GET. You can send all other queries with HTTP GET, but they are not cached.
Improvements to GraphQL coverage. Improved coverage for cart and checkout operations include mutations that provide support for the following actions:
- Support for simple and virtual products
- Add, update, and delete cart items
- Set shipping addresses (with address book support)
- Set the billing address (with address book support)
- Set shipping methods
- Set the payment method (offline methods only)
- Place an order
GraphQL performance test scenario coverage. We have added PWA GraphQL test scenarios for critical checkout and catalog browsing to the performance builds. GraphQL community developers can use the new scenarios to measure storefront performance.
See Release notes for a more detailed discussion of recent GraphQL bug fixes.
Progressive Web Apps (PWA)
Improved modular component library. PWA Studio continues to build out the concept for functional and data components through the Peregrine library. Components can now be reused and scaled for frontend needs. Magento has planned a phased rollout for Peregrine functional and data components, starting with the Search component which is launching with this release.
BlueFoot to Page Builder content migration
Assistance for BlueFoot to Page Builder migration. The BlueFoot content migration module (PageBuilderDataMigration) enables merchants who are running Magento 2.1.x or 2.2.x with BlueFoot to upgrade to Magento 2.3.1+ with PageBuilder 1.0 without losing their website content. This module migrates only content created with native BlueFoot. See Overview of content migration for information about module installation and supported content types.
Vendor-developed extension enhancements
This release of Magento includes extensions developed by third-party vendors.
Amazon Pay is now compliant with the PSD2 directive for UK and Germany. See Payment services (PSD 2) - Directive (EU) for an introduction to PSD2.
We have fixed hundreds of issues in the Magento 2.3.2 core code.
Installation, upgrade, deployment
scope_codevalues are now passed to
configFactoryas data arrays. Fix submitted by ochnygosch in pull request 22012. GitHub-21993
- Magento now renders the value of configuration variables (such as ``) as they are entered in configuration files rather than saving the resolved value. Previously, Magento resolved the variable to its actual value, which lead to the overwriting the value in the database when the configuration was saved instead of storing the value in the variable. Fix submitted by Pieter Hoste in pull request 18067. GitHub-15972
- Magento no longer throws an error when you use
app:config:importto import configuration settings. Previously, the import failed, and Magento threw the following error even when the imported file contained only minor changes to password or URL values:
Please specify the admin custom URL. Fix submitted by David Alger in pull request 22281. GitHub-15090
- Magento no longer throws an error when executing
bin/magento setup:static-content:deployin parallel mode if theme or locale deployment takes more than 400 seconds. Previously, Magento threw the following error under these conditions:
2436; Status: 0.
- Magento no longer throws an error during catalog set up when you run
bin/magento setup:upgrade. Previously, set up failed, and Magento threw the following error even though no problems existed with your catalog,
Magento\Catalog\Setup\Media does not exist. Fix submitted by Pieter Hoste in pull request 22446. GitHub-22124
- All fields are now hidden with appropriate dependencies as assigned in the backup configuration settings. Fix submitted by Keyur Kanani in pull request 22475. GitHub-22474
- Updated the email template stylesheet for the Magento default and Luma themes to correctly specify the
.no-linkselector. This update fixes the following less compilation error that displayed when compiling the
email-inline.lessfile using less.js compiler v2.73:
extend '.no-link a' has no matches. Fix submitted by Pieter Hoste in pull request 22332. GitHub-22330
- The total displayed on the widgets table (Content > Elements > Widgets) now reflects only the widgets for which the administrator has privilege. Previously, in a multi-site installation, the total displayed included widgets that the administrator did not have access to.
- Administrators with access to only one website in a multisite deployments can now access the reports page for that website as expected. Previously, only administrators with access to all websites could access reports.
- The State/Province field is no longer marked as mandatory in the Admin customer address form. Previously, this field was always marked by an asterisk, even when the field was not required.
- The icon that identifies a dropdown menu throughout the product interface now reflects the changing state of the dropdown menu’s status (expanded or collapsed). Fix submitted by Eduard Chitoraga in pull request 21197. GitHub-21196
- Form fields of type multiline now work as expected on Admin forms. Fix submitted by Vivek Kumar in pull request 20371. GitHub-8086, GitHub-18115
- Fixed display of Option Title label on Catalog > Product > Customizable Options > Add Option. Fix submitted by Arvinda Kumar in pull request 20339. GitHub-20337
- Magento now displays the correct date in the Admin for scheduled design changes. Previously, Magento displayed the current date instead of the scheduled date on Content > Design > Schedule. Fix submitted by Shikha Mishra in pull request 21443. GitHub-21425
- Fixed alignment of the Marketing > Cart Price Rules > Store View Specific Labels on the Admin. Fix submitted by Kajal Solanki in pull request 19637. GitHub-19632
- The Change Status option of the mass actions dropdown menu (available on the products and sales pages) now works as expected. Fix submitted by Ananth Iyer in pull request 20938. GitHub-20928
- The option type dropdown on the Admin Customizable Options page now works as expected. Fix submitted by Oleksandr Miroshnichenko in pull request 21371. GitHub-20989
minifyfield on Stores > Configuration > Advanced > Developer is now disabled as expected. Fix submitted by Ananth Iyer in pull request 21444. GitHub-21384
- Magento retains the filter settings you enter on the Admin > System > Permissions > All Users list when you click on an item in the filtered list, then return to the list. Previously, if you navigated away from the list and then returned, all filter parameters were lost. Fix submitted by Jay Ghosh in pull request 22128. GitHub-21824
- The web setup wizard now uses the correct base path to check if the setup folder exists. Previously, the wizard checked
/data/web/magento2/pub/setup. Fix submitted by JeroenVanLeusden in pull request 20182. GitHub-7623, GitHub-11892
- Magento now redirects to you the Admin home page or a 404 page as expected when you try to access a nonexisting Admin page and Stores > Configuration > Advanced > Admin > Security > Add Secret Key to URLs is enabled. Previously, redirects did not work properly, and Magento displayed the following message,
The page isn’t redirecting properly. Fix submitted by Jitheesh V O in pull request 21455. GitHub-21454
- Magento now creates the
var/.maintenance.flagfile as expected when you start a database backup (System > Tools > Backups > Database Backup). Previously, Magento did not create this file, but instead displayed the following error:
Error: You need more permissions to activate maintenance mode right now. To create the backup, please deselect "Put store into maintenance mode" or update your permissions. Fix submitted by Hiren Pandya in pull request 19993. GitHub-19825
- Magento now calculates and displays the correct tier price for bundle products. Fix submitted by Adarsh Khatri in pull request 21469. GitHub-21467
- Tier pricing for bundle products now works as expected: Magento displays the correct price in the cart, and reminds customers that they can buy a specific quantity of the product for a discount. Previously, Magento did not calculate the price correctly and did not display any informative messages about tier pricing on the category and product pages.
- You can now add backordered products to the cart when backorders are enabled.
- Store switcher now works as expected in deployments that use the shared catalog structure. Previously, the store switcher in the shared catalog structure configuration used the store’s
group_idinstead of the
store_idto filter the product collection.
- Magento now displays the correct price on the storefront for products whose prices have been updated in a shared catalog. Previously, Magento did not update storefront prices when a price in the shared catalog was updated.
catalogpermissions_categoryindexer in Update On Schedule mode now correctly picks up on the structure of a shared catalog.
- CMS block cache keys now contain the appropriate store ID in deployments with multiple store views. Previously, Magento always loaded the cached version of the block for the first store view. Fix submitted by Marius Strajeru in pull request 22302. GitHub-22299
Cart and checkout
- Magento now correctly updates the minicart if a selected product is disabled during the shopping session.
- You can now add grouped products to the shopping cart as expected when category permissions are enabled.
- Magento now persists the shipping quote in the shopping cart for guest customers when Persistent Shopping Cart is enabled.
- Magento now persists customer-related values after a guest customer converts her account to a customer account after checkout. Previously, Magento saved these customer-related values as null during account creation after checkout. Fix submitted by Nazar Klovanych in pull request 19191. GitHub-19166
- Guests can now complete checkout when a custom shipping carrier with underscores in the carrier code is used. Previously, Magento threw the following exception under these conditions:
Please specify a shipping method. Fix submitted by vovsky in pull request 19505. GitHub-5021
- Fixed alignment of the Update button on the payment page of the checkout workflow. Fix submitted by Govind Sharma in pull request 20307. GitHub-20305
Cannot read property 'quoteData' of undefined. Fix submitted by Ihor Sviziev in pull request 18503. GitHub-14412
- Magento now displays an error message as expected when a customer clicks on Add to cart without selecting at least one product from the recently ordered product list. Fix submitted by Prince Patel in pull request 21401. GitHub-21398
- The Cancel button on the checkout page now works as expected. Fix submitted by Jitheesh V O in pull request 21356. GitHub-21327
- Magento now provides an option to remove store credit from the Payment page of checkout.
- Magento no longer runs
UpdateItemQtyvalidation before a Clear Shopping Cart action is triggered. Previously, due to the timing of this validation, you could not empty the shopping cart if any product in the cart was out-of-stock. Fix submitted by Wojtek Naruniec in pull request 21295. GitHub-21294
- Magento now uses the value of the default billing address attribute as expected during checkout. GitHub-8777
- Magento now validates the shipping information section of checkout as expected. Previously, a customer could proceed to the Payment Details section of checkout without having added valid shipping details. Fix submitted by Nirav Patel in pull request 22405. GitHub-21596
labelelements on the checkout address input fields are now readable by screen readers. Previously, the address input fields did not have a
labelelement with a valid value, which prevented screen readers from reading the values. Fix submitted by Scott Buchanan in pull request 21484. GitHub-10893
- New downloadable products now show up in a customer’s My Downloadable products list after a customer who completed a purchase as a guest then creates an account. Fix submitted by Jitheesh V O in pull request 21711. GitHub-21702
- The checkout page now provides the ability to search addresses instead of listing addresses only on the Select shipping and Billing address steps. This new search feature can substantially increase checkout performance for customers with thousands of addresses. It is disabled by default and must be enabled from the Admin. See Checkout.
Cart Price rules
- Magento now displays the Cart Price Rule code on an order details Admin page if free shipping applies. Previously, Magento did not display information about the Sales rule or why shipping was free.
- You can now use the term configurable as a group name in attribute sets. Previously, Magento threw an error when you used this term as a group name and subsequently tried to add or edit a product. GitHub-6123
- Product search results now display the correct special price as set by a scheduled update. Previously, search results displayed the original special price, not the price set by the scheduled update. This fix can degrade performance in deployments that implement flat catalogs. To avoid this potential performance degradation, consider disabling flat catalogs.
- Clicking on a store’s root category now causes only that root category to expand. Previously, Magento expanded all other Root Categories into the top-level categories.
- The Magento implementation of the
CategoryManagementInterface::getTree($rootCategoryId)now provides a tree that is populated with children instead of an empty array. Fix submitted by Patrick McLain in pull request 18705. GitHub-17297
- Magento now maintains correct pagination when a Catalog list has multiple pages of products. Previously, users were redirected to the first page (instead of the correct page) after navigating to a product from the list and saving it.
- We have improved the performance of the grouped product detail pages and category pages that contain a large number of grouped products.
- Catalog Permission rules that are set for a category now remain applied when a new category is created at the same level.
- You can now use storeview-level attributes to filter products on the products list.
- Magento does not display the Country of Manufacture field under the More Information tab of the product page when this value is empty.
- A product’s
product:price:amountmetatag now contains the price converted to the appropriate base currency in multistore deployments with stores using different base currencies. Previously, the price in this metatag was always calculated in the base currency. Fix submitted by Milind Singh in pull request 20011. GitHub-20010
- Magento now correctly calculates multi-currency custom option prices when the option price type is
percentage. Previously, when the multi-currency custom option was set to a percentage price type, Magento calculated the price incorrectly. Fix submitted by Emipro Technologies Pvt Ltd in pull request 19608. GitHub-19561
export.xsdfiles now allow modules with names that contain numbers. Fix submitted by Lisovyi Yevhenii in pull request 20617. GitHub-14882
- Magento no longer adds tax twice when adding a new product with tier pricing. Previously,
MinimalTierPriceCalculatorapplied the tax twice when calculating the minimal price. Fix submitted by Jitheesh V O in pull request 21395. GitHub-21383
- The Admin product grid now displays default values when no filter is set. Fix submitted by Eduard Chitoraga in pull request 21363. GitHub-13338
- The Magento implementation of the
CategoryManagementInterface::getTree($rootCategoryId)now provides a tree that is populated with children instead of an empty array. Fix submitted by Patrick McLain in pull request 18705. GitHub-17297
- Magento no longer empties the shopping cart when you click Enter after changing a product’s quantity. Fix submitted by Leandro F. L. in pull request 21509. GitHub-21499
- Fixed issue with excessive white space on the related, cross sell and upsell product grids. Fix submitted by Amol Chaudhari in pull request 21582. GitHub-21541
- You can now sort the Admin product list by website. Fix submitted by Ievgenii Gryshkun in pull request 20512. GitHub-20511
- Magento now creates unique values for product attributes as expected when you duplicate a product. Previously, Magento duplicated a product, but both products had the same attribute values.
- During product creation, Magento now displays default attribute values from the Admin column on the Manage Options (Values of Your Attribute) window when creating options. Previously, Magento displayed options from the default storeview. GitHub-6507
- You can now add an out-of-stock item to a product comparison. Previously, Magento displayed a success message, but did not add the item to the comparison. GitHub-21518
- The catalog product flat data table for a store view is now populated with data from the specified store view as expected. Previously, this table was populated with data from the default store view. Fix submitted by Oleg Volkov in pull request 22318. GitHub-21747
- Magento now applies the correct tier price for a product after a customer who is assigned to a customer group logs in after first adding items to their cart as a guest. Previously, Magento did not apply the tier price after the customer logged in.
- You can now add a product to an order by using the Add products by SKU button. Previously, when you tried to add a product this way, Magento displayed the following message:
The SKU was not found in the catalog.
- Tax recalculation has been moved out of the translation into the background for negotiable quotes running in an environment where B2B is deployed. This improves performance and helps avoid server timeouts.
product_typeattribute now contains the correct value in the CVS file that is created during export after you create a
custom type_idattribute. Fix submitted by Govind Sharma in pull request 20115. GitHub-19891
- Magento now increments product quantity correctly when you add products to your cart first as a guest user, and then logged in. Previously, Magento added items separately instead. Fix submitted by Jitheesh V O in pull request 21501. GitHub-21375
- Meta Keywords and Meta Description are now defined as
textareathroughout product forms. Fix submitted by Amit Vishvakarma in pull request 20556. GitHub-20555
- Magento now saves customizable option price input on the store-view level when Catalog Price Scope is set to Global.
We have modified the required permissions for updating the
designfieldset of categories, products, and CMS pages:
Existing roles that have save permission for these entities can save everything.
New roles will need to be granted permission to edit design manually.
If you do not have permission to edit the
designfieldset or use web API endpoints to update a category, Magento does not save your changes and the design properties remain unchanged.
- When you configure a price rule for configurable products with swatches, Magento now a shows the special price for products that match the price rule. Previously, Magento displayed both the old price and the special price for the matching configurable products. Fix submitted by Sarfaraz Bheda in pull request 19376. GitHub-19276
- We have fixed the wrong proxy
resourceStockargument for the
<argument name="resourceStock" xsi:type="object">Magento\CatalogInventory\Model\ResourceModel\Stock\Proxy</argument>has been changed to
<argument name="resourceStockItem" xsi:type="object">Magento\CatalogInventory\Model\ResourceModel\Stock\Item\Proxy</argument>.) Fix submitted by VitaliyBoyko in pull request 21731. GitHub-167
Catalog URL rewrite
- URL rewrites are no longer overwritten in multisite deployments. Fix submitted by Anshu Mishra in pull request 21462. GitHub-21329
Cleanup and simple code refactoring
- Corrected the overlapping Rating field and Add to cart button on the cart page. Fix submitted by Kajal Solanki in pull request 21178. GitHub-21177
- Corrected length of the customer login page input field in tablet view. Fix submitted by Nainesh Waghale in pull request 20173. GitHub-20172
- Fixed misalignment of the checkbox in the fields enclosure on Admin > System > Export. Fix submitted by suryakant-krish in pull request 19631. GitHub-19630
- Corrected misalignment of the products in category checkboxes on the Admin catalog categories page. Fix submitted by priti2jcommerce in pull request 21022. GitHub-21021
- Corrected misalignment of the order item details label in mobile view. Fix submitted by priti2jcommerce in pull request 20466. GitHub-20299
- Corrected misalignment of page elements on the Admin product reorder page. Fix submitted by Arvinda kumar in pull request 21009. GitHub-20919
- You can now open a product’s details page from the compare products side bar. Fix submitted by Eduard Chitoraga in pull request 21102. GitHub-21101
- Added padding to the
shippingAddresstelephone tool tip on the shipping page of checkout. Fix submitted by Abrar Pathan in pull request 20839. GitHub-20838
- Corrected misalignment of product prices in the order summary block of the checkout page in tablet view. Fix submitted by dipti2jcommerce in pull request 20856. GitHub-20855
- Corrected size of the pagination drop-down on Admin > Content > Blocks. Fix submitted by Pratik Oza in pull request 21298. GitHub-21296
- Corrected a tabbing issue on the product page. Fix submitted by Prakash Gunthe in pull request 21079. GitHub-21077
- Corrected alignment of page elements on the Recent Orders section of the My Accounts page in mobile view. Fix submitted by Nainesh Waghale in pull request 20429. GitHub-20414
- Corrected formatting of the Advance Search link in page footers. Fix submitted by Amol Chaudhari in pull request 21611. GitHub-20809
- Corrected alignment of the minicart search logo. Fix submitted by Amol Chaudhari in pull request 21638. GitHub-20905
- Added missing asterisk adjacent to the Checkout Agreements checkbox. Fix submitted by Karla Saaremäe in pull request 21649. GitHub-21648
- Removed unnecessary white space between
litags in the product table. Fix submitted by Akhilesh Singh Shrinet in pull request 21948. GitHub-21244, GitHub-20140
- The documentation for Travis CI static tests has been improved. Fix submitted by Francesco Haymar d’Ettory in pull request 18386. GitHub-13951
- Corrected typos on the Admin sales shipment and credit memo pages. Fix submitted by Vishal Sutariya in pull request 22031. GitHub-22030
- The Equalize product count operation in Layered Navigation now works as expected. Fix submitted by Nazar Klovanych in pull request 21968. GitHub-6715
- Corrected misalignment of page elements on the pop-up window that Magento displays when you edit an order that contains a downloadable product when the Links can be purchased separately option is enabled. Fix submitted by ansari-krish in pull request 22298. GitHub-20917
- Fixed misalignment of the shipping method block on Order pages that are accessed through Sales > Orders. Fix submitted by Vishal Sutariya in pull request 21963. GitHub-21962
- In the Conditions section of the New Cart Price Rule page in the Admin, the arrow for the
If ALL of these conditions are TRUEdropdown list field now points in the correct direction. Fix submitted by Hiren Pandya in pull request 22456. GitHub-20366
- Magento no longer throws an error when you try to export a customer report with a description filter.
- Magento now sorts media directories alphabetically during image upload.
- Magento now correctly adds Company users when the database prefix schedule contains an underscore. Previously, Magento threw an SQL error and did not add the users.
- Magento no longer describes a configurable product as in-stock in the product list when the product is set to out-of-stock.
- Corrected the position of the labels in the configurable product variations table. Fix submitted by Burlacu Vasilii in pull request 20528. GitHub-20527
- Configurable products can no longer be added as a variation of another configurable product in the Admin.
- The configurable product page’s attribute dropdown menu shows an accurate price and tax is rendered correctly in the final price at the top of the page. Previously, configurable products that had only one configurable attribute displayed a price increase in the dropdown of the tax amount. This affected stores when prices were entered excluding tax and configurable products with only one configurable attribute. Fix submitted by Daniel Farmer in pull request 22466. GitHub-22270
- Configurable products can now be successfully updated through the bulk API using the following API endpoint:
rest/async/bulk/V1/configurable-products/bySku/child). Fix submitted by Pedro Sousa in pull request 21083. GitHub-20366
Added support for Zookeeper and flock lock providers. We have also added new options to configure locks during installation:
--lock-provider=LOCK-PROVIDER—Lock provider name
--lock-db-prefix=LOCK-DB-PREFIX—Installation specific lock prefix to avoid lock conflicts
--lock-zookeeper-host=LOCK-ZOOKEEPER-HOST—Host and port to connect to Zookeeper cluster. For example, 127.0.0.1:2181
--lock-zookeeper-path=LOCK-ZOOKEEPER-PATH— The path where Zookeeper will save locks. The default path is /magento/locks
--lock-file-path=LOCK-FILE-PATH—The path where file locks will be saved.
- Magento no longer empties your shopping cart after you have reset your password. Previously, if you added items to your shopping cart using a guest account, then logged in and reset your password, Magento emptied your cart. GitHub-14530
- Magento now saves dates that are associated with custom customer attributes of type
date. Previously, Magento did not save these dates, but displayed the following message:
Please enter a valid date.
- The Customer Name Prefix on the customer configuration page no longer displays extraneous white space when an extra separator is added. Fix submitted by Shikha Mishra in pull request 20896. GitHub-17861
- Fixed a horizontal scrolling issue that affected the address book display in mobile view. Fix submitted by Pratik Oza in pull request 21272. GitHub-21271
- The default sort order setting for the shopping cart and customer orders page is now
by create date in descending order. Fix submitted by Jitheesh V O in pull request 21498. GitHub-21493
- The customer login block (defined as
Magento\Customer\Block\Form\Login) no longer sets the page title. Fix submitted by Lisovyi Yevhenii in pull request 20583. GitHub-13982
- An admin user with full permissions for all website scopes can now see any country listed in the Countries column or filter in the Customers list. Previously, if one of the website scopes did not allow a country, an admin with full permission could not see it.
- Magento no longer applies the default customer group settings to customers that have already been assigned to another group.
- Customer groups can now be successfully reassigned during order creation in the Admin.
- Customer accounts are now confirmed when a customer clicks the email activation link. Previously, Magento confirmed the customer account even when the customer did not click on the email activation link. Fix submitted by Shikha Mishra in pull request 22147. GitHub-22052
- Magento no longer throws a 404 error when you click the Most viewed products on the Admin dashboard. Fix submitted by Vishal Sutariya in pull request 22002. GitHub-22001
- Product prices are no longer duplicated on the Downloadable products page. Fix submitted by Govinda Sharma in pull request 20239. GitHub-20187
- Sales rule validation has been refactored to eliminate a leak in the salesrule collection. Previously, a poorly constructed SQL query resulted in poor performance. Fix submitted by Govind Sharma in pull request 20239. GitHub-20187
- You can now successfully change the sample file for an existing downloadable product. Previously, when you tried to change this sample file, Magento did not save the new file, and did not display an error message. Fix submitted by Ravi chandra in pull request 19806. GitHub-6272
- A logged-in user’s My Downloads page now displays links to the relevant downloadable products when Order Item Status to Enable Downloads is set to Pending. Previously, Magento displayed only the names of the pending products, and no links for downloadable products were displayed. Fix submitted by James in pull request 22073. GitHub-21753
- Added missing sort order to columns on Downloadable Product links page. Fix submitted by Mahesh Singh in pull request 21279. GitHub-21278
- Attribute code validation (specifically, maximum characters allowed) has been improved during attribute creation. Fix submitted by Eduard Chitoraga in pull request 20526. GitHub-20766, GitHub-20943
- Initialization has been added to two class variables that can be returned by class methods as parameters of type
array. Without this initialization, both variables are returned as null, which can cause Magento to throw an
Invalid argument supplied for foreach()warning. Fix submitted by Wojtek Naruniec in pull request 21135. GitHub-21134
\Magento\Eav\Model\Entity\Collection\AbstractCollection::importFromArray()method now returns a usable collection. Previously, the
_isCollectionLoadedproperty was false, and every interaction threw an exception. Fix submitted by Lorenzo Stramaccia in pull request 21869. GitHub-21868
- You can now retrieve product attribute values for store-view scope types in the product collection that is loaded for a specific store. Fix submitted by Shikha Mishra in pull request 20071. GitHub-18374
- You can now programmatically upload an image for the customer attribute. Previously, Magento threw the following error:
error: Base64 is not defined. Fix submitted by Nazar Klovanych in pull request 19988. GitHub-19983
- Scope assigned to prices in Catalog Price Scope (set in Configuration > Price) are now maintained when price is set to empty. Previously, you could not leave special prices empty.
- Added an
is_arrayparameter value check to the
app/code/Magento/Eav/Model/Entity/Attribute/Source/AbstractSource.phpto fix an error that caused Magento to throw a UI error when you make the
_quantity_and_stock_status (Qty)_product attribute visible in the storefront properties. Previously, the
getOptionText($value)function expected integer or string input and failed because the
quantity_and_stock_status (Qty)configuration parameters were passed as an array.` Fix submitted by Aditi Singh in pull request 20001. GitHub-13612
- Magento no longer sends via asynchronous email sending any sales-related emails that were created when email sending was disabled once email sending is enabled. Fix submitted by Serhiy Zhovnir in pull request 21788. GitHub-21786
- The Insert variable pop-up window that is accessed from the Email Template Information window is now populated as expected. Fix submitted by Bartłomiej Szubert in pull request 22469. GitHub-20111
- The performance of product image loading has been significantly improved. GitHub-14667
- You can now successfully download a downloadable product by clicking the link to the product in your downloadable products list. Previously, when you clicked this link. the page did not open correctly, and Magento threw the following error:
Something went wrong while getting the requested content. Fix submitted by Shikha Mishra in pull request 19996. GitHub-18944
- Added the
lib/internal/Magento/Framework/View/Layout/etc/head.xsdwith three possible options:
font. Fix submitted by Burlacu Vasilii in pull request 20495. GitHub-18347
- Corrected misalignment of the Admin success message icon. Fix submitted by Kajal Solanki in pull request 21069. GitHub-19328
- The use of the
SessionManagerInterfaceclass has replaced the direct use of
SessionManager. Fix submitted by Jaimin Sutariya in pull request 19274. GitHub-19359
- The module ranking in the
app/etc/confignow remains consistent when a new module is added without any other changes. Previously, a module addition affected the module ranking, which resulted in multiple unnecessary conflicts. Fix submitted by Alexandre Jardin in pull request 21020. GitHub-8479
- Magento now logs exceptions during autoloading instead of throwing them. This conforms with PSR-4 guidelines. Fix submitted by Vinai Kopp in pull request 20950. GitHub-20773
- Running the
php bin/magento setup:upgradecommand on modules that have a
indexTypenow creates the index, and subsequent runs result in no modifications as expected. Previously, running this command multiple times resulted in index creation followed by an error. Fix submitted by Milind Singh in pull request 21328. GitHub-21322
- The purge cache feature in
\Magento\CacheInvalidate\Model\PurgeCache::sendPurgeRequesthas been updated to flush the cache on all hosts even if a Varnish server is offline. Magento also displays a warning message about unresponsive cache hosts. Previously, the
bin/magento cache:flush full_pageoperation stopped as soon as it encountered a host that was offline. Fix submitted by Wiard van Rij in pull request 18852. GitHub-18056
validate-per-page-value-listvalidation rule resulted in a failure for every non-empty value in the field to which it as applied. Fix submitted by Roman Kis in pull request 21776. GitHub-21734
- The Sodium crypto adapter now consistently returns a
stringin accordance with the strict return type on its signature. Previously, the adapter sometimes did not return a
string, which resulted in exceptions and a failure to bootstrap Magento. GitHub-19590
- Customers who are not logged in can now see the dynamic blocks that have been created for guest accounts. Previously, only customers logged in to the registered guests segment could see these dynamic blocks.
- Watermarks now appear on product images as expected. Fix submitted by Yevhenii Dumskyi in pull request 21338. GitHub-21154
- You can now use a period (
.) for inline CMS content edits. Previously, if you included a period (
.) in your edits, Magento displayed the following error:
There are 1 messages requires your attention. Please make corrections to the errors in the table below and re-submit. Fix submitted by Nirav Patel in pull request 21376. GitHub-21374
- The pagination count of My Account > My addresses > Additional Address Data Table is now correct. Fix submitted by Dharmesh Vaja in pull request 21399. GitHub-21396
500only on fatal errors. Previously, simple deprecation warnings on the page triggered an internal server error, which was invalid. Fix submitted by WEXO team in pull request 22200. GitHub-22199
- CodeSniffer no longer marks correctly aligned
DocBlockelements as code style violations. Fix submitted by p-bystritsky in pull request 22321. GitHub-22317
- The Adminhtml
textareafield now accepts the
maxlengthattribute. Fix submitted by Roman Kis in pull request 21816. GitHub-21779
- The Reporting Security Issues section of the Magento 2 README file has been updated to reflect use of HackerOne for the Magento 2 Bug Bounty program. Fix submitted by Andreas Mautz in pull request 22195. GitHub-22166
- You can now save an inactive admin user token by navigating to System > Permissions > All Users, and clicking Save User on an inactive Admin user. Previously, if you tried to save an inactive Admin user token fom the Admin using this method, Magento threw an error and did not save the token. Fix submitted by Pratik Oza in pull request 20772. GitHub-16513
- We updated
Magento\Msrp\Pricing\MsrpPriceCalculatorto add the
$msrpPriceCalculatorsargument. Previously, this argument was missing, which caused Magento to throw a
MsrpPriceCalculatorexception after an upgrade. Fix submitted by Leandro F. L. in pull request 22197. GitHub-22190, GitHub-22090
app/boostrap.phpis now run only when a stream wrapper is registered. Previously, calling
stream_wrapper_unregister('phar')without checking to see if it were registered triggered a warning. Fix submitted by Antoine Daudenthun in pull request 22171. GitHub-22190, GitHub-21973
- The sitemap generation
cronjob no longer flushes the entire cache. A dummy cache tag has been added to the frontend for sitemap and robots generation to prevent the default and
page_cachefrom being dropped completely. Previously, the sitemap generation cron job flushed the entire cache. Fix submitted by David Führ in pull request 20818. GitHub-14857
- Magento now sets an accurate
updated_atfields in the database schema. Previously, this timestamp displayed
0000-00-00 00:00:00. Fix submitted by Danny Verkade in pull request 21486. GitHub-21477
grunt watchcommand no longer triggers
livereloadtwice. Fix submitted by Torben Höhn in pull request 22276. GitHub-19544
- You can now duplicate a product with translated URL keys over multiple store views without generating non-unique keys. Previously, when a product was duplicated, only one URL key was used and set for all store views. Fix submitted by Vechirko Yurii in pull request 22178. GitHub-21737
Gift cards accounts
- Gift card accounts are now created as expected when gift card orders are authorized and captured with PayPal Express.
- The Google Analytics
Anonymize Ipfeature is no longer enabled by default. Fix submitted by Nazar Klovanych in pull request 21303. GitHub-21292
- The Google Tag Manager snippet is now correctly placed in the HTML
headsection. Previously, this snippet was incorrectly positioned lower in the
headsection, which generated HTML validation errors.
Google Chart API
- The Google chart API has been updated to use Image-Charts. Magento now uses the Image-Charts free service to render static charts in Admin dashboards. Earlier deployments used Google Image Charts, which was deprecated in 2012 and turned off on March 18, 2019. GitHub-21599
- Magento now imports existing products that have a price change and unchanged
url-keywith no unnecessary updates. Previously, the product’s price was updated as expected, but its unchanged
- Magento now displays informative messages when you create a new product and try to set its SKU to one that is assigned to an existing product. Previously, under these circumstances, Magento displayed an informative message, but also imported the newly created product’s configurable options to the older product. GitHub-9457
- The import process
replacemethod now works as expected. Fix submitted by Denys Saltanakhmedov in pull request 21189. GitHub-18761
- The import process now imports product quantity as expected. Fix submitted by Nazar Klovanych in pull request 22382. GitHub-22355
- Custom import adapters now validate CSV files as expected if column and data are available. Previously, the CSV file was not validated, and Magento threw the following error:
Notice: Undefined index: sku in /var/www/html/hamtc/vendor/magento/module-import-export/Model/Import/Entity/AbstractEntity.php on line 411. Fix submitted by Jaimin Sutariya in pull request 19765. GitHub-19761
Magento/ImportExport/Model/Importis no longer declared dynamically. Fix submitted by Roman Kis in pull request 21999. GitHub-21998
- Tooltip styles now use the appropriate variables for mobile view. Fix submitted by Nazar Klovanych in pull request 22382. GitHub-22246
- Magento now displays the correct import status data for an import that is created using System > Import > Advanced Pricing > Add/Update. Fix submitted by Denys Saltanakhmedov in pull request 21476. GitHub-21192
- When you export product data into a CSV file, the
store_view_codecolumn now contains data from the chosen product store. Previously, Magento did not populate the
store_view_codecolumn. Fix submitted by Valant13 in pull request 19395. GitHub-17784, GitHub-19786
- You can now access a list of Admin indexers after creating a custom index. Previously, when you tried to access the indexer list for an Admin, Magento threw a fatal error. Fix submitted by Cristiano Casciotti in pull request 21575. GitHub-21510
- Magento now validates CSV files that are created by custom adapters when you click Check Data if column and data are available. Previously, Magento threw an error. Fix submitted by Jaimin Sutariya in pull request 19765. GitHub-19761
- The default behavior of view models has changed in this release. Instances of view models are now shared by default. As a result, you must add the
attribute shared="false"on the argument node of the
layout.xmlfile if you want a new instance of a view model.
FrontControllernow explicitly requires actions to specify if they respond to
HEADaction mapping has also been changed to the
GETaction interface, which results in
404. Fix submitted by Matti Vapa in pull request 21378. GitHub-21299
- We removed the Logic class from the constructor of
Magento\Sales\Model\Order\Address\Validator. Previously, installation of the product could fail if this class was injected in the constructor through a command in a custom module when this class continued logic. Fix submitted by Bartłomiej Szubert in pull request 21693. GitHub-21692, GitHub-21752
productAvailabilityChecksargument has been added to
Magento\Sales\Model\Order\Reorder\OrderedProductAvailabilityChecker. Previously, this required argument was missing. Fix submitted by Roman Kis in pull request 21820. GitHub-20825
errors/local.xmland error page templates are no longer publicly accessible. Fix submitted by Fabian Schmengler in pull request 20212. GitHub-20209
- We added the missing attributes
quote_address. Fix submitted by Erik Pellikka in pull request 19265. GitHub-17658
- We added Type casting to
\Magento\Shipping\Model\Carrier\AbstractCarrier::getTotalNumOfBoxes()to improve validation. Fix submitted by Mudit Shukla in pull request 20898. GitHub-13319
- Widget parameters can now contain multidimensional arrays. Fix submitted by Eduard Chitoraga in pull request 21008. GitHub-19909
phpcslinter plugin now reports all errors and warnings in the terminal as expected. Previously,
phpcsthrew an error instead of reporting errors under certain circumstances. Fix submitted by Nazar Klovanych in pull request 22081. GitHub-20186
\Magento\Framework\Data\Collectionnow returns results that reflect added filters as expected when the
clear()method is called after
getSize(). Previously, this method returned results that always remained the same after the first call and the
clear()method was ignored.Fix submitted by Sergey Nezbritskiy in pull request 21670. GitHub-21654
- Magento no longer caches absolute file paths in the validator factory (
Magento\Framework\Validator\Factory::_initializeConfigList). Previously, caching absolute file paths resulted in problems during transactions when a customer, a
customer_address, or quote for a registered customer was saved. Fix submitted by David Führ in pull request 21856. GitHub-21842
getmethods now return an object of instance
Vendor\Module\Model\Quote. Fix submitted by Bartłomiej Szubert in pull request 22149. GitHub-12802
Magento no longer throws an exception under these conditions:
- Setting price navigation step calculation for layered navigation to Automatic (equalize product counts) now works as expected. Previously, results were not in the equals range, but omitted products. Fix submitted by Nazar Klovanych in pull request 21968. GitHub-21960
- Use of the Yes/No attribute in the Layered Navigation filter no longer degrades filter performance. Fix submitted by Stephan Kechedzhi in pull request 21772. GitHub-3283, GitHub-21771
- Magento now retrieves the configuration value (store ID) that is based on the current store scope in multistore deployments. Previously, Magento occasionally returned an incorrect configuration scope ID when attempting to resolve a scope ID set to null. Fix submitted by Pratik Oza in pull request 21633. GitHub-16939
system.logfiles no longer contain duplicate records.
- Magento now creates a log entry if an observer does not implement
ObserverInterfacein modes other than developer mode. Previously, Magento created a log entry when in developer mode only. Fix submitted by Nazar Klovanych in pull request 21767. GitHub-21755
Fixed issue with the event stream cron job.
Fixed issue with retrieving shipping labels from some AWS environments.
New Relic reporting
- Improved performance of New Relic queries. The New Relic Reporting module now cleans the Magento 2.x report data to prevent the reporting data store from growing too large and slowing query performance.
- Magento 2.x CLI command names are now reported in the transaction names in the New Relic APM Monitoring Data. The transaction name is based on the Magento CLI command name, for example
cli indexer:reindex, and
cli cache:flush. In previous releases, the New Relic transaction names for CLI commands initiated by Magento 2.x CLI command names was missing and reported as unknown. Fix submitted by Lukasz Bajsarowicz in pull request 22059. GitHub-22047
- You can now change pages at an expected speed from the Admin newsletter subscribers page (Marketing > Communications > Newsletter Subscribers). Previously, it took excessively long to move off this page.
- The newsletter subscription input box now displays all text in mobile view. Fix submitted by Arvinda kumar in pull request 20165. GitHub-20163
- The quick order form now handles the SKU codes that you enter for configurable products as expected. Previously, Magento threw an error when you tried to enter the SKU for a configurable product, and displayed a link to the simple product which typically returned a 404 page.
- Order status is now maintained as expected after a partial refund. Previously, Magento reset order status to default after a partial refund. Fix submitted by Malyovanets Nickolas in pull request 20378. GitHub-12386
- Programmatically created invoices now include all items as expected when both simple products and bundled products are mixed in an order. Previously, when
Magento\Sales\Model\Service\InvoiceService::prepareInvoicewas called without a specified quantity, the function did not discard items as expected after bundled items were processed, which resulted in a partial invoice. Fix submitted by Ryan Palmer in pull request 22263. GitHub-22246
- When you create new extension attributes for orders, these attributes are now correctly joined when querying orders. Fix submitted by Oleksandr Kravchuk in pull request 21797. GitHub-8035
- Page cache is no longer active when maintenance mode is enabled. Previously, Magento cached pages from all IP addresses during maintenance mode.
- Magento no longer throws an error indicating that a transaction was declined when Authorize.net successfully processes the order. Previously, orders were successfully created but Authorize.net indicated that the transaction had been declined. GitHub-22373
- Magento creates an order using PayPal PayflowPro as expected when a customer enters all the credit card information that PayPal needs to create the transaction. Previously, Magento did not create the order even though all necessary credit card information has been entered.
- Alt attribute text that describes credit card type or stored payment methods during checkout has been added to support accessibility. Fix submitted by Patrick McLain in pull request 21090. GitHub-21089
- Improved catalog/search/advanced search pages response time: We have optimized the products load flow on storefront, which result in significant improvement of category, product, checkout, and search result pages response time. There is at minimum a five times improvement for page response time under high load.
- The transfer cart line items and transfer shipping options in the Shipping step of checkout now work for PayPal. GitHub-19064
- The multishipping checkout flow now supports the Braintree payment method.
- Magento no longer disables the Place order button in the checkout workflow after the customer has supplied the requested email address for orders created with Braintree. Fix submitted by Roman Kis in pull request 21936 GitHub-21907
- We have optimized the logic of concurrent access to the block cache, which has improved the response of storefront pages under high load by approximately 20%.
QuoteManagement::submitQuotenow logs all root exceptions. Previously, Magento logged only the second exception in
exception.log. Fix submitted by David Führ in pull request 21697. GitHub-14926, GitHub-18752
x_forwarded_forfield of the Quote Management service now contains the value from
$_SERVER['HTTP_X_FORWARDED_FOR']. Previously, this field was always empty. This change will permit administrators to see their customer’s actual IP addresses (as opposed to 127.0.0.1), which can help identify potentially fraudulent orders. Fix submitted by Christian Münch in pull request 21787. GitHub-
- Reports now include orders from only the websites that the administrator has permissions for in multisite deployments. Previously, a report run by an administrator with access to one website only contained information about products and sales on other websites.
- The date range in reports no longer displays the same start and end dates. Fix submitted by Milind Singh in pull request 20129. GitHub-20128
- Magento now includes the amount of a credit memo’s refunded discount in its calculation of the value displayed in the total column under Last Orders listing on the Admin. Fix submitted by rav-redchamps in pull request 21283. GitHub-18754, GitHub-21281
- The downloads report table (Admin > Reports > Downloads) now displays an accurate count of all downloadable products and the number of times they have been downloaded. Fix submitted by Shikha Mishra in pull request 22291. GitHub-22223
- The text for review-related headers under User Content on the Admin has been edited for clarity. Fix submitted by Vishal Gelani in pull request 21621. GitHub-21620
Return Merchandise Authorizations (RMA)
- Product-level RMA disabling now works as expected.
- Corrected problems with the disabling and enabling order-related emails. Fix submitted by Serhiy Zhovnir in pull request 20953. GitHub-18698
- Fixed display of the Luma theme My Account Order status tabs in mobile view.Fix submitted by Abrar Pathan in pull request 21071. GitHub-21070
- You can now change customer groups when creating a new customer during order creation on the Admin. Fix submitted by gauravagarwal1001 in pull request 21145. GitHub-6162, GitHub-7974, GitHub-21144
- You can now successfully re-order a virtual product. Fix submitted by Shikha Mishra in pull request 21335. GitHub-15059
- When you place an Admin order for a product with a custom price, the
sales_order_itemtable now behaves the same as it would for an order of a product with a regular price. Specifically, the price column contains the custom price excluding tax. Previously, the
sales_order_itemtable’s price column displayed the custom price including tax.
- Form validation now works as expected for fields in the Admin order address edit forms. Previously, when you entered invalid data, Magento did not display an error message and displayed the data. Fix submitted by Ievgenii Gryshkun in pull request 20840. GitHub-19360
- If you retrieve an order, and then use the
getShippingMethodas object function to retrieve the shipping method, Magento now returns
nullif no shipping method has been defined. Previously, this function returned an undefined index error if a shipping method was not available. Fix submitted by Mahesh Singh in pull request 20381. GitHub-20380
- We updated the DataProvider and Save Controller files to improve persistence of form data in cart price rules. Fix submitted by Aditya Yadav in pull request 20895. GitHub-20888
- Added a condition
type _Subtotal (Excl. Tax)to the Cart Price Rule configuration so that you can configure a cart price discount rule discount based on minimum purchase amount that excludes tax. Previously, the subtotal was calculated only with tax included. Fix submitted by AleksLi in pull request 21288. GitHub-12396
- Catalog search Minimal Query Length values are now enforced as expected.
- The count of products in layered navigation now equals the number of products found by search in deployments that run B2B. Previously, fewer products were identified by search than by layered navigation.
- Elasticsearch quick search now works as expected when the default attribute set contains a
dateattribute that has been set to Search = Yes. Previously, the search page threw an exception and crashed.
- The performance of layered navigation queries has been improved. Fix submitted by Mads Nielsen in pull request 20971. GitHub-20969
- The search REST API now returns the correct
total_countof result items. Previously, the value of
searchCriteria[pageSize], not the total count of the search result items. Fix submitted by Ronak Patel in pull request 21713. GitHub-17295
- The search icon on Admin page headers now works as expected. Fix submitted by Nirav Patel in pull request 22154. GitHub-22152
- Magento now checks concrete class while applying plugins. Previously, when the pluginized class was virtual-typed by a class with name ending with an autogenerated suffix and without the implementation of the base concrete class, the
di:compileprocess failed. Fix submitted by Riccardo Tempesta in pull request 22046. GitHub-21916, GitHub-21976
- UPS (non XML) endpoints are now HTTPS instead of HTTP. Fix submitted by Josh in pull request 21511.
- Magento now provides quotes for DHL shipments when DHL Content Type is set to Non Documents. Fix submitted by gwharton in pull request 19487. GitHub-19485
- The CGI URL gateway endpoint in the UPS module has been updated from HTTP to HTTPS in response to the disablement of the HTTP gateway by UPS in mid-2019. See Magento User Guide for a discussion of using the UPS shipment method. Shipping method configuration settings are described in the Shipping methods.
- The tracking pop-up window now displays an accurate value for the delivery date for FedEx shipments in transit.
- Images in the XML sitemap are no longer linked to the base store in a multistore deployment when scheduling start times and daily frequency. Fix submitted by Nazar Klovanych in pull request 19598. GitHub-19596
- Magento now validates sitemap file names to ensure that file names do not exceed length limits. Previously, Magento simply truncated excessively long file names. Fix submitted by Rajneesh Gupta in pull request 20044. GitHub-13937
- Products are now marked as new on the storefront when you set a product “As New” in the product page or from a scheduled update. Previously, dates shown in database did not match the dates in the update on the store in deployments running the
Magento_Swatches _module.less. Fix submitted by Amol Chaudhari in pull request 21368. GitHub-21365
- The tax that is applied to a simple child product is now based on the tax class of that product. Previously, Magento based the tax for a child product on the tax class of its parent product.
- The shopping cart full tax summary now displays total tax as expected instead of individual tax values. Fix submitted by Nirav Patel in pull request 20682. GitHub-11358, GitHub-19701
- The value of
product_price_valuein the shopping cart data section now includes taxes if the configuration settings are set accordingly (Stores > Configuration > Sales > Tax > Shopping Cart Display Settings > Display Prices > Including Tax). Fix submitted by Nick de Kleijn in pull request 20316. GitHub-20310
- The tax that is applied to a simple child product is now based on the tax Class of that product. Previously, the tax was based on the tax class of the parent product.
- You can now successfully search for a tax rule based on both the Name and Tax Rate fields. Previously, Magento threw a MySQL error. Fix submitted by Tuyen Nguyen in pull request 21701. GitHub-21521
Squiz.Operators.ValidLogicalOperatorsPHP-CS rule has been added to the static test rules. Fix submitted by Maksym Novik in pull request 21275. GitHub-21062
- Added missing parameters to failing unit tests for
FormatTests. Fix submitted by Kamil Degórski in pull request 21880. GitHub-21001
- Editing a theme now creates an entry in the Admin action log as expected.
- Logo files for transactional emails can now be uploaded successfully using the Content > Configuration > Edit theme > Transactional Emails option. Previously, Magento did not upload the logo, and displayed the following error instead:
A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later.Fix submitted by chaplynsky in pull request 20092. GitHub-20091
- The horizontal scroll widget on the storefront search results page now works as expected when displaying very long search strings. Fix submitted by Prince Patel in pull request 21360. GitHub-21359
- Checkboxes and radio buttons are now highlighted on focus while you navigate a form using the keyboard. This change is a reversion of an earlier fix (20861), which inadvertently violated accessibility standards for keyboard navigation. Fix submitted by Roman Kis in pull request 21820. GitHub-20825
- Magento now successfully uploads files from the theme config edit form page when you click the Select from Gallery button for the Logo Image field. Fix submitted by Vechirko Yurii in pull request 22132. GitHub-21032
Translation and locales
- Product attribute labels are no longer translated. Fix submitted by Karla Saaremäe in pull request 21751. GitHub-21750
- You can no longer upload images when the Use Default Value setting on the Admin Content tab is enabled. Previously, you could drag an image to this tab even when this setting was enabled. Fix submitted by Mahesh Singh in pull request 20381. GitHub-20380
- The Date field associated with a page on the Admin Pages table now displays the correct date, not the current date. Fix submitted by Satya Prakash in pull request 20902. GitHub-17564
- Postcodes and zip code fields on the checkout page are empty and invalidated on page load as expected. Previously, Magento validated postcodes and zip codes on the checkout page when the page loaded. Fix submitted by Danny Verkade in pull request 18633. GitHub-18630
- Buttons on the Admin System > Backups page no longer flicker when the page is reloaded. Fix submitted by Oleg Volkov in pull request 21791. GitHub-19835
- Screen readers can now identify the
labelelements that are linked to
inputfields for street address fields on the checkout page. Previously, screen readers could not identify these fields because the elements were not populated. Fix submitted by Scott Buchanan in pull request 21484. GitHub-10893
- Product gallery images no longer open unexpectedly when you move a product image while moving to another page element. Fix submitted by Denis Kopylov in pull request 21790. GitHub-21789
- Magento now cancels previous scrolling actions as expected when you click Add to cart on a product page. Previously, Magento scrolled back to the
qtyinput box the same number of times as you clicked Add to cart. Fix submitted by Vechirko Yurii in pull request 22117. GitHub-21715
- Magento no longer displays the customer name twice in the welcome message on the log in page after a customer logs in. Fix submitted by priti2jcommerce in pull request 20832. GitHub-20830
- Magento now updates the
updated_atcolumns in the
ui_bookmarktable as expected. Fix submitted by Shikha Mishra in pull request 22340. GitHub-18557
- Scrolling now works as expected in pop-up windows on devices running iOS. Fix submitted by priti2jcommerce in pull request 21150. GitHub-21147
- Magento now displays warning messages when validation fails on a form field that has a validation rule associated with it. Previously, Magento displayed the following error:
- Magento no longer uploads images to the Category page unless the Use Default Value attribute is enabled. Fix submitted by Serhiy Zhovnir in pull request 20461. GitHub-20376
- Added a feature to manage URL rewrites when the product visibility attribute changes. If the product is made invisible, Magento deletes the URL rewrite. If you change the visibility attribute to true, Magento creates a URL rewrite rule. Previously, changing the visibility attribute sometimes created duplicate product URLs. Fix submitted by VitaliyBoyko in pull request 20774. GitHub-20434
- URLS in Arabic now resolve as expected. Previously, when you created a URL rewrite in Arabic, the browser returned a 404.
- Magento now retains filter terms after you apply a filter to the Admin
url_rewritestable, and subsequently click the Back button. Fix submitted by Vaibhav Bhalerao in pull request 21834. GitHub-21805
- You can now use REST in scope
allto save an existing category that does not have a
nameattribute. Previously, Magento threw this exception:
Could not save category with message. The "Name" attribute value is empty. Set the attribute and try again. Fix submitted by Nirav Patel in pull request 22362. GitHub-22309
- The REST API locale now matches the appropriate store view in multistore deployments. Previously, Magento used the default scope for each store view. Fix submitted by Julian Wundrak in pull request 19913. GitHub-19908
- You can now use the
/rest/all/V1/products/API to update a product’s
custom_attributewhen the product has no custom attributes. Previously, the
updatecommand reported success, but categories were not updated. Fix submitted by Yaroslav Gyryn in pull request 20842. GitHub-20481
PUT /V1/products/:sku/media/:entryIdAPI operation now updates product images as expected. Previously, this operation updated the label, types, and disabled settings, but the actual
file-contentwas not replaced with the values that were provided in
base64_encoded_data. Fix submitted by Nazar Klovanych in pull request 22424. GitHub-22402
- Customer wishlists now include review summaries for included products. Fix submitted by Denis Kopylov in pull request 21420. GitHub-21419
- All phrases in wishlist modal windows are now translated as expected.
- The wish list quantity field now has limits on both the type and number of characters that you can enter. Previously, you could enter an extremely large quantity of both number and letters into this field, which resulted in undesirable and inaccurate quantity changes.
- Magento now alerts you to the expected minimum quantity of product when you try to add a lesser product quantity to your shopping cart from the wishlist. Fix submitted by khodu in pull request 19653. GitHub-9155
- You can now insert widgets that contain a WYSIWYG field into a form. Previously, when you tried to insert a widget with a
WYSIWYGparameter into a form, the operation failed. Fix submitted by James Dinsdale in pull request 20174. GitHub-19742
Issue: The Async/Bulk Web APIs support only the default store view. A hot fix for this issue will be available in the near future. This issue has been resolved with the Scope parameter for Async/Bulk API patch, which is now available. See Patch for Magento Framework Message Queue and Store Scopes for a full discussion of this scope-related issue and patch contents.
Issue: The security enhancements that are part of Magento 2.3.2 require the installation of libsodium version 1.0.13 or higher. You will not be able to successfully install Magento Commerce 2.3.2 without first ensuring that your server runs version 1.0.13 or higher. See Libsodium releases for a description of the available releases and installation instructions.
Magento Commerce Cloud customers must submit a support ticket to upgrade the libsodium package on Pro Production and Staging environments prior to upgrading to Magento Commerce 2.3.2. Currently, you cannot upgrade Starter environments to Magento Commerce 2.3.2.
- Issue: You cannot use the Magento Extension Manager to install extensions purchased from the Magento Marketplace. Workaround: Install extensions from the command line as described in General CLI installation. See Extension Manager shows no extensions in Magento Commerce 2.3.x.
We are grateful to the wider Magento community and would like to acknowledge their contributions to this release. Check out the following ways you can learn about the community contributions to our current releases:
If a community member has provided a fix for this release, we identify the fix in the Fixed Issue section of these notes with the phrase, “Fix provided by community member @member_name”.
The Magento 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, and the GitHub issue number associated with it (if available).
Individual contributor contributions
The following table identifies contributions from our community members. This table lists the external pull requests, the GitHub issue number associated with it (if available), and the community member who contributed the pull request.
|Contributing community member||Pull Requests||Related GitHub Issues|
|gauravagarwal1001||#21145||6162, 7974, 21144|
Our technology stack is built on PHP and MySQL. For more information, see System Requirements.
Installation and upgrade instructions
You can install Magento Commerce 2.3.2 using Composer.
Migration tool kits
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 Magento Data Migration repository.
The Code Migration Toolkit helps transfer existing Magento 1.x store extensions and customizations to Magento 2.0.x. The command-line interface includes scripts for converting Magento 1.x modules and layouts.