Magento Commerce 2.2.1 Release Notes
Patch code and release notes published on November 7, 2017.
We are pleased to present Magento Commerce 2.2.1. This release includes numerous functional fixes and enhancements.
Look for the following highlights in this release:
Integrated Signifyd Fraud Protection is now available in Magento Open Source. See Signifyd fraud protection for more information.
Improvements to how the PayPal Express Checkout payment method processes virtual products.
Multiple enhancements to product security. See Magento Security Center for more information.
Twenty-two community-submitted bug fixes and multiple pull requests.
Looking for more information on these new features as well as many others? Check out Magento 2.2 Developer Documentation.
Magento 2.2.1 includes multiple security enhancements. Although this release includes these enhancements, 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, so we recommend that you upgrade your Magento software to the latest version as soon as possible.
See Magento Security Center for more information.
Installation, upgrade, deployment
- We’ve improved the message that Magento displays during upgrade if any schema or data version in the
setup_modulesdatabase is higher than the current module version in the code. Fix submitted by community member Fabian Schmengler in pull request 11064.
- If you do not specify
—base_urlduring installation, all URLs now use the host and port of the current request to create URLs.
- When a callback during commit throws an exception, the calling plugin can now distinguish this exception from an unsuccessful commit and logs an exception. Previously, Magento threw an “Asymmetric transaction rollback error”. GitHub-9955
- We’ve resolved a fatal error in the repository generator. Both
NoSuchEntityExceptionnow require a Phrase object as their first constructor argument. GitHub-10601
inventoryQtyCounterconsumer now works without having RabbitMQ installed.
- Magento now displays products that are filtered to a particular store view even when the corresponding store view has been deleted. Previously, Magento displayed a continuously spinning spinner widget and this error message: A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later.
- You can now save custom shared catalogs.
- Magento no longer displays a 404 error when you change category permissions from Product Detail pages when multistore view is enabled.
LowestPriceOptionsProvidernow returns products with the
tax_class_idattribute, which is used for price calculation operations such as tax adjustment. GitHub-6729, GitHub-6457, GitHub-7362
- The grouped product page now shows the lowest price for a simple product. GitHub-9266
- We’ve fixed an issue with
priceScopethat had resulted in the storefront not displaying product prices that should be displayed.
Cart and checkout
- Magento now provides a Login button so that you can resume your checkout process if you return to the check out page after leaving it mid-order.
- Magento no longer displays the inappropriate product price when a configurable product has two price options. Previously, Magento displayed the out-of-stock price of a configurable product when both an out-of-stock and in-stock price were configured.
- Configurable products no longer show up on category page when all children are disabled by a mass action, and the display out-of-stock products setting is off.
- If a configurable product is part of a shipment that is being created by REST, only the parent’s quantity will count towards the total quantity of shipped items. Previously, Magento counted both child and parent products when calculating quantity.
- Configurable product pricing now reflects only in-stock configurations as expected.
- You can now run Magento in an environment where Redis cache is installed and the PHPRedis extension is enabled.
- Magento now properly loads default values for
- You can now set a default value to fields with config field type
- We’ve removed
Zend_Jsonfrom the data object, test suite, and package information. GitHub-10306, GitHub-10320, GitHub-10340
- We’ve replaced the usage of
Zend_Json::encodein the setup marketplace tests. GitHub-10329
- We’ve removed the usage of
Zend_Jsonfrom the JSON controller. GitHub-10342
- We’ve removed
- We have replaced
\Magento\Framework\Serialize\JsonConverter::convertin customer data. GitHub-10259
- We’ve added a CSS selector to remove an additional top-margin that was rendered when you added a link widget to the footer in the Luma theme. Previously, when you added new footer links, the block of footer links did not line up with the default footer links. Fix submitted by community member Sandro Wagner in pull request 11063.
- You can now remove system customer address and customer attributes from specific forms to prevent them from displaying on the frontend.
- String localizations now work as expected when phrases include text wrapped with single quotation marks.
- PHPCS can now correctly parse the syntax of PHP 7.x return types.
- You can now remove custom attributes from the Use in Forms grid.
- You can now generate unsecured URLs even when the current URL is secure.
- Websites that conduct transactions in multiple currencies can now send currency to Google Analytics. GitHub-10508
- The Products Ordered report now shows the simple (child) products of configurable products.
- Creating a new product with a custom attribute set now works as expected. GitHub-10565, GitHub-10575
- Cookie lifetime works as expected when you set the form_key value to zero (0). GitHub-10528
- We’ve fixed an issue where Magento did not retrieve relevant data when displaying reviews if
$displayIfNoReviewswas set to false. GitHub-4530
- You can now remove the system customer address and customer attributes from specific forms and prevent them from displaying on the frontend.
- We’ve fixed multiple issues where indexes were invalidated as a result of typical import, scheduled import, and catalog permission tasks.
- You can now use PayPal Express Checkout to place an order in a split-database environment.
- If a credit card error occurs on an order, the user can now correct the error and successfully create a new order. Previously, Magento displayed the following error on any subsequent order, even when you entered accurate credit card information: “A customer with the same email already exists in an associated website”.
- We’ve added a
nameattribute to the layout default renderer, and you can now add a new column to the Admin Sales > Order table. Previously, the layout default renderer lacked a
nameattribute. Fix submitted by community member Gabriel Somoza in pull request 11076.
- Double-clicking the Place Order button when using the Braintree payment method to place an order no longer creates duplicate order requests. GitHub-10767
- Magento now completes processing an order if the customer needs to re-enter credit card information during the order process. Previously, Magento returned this error
No such entity with customerId = 0.
- Search terms from the same synonym group now return the same results.
- A search query results are now more consistent. Previously, identical search terms entered in different browser tabs resulted in different search results.
- You can now search for attribute values on the store-view level.
- Magento now displays grouped products in the Shared Catalog page when Elasticsearch is enabled.
- Sitemap no longer crashes if the scope of the name attribute is set to global. GitHub-5941, GitHub-8999
- Bundle simple products now reflect expected changes after a scheduled update.
- We’ve improved the performance of editing or saving products in large categories (more than 18,000 products per category).
- Visual Merchandiser now retains page view options and position after you remove a product. Previously, when you removed a product from a category, and you weren’t on the first page, Magento returned you to the first page.
We are grateful to the wider Magento community and would like to acknowledge their contributions to this release.
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.
Our technology stack is built on PHP and MySQL. For details, see Technology stack requirements
For more information, System Requirements.
Installation and upgrade instructions
You can install Magento Commerce 2.2 General Availability (GA) 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 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.