Highlights
Magento 2.1.8 contains over 100 functional fixes and enhancements as well as pull requests from the community. Look for the following highlights in this release:
- multiple enhancements to static content deployment and generation
- improvements to indexing of large catalogs, cache tuning, and **URL re-writes
- reduction in the amount of memory that mass actions require, and performance optimization
- faster deployments for multi-language sites
What’s new in these release notes?
With this release, we’re inaugurating a new feature of our release notes: descriptions of community-supplied code fixes that were submitted through the Community Engineering program. Thank you, community members!
If a community member has provided a fix, we identify the fix with the phrase, “Fix provided by community member @member_name”. We’ve also included a table that identifes the GitHub issue, PR, and community member who created that PR.
Fixed issues and enhancements
This release includes both improvements we’ve made internally and those submitted by the community through our Community Engineering program.
Catalog
- You can now create a custom attribute for a category that successfully uploads a custom image. Previously, you could create the attribute, but could not save the image.
- The prices you assign to custom options no longer change unexpectedly after you save them.
- Magento now correctly displays product information after you perform an operation on more than one item. Previously, product information was not correctly aligned on the page.
- The currency switcher now works for widgets on the home page. Previously, if your website supported multiple currencies, the currency switcher did not update the currencies for widgets on the home page.
- The Category page now displays the correct total count of products.
- When you delete an image in Admin, Magento no longer deletes it on the server. Previously, Magento deleted it from the server as well, which caused errors for other products (example error message:
Cannot gather stats! Warning!stat(): stat failed for
). - Magento now displays the price for a product for the store view level only. Previously, the category listing page showed the default store view price as well as the prices from other store views.
- Magento previously displayed a 404 error message instead of a product image when the
product_image_white_borders
parameter wasn’t enabled. The product image is now displayed correctly. - The product attribute
category_ids
can have only Global scope. Previously, you could change the scope value ofcategory_ids
to Store. - The Use default URL Key setting now works on the store-view level.
- Magento now displays the correct image when you switch between a configurable product’s options. Previously, Magento loaded product images from a different product.
- You can now successfully set an SKU mask to empty. Previously, when a product SKU mask was set to empty, Magento experienced problems loading the Product Add page.
- When you deselect one or more of a product’s multi-select attributes, Magento now saves these changes correctly.
- Magento now correctly assigns images to duplicated products.
- You can now create a blank attribute option using the drop-down input option on products that do not require an attribute.
- Product link types are no longer hardcoded.
- Magento now renders images as expected in the product description area. Previously, Magento did not render images in this area, and would display a broken link.
- Magento now preserves image transparency when resizing images.
- The value of
item_zone
on the product detail page now remains set correctly when you change products via the related/upsell products list.
Checkout
- You can complete your order after entering a new shipping address during checkout. Previously, Magento would not let you place an order if you entered a new shipping address during checkout.
- Shipping method radio buttons are no longer disabled when the Checkout page is refreshed.
- Magento now highlights in any red fields that are missing shipping information when you proceed to checkout.
Configurable products
- Magento no longer removes the simple products associated with a configurable product if you click on the Save button more than once while saving the configurable product. Previously, if you clicked on Save more than once during an attempt to save a configurable product, Magento removed the simple products that were assigned to it.
- Magento now correctly matches images to products. Previously, after you selected a configurable product, Magento displayed the images for another product. Magento now correctly displays both configurable and simple products, their attribute values, and visibility values after import if SKU is an integer.
- Magento now provides swatch input for the Admin Scope, and the attribute fall back mechanism now reverts to the default option value if no values are specified for specific store view.
- Color swatches are now replaced by images on the Catalog and Product pages.
General
- Reindexing no longer fails due to mmap memory allocation issues when reindexing many (1,000,000) customers. Previously, when initiating reindexing through System > Index management, reindexing failed.
- Magento now successfully uploads the thumbnail images for email logos that are used in transactional emails. Previously, these thumbnail images were not displayed.
- Visual Merchandiser
Match products by rule
now works as expected. - The Print Shipping Label link now displays on the product front end. Previously, the layout for the “Shipping and Tracking” block did not work properly. Magento now displays Up-sells on the Product page.
- Magento no longer sends email when the Disable email communication setting is set to yes. Previously, Magento sent email even when this setting was enabled.
- The Cart Price rule now affects coupon life as expected. Previously, coupons did not persist longer than the current date if they did not have a designated end-date.
- SalesRule now applies to auto-generated coupon codes as expected.
- Static file generation is no longer affected by a race condition that affected merging CSS files. Previously, this race condition interfered with the proper generation of the product front end.
- Magento now supports negative values in Quantity field for a product.
- Magento now uses the address template from store view level of the placed order (similar to how order confirmation email works). Previously, Magento used the wrong address template for order e-mails.
- Directive values can now be escaped with quotation marks. Previously, all characters after quotation marks were removed after a save, which resulted in the failure to save widget conditions.
- Magento no longer permits a shopper to place a re-order once you’ve disabled one of items in the order.
- We’ve updated UK mobile phone number validation.
- Cart Price rules are now applied as expected to payment method conditions. Previously, discounts set in Cart Price rules were not applied during checkout.
- Customers can no longer apply a coupon code twice. Previously, the “Uses per Coupon” limit did not work for auto-generated coupons.
- Widgets now accept UTF-8 special characters type as input parameters. Previously, you could successfully create a widget, but UTF-8 special characters were broken.
- Magento now saves a new product rule when its SKU attribute is enabled for Use for Promo Rule Conditions. Previously, you could not save a new rule under these conditions.
- You no longer need to delete the URL rewrite to force Magento to display links after adding pages to the CMS hierarchy. Previously, when you added new pages to the CMS hierarchy, Magento did not show the links to the new pages until you deleted the URL rewrites.
- Magento front-end scope filters now work as expected. Previously, Magento did not reload product information correctly when you applied a filter using Catalog > Product.
- You can now remove breadcrumbs without removing the page meta title from the category view and product view pages. Previously, the page meta title is visible only if the breadcrumbs block was defined in XML.
- The WYSIWYG editor now performs more consistently.
- The email logo image function now works as expected.
- The login popup window now works as expected in portrait mode on an iPad. GitHub-6451 Fix submitted by community member Ihor Sviziev in pull request 9396.
- Wishlists now display the correct product price.
- We’ve fixed a JavaScript error on Product page that prevented Magento from updating color swatches or updating product prices correctly.
- We resolved an issue where interface constructors broke Magento compilation.
- You can now set a negative quantity for a product.
- Magento no longer caches layered navigation options with the wrong store ID.
- Magento now correctly displays user names that exceed 20 characters.
- You can now upload .apng and .ico images as fav icons without error.
- Clicking Insert image twice on the Add Banner page no longer produces a JavaScript error.
- Dynamic dragging-and-dropping of rows now works correctly.
- We’ve removed a previously published fix that corrected a problem using the TinyMCE editor to select and edit images.
- Resolved issue with selecting widgets in TinyMCE.
- The Store Configuration page (Stores > Configuration) now loads templates for Change Email and for Change Email and Password forms.
Import/Export
- We’ve fixed an issue where product URL keys (for SKUs) were not auto-generated as expected during import.
- We’ve improved the import speed of advanced pricing data. Previously, the import process for this information frequently stopped after the import of approximately 300 rows of data, and Magento displayed this message:
Please Wait
. - Magento now maintains super attribute ordering of configurable products with multiple super attributes after export or import. Previously, after import or export, the ordering of super attributes was not maintained.
- Magento now exports rows only once when product information contains HTML special characters. Previously, Magento exported rows containing product information that included HTML characters at least twice.
- Magento now imports customer data as expected after the data passes the pre-import validation step. Previously, although data passed this validation step, an error would occur during import, and Magento displayed this message:
Invalid data for insert
. - Magento now allows comma-separated X-Forwarded-For headers. This modification ensures that the correct client IP can be returned if the
getRemoteAddress
method gets one via thealternativeHeaders
variable. (Magento accomplishes this by getting the first IP in the list after detecting for a comma-separated IP list.)
Installation and deployment
- Static content deployment (SCD) now works when multiple languages are specified. Previously, Magento displayed an error if you tried to deploy static content in more than one language (for example,
bin/magento setup:static-content:deploy en_CA fr_CA de_DE
). - Static content deployment now generates secure content, whether content included secure or non-secure URLs.
- Magento now moves the
sequence_*
table to the correct database after implementing a split database. - You can now upgrade Magento 2.0 to version 2.1.x when the
auto_increment
setting in the database is greater than 1. Previously, when theauto_increment
value exceeded 1, upgrade failed with this error: “The page URL key contains capital letters or disallowed symbols. - The
setup:di:compile
command no longer fails under these circumstances: 1)magento/data-migration-tool
is a regular dependency; 2) you have not installed thedev
dependencies with Composer (--no-dev
). - Nginx now redirects to the setup page when using port 81.
- Configuration values no longer return NULL when Redis reaches the limit set in the
max_memory
setting. Previously, when Redis met the limit specified in this setting,ScopeConfig
returned a value of NULL for configuration options, which resulted in significant damage to data (for example, deleting all prices assigned to a website from the database).
Order management
- We’ve improved the performance of page loading when the order page contains many items.
- Only users with permission to view a store can view or process the orders placed on it.
- The purchase date of an order is now displayed in the default time zone of the store and is the same date that is displayed in the Order creation page.
- Previously, the Order table displayed an incorrect purchase date for the order.
- Magento no longer generates incorrect URLs in the site map when the Use Secure URLs in Admin setting is set to Yes.
- Free shipping promotions no longer apply after you’ve removed the item that qualified for free shipping from your order. Previously, you could remove the qualifying item, and free shipping was still applied to the remaining order.
- Magento now correctly identifies an order being processed when it is placed in a store configured for multiple currencies. Previously, these orders always were identified as potentially fraudulent.
Payment methods
- Magento now permits you to run reference transactions in a different currency than the currency that the authorization uses. Previously, Magento did not support sending authorizations in any currency other than U.S. dollars.
- Magento now displays payment information when you review an order from the Magento Admin. Previously, if you viewed an order via Sales > Orders from the Magento Admin, the payment information would be missing.
- PayPal Express payments no longer fail when there is adequate product inventory to cover your order. Previously, you’d receive this error message:
We can't place the order
.
Performance
- We’ve optimized the performance of mass actions resulting in faster response time and reduced memory usage.
- We’ve improved checkout speed by removing unused Widget JS, Widget Configuration, and regions based on your stores configuration to reduce asset load on checkout pages.
- We’ve improved the algorithm that controls how URL rewrites on the Category Save page are processed.
Quotes
- Magento now successfully defines extension attributes for a quote billing address.
Reports
- The website column in Customer Segment report now contains correct data. Previously, this column was blank in the Reports > Customer > Segments report.
var/log/system.log
.Sample data
- You can now successfully install Magento with sample data when auto_increment_increment is set to 3 in the
options
file. Previously, installation completed successfully, but Magento displayed this error:Something went wrong while installing sample data. Please check var/log/system.log for details. You can retry installing the data now or just start using Magento
.
Search
- Segmentation faults no longer occur when doing a
catalogsearch_fulltext
re-index, and indexing succeeds. Previously, in a large database (more than 70,000 products), thecatalogsearch_fulltext
(MySQL) re-index failed with aSegmentation fault
message. - Sorting configurable products by price now works as expected when a simple product has a special price.
- Out-of-stock items no longer erroneously appear in results of layered navigation if that product option is out-of-stock.
- You can render the
tax_class_id
attribute nonsearchable. Previously, Magento displayed a 503 error under these circumstances.
Shipping methods
- We’ve resolved an issue where Magento did not display applicable flat-rate USPS box methods during checkout. GitHub-6798
- You can now apply free shipping to a specified shipping method when you create order in the Admin. Previously, if you set up a price rule to provide free shipping for one specific shipping method (for example, table rates), Magento applies the rule on the front end only, but not on the Admin order creation page.
Tax
- Magento now correctly calculates tax and order totals when a discount is used for prices that include tax and catalog prices excluding tax. Please note this is not a valid tax configuration and can introduce rounding errors.
Web API
- You can now use REST to successfully update customer information without unintentionally deleting default billing and shipping address information.
- You can now use REST to add video to a product description.
Thank Magento.com Community for providing all of us these useful information!