Magento Commerce 2.2.6 Release Notes
Patch code and release notes were published on September 18, 2018 and last revised October 29, 2018.
We are pleased to present Magento Commerce 2.2.6. This release includes 25 critical enhancements to product security, over 150 core code fixes and enhancements, and over 350 community-submitted pull requests.
Although this release includes these security 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 a comprehensive discussion of these issues. All exploitable security issues fixed in this release (2.2.6) have been ported to 2.1.15, 1.14.3.10, and 1.9.3.10, as appropriate.
Highlights
In addition to 25 critical security fixes, look for the following highlights in this release:
Core code highlights
This release includes significant performance improvements to the core Magento code:
Substantial improvements to performance
Performance-tuning enhancements focus on catalog indexing and include:
- Category product indexer logic has been optimized, and re-indexing time has decreased up to 98%, from 40 minutes to one minute for 100,000 categories. Previously, when your store contained many categories (100,0000), Magento could take up to 40 minutes to re-index product catalogs.
-
The
catalog:image:resize
command execution time has been reduced by up to 90% in the release. However, this improvement necessitates these additional steps after upgrading your Magento instance to 2.2.6:-
Remove
pub/media/catalog/product/cache
. (Removing this folder frees up space.) -
Run
bin/magento catalog:image:resize
to generate a new image cache. (This step is necessary because we’ve changed the path to cached images and must remove the previously cached images.)
-
- The catalog rule re-indexing operation has been optimized, and the average re-indexing time (which depends on rule conditions) has improved by more than 80%. Previously, a full catalog rule re-index operation on a medium B2C store took more than 20 minutes.
- The catalog price indexer is now scoped and multithreaded, which improves the performance of layered navigation, search, and indexing actions for Magento instances with multiple websites and stores. This makes it possible to parallelize catalog price indexing by websites and customer groups. To re-index in parallel mode, add the
MAGE_INDEXER_THREADS_COUNT
environment variable toenv.php
.
- The time required to load category or product pages for products that are configured with many attributes (more than 500) has been significantly reduced. Refactoring the logic for product attribute retrieval has resulted in a reduction of load time of almost 90% for scenarios with a large number of product attribute sets. (Performance will not noticeably improve for deployments with only one attribute set configured with 500 attributes. However, deployments with many attribute sets that contain only a few attributes will show significant performance improvement. For example, a deployment with 100 attribute sets, each of which contains 50 attributes, might see a 40-90% reduction in load time.)
- The time required to load a store’s home page has been reduced noticeably when the top menu contains many categories. (Load time is still affected by the number of categories and the structure of the top menu.)
- Merchants can now improve store performance by disabling Magento Report functionality. A new configuration setting (System Configuration: General > Reports > General Options) allows merchants to disable Magento Reports, which is recommended practice if a merchant’s business function does not require this capability.
Improvements to the reliability and ease of the checkout process
- A shopping cart’s contents remain constant even when the checkout page is repeatedly reloaded. Previously, if a customer reloaded the checkout page several times, Magento emptied the shopping cart, and the customer could not place the order. (This problem primarily affected stores running on HTTPS.)
- Refreshing the checkout page no longer deletes the shipping address when a guest checks out. Previously, when the persistent shopping cart was enabled, refreshing the checkout page affected information entered into form fields for a guest checkout.
- The speed at which Magento places an order is no longer affected by how many shipping methods are available. Previously, when a customer placed an order for which multiple shipping methods were available, Magento took more than 20 seconds to place the order.
Additional enhancements
- Configurable products are now sorted by visible prices as expected. Previously, sorting a catalog by price produced sort results that included the prices of out-of-stock products and disabled child products.
- Magento no longer sends duplicate delete requests as a result of an unstable Internet connection. Previously, unintentional mass deletion of products sometimes occurred as a result of an unstable Internet connection.
Magento Cloud highlights
-
We’ve added a Docker Compose configuration to the Cloud
ece-tools
repository for deploying a local development environment. -
Merchants can now change store locales without the exporting and importing configuration process.
-
A new workflow lets merchant add a
robots.txt
file and generate asitemap.xml
file for a single domain configuration without requiring a change to the infrastructure. -
Merchants can now define multiple locales for each theme using the new
SCD_MATRIX
environment variable, which reduces the amount of theme files to deploy. -
Zero-downtime deployment has been implemented through a “connection holding” capability, which ensures no lost connections or site unavailability, providing smooth shopper experience even during deployments involving database schema changes.
-
We’ve fixed an issue that caused downtime between the deploy and post-deploy phase. Now, the
post_deploy
phase begins immediately after the deploy phase ends.
Community contribution highlights
Highlights of community contributions include fixes that improve checkout flow and the sorting of simple products:
-
Customers can now successfully complete an order when it contains a configurable product with an option that is deleted after the product has been placed in the shopping cart. Previously, the shopping cart could not load the shopping cart after the configurable option was deleted. Thanks to community member jonshipman! GitHub-15467
-
Magento now maintains the default sort order for products (“newest first”) when you upgrade your Magento deployment. Previously, after upgrade, the default product order in categories changed from “newest first” to “oldest first”. Thanks to community member Danny Verkade! GitHub-15627
-
Merchants can now successfully change the applied theme setting for a store view (Content > Design > Configuration). Thanks to community member Daniel Ruf! GitHub-14968
-
Magento loads pages faster because it no longer redundantly calculates product taxes when loading category pages. Thanks to community member JeroenVanLeusden! GitHub-14941
Core bundled extension highlights
This release includes many enhancements to our core bundled extensions:
Amazon Pay
Enhancements to Amazon Pay include these features:
-
Implementation of the Magento payment provider gateway, which provides developers a mechanism for integrating stores with payment providers.
-
Improved handling of virtual products.
-
New entry in the Admin that allows Amazon Pay to be displayed in the list of payment options.
-
Combined
Synchronous, if possible
andAsynchronous
settings for authorization mode into one setting. Current settings are nowImmediate
(previouslySynchronous
) andAutomatic
(a combination of the previousSynchronous, if possible
andAsynchronous
).
dotmailer
Enhancements to dotmailer include these new features:
-
You can now request and capture the consent of customers and guests using dotmailer’s new Consent Insight.
-
You can import only those Magento contacts who have opted in (customer subscribers, guest subscribers, and other subscribers).
-
A warning alerts you when you are about to sync non-subscribers into a dotmailer account.
-
Improvements have been made to the retry process that results after a failed attempt to access EDC.
Klarna
Enhancements to Klarna include support for these new features:
-
The Klarna Payments section now includes a link to Klarna automated onboarding and account sign in.
-
If an approved order is later identified as fraudulent, Klarna notifies the merchant and requests that they try to stop the order from being delivered. In addition, Klarna attempts to cancel the order automatically by sending notification to the merchant. See Managing Your Account for more information.
-
Shipping and discount order lines have been added to order management calls.
-
Klarna now passes shipping details in capture requests.
-
The Klarna API now returns the name and logo URL to use for each payment method instead of hard-coding the payment method names into the module.
For more information on these new features, see Klarna.
Magento Shipping
-
Batch Processing provides merchants with the ability to
-
Specify and modify packages and experiences for orders assigned to a batch
-
Book shipments for a batch
-
Print all packing slips and printing labels for the batch
-
-
New Shipment Reference field associates bookings between a carrier and a customer
Magento Social
Magento has removed the Magento Social Facebook integration, and no longer supports the extension.
Looking for more information on these new features as well as many others? Check out Magento Developer Documentation and the Magento Commerce User Guide.
Fixes
In addition to security enhancements, this release contains the following functional fixes.
Installation, setup, and deployment
- You can now use the
app:config:status
command to check whether configuration propagation is up-to-date. (This fix restores this command, which was inadvertently deleted in a previous release.) Fix submitted by Pieter Hoste in pull request 15174. GitHub-14104
- The
app:config:dump
command now has an argument that supports dumping only the specified settings that are required to prepare static content on a build system, not all system settings. This new option (config-types
) makes it possible to dump scopes and themes automatically (which are needed for a build system) while managing system settings manually usingconfig:set --lock-config
. Fix submitted by Juan Alonso in pull request 12410. GitHub-11396
- Configuration backend models are now populated as expected with all fieldset data, which makes it possible to access all configured values from a current group. GitHub-16712
- The
magento-deploy-ignore
setting incomposer.json
now works as expected. Previously, files specified in this setting were overwritten during deployment.
- The
timestamp
fields inoauth_nonce
now include indexes to avoid deadlocks while erasing old records. Fix submitted by Carlos Lizaga in pull request 13328. GitHub-10346
- Sorting has been disabled in the
glob
andscandir
functions to improve performance. Fix submitted by Leandro F. L. in pull request 16052.
- The
nginx.config.sample
file no longer includes an option for PHP 5.x. (Magento 2.2.x is not compatible with PHP 5.x.) Fix submitted by Sean Breeden in pull request 16883.
- Autoloading performance has improved on production environments as a result of the reduction in
file_exists
calls. Fix submitted by Pieter Hoste in pull request 16435.
- Setting deploy mode to production mode by using the
--skip-compilation
flag no longer clears generated code ingenerated/code/
andgenerated/metadata/
. Fix submitted by platformvaimo in pull request 16211.
- We’ve made two changes to
Magento/Config
module:Magento/Config/Test/Unit/Block/System/Config/Form/Field/ImageTest.php::testGetElementHtmlWithValue()
method no longer references a invalid backend model, and the anonymous function no longer has an unused$data
inMagento/Config/Model/Config/Importer.php
. Fix submitted by Marcel Hauri in pull request 15511.
- The upgrade check implemented during setup now indicates success if the latest version of Magento is already installed. Previously, the message indicated that the latest product version was already installed was presented as error. Fix submitted by Daniel Ruf in pull request 15012.
- The Add Block Names to Hints configuration setting has been renamed to Add Block Class Type to Hints. Fix submitted by Chris Pook in pull request 14939.
- The
cron:run
command now readscron/enabled
configuration setting and if this value is set to 1 (the default value), then thecron:run
command will execute. A value of 0 determines thatcron:run
will not be executed, and prompts Magento to send the customer email indicating thatcron
is disabled.
-
New command-line interface (CLI) commands support setting and showing indexer dimension modes:
-
bin/magento indexer:set-dimensions-mode
sets indexer dimensions mode -
bin/magento indexer:show-dimensions-mode
shows dimensions mode of indexer
-
Amazon Pay
- Amazon Pay no longer appears as an option during checkout when a customer selects Check Out with Multiple Addresses. Previously, Magento displayed Amazon Pay as an option, even though Amazon Pay does not support multishipping.
- You can now change and save Amazon Pay configuration settings from Configuration > Sales > Payment Methods > Amazon Pay when deploying Magento in a Cloud environment. Previously, Magento did not save changed settings.
B2B
- Company blocked warnings are no longer included in the source code. Previously, source code included these warning strings, which search indexers detected and treated as text.
- Category pages now display as expected all products whose SKUs contain either single or double quotation marks. Previously, Magento threw an error when trying to set pricing and structure on a shared catalog when product SKUs contained these characters.
- In multisite environments, you can now save the address of a company that is allowed only on the non-primary website. Previously, if a merchant tried to save a company address from the default website, Magento displayed this error,
Invalid value of "UA" provided for the 'country_id' field
.
- Access to the Companies resource can now be explicitly set on the Roles Resources page in Admin. Previously, this resource was available only to top-level administrators with all resources selected.
- Magento now displays the correct product total price value on all websites in a B2B deployment. Previously, Magento did not apply cart price rules for product prices on non-primary websites, but instead displayed the product price assigned to products on the primary website to all websites.
- When Website Restrictions are set to Private Sales: Login Only, access to the storefront is now restricted to customers who log in, and merchants can still create new companies in the Admin. Previously, when a merchant tried to create a company when this setting was enabled, Magento threw this error,
Can not register new customer due to restrictions are enabled
.
- Configurable products can now be added to the requisition list directly from the Category page.
- The
beforeSave
method on BraintreeCountryCreditCard
class now has a statement that supportsapp:config:import
. Previously, Magento threw an exception during import if it encountered an empty field in the Braintree configuration file. Fix submitted by Mateusz Lerczak in pull request 14829.
- Guests can now view products as expected when shared catalogs are enabled. Previously, if a merchant added a product when shared catalogs were enabled, guest users could not view the product, even when shared catalogs were later disabled.
- Company administrators can now use Quick Order to buy products. Previously, when a company administator tried to use Quick Order to buy products, Magento displayed this error:
The SKU was not found in the catalog
.
- You can now successfully search for products when the Shared Catalog setting is enabled.
Bundle products
- Magento now successfully imports bundle products. Previously, bundle products were not visible in the product catalog, and were listed as out-of-stock on the storefront.
- The
Magento_Bundle
module name has been added to the relevant template files to meet Magento standard coding format. Fix submitted by Namrata in pull request 15825.
- The
option
variable has been renamed toquoteItemOption
to improve code readability inapp/code/Magento/Bundle/Model/Product/Type.php
. Fix submitted by Leandro F. L. in pull request 16143.
- Magento now accurately displays the status of bundle product stock when Add to Cart is enabled for bundle products. Previously, bundle products with the User Defined field unchecked could not be back ordered as expected. GitHub-10061
Catalog
- The breadcrumbs component no longer relies on the
mageMenu
widget. Fix submitted by Vova Yatsyuk in pull request 15178. GitHub-14987
- The
data-container
class name is now based on view mode. Fix submitted by sunilit42 in pull request 15350. GitHub-15319
- Breadcrumbs now work as expected when a product name contains quotation marks. Previously, the breadcrumbs on the product details page caused this syntax error to be thrown,
SyntaxError: Unexpected token x in JSON
. Fix submitted by Jignesh Baldha in pull request 15347. GitHub-15037
- Disabling a product now removes it from the flat index as expected. Fix submitted by Mr. Lewis in pull request 15019. GitHub-14966
- The success message that Magento displays when a customer adds a product to the compare list now contains a link to the comparison list. Fix submitted by Andreas von Studnitz in pull request 13862.
- Cache problems no longer occur when currencies are used without a currency symbol. Fix submitted by Dmytro Cheshun in pull request 15902.
- Catalog component blocks now contain correct return type suggestions, and typos have been corrected where needed in the PHPDocs. Fix submitted by Dmytro Cheshun in pull request 15913.
- Widget cache errors that resulted in one widget being loaded twice on the storefront have been resolved. Fix submitted by Alexandr Kozyr in pull request 12764. GitHub-4389
- Magento no longer makes redundant requests on the ‘customer data’ on the checkout page. Fix submitted by Andrey Bezyazychnyy in pull request 14314. GitHub-13765
- Administrators with permission to change product names on one website only cannot change product names on any other sites. Previously, an administrator with permission to change a product name on one site only could change product names on all websites in a multisite deployment.
- Administrators with limited privileges can now save products as expected.
- Magento now uses the current date as expected when setting the start date for a special price. Previously, Magento set the start date for a special price a few years in the future, which prevented the special price for being active.
- Magento now reliably displays category images on the custom store view level. Previously, the category image on custom store view level alternately disappeared and appeared after every save operation.
- Magento no longer removes downloadable product links after an attribute is updated.
- Extra POST requests are no longer sent if the Synchronize widget products with backend storage option is set to yes.
- You can now create a product date attribute that contains a day value than exceeds 12 (in the format dd/mm/yyyy). Previously, when you created a product attribute with a default date specifying a day greater than 12, Magento did not save the attribute, but instead displayed this error,
Invalid default date
.
- You can now use the
Magento\Catalog\Model\ProductRepository
class to assign a product to one website as expected. Previously, using this class to save a product assigned the product to all existing websites, not just the specified one.
- Images now load as expected on the product display page (PDP) when the image name contains double quotation marks.
- The SEO-friendly URL for the Category page now works as expected.
- The Use Default Value checkboxes in the design section of the category page are now enabled by default as expected.
- Customers can now use the Add Product By SKU button to add configurable products to a sales order.
- Empty dropdown or swatch type product attributes are no longer visible on the product page.
- Attributes that have empty values across all products being compared are not displayed as rows in the comparison table. Previously, Magento displayed these attributes with an N/A value on the Compare Products page.
- The Catalog page now displays breadcrumbs as expected.
- Tiered pricing and quantity increments now work as expected with decimal-based inventories.
- Magento now updates the
catalog_category_product_index
table as expected after a category is deleted.
- Customizable options are now configured the same for all websites to which a product is added. Previously, when a merchant added a product with customizable options to an additional site, the options were corrupted.
- The Use default value option is no longer unchecked unless the user overrides the value of the attribute in the store view scope. Previously, after creating an item, if the user changed to store view scope and did not make any modifications to the item’s attributes and only clicked Save, most of the attributes that were set as Use default value became unchecked.
- Category product indexer logic has been optimized, and re-indexing time has been noticeably reduced. Previously, when you had many categories (100,000), Magento could take up to 40 minutes to re-index product catalogs.
- Widget selection by Enabled Products no longer causes a fatal error on a storefront when the Flat Product is configured.
- Merchants can now change the
status
andupdate
attributes from the product page. Previously, Magento returned a 404 page when bulk enabling or disabling products in the Admin with a restricted user role that is limited to a specific website.
- Magento now maintains the default setting for a product’s
status
attribute when you create a new product. Previously, when creating a new product after changing the default option from Enabled to Disabled for this attribute, the status is incorrectly set to enabled by default.
- The print preview of product comparison results (that is, the page of results that Magento produces when you click Compare after selecting two or more products) now displays as expected. Previously, only a subset of page elements was displayed.
- Magento now maintains the correct dates in the results of filtering the Admin Product Grid Filter: Set Product as New from Date. GitHub-11517
- As you type additional characters into the text field for a product’s custom option, the hint showing the number of characters left before reaching the maximum now decreases as expected.
- Merchants can now set custom option fixed prices with negative values in the Admin. GitHub-7333
- You can now unset a category image on the store-view level when the image is defined on all store views.
- The Catalog Products List widget can now display products on the storefront that have specific attributes.
- The shopping cart now correctly displays images of configurable products that have only size options (that is, no color options). Previously, when a customer added a configurable product that had only size options to her shopping cart, the shopping cart did not display the expected product image. Fix submitted by Ronak Patel in pull request 16863. GitHub-16843
- Magento now throws an exception as expected when a user tries to submit a product review without selecting a star rating. Previously, if a user submitted a product review without selecting a star rating, Magento assigned a one-star rating.
- Magento now successfully displays product prices in currencies without minor units if the price amount is less then the number group size. GitHub-11711
- Magento now displays the correct price on the product page for storefronts running Japanese locales. Fix submitted by Vishal Gelani in pull request 15909. GitHub-11711
- Magento now correctly saves the value of a product’s custom options. Previously, Magento saved all objects by using the same value object for all values. Fix submitted by Jeroen Van Leusden in pull request 13569. GitHub-5067
- Magento now displays the product name as browser title as expected. Previously, the meta title tag was missing, which prevented Magento from displaying the product name. Fix submitted by Riccardo Tempesta in pull request 15532. GitHub-15501
- Magento now maintains the default products sort order of “newest first” when you upgrade your Magento deployment to 2.2.4. Previously, after upgrade, the default products order in categories changed from “newest first” to “oldest first”. Fix submitted by Danny Verkade in pull request 15629. GitHub-15627
- Links on product pages are now linkable as expected. Previously, when Magento displayed a product page, none of the provided links were clickable. Fix submitted by simonjanguapa in pull request 15687. GitHub-15393
- Deprecated methods in Message Manager have been replaced with valid methods. Fix submitted by Tiago Sampaio in pull request 16924.
- Array short syntax usage has been standardized in these files:
app/code/Magento/Catalog/Test/Unit/Model/ProductTest.php
,app/code/Magento/GroupedProduct/Test/Unit/Model/ProductTest.php
, andsetup/src/Magento/Setup/Module/Di/Code/Reader/FileScanner.php
. Fix submitted by Leandro F. L. in pull request 16880.
- The error message that Magento displayed when a duplicate error key occurred during product import has been improved. Fix submitted by Vishal Gelani in pull request 16389.
- We’ve removed the direct use of the object manager when saving Admin attribute sets. Fix submitted by AnshuMishra17 in pull request 16217.
- Breadcrumb JSON configuration has been moved to the view model and serialized using the Magento JSON serializer. Fix submitted by Diederick Bruin in pull request 15521.
row_id
has been added to the flat action indexer, ensuring that index values are not set to0
for new products when using index on save. Previously, if you used\Magento\Framework\Api\SearchCriteriaBuilder
, and the flatproduct row_id
is set to0
, Magento did not show the product in thegetList
of theProductRepository
. Fix submitted by Mr. Lewis in pull request 15010.
- Magento no longer inserts redundant links to the homepage into breadcrumbs on the product page. Fix submitted by Vova Yatsyuk in pull request 14994.
- Magento now correctly displays product information for products that have a negative price as a custom option. Fix submitted by Danny Verkade in pull request 15202.
- Product names can now contain a double quotation mark character (
"
). Previously, when a product name contained this character, Magento threw a JavaScript error. Fix submitted by Vova Yatsyuk in pull request 15162.
- Administrators who lack access to the CatalogRule module can now perform operations as expected in the Admin cart price rule edit page. Fix submitted by Neos2007 in pull request 14886.
- Magento now updates product options and quantity by checking the item ID when updating a cart that contains configurable products with different options. Fix submitted by Nitin Khalasi in pull request 14765.
- Product meta descriptions no longer contain unnecessary HTML tags. Fix submitted by David Windell in pull request 14538.
- Attributes that have empty values across all products being compared are not displayed on the Compare Products page as rows in the comparison table. Previously, these attributes were displayed with a value of N/A.
- Magento now maintains the correct dates in the results of filtering the Admin Product Grid Filter: Set Product as New from Date. GitHub-11517
- Company Admin can now use Quick Order to buy products. Previously, when a company administator tried to use Quick Order to buy products, Magento displayed this error:
The SKU was not found in the catalog
.
CAPTCHA
- Customers can now successfully log in when guest checkout is disabled and CAPTCHA is enabled. Previously, Magento threw the
Provided form does not exist
error when a customer tried to log in under these conditions.
- CAPTCHA validation now works when the Website Restrictions setting is enabled.
- The
\Magento\Captcha\Observer\CaptchaStringResolver
class is now covered by unit tests. Fix submitted by Yaroslav Rogoza in pull request 16065. GitHub-14966
- The
CheckRegisterCheckoutObserver
class is now covered by unit tests. Fix submitted by Yaroslav Rogoza in pull request 16160.
- The
\Magento\Captcha\Observer\CheckGuestCheckoutObserver
class is now covered by unit tests. Fix submitted by Yaroslav Rogoza in pull request 16680.
- Autocomplete for CAPTCHA inputs has been disabled. Fix submitted by Denis Belevtsov in pull request 17114.
- Integration tests now check that customer login attempts are removed after a successful login or account details edit. Fix submitted by Yaroslav Rogoza in pull request 16306.
- Integration tests now check that administrator login attempts are removed after a successful login or account details edit. Fix submitted by Yaroslav Rogoza in pull request 16300.
- The
CheckGuestCheckoutObserver
class is now covered by unit tests. Fix submitted by Yaroslav Rogoza in pull request 16680.
Cart and checkout
- Placeholders for the password field no longer suggest that a password is optional. Previously, the placeholder for the password field in the checkout page suggested that the password was optional, but after validation, Magento indicated that the password field was mandatory. Fix submitted by hitesh-wagento in pull request 16379. GitHub-16378
- The dropdown toggle icon on the shopping cart now works as expected. Previously, the arrow did not change direction as expected when you toggled the Discount or Tax options. Fix submitted by Karla Saaremäe in pull request 15991.
- The shopping cart icon on the checkout page on mobile screens now displays hover color and regular color as expected. Fix submitted by Karla Saaremäe in pull request 16002.
- Customers are not unexpectedly logged out if the customers hits the F5 key twice during checkout. Fix submitted by adrian-martinez-interactiv4 in pull request 14428. GitHub-4301, GitHub-12362, GitHub-13427
- The Purchased Order Form button is now correctly aligned. Fix submitted by Neeta Kangiya in pull request 15331. GitHub-15334
- The Purchased Order Form button is now visible. Fix submitted by hitesh-wagento in pull request 15372. GitHub-15334
- Magento no longer displays duplicate element IDs on the Checkout page. Fix submitted by Julien ANQUETIL in pull request 15585. GitHub-13415
- During the payment step of checkout, a customer can now successfully deselect the Billing save-in address book checkbox in a selected payment method other than the default method. Fix submitted by Rakesh Gangani in pull request 15344. GitHub-13692
- The
.block-minicart
element on the mini cart dropdown menu no longer has an empty class. Fix submitted by Karla Saaremäe in pull request 14715. GitHub-14669
- Customers can now add configurable products to their shopping cart when Magento is running on Internet Explorer 11.x.
- The free shipping cart price rule now works as expected when the UPS shipping method is enabled. Previously, UPS Ground shipping method was not available for free shipping at checkout when the UPS shipping method was enabled.
- Cart price rule condition values now handle commas as expected.
- Free shipping coupons now work as expected with Table Rates shipping. Previously, Magento displayed this message when a customer tried to use a free shipping coupon:
Sorry, no quotes are available for this order
. GitHub-8172
- Magento now displays correct store view prices for cases when a merchant uses a CSV file to add products by SKU from the Admin.
- A merchant can successfully use SKU values that contain capital letters to add a product to a cart from the Admin.
- Refreshing the checkout page no longer deletes the shipping address when a guest checks out. Previously, when the persistent shopping cart was enabled, refreshing the checkout out page affected information entered into form fields for a guest checkout.
- The speed at which Magento places an order is no longer affected by how many shipping methods are available. Previously, when a customer placed an order for which multiple shipping methods were available, Magento took more than 20 seconds to place the order.
- Magento now maintains browser history as expected when a user navigates from the checkout contact information page to the checkout payment information page. Previously, when a user tried to retrace her steps after landing on the payment information page, Magento did not return them to the checkout contact information page, but instead landed on a product page.
- Magento now displays a message when a gift card card is removed during checkout.
- Guest orders placed with gift cards can now be canceled.
- A shopping cart’s contents remains constant even when the Checkout page is repeatedly reloaded. Previously, if a customer reloaded the checkout page several times, Magento emptied the shopping cart and the customer could not place the order. (This problem primarily affected stores running on HTTPS.)
- The message that Magento displays when a customer has successfully added a product to his shopping cart now contains a link to the cart. Fix submitted by Andreas von Studnitz in pull request 13904.
- The Update button now behaves the same whether product quantity is manually edited or changed by JavaScript. Fix submitted by Valerij Ivashchenko in pull request 14935.
- Magento no longer displays the infinite checkout loader when a module that is loading makes a
require
call, but the dependency is not returned (typically due to network error). Fix submitted by Vova Yatsyuk in pull request 14874.
- The minicart quantity label no longer has a fixed length. Fix submitted by Karla Saaremäe in pull request 14716.
- Double-clicking on the Proceed to checkout button from the minicart no longer returns an empty shopping cart.
Cleanup
Our community contributors have made many helpful, minor corrections to spelling and code syntax throughout the code base.
Spelling corrections
- Corrected misspelling of
formatedPrice
throughout the code base. Fix submitted by Arnoud Beekman in pull request 16726.
- Corrected return message from
ProductRuleTest.php
. Fix submitted by Namrata in pull request 16721.
- Replaced the
proccessAdditionalValidation
method withprocessAdditionalValidation
. Fix submitted by Tiago Sampaio in pull request 16414.
- Corrected misspelling in
SynonymGroupRepositoryInterface
. Fix submitted by AnshuMishra17 in pull request 16711.
- Corrected misspelling in library file. Fix submitted by Namrata in pull request 16495.
- Corrected punctuation in the message displayed on CONTENT > Design > Configuration. Fix submitted by Erik Hansen in pull request 16489.
- Correct misspellings in Model and library files. Fix submitted by Namarata in pull request 16230.
- Corrected misspelling in
_exportAddressses
method name. Fix submitted by Marcel Hauri in pull request 15275.
- Corrected misspelling in comments for
addTaxPercents()
inapp/code/Magento/Catalog/Model/ResourceModel/Product/Collection.php
. Fix submitted by AnshuMishra17 in pull request 15431.
- Corrected misspelling in
abstract.js
. Fix submitted by VitaliyBoyko in pull request 15411.
- Corrected misspellings in
app/code/Magento/Sales/Block/Adminhtml/Order/Create/Sidebar/AbstractSidebar.php
,app/code/Magento/Ui/view/base/web/js/form/components/fieldset.js
,app/code/Magento/Ui/view/base/web/js/form/components/group.js
,setup/pub/angular-sanitize/angular-sanitize.js
, andsetup/pub/angular-sanitize/angular-sanitize.min.js.map
. Fix submitted by Danny Verkade in pull request 15715.
- Corrected misspelling in
app/code/Magento/Catalog/Model/Product/Type/AbstractType.php
. Fix submitted by Saurabh Parekh in pull request 15519.
- Corrected misspellings in Multishipping and User modules. Fix submitted by Anna Völkl in pull request 15513.
- Corrected a misspelling in function comment in
app/code/Magento/Paypal/Model/Api/Nvp.php
Fix submitted by Namrata in pull request 15302.
- Corrected misspellings in PHPDocs and comments. Fix submitted by Dmytro Cheshun in pull request 15293.
- Corrected typo in method name
_getCharg[e]ableOptionPrice
. Fix submitted by Marcel Hauri in pull request 15276.
- Corrected typo in database column comment in
app/code/Magento/Catalog/Setup/InstallSchema.php
. Fix submitted by VitaliyBoyko in pull request 15291.
- Corrected misspelling in the name of private method
\Magento\Catalog\Console\Command\ImagesResizeCommand::getUniq[ue]ImageIndex
. Fix submitted by Marcel Hauri in pull request 15282.
- Corrected typo in the
\Magento\Framework\Image::open
exception message. Fix submitted by Tom Richards in pull request 15269.
- Corrected misspelling in
ResourceModel\Coupon.php:updateSpecificCoupons
. Fix submitted by Stephen Biston in pull request 14891.
- Corrected typo in the name of the
\Magento\Framework\App\Request\Http::removeRepitedSlashes
method. Fix submitted by Igor Tripolskiy in pull request 15256.
- Corrected misspelling in
app/code/Magento/CatalogSearch/Block/Advanced/Form.php
. Fix submitted by Jeevan M R in pull request 15053.
- Corrected misspelling in
.less
files. Fix submitted by Kalpesh Mehta in pull request 15023.
- Removed double occurrence of ‘it’ from sentences and corrected minor grammar error. Fix submitted by Namrata in pull request 16240.
- Fixed typo in
app/code/Magento/Checkout/etc/webapi.xml
. Fix submitted by Markus Haack in pull request 15845.
- Corrected misspelling in
file-uploader.js
andstorage-manager.js
. Fix submitted by Saurabh Parekh in pull request 15888.
- Corrected misspelling in
scripts.js
. Fix submitted by Ledian Hymetllari in pull request 15878.
- Corrected grammar error in the “What is this” tooltip for the Braintree vault tool tip. Fix submitted by kreativedev in pull request 17151.
- Renamed
_requesetd
to_requested
inapp/code/Magento/Ui/view/base/web/js/lib/core/element/element.js
. Fix submitted by Valerij Ivashchenko in pull request 16971.
- Removed double occurrences of words from
Magento_Catalog
,Magento_Customer
,Magento_Downloadable
,Magento_Sales
, andlib
anddev
test function comments. Fix submitted by Pratik Oza in pull request 16977.
- Correct misspelling in method name and result in these files:
dev/tests/functional/tests/app/Magento/Checkout/Test/Block/Onepage/Shipping/Method.php
anddev/tests/functional/tests/app/Magento/Shipping/Test/Constraint/AssertCityBasedShippingRateChanged.php
. Fix submitted by Dmytro Cheshun in pull request 15297.
Minor corrections to code and code formatting
- Removed extra spaces from
Magento/Ui
. Fix submitted by Ronak Patel in pull request 16872.
- Improved code formatting. Fix submitted by Pratik Oza in pull request 16821.
- Removed comments and unnecessary spaces. Fix submitted by Ronak Patel in pull request 16748.
- Removed space before ending sentence throughout code base. Fix submitted by Namrata in pull request 16717.
- Removed unnecessary spaces in
app/code/Magento/Catalog/Pricing/Price/ConfiguredRegularPrice.php
. Fix submitted by Ronak Patel in pull request 15129.
- Removed double occurrences of words from the lib and dev test function comments and from these modules:
Magento_Catalog
,Magento_Customer
,Magento_Downloadable
, andMagento_Sales
. Fix submitted by Namrata in pull request 16644.
- Removed double occurrences from
jQuery
, Angular JS files and theMagento_Setup
module’s scan function’s comment. Fix submitted by Namrata in pull request 16581.
- Removed extra space from the value of the
is_required
XML node inSynonymGroup.xml
. Fix submitted by Namrata in pull request 16557.
- Minor corrections to code throughout the code base. Fix submitted by GraysonChiang in pull request 16841.
- Removed unused data from
app/code/Magento/Ui/Model/Export/ConvertToCsv.php
andapp/code/Magento/Ui/Model/Export/ConvertToXml.php
. Fix submitted by Vishal Gelani in pull request 16524.
- Removed unnecessary translations for label and comment tags and added missing translation strings. Fix submitted by Yogesh Suhagiya in pull request 16090.
- Removed redundant plug-in information (
dev:di:info
). Fix submitted by Alexander Shkurko in pull request 16474.
- Removed redundant semicolon from these files:
app/code/Magento/Tax/Model/Sales/Total/Quote/CommonTaxCollector.phpMagento/Multishipping/Test/Unit/Block/Checkout/SuccessTest.php
andapp/code/Magento/Tax/Model/Sales/Total/Quote/CommonTaxCollector.php
. Fix submitted by Saurabh Parekh in pull request 15594.
- Corrected errors in method description in
app/code/Magento/Config/Block/System/Config/Form.php
,app/code/Magento/ConfigurableImportExport/Model/Import/Product/Type/Configurable.php
, andapp/code/Magento/Customer/Model/Session.php
. Fix submitted by Vishal Gelani in pull request 15549.
- Removed extra space and formatted the code in
app/code/Magento/Captcha/i18n/en_US.csv
. Fix submitted by Saurabh Parekh in pull request 15552.
- Removed the redundant
else
statement inapp/code/Magento/ConfigurableImportExport/Model/Import/Product/Type/Configurable.php
. Fix submitted by Yaroslav Rogoza in pull request 15435.
- Fixed misplaced bracket in
Option/Type/Text.php
. Fix submitted by Valerij Ivashchenko in pull request 16566.
- Removed a duplicate line and added comment in
app/code/Magento/Sales/Block/Adminhtml/Order/Create/Totals/Discount.php
. Fix submitted by Vishal Gelani in pull request 15362.
- Removed unused variable in
lib/web/css/source/lib/variables/_typography.less
. Fix submitted by VitaliyBoyko in pull request 15386.
- Corrected variable names in
LockAdminUserWhenEditingIntegrationTest
andAssertCityBasedShippingRateChanged
, among others. Fix submitted by Dmytro Cheshun in pull request 15294.
- Corrected property name in
dev/tests/static/testsuite/Magento/Test/Integrity/Magento/Backend/ControllerAclTest.php
. Fix submitted by Dmytro Cheshun in pull request 15292.
- Removed non-existing argument from the constructor’s comment block in
app/code/Magento/Translation/Block/Html/Head/Config.php
and added space where needed inapp/code/Magento/Translation/Model/Json/PreProcessor.php
. Fix submitted by Yogesh Suhagiya in pull request 15249.
- Removed redundant close tag from
app/code/Magento/Review/view/frontend/templates/view.phtml
. Fix submitted by Yogesh Suhagiya in pull request 14928.
- Removed extra spaces from a key-value pair in the
en_US.csv
language file. Fix submitted by Yogesh Suhagiya in pull request 14896.
- Cleaned up
foreach
andbreak
statements inapp/code/Magento/Rule/Model/Condition/AbstractCondition.php
. Fix submitted by Thomas Klein in pull request 14609.
- Corrected grammar in
README.md
. Fix submitted by Stanislav Idolov in pull request 14844.
- Corrected type hints in
Webapi/Controller/Soap/Request/Handler.php
andWebapi/Model/Plugin/GuestAuthorization.php
. Also corrected case in property annotation inSoap\Server.php
and added undefined property_appState
inController\Soap.php
. Fix submitted by Prince Patel in pull request 16626.
- Corrected
Magento\Webapi\Model\Soap\Fault::toXml()
method invocation inSoap\FaultTest.php
. Fix submitted by Prince Patel in pull request 16626.
- We’ve removed an unused class from the
lib/_forms.less
file. Fix submitted by Chirag Matholiya in pull request 15791.
- We’ve removed unnecessary CSS code from
_actions-toolbar.less
. Fix submitted by Chirag Matholiya in pull request 15789.
- We’ve removed the unnecessary double semicolon from the style sheets. Fix submitted by Namrata in pull request 15795.
- We’ve removed the unused code from
docs.less
. Fix submitted by Daniel Ruf in pull request 15871.
- Removed extraneous negative margin on product list and product list items. Fix submitted by Steven de Jong in pull request 15936. GitHub-15308
- Indentation issues with LESS files have been resolved. Fix submitted by hitesh-wagento in pull request 15811.
- The syntax for before-after operators in LESS files has been corrected. Fix submitted by Namrata in pull request 16181.
- Redundant keywords have been removed from miscellaneous files. Fix submitted by Namrata in pull request 16182.
- We’ve corrected misspellings in the comment section of
OrderFixture.php
. Fix submitted by Namrata in pull request 16183.
- Unnecessary leading and trailing spaces have been removed from the customer account login page email field. Fix submitted by Piyush Dankhara in pull request 15365. GitHub-6058
- Unnecessary leading and trailing spaces have been removed from fields in the customer account create and login forms. Fix submitted by Piyush Dankhara in pull request 16192. GitHub-6058
- Unnecessary leading and trailing spaces have been removed from fields in newsletter, forgot password, checkout login and email to a friend forms. Fix submitted by Piyush Dankhara in pull request 16564. GitHub-6058
- Unnecessary leading and trailing spaces have been removed from fields in the customer confirmation form. Fix submitted by Vishal Gelani in pull request 16595. GitHub-6058
- Removed unnecessary commented code from these files:
app/code/Magento/Review/Model/ResourceModel/Rating/Collection.php
,app/code/Magento/Sales/Model/Order/Creditmemo.php
,lib/internal/Magento/Framework/Data/Form/Element/Checkboxes.php
, andlib/internal/Magento/Framework/Model/ResourceModel/Db/Relation/ActionPool.php
. Fix submitted by Pratik Oza in pull request 17077.
- Removed unnecessary spaces from the price value in
app/code/Magento/Catalog/view/base/templates/product/price/amount/default.phtml
. Fix submitted by Valerij Ivashchenko in pull request 17027.
- Remove unused comments from
_initDiscount()
function. Fix submitted by Prince Patel in pull request 17002.
- Corrected misspellings in multiple files, including
app/code/Magento/Catalog/Block/Adminhtml/Product/Attribute/Set/Main/Tree/Attribute.php
,app/code/Magento/Catalog/view/adminhtml/web/js/product/weight-handler.js
,app/code/Magento/Signifyd/Test/Unit/Controller/Webhooks/HandlerTest.php
,app/code/Magento/Ui/view/base/web/js/lib/core/element/element.js
, anddev/tests/functional/tests/app/Magento/Widget/Test/Constraint/AssertWidgetCmsPageLink.php
. Fix submitted by Pratik Oza in pull request 16980.
- Corrected formatting of the JavaScript code in the
app/code/Magento/Ui/view/base/templates/control/button/split.phtml
andapp/code/Magento/Ui/view/base/web/js/grid/controls/button/split.jstemplate
files. Fix submitted by Yogesh Suhagiya in pull request 14967.
- Removed redundant
@throws
hinting and unused import forAdvancedPricingImportExport
module classes. Fix submitted by Dmytro Cheshun in pull request 15872.
- Added missing PHPDoc to methods throughout the code base. Fix submitted by Leandro F. L. in pull request 16215.
- Fixed mismatches in case between class and method name spellings. Fix submitted by Leandro F. L. in pull request 16141.
- Removed an unnecessary comma from the
translate
attribute inapp/code/Magento/Sales/etc/adminhtml/system.xml
. Fix submitted by Dmytro Cheshun in pull request 15615.
CMS content
- Page layout issues that resulted from incorrect module sequence have been corrected. Previously, the
Magento_theme
module was loaded too late, which resulted in unexpected display issues.
- Corrected use statements and return values in
AggregationInterface
. Fix submitted by Yaroslav Rogoza in pull request 14893.
Configurable products
- Customers can now successfully complete checkout when their order contains a configurable product with a configurable option. Previously, customers could not check out when there is a configurable product in the cart with a configurable option, which is now deleted, shopping cart could not be loaded. Fix submitted by jonshipman in pull request 15468. GitHub-15467
- Magento now displays the manufacturer attribute on the Admin on the Catalog page for configurable products. Previously, Magento displayed these attributes on the simple products catalog page, but not on the configurable products catalog page.
- Configurable products are now sorted by only visible prices as expected. Previously, sorting a catalog by price resulted in sort results that included the prices of out-of-stock products and disabled child products.
- When two simple products of a configurable product have different prices, Magento now uses the lowest price as the default price on the product detail page. Previously, if one of the simple products had price=0, Magento did not use it as the default. Fix submitted by Torrey Tsui in pull request 16540.
- The missing check for a
false
value has been added toConfiguredRegularPrice
. Previously, when the parent method returned false, Magento threw this fatal error:NOTICE: PHP message: PHP Fatal error: Uncaught TypeError: Argument 1 passed to Magento\Catalog\Pricing\Price\ConfiguredOptions::getItemOptionsValue() must be of the type float, boolean given, called in /app/vendor/magento/module-catalog/Pricing/Price/ConfiguredRegularPrice.php on line 74 and defined in /app/vendor/magento/module-catalog/Pricing/Price/ConfiguredOptions.php:24
. Fix submitted by Tibor Kotosz in pull request 15129.
- Fixed the DocBlock for
hasInvoices()
,hasShipments()
, andhasCreditmemos()
inapp/code/Magento/Sales/Model/Order.php
. Fix submitted by Lyzun Oleksandr in pull request 16554.
- Fixed type hints and docs for the Downloadable Samples block. Fix submitted by Björn Kraus in pull request 16408.
Cookies
- Magento now responds to a customer accepting a cookie notice by simply hiding the notice. Previously, Magento reloaded the entire site when a user accepted the cookie notice. Fix submitted by Torben Höhn in pull request 16890.
Customer account
- Magento no longer logs out a customer after a successful password change.
- Magento no longer displays the State/Province instead of the State field on U.S. customer address forms.
- Customer attributes are now correctly validated on the Admin Order form. Previously, Magento validated attributes\length after an order has been submitted, but not on the Admin Order form.
- Customers no longer lose their session when they switch stores on different domains.
- Non-U.S. and non-Canadian addresses that are displayed in the Address Book summary field now display the State/Province values as expected if that information was provided.
- The checkout page no longer displays custom address attributes when Show on frontend is set to no.
- Magento now displays the default value for a new Customer attribute that is created from the Admin. Previously, Magento set this value to no by default.
- Administrators can see all customers when the Share Customer Accounts value is set to Global.
- User login email validation no longer fails if the field contains a leading or trailing space on Internet Explorer 11.x. Fix submitted by Piyush Dankhara in pull request 15365. GitHub-6058
- Customer accounts are now unlocked as expected after a password reset. Fix submitted by Andrea Gaspardo in pull request 15255. GitHub-15534
- Magento no longer changes the format of Date of Birth information when this field is enabled on the Create New Customer Account page, and an existing customer tries to re-register. Fix submitted by KaushikChavda in pull request 15272.
- When saving a customer group, Magento now copies extension attributes to the new data model that is returned. Previously, this action was not completed, and Magento behaved unpredictably. Fix submitted by Joseph Maxwell in pull request 16254.
- The
customer.account.dashboard.info.extra
block has been moved to contact information from the newsletter section inapp/code/Magento/Customer/view/frontend/templates/account/dashboard/info.phtml
. Fix submitted by JeroenVanLeusden in pull request 14923.
Directory
- You can now configure different Allowed Countries for default and store scopes. Fix submitted by Oleksandr Kravchuk in pull request 16693.
dotmailer
-
The ROI tracking feature now tracks order events properly.
-
The importer now works as expected.
-
Catalog sync now syncs all products across all created collections when it is configured to sync on the store level.
-
The validation process for new subscribers no longer permits subscribers to be enrolled multiple times into the new subscriber program.
-
Unexpected errors during subscriber or customer creation no longer occur.
- A merchant can now successfully create a new user and displays the appropriate welcome message. Previously, Magento threw an error during the creation of a customer or subscriber, although the new user/subscriber was created.
EAV
- Magento now displays the fixed product tax attribute label as expected according to the specified store view.
- Magento now correctly renders multiselect product attributes with a custom source model in
adminhtml
. Previously, the selected value was saved the first time in thecatalog_product_entity_varchar
table, and the attribute was added to theeav_attribute
table, but the selected options were not highlighted against the attribute.
Frameworks
@api
annotation has been added to themagento/framework
component of the Filter Group and Sort Order classes. Fix submitted by Ronak Patel in pull request 16845.
app/code/Magento/Theme/etc/di.xml
now usesTranslate
instead ofTranslateInterface
. Fix submitted by Wouter Samaey in pull request 17124.
- Classes with methods that contain variadic arguments can be also used in proxy classes. Fix submitted by Vishal Gelani in pull request 16080.
- The annotation in
_toOptionArray - lib\internal\Magento\Framework\Data\SearchResultProcessor.php
has been corrected. Fix submitted by Namrata in pull request 15892.
- Scheduled XML sitemap generation now works as expected. Previously, you could schedule sitemap generation (Admin > Store > Configuration > Catalog > XML sitemap), but Magento would not generate the sitemap. Fix submitted by James Halsall in pull request 14822. GitHub-5768
- In multi-site deployments, a customer requesting a password reset on a non-default store should receive the password reset email from the non-default, not the primary, store. Previously, this password reset email was sent from the default store. Fix submitted by Rodrigo Mourão in pull request 14800. GitHub-5726
- The
trigger_recollect
quote attribute no longer causes a time out. Fix submitted by Philipp Sander in pull request 14719. GitHub-9580
Framework\Math\Random
now uses PHP 7.x features, includingrandom_bytes
andrandom_int
.
-
The
catalog:image:resize
command execution time has been reduced by up to 90% in the release. However, this improvement necessitates these additional steps after upgrading your Magento instance to 2.2.6:-
Remove
pub/media/catalog/product/cache
. (Removing this folder frees up space.) -
Run
bin/magento catalog:image:resize
to generate a new image cache. (This step is necessary because we’ve changed the path to cached images and must remove the previously cached images.)
-
- We’ve fixed a display error that occurred when both a Critical Admin Notification and Release Notification window were opened.
- Changes that were made to file permissions for
lib/internal/Magento/Framework/View/Asset/Merged.php
and its associated test that were made in an earlier release have been reverted. Fix submitted by Ihor Sviziev in pull request 16937.
- The constructor in
Magento\Webapi\Model\Soap\Fault.php
now assigns$exception->getOriginator()
to_soapFaultCode
instead of to the dynamical property_soapCode
. Fix submitted by Marcel Hauri in pull request 15515.
- Corrected annotation in
_toOptionArray
inlib/internal/Magento/Framework/Data/Collection/AbstractDb.php
. Fix submitted by Sanjay Patel in pull request 15336.
- The invoice table now displays the correct shipping and handling for a partial items invoice. Fix submitted by Ankur Raiyani in pull request 14795.
- The return values from the
usort
andvalue_compare_func
function now matches the PHP documentation for these functions. Fix submitted by luke-denton-aligent in pull request 14726.
- MySQL adapter can now reconnect successfully when using a nonstandard port. Previously, Magento threw this error,
Port must be configured within host parameter
. Fix submitted by Julien ANQUETIL in pull request 14753.
Application framework
- You can now manually add a parameter to
app/etc/env.php: user_admin_email
. When an administrator is created, Magento sends an email to default store’s email and, if present, to the email address defined inuser_admin_email
.
- Magento now removes unneeded PDF files after generation. Previously, Magento saved a copy of every generated invoice PDF in
/var
. Fix submitted by Yaroslav Rogoza in pull request 16401. GitHub-3535, GitHub-14517
- Logs now indicate when Magento is in maintenance mode, which will help the debugging process. Fix submitted by Ethan Yehuda in pull request 16840.
JavaScript framework
lib/web/mage/dropdowns.js
no longer fails when autoclose is set to true. Fix submitted by Brian LaBelle in pull request 15499. GitHub-15469
- You can now view an entire zoomed product image in Fotorama fullscreen from the FireFox browser. Previously, the image jumps and the user cannot view all portions of the image. GitHub-7978
Web API framework
- The
array_push
function has been added to the list of forbidden functions. Fix submitted by Leandro F. L. in pull request 16144.
- A generated admin API token no longer expires immediately. Previously, when you created a token for an Admin user and have set Admin Token Lifetime (hours)) to empty, Magento denied access because the token immediately expired. Fix submitted by Maikel Martens in pull request 15598. GitHub-15564
- The
GET /V1/returns?searchCriteria
endpoint retrievestracks
arrays as expected.
- The
GET /V1/returns/:id
endpoint retrievestracks
arrays as expected.
catalogProductAttributeRepository
now returns thefrontend_labels
value as expected.
Cache framework
- Magento no longer throws an exception when deploying static content on a deployment where Redis is used for cache management. GitHub-9287
- When a layout is loaded from the cache, Magento now repopulates the list of applied layout handles to prevent any chance of a layout handle being reapplied later. Fix submitted by Scott Buchanan in pull request 12314.
Dashboard
- The dashboard now displays the correct order amount on orders when deploying Magento on multiple storefronts with different currencies. Fix submitted by Ankur Raiyani in pull request 15661. GitHub-15660
Directory
- Magento now supports seven-digit Israeli postal code masks. Fix submitted by Itay Raz in pull request 16250.
General
- Magento now uses the correct amounts when creating a credit memo for an order that was placed using store credit, a gift card, or reward points.
- Magento no longer sends duplicate delete requests as a result of an unstable Internet connection. Previously, unintentional mass deletion of products sometimes occurred as a result of an unstable Internet connection.
- You can now successfully save a product video for one store view in deployments that have several store views. Previously, when you saved a product video for one store view, Magento saved it for all store views, although customers could play the video on the original store only.
- Customer data is now fully loaded after restarting the browser during an unexpired user session. Previously, the
section_data_ids
section of the session cookie was not properly completed. GitHub-14912
- We’ve fixed an issue with unoptimized SQL queries in customer segments. Previously, the customer segment was not saved, and MySQL crashed.
- When a customer creates a product review, the link to the product from the review in the customer’s My Account > My Product Review is now SEO friendly.
- The My Invitations page now accurately displays the reward points amount in numbers. Previously, this page displayed the special character
%
instead of numbers.
- The Enterprise Reward refund logic no longer permits administrators to grant double refunds.
- We moved the
isAllowed
method fromAccessChangeQuoteControl
to a separate service to optimize the logic that supports using recurrent payments in combination with pre-ordered products. Fix submitted by Jeroen Van Leusden in pull request 12566.
- The attribute checking logic has been optimized by reducing redundant checks. Fix submitted by Freek Vandeursen in pull request 11554.
- Magento no longer validates customer address attribute value length when the minimum/maximum length fields are not displayed on the Admin.
- The dropdown menu is now positioned as expected under the link on the UI Component listing. Fix submitted by Ankur Raiyani in pull request 15661. GitHub-15660
- The timestamp field now includes indexes, which reduces the chances of deadlocks that can occur while erasing old records. Fix submitted by Carlos Lizaga in pull request 13328. GitHub-10346
setCateroryIds([])
has been corrected tosetCategoryIds([])
throughout the test suites. Fix submitted by Neeta Kangiya in pull request 15621. GitHub-15590
- Menus with nested elements now align correctly. Fix submitted by hitesh-wagento in pull request 15645. GitHub-7897
- An administrator can now successfully download a PDF or export data immediately after log in. Previously, an administrator could not download a PDF or export data successfully after log in, but was redirected to the Admin dashboard. Fix submitted by Riccardo Tempesta in pull request 15539. GitHub-15510
- Merchants can now apply styling by changing LESS variables in the Luma theme as expected. Fix submitted by hitesh-wagento in pull request 15734. GitHub-15608
- Added a service configuration setting—Send Adminhtml and Frontend as Separate Apps—to collect and send separate data for frontend and adminhtml applications for New Relic reporting. See New Relic Reporting. Fix submitted by Max Chadwick in pull request 12935.
- Table alias prefixes in field mappings for customer group filter and sorting processors that were previously missing have been restored. Previous to this restoration, Magento threw this error when a merchant opened Admin > Customers > All Customers:
SQL Error: ambiguous column 'customer_group_id' in 'All customers' page in admin when extension attribute table is joined
. Fix submitted by Maksim Gopey in pull request 15826.
.limiter
now has the same parent selectors as.pages
, which prevents clashes between styles and layouts. Previously,.limiter
float was too generic. Fix submitted by hitesh-wagento in pull request 15878.
- The default
FormElementDependenceController
configuration is now extended by custom configuration rather than overridden. Fix submitted by Valerij Ivashchenko in pull request 16001.
inline-block
issues with space and font-size in the Name form have been resolved. Fix submitted by Daniel Ruf in pull request 16048.
- Alignment and layout issues on home and category pages of the Hot Seller section have been resolved. Fix submitted by Chirag Matholiya in pull request 15893. GitHub-15213
- Updated old font formats of the default fonts (
woff
andwoff2
). Fix submitted by Daniel Ruf in pull request 15870. GitHub-15213
- We’ve corrected the return type of methods and typos in
CategoriesJson.php
,Engine.php
,UrlRewrite.php
, andObserverConfig.php
. Fix submitted by Saurabh Parekh in pull request 15993.
@escapeNotVerified
annotations were replaced inname.phtml
andqty.phtml
. Fix submitted by Riccardo Tempesta in pull request 15532. GitHub-15501
- We’ve removed redundant function calls in
app/code/Magento/CurrencySymbol/view/adminhtml/templates/grid.phtml
. Fix submitted by Saurabh Parekh in pull request 15346. GitHub-15355
magnifier.js
now works no matter which mode is set. (magnifier.js
offers the option of setting mode to ‘inside’ for an in-frame zoom.) Fix submitted by Kacper Chara in pull request 15382. GitHub-4977
- The Change Password warning message no longer appears twice. Fix submitted by Sanjay Patel in pull request 15774. GitHub-14895
- You can now add the
NOINDEX,NOFOLLOW
meta tag to the admin scope to instruct Google and other friendly bots to refrain from adding the Admin URL to search results. Fix submitted by Itay Raz in pull request 17163.
- The Create Account and Password Forget forms now include the required notice for relevant fields. Fix submitted by Daniel Ruf in pull request 16965.
- Reworked the
addError
,addSuccess
methods in several files. Fix submitted by Tiago Sampaio in pull request 16921.
- Minor improvements to
app/code/Magento/CatalogRule/Model/Rule/Job.php
andapp/code/Magento/GroupedProduct/Model/Product/Initialization/Helper/ProductLinks/Plugin/Grouped.php
. Fix submitted by Vladymyr Hrivinskyi in pull request 16900.
- Refactored
app/code/Magento/User/Controller/Adminhtml/
by removing the direct use of ObjectManager and included the dependencies using constructor dependency injection. Fix submitted by AnshuMishra17 in pull request 16560.
gallery.less
no longer imports_responsive.less
. Fix submitted by Karla Saaremäe in pull request 16579.
- Added missing
width
property for the confirmation modal inlib/web/css/source/components/_modals.less
. Fix submitted by Vladymyr Hrivinskyi in pull request 16861.
- Removed the redundant
font-size
attribute from the toolbar pager inlib/web/css/source/lib/_utilities.less
. Fix submitted by Karla Saaremäe in pull request 16716.
- Updated the “Reporting security issues” section of
README.md
to recommend that users create a bugcrowd account. Fix submitted by Tommy Quissens in pull request 16685.
- The currency format that was previously broken for some locales now works as expected. Previously, broken currency formats resulted in an incorrect price amount on the product page. Fix submitted by Vishal Gelani in pull request 15909. GitHub-11717
- Changed the My Dashboard string to My Account in multiple files. Fix submitted by Daniel Ruf in pull request 16009.
- Corrected the annotation to the
formatDateTime
function inlib/internal/Magento/Framework/Stdlib/DateTime/TimezoneInterface.php
file. Fix submitted by Sanjay Patel in pull request 15602.
- The
clickableOverlay
option now works as expected. Fix submitted by virtua-pmakowski in pull request 15172. GitHub-7399
- The Instant Purchase module now works as expected. Previously, the
get($type)
method in/Magento/InstantPurchase/Model/ShippingMethodChoose/DeferredShippingMethodChooserPool.php
threw an exception without showing the shipping method $type as it was hardcoded as ‘chooser’. Fix submitted by Marcel Hauri in pull request 15258.
- Template files now follow Magento standard coding format. Fix submitted by Vishal Gelani in pull request 15398.
- Corrected
viewModel
toview_model
where needed in\Magento\Backend\Block\Template
. Fix submitted by Abhishek Jakhotiya in pull request 15067.
- Non-well-formed numeric values that were encountered in
app/code/Magento/Directory/Model/Currency.php
have been resolved. Fix submitted by Mateusz Lerczak in pull request 14833.
- The
README
file for themagento2
repository now has Maintainers and Contributors sections. Fix submitted by Stanislav Idolov in pull request 14790.
- The documentation for
AdapterInterface::update
has been improved. Fix submitted by Navarr Barnier in pull request 14769.
- The product video feature is now GDPR-compliant.
Gift cards
- Magento now displays the Credit Memo link at the top of the page for orders with a total of 0 (zero). Previously, this link was missing, which prevented users from creating a credit memo for the order.
- You can now save gift cards without the price being changed on the Admin to an unacceptable format. Previously, Magento tried to save amounts in unacceptable formats (such as the inclusion of a comma in a four-digit price), which triggered an error.
- Magento no longer permits users to save a new gift card without first completing the required values. Previously, when creating a gift card, users could save the card without having designated an amount, but the card could not be purchased. Magento also created a
report.CRITICAL: Warning
error message in thesystem.log
.
- Orders now retain gift message information on both item and order level. Previously, gift messages disappeared from an order when a customer logged into his account during checkout.
- Magento now maintains relationships between new gift card accounts when a customer purchases several gift cards in the same order.
- Magento now refunds only the exact amount used on a gift card if only the part of the gift card was used. Previously, when a customer used a gift card account code to partially pay for an order, and Magento subsequently created a credit memo for a portion of the order, the full amount of the gift card was refunded.
- Magento now generates the same number of gift card codes when the full order is invoiced as the customer selected when creating an order. Previously, for orders that included both physical products and multiple gift cards, the number of gift card codes generated on an order corresponded to the quantity of the previous physical line items that the user had added to the cart before adding gift cards.
Gift message
- Orders now retain gift message information on both item and order level. Previously, gift messages disappeared from an order when a customer logged into his account during checkout.
Google Analytics
- Google analytics pageview is no longer triggered twice. Fix submitted by Torben Höhn in pull request 15765. GitHub-12221
Magento\GoogleAnalytics\Observer\SetGoogleAnalyticsOnOrderSuccessPageViewObserver
is now covered by unit tests. Fix submitted by Yaroslav Rogoza in pull request 17137.
Google Tag Manager
- The
addToCart
event triggers on the Google Task Manager console only when an item is added to the cart. Previously, the event was triggered before the cart was updated.
- Google Analytics events are now triggered as expected. Specifically, the
addToCart
andremoveFromCart
events are not triggered until after a customer adds a product to the mini cart.
- Magento now accurately updates the mini cart when a customer removes a product while accessing a storefront using Internet Explorer 11.x. Previously, when a customer removed a product from the mini cart, Magento did not remove the product but instead threw this error,
(SCRIPT438: Object doesn't support property or method 'find'. File: sidebar.js, Line: 237, Column: 13 )
.
- Google Tag Manager product category data is now fully reported. Previously, the Google Tag Manager product category (Enhanced Ecommerce) data did not report all information.
HTML
- Responsive table headers now work as expected. Previously, when no heading was present in the
data-th
attribute on a column for a responsive table in Magento, only a colon was present. Fix submitted by Sean Templeton in pull request 16517.
- Corrected HTML syntax in the
report.phtml
error template. Fix submitted by abcpremium in pull request 15454.
Import/export
- Product import now updates the Enable Qty Increments field as expected. Fix submitted by Sergey P in pull request 14379. GitHub-14351
Magento_ImportExport
now supports unicode characters in column names. Previously, column names suchvitamin_a_µg
were marked invalid. Fix submitted by Timon de Groot in pull request 15197.
Infrastructure
- Magento now sends email when the status of a Return Merchandise Authorization (RMA) changes to Return Received, Approved, or Rejected. Previously, no email was sent to the customer who created the order.
- Return Merchandise Authorization (RMA) calls now return order items and comments as expected.
- The RMA status label now shows on the email that Magento sends to customers when the status of an RMA changes.
- Magento now deselects only the attributes you choose to deselect when you set the Use Default Value setting on a store view to no for certain attributes. Previously, when you deselected the Use Default Value setting on a store view for certain attributes, Magento unselected other attributes as well.
- Magento now deploys the translations in
js-translation.json
file when deploying static content. Fix submitted by Sergey Dmitruk in pull request 4814.
- Magento now updates the
Enable Qty Increments
field as expected during product import. Fix submitted by Alexander Lukyanov in pull request 15144. GitHub-11354
- We’ve expanded the HTTP request class by adding the
isPostRequest
method. Fix submitted by Pavel Usachev in pull request 12626.
- You can now change only the primary button
font-weight
without changing regular buttonfont-weight
with LESS variables. Fix submitted by Karla Saaremäe in pull request 16012. GitHub-15832
- We’ve added missing properties to the
Magento/Widget
component and removed a reference to a non-existent class in the associated tests. Fix submitted by Marcel Hauri in pull request 15647.
- We’ve improved the readability of
app/code/Magento/Backend/Block/Widget/Form/Element/Dependence.php
. Fix submitted by Valerij Ivashchenko in pull request 16010.
- Template syntax errors in
app/code/Magento/Theme/Block/Html/Breadcrumbs.php
have been corrected. Fix submitted by Namrata in pull request 15339. GitHub-15345
- The calendar widget (
jQuery UI DatePicker
) now correctly displays more than one month. Fix submitted by Burlacu Vasilii in pull request 16279. GitHub-7379
- An error with the template notation for
Magento_CatalogWidget
module has been fixed. Fix submitted by Namrata in pull request 16530. GitHub-16529
- You can now use the
addTabAfter
method to add two or more tabs to the Admin (for example, the Order View page) in the expected order. Previously, Magento did not preserve the correct sort order for the new tabs. Fix submitted by Tiago Sampaio in pull request 16175. GitHub-16174
- The headers of the User Agent Rules table now align as expected with the content of the table’s rows. Fix submitted by Justin in pull request 16704. GitHub-16703
- We’ve added
@navigation-level0-item__hover__color
missing variable for mobile and tablet view. Fix submitted by hitesh-wagento in pull request 16732. GitHub-15848
- Store view home pages in multistore deployments no longer display breadcrumbs. Previously, the first store view in a multistore deployment looked fine, but the other store views included unnecessary breadcrumbs on the home page. Fix submitted by Oleksandr Kravchuk in pull request 16732. GitHub-6504
- HTML minification now works as expected. Fix submitted by Ronak Patel in pull request 16916. GitHub-5316
- The type of the
transport
event parameter has been changed toDataObject
. This change reverts a change from typeDataObject
toArray()
made in a previous release. Fix submitted by gwharton in pull request 16599. GitHub-10210
- Transport variable can now be altered in the
email_invoice_set_template_vars_before
event. Fix submitted by gwharton in pull request 15040. GitHub-10210
- Replaced deprecated methods in the
app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/ApplyRules.php
,app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Delete.php
,app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Edit.php
,app/code/Magento/CatalogRule/Controller/Adminhtml/Promo/Catalog/Save.php
, andapp/code/Magento/CatalogRule/Plugin/Indexer/Product/Attribute.php
. Fix submitted by Tiago Sampaio in pull request 17227.
- Replaced deprecated methods in 44 files. Fix submitted by Tiago Sampaio in pull request 17035.
- The
template.js
has been updated to make thejquery
variable consistently use$
. Previously, JavaScript in thetemplate.js
sometimes usedjquery
and sometimes$
, and Magento threw an error when running in Internet Explorer. Fix submitted by Angelo Maragna in pull request 17129.
- Corrected an undefined class property in the
app/code/Magento/Backend/Block/Media/Uploader.php getConfigJson()
method. Fix submitted by Prince Patel in pull request 17099.
- Corrected sticky footer in
page-main
container height on mobile devices. Fix submitted by Denis Belevtsov in pull request 17006. GitHub-15118
- Corrected the return type of methods in
app/code/Magento/Catalog/Controller/Category/View.php
,app/code/Magento/CatalogSearch/Model/Indexer/Fulltext/Action/DataProvider.php
, andapp/code/Magento/CatalogSearch/Model/ResourceModel/EngineInterface.php
. Fix submitted by Pratik Oza in pull request 16988.
- Style groups for mobile devices (
max-width
) are now specified in the correct order. Fix submitted by Tejash Kumbhare in pull request 16959. GitHub-14476
- Corrected the namespace that is defined in
compare.phtml
. Fix submitted by Ronak Patel in pull request 16978.
- Edited verbose code in
app/code/Magento/Customer/Controller/Account/LoginPost.php
. Fix submitted by Glenn Cheng in pull request 16928.
- Fixed annotations in the following methods:
lib/internal/Magento/Framework/Acl/AclResource/Config/Converter/Dom.php
,lib/internal/Magento/Framework/Acl/AclResource/Config/SchemaLocator.php
, andlib/internal/Magento/Framework/Acl/Loader/ResourceLoader.php
. Fix submitted by Tiago Sampaio in pull request 16899.
-
Removed or edited code comments in the following files:
-
app/code/Magento/Backend/Block/Dashboard/Bar.php
-
app/code/Magento/Catalog/Setup/InstallData.php
-
app/code/Magento/Newsletter/Block/Adminhtml/Template/Edit.php
-
app/code/Magento/Review/Block/Adminhtml/Add/Form.php
-
app/code/Magento/Sales/Model/Order/Creditmemo.php
-
app/code/Magento/Sales/view/adminhtml/templates/order/totals.phtml
. Fix submitted by Pratik Oza in pull request 16891.
-
- Improved product gallery block helper code (
app/code/Catalog/Block/Adminhtml/Product/Helper/Form/Gallery.php
). Fix submitted by Valerij Ivashchenko in pull request 16889.
- Removed duplicated string from
app/code/Magento/ProductVideo/i18n/en_US.csv
. Fix submitted by Valerij Ivashchenko in pull request 16882.
- Refactored code in
dev/tests/static/framework/Magento/Sniffs/NamingConventions/ReservedWordsSniff.php
so that an undefined index warning is no longer triggered when using uppercase reserved word Fix submitted by Freek Vandeursen in pull request 16785.
- Regex in
ControllerAclTest::getControllerPath()
has been changed to avoid classes that are under a namespace with a controller component (such as controller plugins) being interpreted as controllers. Fix submitted by Freek Vandeursen in pull request 16707.
- Knockout template files now include a
title
attribute in theimg
tag. Fix submitted by Namrata in pull request 16691.
- Added
title
attribute to links as needed for compatibility with w3c standards to these files:app/code/Magento/Backend/view/adminhtml/templates/page/header.phtml
,app/code/Magento/Backend/view/adminhtml/templates/widget/form/element/gallery.phtml
,app/code/Magento/Theme/view/frontend/templates/html/bugreport.phtml
,app/code/Magento/Theme/view/frontend/templates/html/header/logo.phtml
, andapp/code/Magento/Ui/view/base/web/templates/block-loader.html
. Fix submitted by Namrata in pull request 16689.
- Search icons are now defined by header icon variables. Fix submitted by Karla Saaremäe in pull request 16559.
- Module namespace is now defined before template path name. Previously, when we overrode any core block to any custom module, Magento threw an error because trying to find the template file in the custom module if the module namespace is not defined before the template path. Fix submitted by Prince Patel in pull request 16576.
- Corrected the comment for the
Magento_Setup
moduleincludeClasses
function. Fix submitted by Namrata in pull request 16549.
- The
module:status
command now clearly provides an easily parsed listing of all enabled and disabled modules. Fix submitted by Jisse Reitsma in pull request 15543.
- Fixed the
false
value for thecache_lifetime
argument inMagento/Swatches/view/frontend/layout/checkout_cart_configure_type_configurable.xml
. Fix submitted by yuriyDne in pull request 16086.
- CSRF tokens are now considered sensitive strings. Fix submitted by Robert in pull request 13509.
- Refactored JavaScript code in
popup.phtml
andpopup.js
. Fix submitted by IvanPletnyov in pull request 16216.
- Removed extraneous cursor property. Fix submitted by Daniel Ruf in pull request 15305.
app/code/Magento/Marketplace/view/adminhtml/templates/partners.phtml
now uses the stored value of thegetPartners
method instead of calling same method again. Fix submitted by Saurabh Parekh in pull request 15517.
- Added missing lowercase conversion on grouped product assignation. Fix submitted by Juan Alonso in pull request 15312.
- Removed code responsible for multiple add-to-cart initializations when Magento loads the product listing. Fix submitted by Vova Yatsyuk in pull request 15409.
- Refactored JavaScript code from
popup.phtml
to meet Magento coding standards. Fix submitted by Rahul Kachhadiya in pull request 15341.
- Removed redundant PHPdoc comment and deprecated private method
getSerializer
in\Magento\Customer\Model\Customer\NotificationStorage
class. Fix submitted by adrian-martinez-interactiv4 in pull request 15262.
- CSS code is now automatically updated in the browser. Previously, users had to press CTRL+F5 to see CSS changes. Fix submitted by Alexander Lukyanov in pull request 15144. GitHub-11354
- Concrete type hints for product and category resources have been added to
app/code/Magento/Catalog/Model/Category.php
andapp/code/Magento/Catalog/Model/Product.php
to help with static analysis and IDE autocompletion. Fix submitted by Yaroslav Rogoza in pull request 15136.
- Replaced
rand
withrand_int
in several modules. Fix submitted by Daniel Ruf in pull request 15017.
- Optimized
if-condition
in/Magento/Catalog/Controller/Adminhtml/Product/Initialization/Helper/AttributeFilter.php
. Fix submitted by Valerij Ivashchenko in pull request 15002.
- We’ve upgraded to Node.js 8 from Node.js 6. Fix submitted by Daniel Ruf in pull request 15018.
- Replaced
template/path
withModule_Name::template/path
in the block class to ensure extensibility of the class. Previously, if the source block classes referenced a template without specifying the module name, then block render failed with this error:Invalid template file
. Fix submitted by Abhishek Jakhotiya in pull request 14946.
- Replaced the
\Magento\Backend\Helper\Data
parameter with\Magento\Backend\Model\UrlInterface
to make them identical with the constructor. Fix submitted by Abhishek Jakhotiya in pull request 14946.
- The return type of
addToCartPostParams
inapp/code/Magento/Catalog/Block/Product/ListProduct.php
has been changed to array. Fix submitted by Sean Templeton in pull request 14946.
- Datepicker now correctly converts date formats in locales other than
en-US
. Fix submitted by Tao Sasaki in pull request 14627.
default_head_blocks.xml
now contains theorder
attribute for setting the load order of stylesheets. Fix submitted by Tao Sasaki in pull request 14290.
- Magento now displays validation messages on the advanced search form as expected if you submit the advanced search form without entries. GitHub-8131
\Magento\Framework\Reflection\TypeProcessor
methods have been simplified.
- Magento no longer unsets the taxed shipping total information before returning the total tax.
JavaScript
- Refactored the JavaScript code of the button split widget. Fix submitted by amittiwari024 in pull request 15351. GitHub-15354
Klarna
- Magento no longer throws multiple JavaScript errors when a customer selects Klarna from the Review & Payments page.
Module Manager
- Module Manager module grid now works as expected. Fix submitted by Alex Gusev in pull request 15211. GitHub-15192
Newsletter
- Guest users can now sign up for newsletters for multiple stores. Previously, when a guest user signed up for a newsletter from multiple stores, Magento sent a subscription confirmation message, but did not successfully subscribe the user.
- Magento now correctly updates newsletter subscriptions when the customer is registered on two stores. Previously, when the customer tried to subscribe to the newsletter from a second store, Magento displayed this message,
You are (not) subscribed to "General Subscription"
.
- The newsletter subscription confirmation message does not display after a customer clicks the link that is included in the confirmation email. Fix submitted by Kaushik Chavda in pull request 15247. GitHub-14747
- Magento now sends a confirmation request email to the customer when she unsubscribes to a newsletter. Fix submitted by Lyzun Oleksandr in pull request 15464. GitHub-15218
- Removed the direct use of the object manager and loaded the dependency via constructor dependency injection in
app/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/MassDelete.php
andapp/code/Magento/Newsletter/Controller/Adminhtml/Subscriber/MassUnsubscribe.php
. Fix submitted by AnshuMishra17 in pull request 16851.
- Newsletter registration now works the same when registered customers subscribe from My Account and or from the newsletter block. Fix submitted by Lyzun Oleksandr in pull request 15479.
- Removed the redundant return statement from
getJsTemplateName
function comment in theMagento_Newsletter
’s block file. Fix submitted by Namrata in pull request 16645.
Payment methods
Braintree
- You can now cancel an order that was placed with Braintree when the Braintree authorization had expired.
- All invoices now have the merchant account ID set in the store configuration for the Braintree payment method. Previously, the default merchant account ID was sent to Braintree for any subsequent partial order invoices after the initial invoice is generated.
- Braintree configuration (
app/code/Magento/Braintree/etc/adminhtml/system.xml
) now containsshowInStore
attributes. Fix submitted by Andreas Schrammel in pull request 16458.
- Magento now retains the correct address information when a customer using Braintree’s Pay with PayPal button to complete an order navigates back to the shipping step and changes the shipping address fields. Fix submitted by Vova Yatsyuk in pull request 15133.
PayPal
- Customers can now continue creating an order after a PayFlow Pro payment has been declined. Previously, under these circumstances. the customer could not continue his purchase.
- Paypal Onboarding has been configured to work for merchants from countries other than the United States.
- Magento now accurately displays the status of PayPal orders. Previously, the status of PayPal orders was displayed only as Processing.
- Magento no longer sends duplicate order confirmation emails when a customer uses PayPal Express to complete an order. Fix submitted by Rocket Web in pull request 14820.
- Tax amount calculation for payments processed through PayPal now works as expected. Previously, Magento sent the wrong amount to PayPal when a discount was applied to an order.
- The
Allmethods config
source model now reports the full list of payment methods as expected. Fix submitted by Manuel Schmid in pull request 15032. GitHub-13460
- You can now cancel an order placed through Cybersource when the fraud filters are triggered.
- Magento now emails customer order confirmations for orders that are placed through Worldpay.
- Magento now correctly applies free shipping to an order after the customer applied the free shipping code during checkout.
- Magento no longer sends Admin orders to Signifyd for review when Signifyd is disabled on the website on which the administrator is logged in.
- Magento now successfully creates shipping labels for a return merchandise authorization (RMA) when using FedEx Smart Post as the shipping option. Previously, Magento threw an error under these circumstances.
- Magento now sends email about payment failures to customers. Previously, Magento did not send a customer email, but instead logged an error in
support.log
, and displayed this message on the storefront, Transaction has been declined. Please try again later.
- Magento no longer throws an error when multiple payment methods are enabled. Previously, when a merchant tried to enable more than one payment method from the Admin, Magento displayed this error in the console,
Found elements with non-unique id billing-address-form
. Fix submitted by Neeta Kangiya in pull request 15349. GitHub-15348
- Magento now sends order confirmation emails as expected for orders purchased with WorldPay.
- A type error in the payment void method of the Authorizenet module has been fixed. Fix submitted by Oleh Kravets in pull request 16194. GitHub-16184
Pagecache
- Full-page cache now works as expected in multistore deployments. Previously, when you opened the URL of a non-default store in a multistore deployment, full-page cache did not return the URL.
Performance
- The catalog rule re-indexing operation has been optimized, and average re-indexing time (which depends on rule conditions) has improved by more than 80%. Previously, a full catalog rule re-index operation on a medium B2C store took more than 20 minutes.
- Merchants can now improve store performance by disabling Magento Report functionality if business function does not require this capability. A new configuration setting (System Configuration: General > Reports > General Options) allows merchants to disable Magento Reports, which is recommended practice if a merchant’s business function does not require this capability.
- You can change store locale without the exporting and importing configuration process. While Magento is in Production and the
SCD_ON_DEMAND
is enabled, the Magento store and admin locale options are available. See Change locales.
- The time required to load category or product pages for products that are configured with many attributes (more than 500) has been significantly reduced. Refactoring the logic for product attribute retrieval has resulted in a reduction of load time of almost 90% for certain scenarios.
- The time required to load a store’s home page has been reduced noticeably when the top menu contains many categories. (Load time is still affected by the number of categories and the structure of the top menu.)
-
The speed of catalog price rule save operations has been improved by these changes:
-
elimination of unnecessary reindexing
-
improvement to the way that the
getMatchingProductIds
function fetches products, which has eliminated unnecessary checks of the data set. Fix submitted by Andrey Zabara in pull request 14707.
-
- The ID to SKU lookup process for tier prices has been optimized. Previously, with a large number of tier or group prices, each tier would separately make a database query to look up the associated SKU. Fix submitted by Todd Christensen in pull request 14699.
Product video
- Magento now populates the YouTube video URL and Title fields with the same values as are populated on the default store view on multisite deployments. (These fields are global scope attributes and should be the same on all storefronts.) Previously, Magento left these fields blank in multisite deployments.
Quote
- Magento now displays the correct product price for an order created from the Admin in multisite deployments. Previously, when an order was created from the Admin in a multisite deployment where products were assigned different prices per store view, Magento defaulted to the product price of the primary storeview if the order was edited or updated. Fix submitted by Riccardo Tempesta in pull request 14904. GitHub-14869
- Magento now successfully saves the value of
REMOTE_IP
when a customer uses an IPV6 (Internet Protocol version 6) address. Previously, this value was only partially saved in thesales_order
andquote
tables. Fix submitted by George Schiopu in pull request 14976. GitHub-10395
- Coupon codes now work for guest users through the web API as well as from the storefront. Fix submitted by Marcin Dykas in pull request 15320. GitHub-14056
- Magento no longer runs an SQL query on every item in the database when a quote is empty, which has improved the performance of the checkout process. Fix submitted by Sean Templeton in pull request 16675.
Reports
- The timezone has been removed from the date when Magento retrieves the current month from a UTC timestamp. Fix submitted by Prince Patel in pull request 16584. GitHub-15940
Review
- Removed the unused class declaration from controller’s index action and the unused code in the comment block from the template file in
app/code/Magento/Review/view/frontend/templates/redirect.phtml
andapp/code/Magento/Version/Controller/Index/Index.php
. Fix submitted by Yogesh Suhagiya in pull request 15173.
Rule
- A cart rule that uses a
subselection
condition now works as executed. Previously, cart rules with this condition automatically granted a discount.
- The retrieval of first array elements in the following files has been improved:
app/code/Magento/Rule/Model/Action/AbstractAction.php
andapp/code/Magento/Rule/Model/Condition/Combine.php
. Fix submitted by Thomas Klein in pull request 16053. GitHub-15940
- The condition category chooser now handles multiple nested categories as expected. Previously, if a cart rule contained several nested categories, no categories appeared on the page, the page became unresponsive, and eventually crashed. Fix submitted by Keith Bentrup in pull request 15265. GitHub-15121
Sales
- Order status now remains in the Complete state after Magento refunds store credit on a partial credit memo. Previously, under these circumstances, Magento changed the status of the order to Closed.
- You can now create multiple credit memos in one session and save each successfully. Previously, Magento displayed this error when you tried to save a second credit memo after creating the first memo:
Could not save credit memo
.
- Magento now displays any errors that occur during order creation in the browser console. Previously, Magento displayed this message:
Uncaught ReferenceError: order is not defined during order creation
instead of a specific error message.
- The
POST /V1/shipment
endpoint processestracks
arrays as expected.
- Magento no longer reverts to the country associated with the default website when a customer edits the billing address for an order. Previously, if a customer edited the shipping address for an order, Magento would reset the billing address to the default address specified for the default website.
- Credit memo email template file incorrect object types have been corrected. Previously, when a merchant created a credit memo and checked the Email checkbox, Magento threw an error. Fix submitted by Joseph Maxwell in pull request 16438.
- Performance issues that resulted from disabling invoice emails have been resolved.
- The Invoices grid now reflects changes in invoice state as expected. Fix submitted by JeroenVanLeusden in pull request 16286.
- You can now set the
is_visible_on_front
parameter from theaddStatusHistoryComment
of the order mode. Previously, you could set theis_visible_on_front
parameter from the Admin only. Fix submitted by Mark Shust in pull request 15637.
- Module name space is now declared before the template pathname in
Magento_Sales::order/info.phtml
. Fix submitted by Ronak Patel in pull request 16206.
- The
addFieldToFilter
has been added toaddressCollection
inapp/code/Magento/Sales/Setup/UpgradeData.php
, which optimizes the process of collecting addresses during upgrade. Fix submitted by Dmytro Cheshun in pull request 15615.
- Invoice prefixes now contain the correct store ID when Magento is deployed in a multistore environment. Previously, Magento always created the invoice number using the default store view ID. Fix submitted by Sanjay Patel in pull request 15615. GitHub-14063
- The
GET /V1/orders/items/{id}
request now returnsparent_item
. Fix submitted by Sanjay Patel in pull request 15615.
Sales rules
- Cart price rules with associated coupons are no longer affected by edits to scheduled updates.
- The
discount
label in theapp/code/Magento/SalesRule/view/frontend/web/js/view/summary/discount.js
file is now compatible with custom module discount. Fix submitted by Rodrigo Santellan in pull request 16093.
Search
- Magento no longer throws an error when a customer uses quick search to search on a term that does not exist in the search database. Previously, Magento returned this error,
TypeError: this._getFirstVisibleElement(...).addClass is not a function
. Fix submitted by Julien ANQUETIL in pull request 14839. GitHub-14274
- Customers can now use the Enter key to submit searches from a page header. Previously, when a customer used the Enter key to submit a search query, event handlers that were bound to the form submit (through jQuery) were fired twice. Fix submitted by Amjad M in pull request 15340. GitHub-13793
- Swagger now handles
searchCriteria
-related requests as expected. Fix submitted by Jakub in pull request 15040. GitHub-15322
- The Admin panel search now filters catalogs as expected. Previously, if a merchant tried to narrow a search when using the Search tool in the Admin panel, Magento displayed the full catalog view without narrowing down the list. Fix submitted by Pavel in pull request 12735. GitHub-7861
- You can now use an asterix when searching on customer names. Previously, if you used an asterix in a search query, Magento displayed this message,
Something went wrong with processing the default view and we have restored the filter to its original state.
Fix submitted by Riccardo Tempesta in pull request 14905. GitHub-14855
- Magento now displays validation messages as needed on advanced searches. Previously, Magento did not display a message even after a customer submitted the advanced search form with no entries. Fix submitted by Ben Robie in pull request 16952. GitHub-8131
- Server load has been reduced for advanced searching. Previously, when a customer entered text in the search suggestion box, Magento immediately sent every character to the server. The auto-complete box now delays sending the request. Fix submitted by Sean Templeton in pull request 16669.
- You can now successfully clone the minisearch widget. Fix submitted by Daniel Ruf in pull request 15485.
Shipping
- The shipping and estimated tax form now display country, city, and postcode fields as expected. Fix submitted by Alexander Kras’ko in pull request 16213. GitHub-8222
- A method with a misspelled name was deprecated and the new method with correct spelling added to
app/code/Magento/Multishipping/Block/Checkout/AbstractMultishipping.php
. Fix submitted by Anna Völkl in pull request 15514.
Store
- Magento now adds the correct store code to product URLs in stores with more than one store view when Stores > Settings > Configuration > General > Web > Add Store Code to Urls is set to yes. Fix submitted by Elias Kotlyar in pull request 15566. GitHub-15565
- Magento now displays store views as expected when you select Stores > Terms and Conditions. Fix submitted by afirlejczyk in pull request 14546. GitHub-13944
Elasticsearch
- Bundle products are now indexed as expected in Elasticsearch.
- Elasticsearch now correctly calculates the relevance of quick search results according to selected attribute search weights.
Admin global search
- Admin global search preview now works as expected. Previously, this feature worked inconsistently, and search results differed depending on which area was being searched (for example, Products, Categories, or Customers).
- The Admin global search now returns results that match the keyword for all available pages, or if a user searches in specific sections, the search feature now returns only the results that matched the key words in those specific sections. Previously, the Admin global search did not return results that matched the specified keywords and did not restrict results to specified sections.
- Catalogs are now correctly filtered by the Admin search bar. Previously, if you attempted to use the Search tool in the Admin, and selected “XX in Products”, Magento displayed the full catalog view without narrowing down the list. Fix submitted by Pavel in pull request 12735. GitHub-12193, GitHub-7861
Shipping
You can find Magento Shipping-specific release notes in Magento Shipping Release Notes.
- The free shipping cart price rule now works as expected when UPS shipping method is enabled and Free Shipping is set to “For matching items only”.
- The shipping progress dates displayed in tracking popup for FedEx shipping are now accurate.
Sitemap
- Sitemaps generated by
cron
no longer display/pub/
in image URLs whendocroot
is set to/pub
. Previously, if thedocroot
was set topub
andBASE MEDIA URL
was not set, the cron-generated sitemap generated incorrect image URLs.
- Magento now generates correct product URLs for sitemaps. Previously, when the Use Categories Path for Product URLs attribute was set to no in Configuration > Catalog > Search Engine Optimization, Magento generated the wrong product URL in the sitemap.
- Images in XML sitemap are no longer always linked to the primary store in a multistore deployment. Fix submitted by Steven de Jong in pull request 15689. GitHub-15588
- Split sitemaps now use the index sitemap name as a prefix. Previously, when generating large sitemaps that result in a single index sitemap and several smaller split sitemap files, the split sitemap files did not use the same name prefix as the parent. Fix submitted by James Halsall in pull request 14836.
Staging
- Banners remain assigned to a cart rule after a staging Update is applied. Previously, a banner was unassigned from the cart rule after a staging update was applied.
- Magento now rolls back updated changes to their pre-update state when a merchant deletes an active Scheduled Update. Previously, some products were removed from their assigned categories (and categories were removed from the Admin) when an active product update was deleted.
- You can now successfully re-order a configurable product. Previously, a schedule update for one configurable product affected other ordered configurable products.
- Magento no longer unexpectedly locks up CMS pages when a merchant changes a scheduler end date. Previously, when a merchant updated the end date for a CMS page after the current scheduler ended, Magento generated an error, and the merchant could no longer access any CMS page from the Admin.
- Merchants can now edit a schedule update as expected. Previously, updating schedule data removed the product from the Admin product list.
- Magento no longer deletes products from the Admin product list after a merchant deletes its active schedule update. This deletion only appeared after the scheduled update time.
- Magento no longer throws an error when a merchant edits a product from the Admin when reviews are disabled. Fix submitted by Oleksandr Kravchuk in pull request 70. GitHub-6264
- Scheduled updates to an existing group price or special price no longer remove the previously configured price. Previously, Magento removed the configured price or reverted the price to its original value after the scheduled update expired.
Store
- The
getUrlInStore()
method no longer returns URLs that contain the store code, which has shortened the extremely long URLs it previously returned. Fix submitted by Burlacu Vasilii in pull request 16468. GitHub-16273
Swatches
-
The process of switching attribute input type has been fixed, which resolves multiple issues that customers were experiencing when working with swatches, including:
-
inability to change attribute types from
swatch
todropdown
-
inability to remove swatches from existing products when changing an attribute type from
swatch
-
no updates to product attributes on the storefront. Fix submitted by Eugene Shab in pull request 12771. GitHub-9307, GitHub-11403, GitHub-11703, GitHub-12695
-
Tax
- Redundant product tax recalculation has been reduced during the loading of category pages, which has improved page loading. Fix submitted by JeroenVanLeusden in pull request 15089. GitHub-14941
- JavaScript code in the
*.phtml
file of the Tax module has been refactored to meet Magento coding standards. Fix submitted by Vishal Gelani in pull request 15343. GitHub-15352
- The
Invalid country code
error message that sometimes occurred during import of tax CSV files now includes the name of the country whose data is causing the error. Previously, the message did not identify which country’s data caused the error. Fix submitted by Adam Moss in pull request 16873.
Testing
- The
testGetIgnoresFirstSlash
method inObjectManagerTest
has been updated. Fix submitted by Prince Patel in pull request 17098.
- The
\Magento\Backup\Model\Db
model is now covered by unit tests. Fix submitted by Yaroslav Rogoza in pull request 17063.
- Corrected block name in the
Magento_Framework
test XML file. Fix submitted by Namrata in pull request 16646.
- Metadata titles in
lib/internal/Magento/Framework/View/Page/Config.php
are now covered by a unit test. Fix submitted by Lorenzo Stramaccia in pull request 16333.
- The
\Magento\Checkout\Model\Cart\CollectQuote
class is now covered by a unit test. Fix submitted by Chitoraga Eduard in pull request 16271.
Theme
- Merchants can now successfully change the applied theme. Previously, Magento displayed an error when a merchant tried to save changes to the applied theme on Content > Design > Configuration. Fix submitted by Daniel Ruf in pull request 15137. GitHub-13530
- Merchants can now successfully change the applied theme setting for a store view (Content > Design > Configuration). Fix submitted by Daniel Ruf in pull request 15137. GitHub-14968
- Changing the
@tab-content__border
variable in Blank theme now works as expected. Fix submitted by hitesh-wagento in pull request 15914. GitHub-14999
Translation
- The
translation.json
file now contains translatable strings for the phrases “Store Credit” and “Gift Card”. Previously, these strings were not translated for the shopping cart, one-page checkout, or order view in the customer account on the storefront.
- We’ve added client-side caching of
js-translation.js
.
- Removed the unused translation for
comment
tag from these files:app/code/Magento/Analytics/etc/adminhtml/system.xml
,app/code/Magento/Catalog/etc/adminhtml/system.xml
,app/code/Magento/Swatches/etc/adminhtml/system.xml
, andapp/code/Magento/Ups/etc/adminhtml/system.xml
. Fix submitted by Yaroslav Rogoza in pull request 15604.
- Added language translation capability for
comment
tags in thesystem.xml
file of the Signifyd module. Fix submitted by Yogesh Suhagiya in pull request 15364. GitHub-15361
- All previously unsupported
translate
tags in the mini cart template are now supported. Fix submitted by VitaliyBoyko in pull request 15782.
- The string for
moreButtonText
inapp/code/Magento/Swatches/view/frontend/web/js/swatch-renderer.js
can now be translated. Fix submitted by Karla Saaremäe in pull request 16190. GitHub-16079
- Added language translation capability to the Braintree module’s template file. Fix submitted by Namrata in pull request 16690.
- Added mini cart checkout-related translations that were missing from
app/code/Magento/Checkout/i18n/en_US.csv
. Fix submitted by JeroenVanLeusden in pull request 16553.
- Added language translation capability for labels in the Braintree, Multishipping, and PayPal modules. Fix submitted by Rahul Kachhadiya in pull request 15371.
- Added language translation capability for message strings in
app/code/Magento/AdminNotification/Controller/Adminhtml/System/Message/ListAction.php
andapp/code/Magento/AdminNotification/i18n/en_US.csv
. Fix submitted by Yogesh Suhagiya in pull request 15333.
UI
- The
clickableOverlay
option now works as expected, which improves the performance of modal popups. Fix submitted by virtua-pmakowski in pull request 15172. GitHub-7399
- Customers can now place orders from grouped products where the quantity of subproducts is less than one. Fix submitted by Valerij Ivashchenko in pull request 14752. GitHub-14692
- Footers now behave as expected when displaying Magento on a mobile device. Fix submitted by Chirag Matholiya in pull request 15353. GitHub-15118
- The pagination of customer group prices in Advanced Pricing when viewed on the Admin now works as expected. Fix submitted by Dmytro Cheshun in pull request 15614. GitHub-15210
- Magento now displays a caret icon as expected when a user hovers his mouse over a navigation category on a storefront. Fix submitted by Tejash Kumbhare in pull request 16082. GitHub-15220
- Users can now press the Esc button on the delete-from-cart confirmation pop-up window without generating a
jQuery
UI error. Previously, when a customer added a product to the shopping cart, then pressed the trash icon to delete it, Magento displayed this confirmation pop-up window, but threw an error when the customer pressed the window’s Esc button. Fix submitted by Alexander Kras’ko in pull request 16477. GitHub-14593
- The alignment Title and Items on the left bar has been corrected. Fix submitted by Rafael Corrêa Gomes in pull request 16984.
- The black color coding standard has been changed from
color: #000;
tocolor: @color-black;
. Fix submitted by Chirag Matholiya in pull request 17019.
- The white color coding standard has been changed from
color: #fff;
tocolor: @color-white;
. Fix submitted by Chirag Matholiya in pull request 16903.
- Minor issues with the dynamically defined
$filter
property and missing throws to PHPDocs for methods in the UI export converter classes have been corrected. Fix submitted by Dmytro Cheshun in pull request 15694.
- The
ClassMagento\Ui\Component\Control\ActionPool
constructor andgetConfiguration()
in the UI module are now invoked with the correct number of parameters. Fix submitted by Marcel Hauri in pull request 15512.
- Unneeded JavaScript was removed from
logout.phtml
and replaced with a new JavaScript component. Fix submitted by Nimesh Patel in pull request 15301
- Page wrapper CSS has been moved from media query to
.page-wrapper
. Fix submitted by Vishal Gelani in pull request 15416.
- The
font-size
variable has been updated and standardized. Fix submitted by Vishal Gelani in pull request 15421.
- Layout arguments now support for the
const
type. Fix submitted by Igor Vitol in pull request 15058.
- Button definitions have been moved to the new
buttons.js
file. Fix submitted by Jisse Reitsma in pull request 15194.
- Overlay issues with the mini cart have been resolved. Previously, if you logged in as a customer, then clicked on the mini cart icon and then the Account menu, the mini cart overlaid the Account menu. Fix submitted by Arthur James in pull request 14963.
- Magento now supports multiple
ui_components
with layout typetabs
on a page. Previously, the second UI component failed to render, and Magento displayed this error,Element with ID 'tabs_nav' already exists
. Fix submitted by Freek Vandeursen in pull request 14742.
- The order of style groups for mobile devices has been corrected. GitHub-14476
- Dynamic data rows no longer fail due to a read operation after a delete condition. Previously, Magento threw an undefined JavaScript error. Fix submitted by Chirag Matholiya in pull request 15840. GitHub-911
URL rewrites
- Categories of the Main menu in the different store view are now updated when Varnish is enabled.
- URL key values are now derived from the default value set on the default store. Previously, Magento derived the product URL key value from the product name on storeview level.
- The Magento URL rewrite functionality now supports the use of special characters in category names. Previously, the category tree did not load if a category name contained a special character. Fix submitted by Vinay Shah in pull request 13397. GitHub-13296
- An unnecessary parameter has been removed from
_addProductLinkBlock()
. Fix submitted by Saurabh Parekh in pull request 15891.
- Template files have been refactored to follow Magento coding standards. Fix submitted by Nimesh Patel in pull request 15422. GitHub-15356
- Undefined mixin parameters are now defined and variable scope has been improved in
lib/web/css/source/lib/_icons.less
,lib/web/css/source/lib/_pages.less
, andlib/web/css/source/lib/_utilities.less
. Fix submitted by Prince Patel in pull request 17097.
- Magento now removes URL rewrites as expected after you delete a CMS page through the API or in the
crontab
area. Fix submitted by Roman in pull request 14751.
- Main menu categories in different store views are now updated as expected when Varnish is enabled.
Visual Merchandiser
- Magento now maintains manual sort order and adds newly assigned products to the top of the products list. Previously, Magento reset the manual sort order and sorted products by ID.
- Saving a product no longer reverts the selected sort order for a category. Previously, after a merchant saved a product, Magento reverted the sort order that defined the display of products in that category from the defined sort order to an order defined by product ID.
Vertex
- The Gross Amount and Tax Amount columns in the Transaction Details Report file now include price and tax for products as expected.
Wishlist
- Incorrect return type hinting in DocBlocks has been corrected for several methods in the Wishlist module. Fix submitted by Yaroslav Rogoza in pull request 15854.
- Removed an unnecessary parameter from the
toHtml()
method inWishlist/view/frontend/templates/item/list.phtml
. Fix submitted by Yaroslav Rogoza in pull request 16023.
- Magento no longer thows errors when you log in using the wishlist URL. Fix submitted by Oleksandr Kravchuk in pull request 16386.
- Magento no longer removes a product from the wishlist when you update a wishlist item. Fix submitted by Chitoraga Eduard in pull request 16372.
- Magento now passes empty arrays (instead of null values) into the DataObject constructor. Previously, a null value was passed, which caused a fatal error. Fix submitted by Abhishek Jakhotiya in pull request 16220.
- The
\Magento\Wishlist\CustomerData\Wishlist::getImageData()
method DocBlock now correctly indicates that the method returns an array. Fix submitted by Yaroslav Rogoza in pull request 15718.
- Magento now displays the correct product image for the selected configurable product variant in the My Wishlist sidebar. Previously, Magento always displayed the image associated with the default configurable product in the My Wishlist sidebar. Fix submitted by kishanpatadia in pull request 15477.
Known issues
Issue: Merchants cannot save a newly created multiselect or dropdown customer attribute or edit existing customer attributes from the customer’s account on the storefront after upgrade to Magento 2.2.6.
Workaround: Download and apply Magento Commerce Support Patch MAGETWO-95591 after logging into your account from the partner portal. This issue will be fixed in Magento Commerce 2.2.7, which is scheduled for release by the end of 2018.
Issue: The catalog:image:resize
command execution time has been reduced by up to 90% in the release. However, this improvement necessitates these additional steps after upgrading your Magento instance to 2.2.6:
-
Remove
pub/media/catalog/product/cache
. The path for cached images was changed in this release, which explains why you need to clean this directory after upgrade to free up space. -
Run
bin/magento catalog:image:resize
to generate a new image cache. This step is necessary because we’ve changed the path to cached images and must remove the previously cached images.
Community contributions
This release includes substantial community contributions: over 100 GitHub issues resolved and over 350 pull requests merged. We are grateful to the wider Magento community for this effort and would like to acknowledge their contributions to this release.
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 |
---|---|---|
vinayshah | #13397 | 13296 |
DenisSaltanahmedov | #14338 | 4788 |
Karlasa | #14715 | 14669 |
Karlasa | #14716 | |
AlexandrKozyr | #12764 | 4389 |
andrewbess | #14314 | 13765 |
davidwindell | #14538 | |
FreekVandeursen | #14742 | |
unicoder88 | #14751 | |
SergeyDmitruk | #14290 | 1821 |
chrom | #14707 | |
likemusic | #14752 | 14692 |
navarr | #14769 | |
sidolov | #14790 | |
jalogut | #12410 | 11396 |
philippsander | #14719 | 9580 |
julienanquetil | #14753 | |
nit-it | #14765 | |
afirlejczyk | #14546 | 13944 |
luke-denton-aligent | #14726 | |
rodrigowebjump | #14800 | 5726 |
sidolov | #14844 | |
ankurvr | #14795 | |
bmxmale | #14833 | |
tao-s | #14627 | |
jameshalsall | #14836 | |
julienanquetil | #14839 | 14274 |
JeroenVanLeusden | #12566 | |
toddbc | #14699 | |
bmxmale | #14829 | |
hannassy | #12735 | 7861, 12193 |
jameshalsall | #14822 | 5768 |
LordZardeck | #14876 | |
Yogeshks | #14892 | |
thomas-blackbird | #14609 | |
sjb9774 | #14891 | |
rogyar | #14893 | |
Yogeshks | #14896 | |
phoenix128 | #14905 | 14855 |
rocketweb | #14820 | |
phoenix128 | #14904 | 14869 |
Yogeshks | #14928 | |
Neos2007 | #14886 | |
vovayatsyuk | #14874 | |
JeroenVanLeusden | #14923 | |
chris-pook | #14939 | |
likemusic | #14935 | |
ArtiDjeims | #14963 | |
Jakhotiya | #14946 | |
georgeschiopu | #14976 | 10395 |
shochdoerfer | #15015 | |
DanielRuf | #15018 | |
kalpmehta | #15023 | |
likemusic | #15002 | |
DanielRuf | #15012 | |
DanielRuf | #15017 | |
DanielRuf | #15016 | |
gwharton | #15020 | 12285, 15009 |
mash1t | #15032 | 13460 |
jee1mr | #15053 | |
Yogeshks | #14967 | |
Jakhotiya | #15067 | |
avstudnitz | #13904 | |
adrian-martinez-interactiv4 | #14428 | 4301, 12362, 13427 |
tkotosz | #15129 | |
rogyar | #15136 | |
vovayatsyuk | #15162 | |
Yogeshks | #15173 | |
sashas777 | #15144 | 11354 |
hostep | #15174 | 14104 |
joni-jones | #12324 | |
torreytsui | #13185 | |
JeroenVanLeusden | #14614 | |
virtua-pmakowski | #15172 | 7399 |
vovayatsyuk | #15178 | 14987 |
tdgroot | #15197 | |
dverkade | #15202 | |
DanielRuf | #15137 | 13530, 14968 |
olmer | #15256 | |
vovayatsyuk | #14994 | |
jissereitsma | #15194 | |
Yogeshks | #15249 | |
adrian-martinez-interactiv4 | #15262 | |
IgorVitol | #15058 | |
vovayatsyuk | #15133 | |
t-richards | #15269 | |
mhauri | #15282 | |
VitaliyBoyko | #15291 | |
dmytro-ch | #15292 | |
mhauri | #15276 | |
dmytro-ch | #15293 | |
NamrataChangani | #15302 | |
dmytro-ch | #15294 | |
VitaliyBoyko | #15386 | |
keithbentrup | #15265 | 15121 |
Yogeshks | #15333 | |
neeta-wagento | #15331 | 15334 |
rahul-kachhadiya | #15341 | |
vgelani | #15343 | 15352 |
saurabh-aureate | #15346 | 15355 |
sunilit42 | #15350 | 15319 |
amittiwari024 | #15351 | 15354 |
vgelani | #15362 | |
VitaliyBoyko | #15411 | |
JeroenVanLeusden | #15089 | 14941 |
KaushikChavda | #15247 | 14747 |
mhauri | #15275 | |
sanjay-wagento | #15332 | |
sanjay-wagento | #15336 | |
jignesh-baldha | #15347 | 15037 |
vgelani | #15372 | 15334 |
chirag-wagento | #15353 | 15118 |
vgelani | #15398 | |
AnshuMishra17 | #15431 | |
lewisvoncken | #15010 | |
flancer64 | #15211 | 15192 |
mhauri | #15258 | |
amjadm61 | #15340 | 13793 |
Yogeshks | #15364 | 15361 |
rahul-kachhadiya | #15371 | |
vovayatsyuk | #15409 | |
patelnimesh1988 | #15422 | 15356 |
vgelani | #15421 | |
rogyar | #15435 | |
RebeccaBrocton | #15460 | |
gwharton | #15040 | 10210 |
jalogut | #15312 | |
abcpremium | #15454 | |
vgelani | #15416 | |
dmanners | #15462 | |
mhauri | #15511 | |
avoelkl | #15513 | |
patelnimesh1988 | #15301 | |
kacperchara | #15382 | 4977 |
brian-labelle | #15499 | 15469 |
mhauri | #15512 | |
mhauri | #15515 | |
hitesh-wagento | #15459 | 14153 |
jonshipman | #15468 | 15467 |
avoelkl | #15514 | |
saurabh-aureate | #15517 | |
saurabh-aureate | #15519 | |
saurabh-aureate | #15552 | |
vgelani | #15549 | |
dverkade | #15097 | |
DanielRuf | #15305 | |
kishanpatadia | #15477 | |
krukas | #15598 | 15564 |
sanjay-wagento | #15602 | |
KarlDeux | #13328 | 10346 |
neeta-wagento | #15349 | 15348 |
saurabh-aureate | #15594 | |
julienanquetil | #15585 | 13415 |
dmytro-ch | #15615 | |
neeta-wagento | #15621 | 15590 |
hitesh-wagento | #15645 | 7897 |
EliasKotlyar | #15566 | 15565 |
dverkade | #15715 | |
rogyar | #15718 | |
dankhrapiyush | #15365 | 6058 |
DanielRuf | #15485 | |
dmytro-ch | #15614 | 15210 |
torhoehn | #15765 | 12221 |
scottsb | #12314 | |
phoenix128 | #15539 | 15510 |
dmytro-ch | #15694 | |
hitesh-wagento | #15734 | 15608 |
VitaliyBoyko | #15782 | |
chirag-wagento | #15791 | |
chirag-wagento | #15789 | |
NamrataChangani | #15795 | |
NamrataChangani | #15825 | |
chirag-wagento | #15840 | |
rogyar | #15854 | |
DanielRuf | #15871 | |
pusachev | #12626 | |
mpchadwick | #12935 | |
lewisvoncken | #15019 | 14966 |
dmytro-ch | #15297 | |
Hypo386 | #15320 | 14056 |
idziakjakub | #15322 | 11477 |
ankurvr | #15661 | 15660 |
StevenGuapaBV | #15689 | 15588 |
Radio | #15826 | 15822 |
avstudnitz | #13862 | |
saurabh-aureate | #15888 | |
NamrataChangani | #15892 | |
saurabh-aureate | #15891 | |
hitesh-wagento | #15878 | 15323 |
ledian-hymetllari | #15907 | |
hitesh-wagento | #15914 | 14999 |
StevenGuapaBV | #15936 | 15308 |
Karlasa | #15991 | |
likemusic | #16001 | |
Karlasa | #16002 | |
rogyar | #16023 | |
DanielRuf | #16048 | 16047 |
mhauri | #15647 | |
hitesh-wagento | #15811 | |
chirag-wagento | #15893 | 15213 |
dmytro-ch | #15902 | |
chirag-wagento | #15913 | |
Karlasa | #16012 | 15832 |
likemusic | #16010 | |
thomas-blackbird | #16053 | |
lfluvisotto | #16052 | |
rogyar | #16065 | |
vgelani | #16080 | |
rakesh-gangani | #15344 | 13692 |
andreagaspardo | #15534 | 15255 |
rogyar | #15604 | |
DanielRuf | #15870 | |
KaushikChavda | #15272 | |
saurabh-aureate | #15993 | |
tejash-wagento | #16082 | 15220 |
istiahailo | #16091 | |
lfluvisotto | #16144 | |
rogyar | #16160 | |
NamrataChangani | #16181 | |
NamrataChangani | #16182 | |
NamrataChangani | #16183 | |
Karlasa | #16190 | 16079 |
xpoback | #16194 | 16184 |
dankhrapiyush | #16192 | 6058 |
ronak2ram | #16206 | |
platformvaimo | #16211 | |
0m3r | #16213 | 8222 |
IvanPletnyov | #16216 | |
Jakhotiya | #16220 | |
NamrataChangani | #16230 | |
diedburn | #15521 | |
phoenix128 | #15532 | 15501 |
dverkade | #15629 | 15627 |
markoshust | #15637 | |
lfluvisotto | #16141 | |
lfluvisotto | #16215 | |
vgelani | #16247 | |
NamrataChangani | #16240 | |
itaymesh | #16250 | |
eugene-shab | #12771 | 9307, 9923, 11403, 11703, 12695 |
sanjay-wagento | #15774 | 14895 |
dmytro-ch | #15872 | |
mhaack | #15845 | |
fmarangi | #15929 | 15205, 15245 |
JeroenVanLeusden | #16286 | |
rogyar | #16300 | |
rogyar | #16306 | |
p0pr0ck5 | #13509 | |
NamrataChangani | #15339 | 15345 |
rsantellan | #16093 | |
AnshuMishra17 | #16217 | |
vasilii-b | #16279 | 7379 |
slackerzz | #16333 | |
hitesh-wagento | #16379 | 16378 |
gelanivishal | #16389 | |
nuzil | #15464 | 15218 |
DanielRuf | #16009 | |
yuriyDne | #16086 | |
eduard13 | #16372 | |
swnsma | #16386 | |
JosephMaxwell | #16438 | |
aschrammel | #16458 | |
0m3r | #16477 | 14593 |
jissereitsma | #15543 | |
gelanivishal | #16472 | |
erikhansen | #16489 | |
sanganinamrata | #16495 | |
gelanivishal | #15909 | 11717 |
Yogeshks | #16090 | |
phoenix128 | #16393 | |
LordZardeck | #16517 | |
gelanivishal | #16524 | |
sanganinamrata | #16549 | |
JeroenVanLeusden | #16553 | |
sanganinamrata | #16557 | |
mageprince | #16576 | |
sanganinamrata | #16581 | |
lfluvisotto | #16143 | |
JosephMaxwell | #16254 | |
Coderimus | #16474 | |
dankhrapiyush | #16564 | 6058 |
FreekVandeursen | #11554 | |
eduard13 | #16271 | |
torreytsui | #16540 | |
sanganinamrata | #16530 | 16529 |
Karlasa | #16559 | |
mageprince | #16584 | 15940 |
vkublytskyi | #16590 | 11717 |
mageprince | #16626 | |
sanganinamrata | #16644 | |
sanganinamrata | #16645 | |
sanganinamrata | #16646 | |
LordZardeck | #16669 | |
ronak2ram | #16678 | |
LordZardeck | #16675 | |
sanganinamrata | #16689 | |
sanganinamrata | #16690 | |
sanganinamrata | #16691 | |
AnshuMishra17 | #16711 | |
nuzil | #15479 | |
tiagosampaio | #16175 | 16174 |
phoenix-bjoern | #16408 | |
tiagosampaio | #16414 | |
nuzil | #16554 | |
likemusic | #16566 | |
rogyar | #16680 | |
swnsma | #16693 | |
quisse | #16685 | |
JRhyne | #16704 | 16703 |
sanganinamrata | #16717 | |
Karlasa | #16716 | |
sanganinamrata | #16721 | |
hitesh-wagento | #16732 | 15848 |
arnoudhgz | #16726 | |
JeroenVanLeusden | #13569 | 5067 |
simpleadm | #14379 | 14351 |
gwharton | #16599 | 10210 |
ronak2ram | #16748 | |
Karlasa | #16766 | 16764 |
mage2pratik | #16821 | |
ronak2ram | #16831 | |
hostep | #16435 | |
gelanivishal | #16595 | 6058 |
ronak2ram | #16845 | |
hryvinskyi | #16861 | |
ronak2ram | #16872 | |
adampmoss | #16873 | |
ronak2ram | #16916 | 5316 |
Karlasa | #16579 | |
aleron75 | #16707 | |
FreekVandeursen | #16785 | |
GraysonChiang | #16841 | |
Ethan3600 | #16840 | |
AnshuMishra17 | #16851 | |
likemusic | #16882 | |
lfluvisotto | #16880 | |
likemusic | #16889 | |
mage2pratik | #16891 | |
torhoehn | #16890 | |
tiagosampaio | #16899 | |
chirag-wagento | #16903 | |
tiagosampaio | #16924 | |
ihor-sviziev | #16937 | |
GlennCheng | #16928 | |
ronak2ram | #16978 | |
mage2pratik | #16977 | |
mage2pratik | #16980 | |
mageprince | #17002 | |
AnshuMishra17 | #16560 | |
ronak2ram | #16863 | 16843 |
sean-wcb | #16883 | |
hryvinskyi | #16900 | |
tiagosampaio | #16921 | |
osrecio | #16946 | |
DanielRuf | #16965 | |
chirag-wagento | #17019 | |
brobie | #16952 | 8131 |
tejash-wagento | #16959 | 14476 |
likemusic | #16971 | |
mage2pratik | #16988 | |
rafaelstz | #16984 | |
denistrator | #17006 | 15118 |
likemusic | #17027 | |
rogyar | #17063 | |
mage2pratik | #17077 | |
mageprince | #17097 | |
mageprince | #17099 | |
mageprince | #17098 | |
denistrator | #17114 | |
angelomaragna | #17129 | |
rogyar | #17137 | |
kreativedev | #17151 | |
simonjanguapa | #15687 | 15393 |
rogyar | #16401 | 3535, 14517 |
vasilii-b | #16468 | 16273 |
woutersamaey | #17124 | |
cmtickle | #17163 | |
tiagosampaio | #17035 | |
tiagosampaio | #17227 |
Partner contributions
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).
System requirements
Our technology stack is built on PHP and MySQL. For details, see Technology stack requirements.
Installation and upgrade instructions
See How to get the Magento software for complete installation and upgrade information.
Migration toolkits
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.2.x. The command-line interface includes scripts for converting Magento 1.x modules and layouts.