We are pleased to present Magento Open Source (formerly Community Edition) 2.1.8. This release includes important enhancements to your Magento software.
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.
- 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. GitHub-6116
- 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. GitHub-6867
- 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_bordersparameter wasn’t enabled. The product image is now displayed correctly.
- The product attribute
category_idscan have only Global scope. Previously, you could change the scope value of
- 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. GitHub-5618
- When you deselect one or more of a product’s multi-select attributes, Magento now saves these changes correctly. GitHub-7687
- 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. GitHub-3545, GitHub-5485, GitHub-4910
- Product link types are no longer hardcoded. Fix submitted by community member Rafael Kassner in pull request 9601.
- 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. GitHub-6138
- Magento now preserves image transparency when resizing images. Fix submitted by community member Rafael Kassner in pull request 9662.
- The value of
item_zoneon the product detail page now remains set correctly when you change products via the related/upsell products list. GitHub-9562, GitHub-6746 Fix submitted by community member @Pieter Hoste.
- 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. GitHub-7497, GitHub-9485 Fix submitted by community member @Ilia Rachkulik in pull request 9485.
- Magento now highlights in any red fields that are missing shipping information when you proceed to checkout. Fix submitted by community member Pieter Hostein pull request 9500.
- 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. GitHub-5547
- 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.
- 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 rulenow 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.GitHub-5988
- 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. GitHub-7401
- 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. GitHub-3860
- 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. GitHub-4232 Fix submitted by community member Pieter Hoste in pull request 9333.
- 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. GitHub-4427 Fix submitted by community member @latenights in pull request 9324.
- The WYSIWYG editor now performs more consistently. GitHub-4828, GitHub-6222, GitHub-6815 Fix submitted by community member Pieter Hoste in pull request 9499.
- The email logo image function now works as expected. GitHub-5352, GitHub-5633, GitHub-5916 GitHub-6275, GitHub-9590 Fix submitted by community member Pieter Hoste in pull request 9590.
- 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. GitHub-6866 Fix submitted by community member Pieter Hoste in pull request 9571.
- We resolved an issue where interface constructors broke Magento compilation.GitHub-8607 Fix submitted by community member @LoganayakiK in pull request 9524.
- You can now set a negative quantity for a product. GitHub-9139, GitHub-7401Fix submitted by community member Poogudivanan in pull request 9139.
- Magento no longer caches layered navigation options with the wrong store ID.GitHub-9679 Fix submitted by community member Pieter Hoste in pull request 9704.
- Magento now correctly displays user names that exceed 20 characters.
- You can now upload
.icoimages as fav icons without error. Fix submitted by community member Michele Fantetti in pull request 8880.
- Dynamic dragging-and-dropping of rows now works correctly. Fix submitted by community member Navarr Barnier in pull request 9376.
- We’ve removed a previously published fix that corrected a problem using the TinyMCE editor to select and edit images. GitHub-9518 Fix submitted by community member Pieter Hoste in pull request 9655.
- Resolved issue with selecting widgets in TinyMCE. GitHub-9655, GitHub-9518Fix submitted by community member Pieter Hoste in pull request 9540.
- The Store Configuration page (Stores > Configuration) now loads templates for Change Email and for Change Email and Password forms. Fix submitted by community member Rafael Kassner in pull request 9661.
- 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:
- 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. GitHub-6079
- 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. GitHub-4291, GitHub-9469
- Magento now allows comma-separated X-Forwarded-For headers. This modification ensures that the correct client IP can be returned if the
getRemoteAddressmethod gets one via the
alternativeHeadersvariable. (Magento accomplishes this by getting the first IP in the list after detecting for a comma-separated IP list.) Fix submitted by community member Rafael Kassner.
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_incrementsetting in the database is greater than 1. Previously, when the
auto_incrementvalue exceeded 1, upgrade failed with this error: “The page URL key contains capital letters or disallowed symbols.
setup:di:compilecommand no longer fails under these circumstances: 1)
magento/data-migration-toolis a regular dependency; 2) you have not installed the
devdependencies with Composer (
- 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_memorysetting. Previously, when Redis met the limit specified in this setting,
ScopeConfigreturned 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).
- 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. GitHub-8644
- 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. GitHub-9451
- 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.
- 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. GitHub-6296
- 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. GitHub-4868, GitHub-6997, GitHub-9364 Fix submitted by community member Pieter Hoste in pull request 9365.
- We’ve improved the algorithm that controls how URL rewrites on the Category Save page are processed.
- Magento now successfully defines extension attributes for a quote billing address. GitHub-9646 Fix submitted by community member Eero Kuusela in pull request 9647.
- The website column in Customer Segment report now contains correct data. Previously, this column was blank in the Reports > Customer > Segmentsreport.
- You can now successfully export the Low Stock report. GitHub-9428 Fix submitted by community member Jayakanth Rajan in pull request 9487.
- We’ve changed the severity of some errors from critical to info in
var/log/system.log. GitHub-5627 Fix submitted by community member @malachy-mcconnnell.
- You can now successfully install Magento with sample data whenauto_increment_increment is set to 3 in the
optionsfile. 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.
- Segmentation faults no longer occur when doing a
catalogsearch_fulltextre-index, and indexing succeeds. Previously, in a large database (more than 70,000 products), the
catalogsearch_fulltext(MySQL) re-index failed with a
Segmentation faultmessage. GitHub-7963
- Sorting configurable products by price now works as expected when a simple product has a special price. GitHub-4778
- 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_idattribute nonsearchable. Previously, Magento displayed a 503 error under these circumstances.
- 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.
- 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.
- 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. GitHub-7153