Magento Commerce 2.1.8 Release Notes

Code released: August 9, 2017

Page updated: August 14, 2017

We are pleased to present Magento Commerce (formerly Enterprise 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 Elasticsearch performance, 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 identifies 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_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 of category_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. 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.
  • 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_zone on 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.


  • Your gift wrapping selection now appears in the shopping cart regardless of whether you’ve selected a shipping method. Previously, Magento did not display your gift wrapping choice until you selected a shipping method.
  • 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.
  • Magento now highlights in any red fields that are missing shipping information when you proceed to checkout. Fix submitted by community member Pieter Hoste in pull request 9500.

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. 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. GitHub-5143, GitHub-5142
  • 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 > Tools > 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 frontend. 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 frontend.
  • 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 displays the gift wrap tax when no gift wrap is selected.
  • You can now apply gift wrapping to a Grouped product.
  • 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 frontend scope filters now work as expected. Previously, Magento did not reload product information correctly when you applied a filter using Catalog > Product.
  • We fixed an issue where cache-misses sometimes occurred when Fastly cache was implemented. Previously, the header information included in the response sometimes prevented the caching of this page. To minimize this potential problem, Magento now does not include header empty of real content in the response.
  • 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 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.
  • We’ve fixed a JavaScript error on Product page that prevented Magento from updating color swatches or updating product prices correctly. GitHub-7959 Fix submitted by community member Abhisek Pandey in pull request 7959.
  • We resolved an issue where interface constructors broke Magento compilation. GitHub-8607 Fix submitted by community member @LoganayakiK in pull request 9524.
  • 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 usernames that exceed 20 characters.
  • You can now upload .apng and .ico images as fav icons without error. Fix submitted by community member Michele Fantetti in pull request 8880.
  • Clicking Insert image twice on the Add Banner page no longer produces a JavaScript error. Fix submitted by community member Pieter Hoste in pull request 9332.
  • Dynamic dragging-and-dropping of rows now works correctly. Fix submitted by community member Navarr Barnier in pull request 9376.
  • The Store Configuration page (Stores > Settings > 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 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.

Gift cards

  • Customers can no longer exceed a gift card balance by using the gift card twice.
  • You can now save the configuration settings of a gift card product.


  • We’ve fixed an issue where product URL keys (for SKUs) were no 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. 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 getRemoteAddress method gets one via the alternativeHeaders variable. (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_increment setting in the database is greater than 1. Previously, when the auto_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 the dev 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. 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. GitHub-4263

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. 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 > Segments report.
  • 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-mcconnell.

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.
  • Elasticsearch does not throw errors when there are more than 100 searchable attributes or when user-defined price attributes are marked searchable.
  • 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), the catalogsearch_fulltext (MySQL) re-index failed with a Segmentation fault message. 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.
  • We’ve resolved an issue where grouped products were not displayed in category pages when Elasticsearch was used as the search engine.
  • 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 frontend only, but not on the Admin order creation page.


  • Magento now displays the correct date and time for staging updates. Previously, when your current time in Daylight Saving time, and your target time was in Standard time, your target time was incorrect.
  • You can now create a new scheduled update for a product. Previously. when you tried to create an update, Magento displayed this error: Uncaught TypeError: Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node'.
  • You can now change the end time of an active update.
  • The staging dashboard now loads without error when you sort by status on the dashboard. Previously, the staging dashboard broke and remained in an infinite loop when you attempted to sort by status on the dashboard.
  • The view/edit option for a scheduled change is now available for the duration that the scheduled change is in progress. Previously, you could not view or edit a scheduled change when it was in progress, which left no way to edit or remove it.


  • 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

Community contributions

We are grateful to the wider Magento community and would like to acknowledge their contributions to this release.

The following table identifies contributions from our community members. This table lists the external pull requests, the GitHub issue number associated with it (if available), and the community member who contributed the pull request.

Pieter Hoste
Pull request Related GitHub issue Contributing community member
8880 N/A Michele Fantetti
9092 (GITHUB-5627) @malachy-mcconnell
9324 (GITHUB-4427) @latenights
9332 N/A Pieter Hoste
9333 (GITHUB-4232) Pieter Hoste
9364 (GITHUB-4868), (GITHUB-6997), (GITHUB-9364) Pieter Hoste
9365 d> (GITHUB-4868), (GITHUB-6997), (GITHUB-9364) Pieter Hoste
9376 N/A Navarr Barnier
9396 (GITHUB-6451) Ihor Sviziev
9485 (GITHUB-7497), (GITHUB-9485) Ilia Rachkulik
9487 (GITHUB-9428) Jayakanth Rajan
9499 (GITHUB-4828), (GITHUB-6222), (GITHUB-6815) Pieter Hoste
9500 N/APieter Hoste
9524 (GITHUB-8607) @LoganayakiK
9571 (GITHUB-6866) Pieter Hoste
9590 (GITHUB-5352), (GITHUB-5633), (GITHUB-5916), (GITHUB-6275), (GITHUB-9590) Pieter Hoste
9601 N/A Rafael Kassner
9647 (GITHUB-9646) Eero Kuusela
9653 N/A @kassner
9655 (GITHUB-9518) Pieter Hoste
9660 N/A Rafael Kassner
9661 N/A Rafael Kassner
9662 N/A Rafael Kassner
9704 (GITHUB-9679) Pieter Hoste
9770 (GITHUB-9139) Poogudivanan
9776 (GITHUB-7959) Abhisek Pandey
9841 (GITHUB-9562), (GITHUB-6746) Pieter Hoste
10011 N/A Joe Constant

System requirements

Our technology stack is built on PHP and MySQL. For more information, see System Requirements.

Install the Magento software

See one of the following sections:

Get Magento Commerce using Composer

Magento Commerce (formerly Enterprise Edition) is available from Before installing the Magento Commerce software using Composer, familiarize yourself with these prerequisites, then run:

composer create-project --repository= magento/project-enterprise-edition=<version> <installation directory name>

where <version> is 2.1.0, 2.1.1, and so on

For example, to install 2.1.1 in the magento2 directory:

composer create-project --repository= magento/project-enterprise-edition=2.1.1 magento2

Get Magento Commerce using a compressed archive

The following table discusses where to get the Magento software. We provide the following downloads:

  • Magento Commerce software only
  • Magento Commerce software with sample data (designed to help you learn Magento faster)

These packages are easy to get and install. You don’t need to use Composer, all you need to do is to upload a package to your Magento server or hosted platform, unpack it, and run the web-based Setup Wizard.

Archives are available in the following formats: .zip, .tar.bz2, .tar.gz

To get the Magento Commerce archive:

  1. Go to your account on
  2. Log in with your Magento username and password.
  3. In the left navigation bar, click Downloads.
  4. In the right pane, click Magento Commerce 2.X > Full Release or Magento Commerce 2.X > Full Release + Sample Data for the software.
  5. Follow the instructions on your screen to complete the Magento Commerce download:

    • Magento-EE-<version>.* (without sample data)
    • Magento-EE-<version>+Samples.* (with sample data)
  6. Transfer the installation package to your development system.

Complete the installation

After you get the Commerce software:

  1. Set file system ownership and permissions.
  2. Install the software:

Upgrade from an earlier version

To upgrade to Magento Commerce 2.1 from an earlier version, see Upgrade to Magento version 2.1 (June 22, 2016).

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.0.x. The command-line interface includes scripts for converting Magento 1.x modules and layouts.


Dear community members, thank you for your suggestions and bug reports.