Magento Commerce 2.2.2 Release Notes

Patch code and release notes published on December 12, 2017.

Release notes updated on January 5, 2018.

We are pleased to present Magento Commerce 2.2.2. This release includes new tools and numerous functional fixes and enhancements, plus a substantial number of contributions from the wider Magento community.

Highlights

Look for the following highlights in this release:

  • Significant new features that streamline the customer experience and provide merchants with greater insight into their online business.

  • Numerous fixes and enhancements to core features, including significant improvements to the payment process.

  • Ninety-six community-submitted bug fixes and multiple pull requests.

New Features

  • Advanced Reporting powered by Magento Business Intelligence. Access easy-to-use order, product, and customer reports right from the Magento Admin to gain new insights and enable data-driven decision making. See Advanced Reporting for more information.

  • Magento Shipping (powered by Temando). This new feature provides integrated advanced multi-carrier shipping and fulfillment. (In addition to these release notes, you can find Magento Shipping-specific release notes in Magento Shipping Release Notes.)

  • Streamlined Instant Purchase checkout (contributed by Creatuity). Our new streamlined Instant Purchase option uses previously stored payment credentials and shipping information to bypass steps in the checkout process. See Instant Purchase module for more information.

  • Integrated dotmailer marketing automation software. Magento is one of the first ecommerce solutions to include the dotmailer marketing automation with their core product. See Email Marketing Automation.

  • Magento Functional Testing Framework. The Magento Functional Testing Framework (MFTF) is our open-source, cross-platform testing solution. Its purpose is to facilitate functional testing and minimize efforts to perform regression testing. See Introduction to Magento Functional Testing Framework.

Looking for more information on these new features as well as many others? Check out Magento 2.2 Developer Documentation and the Magento Commerce User Guide.

Fixes and enhancements

  • Significant enhancements for payment methods. We’ve added support for the Indian Rupee (INR) to PayPal Express Checkout. We’ve also added a fix for an issue where some Braintree refunds did not work.

  • Improvements to multi-storeview sites. Switching store views multiple times no longer results in an error on the storefront.

  • New functionality for the command-line interface. We’ve added interactivity to the admin:user:create command and added the ability to handle CLI setup interactively (with prompts).

  • You can now use the Enter key (in addition to a mouse click) to search tables in the Admin.

  • Magento no longer creates duplicate shipments when merchants create shipments with bundled products via API.

Fixed issues

Installation, setup, and deployment

  • We’ve increased the memory_limit of the .user.ini files to 2GB. GitHub-11322
  • The contents of the js-translation.json files are now correct when you deploy static content with multiple locales.
  • All cron dates are now saved in a single format and displayed according to user preference or needs. GitHub-4237
  • Static versioning and minification no longer break email font styles. GitHub-8241
  • You can now successfully upgrade from from 2.1.x to 2.2.0. Previously, when you tried to upgrade from 2.1.9 to 2.2.0, Magento displayed the postcode is a required field error message, and setup:upgrade failed. Fix submitted by Mr. Lewis in pull request 11651. GitHub-11095
  • We’ve replaced FollowSymLinks with SymLinksIfOwnerMatch in the htaccess templates. GitHub-10811
  • configVariables now contains a variable for VAT numbers. Fix submitted by Jeroen in pull request 11486. GitHub-10996
  • We’ve fixed an issue with using the command line to install or remove crontab. Previously, installing or removing crontab via the command line appended 2>&1 to entries, even those not related to Magento. Fix submitted by @adrian-martinez-interactiv4 in pull request 11591. GitHub-11586
  • You can now install and uninstall cron via the bin/magento cron:install command. Fix submitted by @adrian-martinez-interactiv4 in pull request 11359.
  • The admin:user:create command now recognizes the configured table prefix. Fix submitted by Oscar Recio in pull request 11199. GitHub-11176
  • The default cron success or failure history is now seven days. Fix submitted by Max Chadwick in pull request 11505.
  • The admin:user:create command now asks for the input value if a required option is not passed. Fix submitted by Christian Münch in pull request 11510.
  • The .user.ini files at /.user.ini and /pub/.user.ini now specify a memory_limit value of at least 1G to 2G for debugging purposes. Fix submitted by Mr. Lewis in pull request 11734. GitHub-11322
  • The setup:install command now has an -i flag. It validates parameters interactively. Fix submitted by Denis Ristic in pull request 11425.
  • Magento now restarts cron jobs as needed after a cron job was terminated during execution.

Catalog

  • You can now enter strings that exceed 255 characters in Admin or frontend input fields. Previously, Magento saved only the first 255 characters of a long input string. GitHub-6238
  • Magento now renders color attribute swatches correctly for the search result page if sorting for color attribute is enabled. Fix submitted by Roman K. in pull request 12077. GitHub-10628
  • The \Magento\Quote\Model\ResourceModel\Quote\Item\Collection now returns items that have only existing relations in the catalog_product_entity table. Previously, Magento loaded quote items with non-existing products.
  • Magento no longer duplicates attribute option values. Previously, Magento did not confirm the uniqueness of an attribute option value if you created it using REST. GitHub-8846
  • Magento now saves the correct background color for images. Previously, product images always had a black background when using the Luma theme. GitHub-8799
  • You can now save a product custom option price with a value of 0 (zero) by simply not entering a price. Fix submitted by Raul Mateos in pull request 11843. GitHub-4808
  • You can now assign products to categories if those products are already assigned to the category tree. GitHub-8970
  • The apply_to setting for attributes is no longer hard-coded. GitHub-7225
  • The Add to cart checkboxes in Related Products are no longer visible on the storefront when $canItemsAddToCart is set to false. Fix submitted by Marc Rodriguez in pull request 11610. GitHub-6891
  • You can now successfully save and duplicate a simple product. Previously, when you clicked the Save and Duplicate option for an existing simple product in the Catalog Manager, Magento did not duplicate the product, but threw an error. Fix submitted by Roman K. in pull request 12001. GitHub-11532
  • The Magento Admin Product Edit page now displays product alerts as expected. Fix submitted by Raul Mateos in pull request 11445. GitHub-10007
  • The StockItemCriteriaInterface method setProductsFilter now accepts an array of IDs. Previously, this method accepted either a single integer or an array, but returned only one item. Fix submitted by Kirill Morozov in pull request 11500. GitHub-7678
  • The $sortByPostion flag has been added to the getChildren() method. Fix submitted by Denis Ristic in pull request 11342. GitHub-11310
  • ProductRepository SKU cache is no longer corrupted when cacheLimit is reached . Fix submitted by Thomas in pull request 11553.
  • Magento no longer displays the perpetual spinner when you switch custom options types in the Product Edit page. Fix submitted by Paul Briscoe in pull request 11824. GitHub-10291

Cart and checkout

  • The default shipping-save-processor now has a payload extender. This feature allows third party extensions to modify the payload for the shipping address selection process. As a result, developers can now add extension_attributes while minimizing potential extension conflicts. Fix submitted by Navarr Barnier in pull request 11249.
  • You can now view the Products in cart report if the cart contains a bundle or a grouped product. Previously, when you viewed the Products in Cart report, Magento threw an exception under these conditions. GitHub-12079
  • Magento now recognizes zip codes without spaces for addresses located in the Netherlands. GitHub-11898
  • We’ve improved cache control headers.
  • Magento no longer throws an exception when you place an order using a new address. Previously, Magento displayed this error, An error occurred on the server. Please try to place the order again.. GitHub-10583
  • Magento now includes the Filter Groups and the Sort Order of the $searchCriteria parameter in the searchCriteria Object that is provided for the EAV set repository. Fix submitted by David Verholen in pull request 11421. GitHub-11022
  • Magento no longer sets the product price to zero when you use REST to add a product to an empty cart. Previously, Magento displayed an error when you used REST to populate an empty cart. Fix submitted by Peter Jaap Blaakmeer in pull request 11458. GitHub-2991, GitHub-2991
  • You can now translate the placeholder text for the checkout password field. Fix submitted by Jeroen in pull request 11493.
  • Magento now redirects a user to the checkout page if he logs in after selecting the Checkout button. Previously, a user was redirected to the store home page. Fix submitted by @p-bystritsky in pull request 11876. GitHub-10834

Configurable products

  • Magento\ConfigurableProduct\Model\Product\Type\Configurable:::loadUsedProducts no longer ignores array keys that are returned by product collections. GitHub-11880

Frameworks

  • The NGINX configuration sample now contains a health check. Fix submitted by Andrew Howden in pull request 11690. GitHub-11157
  • Magento now allows underscore characters in module names and also permits their use when modules add a block to the layout via XML. Previously, Magento did not support underscore characters in module names to be added to the layout via XML. Fix submitted by Ben Tideswell in pull request 11765.
  • You can now save using the mass action Update attributes option when multiselect attributes are set. Fix submitted by Manu Gonzalez Rodriguez in pull request 11349. GitHub-11329

App framework

  • Magento now correctly handles all meta keywords and description in categories and in every product in locales that use non-Latin characters. GitHub-10682
  • You can now include negative values in an XML export file and open the file with Office XML handler. Previously, the export files did not open correctly, and an Office XML handler error log was created. Fix submitted by HausO in pull request 11757. GitHub-11729, GitHub-11729
  • Magento now supports the setting of HTTP response status code in redirected responses. GitHub-9028
  • Magento now throws a meaningful exception when a virtual theme does not have a physical parent theme. Fix submitted by David Fecke in pull request 11240.
  • The TRAVIS_BRANCH variable is now surrounded by double-quotes instead of single-quotes . Fix submitted by @adrian-martinez-interactiv4 in pull request 11704.
  • The doc block of setValue in FilterBuilder now reflects that the setValue method will accept an array. Fix submitted by bytecreation in pull request 11854.
  • htaccess syntax now uses Options -Indexes instead of Options All -Indexes. Previously, Magento used Options All -Indexes, which resulted in Magento rendering a 500 error page because of high restrictions for Options overrides in shared hosting environments. Fix submitted by @Danny Verkade - Cream in pull request 11327. GitHub-10812

Configuration framework

  • The config array can now read all settings from config. Previously, the config array was hardcoded to read three settings only. Fix submitted by Vova Yatsyuk in pull request 11643.

JavaScript framework

  • Magento no longer incorrectly overly encodes UTF-8 files when JavaScript Bundling is enabled. Previously, this issue resulted in poor character encoding on the storefront. GitHub-10562, GitHub-6733
  • Magento now exports the Confirmed email and Account Lock values when you export customer data. Previously, this information was missing from the exported CSV. Fix submitted by Luke Rodgers in pull request 11437. GitHub-10765, GitHub-10765
  • You can now submit the search form from the keyboard. Fix submitted by Romain Ruaud in pull request 11250. GitHub-10275

Session framework

  • We’ve removed the 30-second timeout limit for the session locking mechanism when Redis is used for session storage.
  • A typo in sessionStorage polyfill has been corrected. Fix submitted by mszydlo in pull request 11219.

Web API framework

  • The customerAccountManagementV1 interface now provides the POST /V1/customers/resetPassword endpoint.

General

  • The image size used as a cross-sell product placeholder now equals the size of the image used in product listing placeholder images. Previosuly, the cross-sell product placeholder image was too small. GitHub-12017
  • Magento now downloads the backup .tgz file that you select for downloading. Previously, no matter which backup you selected, Magento downloaded the most recent backup. Fix submitted by Pieter Cappelle in pull request 11595. GitHub-10032
  • The Magento store code validation regex now supports uppercase letters in store code. GitHub-11996
  • When you use a UI component-based form and add a custom regular expression pattern validation to an input field, the supplied pattern is now properly converted from a string to a JavaScript RegEx object. Fix submitted by Brett in pull request 11565. GitHub-9919
  • A custom field’s name attribute no longer remains empty during form creation. Fix submitted by Paul Briscoe in pull request 11637. GitHub-9944
  • widget.xml files can now contain multiple depends parameters. Fix submitted by Raul E Watson in pull request 11495. GitHub-9783
  • You can now add an HTML node to the page XML root of a theme without causing a validation error. GitHub-11697
  • The customer_data_object firstname is no longer equal to orig_customer_data_object after you save an existing user account with a new name or address. Fix submitted by Roman K. in pull request 11676. GitHub-7915
  • We’ve fixed the dashboard graph’s y-axis range. Fix submitted by Oscar Recio in pull request 11751. GitHub-7927
  • Magento no longer throws an error when you try to load a quote item collection. GitHub-8954
  • Customer Groups are now located in the Magento Admin under Customers > Customer Groups. Fix submitted by Mr. Lewis in pull request 11677.
  • Magento now displays the State/Province field after you edit the billing address on sales orders. Fix submitted by Raul Mateos in pull request 11381. GitHub-10441
  • You can now successfully sync billing and shipping addresses on Admin Reorder and Admin Customer Create Order page for selected, exisiting addresses. Fix submitted by Ievgen Sentiabov in pull request 11385. GitHub-10856
  • We’ve removed object manager references as well as deprecated calls to $messageManager. Fix submitted by Atish Goswami in pull request 12061.
  • Magento now prepares street data to guarantee that the street array will be converted to a string. Fix submitted by Vova Yatsyuk in pull request 12130.
  • Disabling and enabling the WYSIWYG editor with ui/form/element/helper/service checkbox now works as expected. Fix submitted by Vova Yatsyuk in pull request 12141.
  • The sitemap.xml last mod time stamp now contains the correct date. GitHub-9151
  • The Visual Swatch Attribute drop-down menu (accessible from Manage Swatch tab) now works as expected. Previously, when you clicked the Add Swatch button from this tab, the drop-down menu was not displayed. Fix submitted by @enriquei4 in pull request 11747. GitHub-11534
  • Users are now subscribed by default to the Advanced Reporting service.
  • Storefront labels and messages now use the American English spelling of “optimization”. Fix submitted by David Angel in pull request 11345.
  • The Add page button now works as expected. Previously, when you clicked Add page while logged in to the Admin, and clicked Save, Magento did not create a new page, but returned you to the Orders page, and displayed this message: Data key is missing: code-entity. Fix submitted by Tomasz Gregorczyk in pull request 11205. GitHub-11163

Import/export

  • To improve performance, Magento now loads all relations using one query per bunch. Previously, Magento loaded relations one by one (multiple times for multiple attributes types). GitHub-10920
  • Magento now provides more helpful error messages if problems occur during the import of products and images using System > Import Products. GitHub-4711
  • Magento now provides better error reporting when an error occurs during the import of a CSV file with a semicolon delimiter. Previously, Magento stopped import, but did not provide a link to the error report CSV file. GitHub-5015
  • Exception message was passed as a exception description argument instead of exception message. Fix submitted by Tim Bezhashvyly in pull request 11363. GitHub-6924
  • Importing an import file to update customer data no loner results in the entity fields being removed if the columns were not present on the imported file. Fix submitted by Juan Alonso in pull request 11968.

Indexing

  • Magento no longer re-indexes entities if they are unchanged, which improves the performance of the refresh index cron job without any loss of functionality. GitHub-4893
  • Magento now correctly resets status to StateInterface::STATUS_INVALID if a fatal PHP error occurs during indexing. Fix submitted by Lars Roettig in pull request 11183. GitHub-11166

Infrastructure

  • New static block tests now detect blocks without a name attribute. We’ve also added a missing block name to allow block customisation, and added a name for the order items grid default renderer block. Fix submitted by Ihor Sviziev in pull request 11235. GitHub-10824
  • We’ve ported a fix for the Travis CI builds for the 2.2-develop branch to the 2.3-develop branch. Fix submitted by Ievgen Shakhsuvarov in pull request 11555.
  • Integration tests now reset the integration test database when TESTS_CLEANUP is set to enabled. Fix submitted by Joshua Warren in pull request 11499. GitHub-10025
  • A typo in Paypal/Test/TestCase/OnePageCheckoutTest.xml has been fixed. Fix submitted by Mr. Lewis in pull request 11673. GitHub-7591
  • FileClassScannerTest no longer has a dependency upon Magento_Catalog. Fix submitted by WEXO team in pull request 12144. GitHub-11230

Newsletters

  • Newsletter subscriptions now work as expected. Previously, Magento did not set the create-date field, and the change_status_at was broken. GitHub-4004
  • When a customer with the same email address has an account on different stores in the same Magento installation, changes to the newsletter subscription in one account no longer affects the other subscription. Fix submitted by Sergio Baixauli in pull request 12035. GitHub-10014
  • Magento now sends email confirmation of newsletter subscription to a user only when the user is newly subscribed. Fix submitted by Oscar Recio in pull request 11317. GitHub-5439

Orders

  • Magento now retains an order’s relation_child_id and relation_child_real_id field values when you edit the order. Previously, after you edited an order, the values of the relation_child_id and relation_child_real_id fields of the old order did not persist. GitHub-10195
  • Magento no longer duplicates the Add Products button after you change the customer group. GitHub-11868
  • New orders now appear as expected in the Order table after you migrating data. GitHub-10185
  • You can now create an order from the Customer Edit page when working from the Admin. Fix submitted by Roman K. in pull request 11952. GitHub-11832
  • The getTracksCollection() method now returns collection objects. Previously, this method returned either collections or arrays. Fix submitted by Roman K. in pull request 12173. GitHub-8022
  • References to Zend_Pdf_Color_RGBnow correctly use the camel-case class name (Zend_Pdf_Color_Rgb). Previously, the former class name resulted in references to wrong or nonexistent classes. Fix submitted by Danny Verkade - Cream in pull request 11830. GitHub-11581
  • The Order table now accurately reflects changes in order status.
  • Magento no longer lets you cancel an invoice more than once. Fix submitted by Oscar Recio in pull request 11261. GitHub-9968
  • Magento now sends confirmation emails to customers for orders containing a grouped product. Previously, when you tried to submit an invoice for an order containing a grouped product, Magento threw an error and did not send confirmation email to the customer. Fix submitted by Michiel Gerritsen in pull request 11297. GitHub-5105

Payment methods

  • Magento PayPal integration now supports the Indian Rupee currency (INR).
  • Braintree online refunds now work when you are using two Braintree accounts on two separate websites. Previously, when using two Braintree accounts for two separate websites, Magento did not process the refund, and displayed this message: Sorry, but something went wrong.
  • Administrators with limited privileges can now log in without errors. Previously, Magento threw an error, but did not log errors in either the server or Magento logs. GitHub-11700
  • Corrected a typo in a translatable string. Fix submitted by Danny Verkade - Cream in pull request 11569.
  • Magento now displays the correct payment method string as displayed during checkout. Previously, the translated string associated the payment method title for a particular store view was not consistently displayed. Fix submitted by Bernhard in pull request 11165. GitHub-7582

Reports

  • The search for the Customer Review report now works as expected. Fix submitted by Oscar Recio in pull request 11522. GitHub-10301
  • Magento now reports handled exceptions to New Relic. Previously, Magento displayed only fatal errors. Fix submitted by Max Chadwick in pull request 11944.
  • The Admin’s Most Viewed Products tab now displays all the products in all attribute sets, not simply the default attribute set. GitHub-9768

SalesRule

  • You can now add a bundle product that includes a simple product with a price of 0 (zero) to your cart. Previously, Magento threw an error. GitHub-8969
  • Cart Price rules are now applied to products if dropdown attributes are present. Previously, Magento checked only the items that were visible in the cart against the specified conditions. Fix submitted by Marina Gociu in pull request 11274. GitHub-10477
  • The search template now uses the custom URL specified in Magento\Search\Helper\getSuggestUrl() instead of the default. GitHub-6802
  • Magento no longer throws an asymmetric transaction error on re-indexing when you use ElasticSearch as your search engine.

Shipping

You can find Magento Shipping-specific release notes in Magento Shipping Release Notes.

  • Magento now displays by default of two shipping address lines even when the street_lines setting in customer configuration is set to 0 (zero). GitHub-7995
  • Magento no longer displays a blank page at the shipping stage of checkout when the user tries to return to the Shipping page from the Payments page by clicking Back. GitHub-11197
  • The Shipping report available from the Admin now uses the correct currency code. GitHub-11793
  • An invoice’s grand_total and base_grand_total now match as expected. Previously, these values differed, leading to a rounding error when calculating the base_grand_total.
  • Magento now adds a customer note to a shipment invoice when the shipment is created by API and appendComment is set to true. Fix submitted by Jeroen in pull request 11383. GitHub-11207
  • Shipping method radio buttons no longer have duplicate element IDs on the cart page. Previously, these radio buttons had duplicate IDs, which made it impossible to select the second method. Fix submitted by Peter Jaap Blaakmeer in pull request 11406. GitHub-10795
  • The Shop By button is now rendered as expected on Android platforms. Previously, the Shop By button and other contents were positioned incorrectly. Fix submitted by Lorenzo Stramaccia in pull request 11430. GitHub-10941
  • The freePackageValue value is now required to be defined. Previously, this value could be undefined, but in some cases was still accessed. Fix submitted by Alexander Menk in pull request 11720.

Tax

Translations

  • You can now implement translations from themes (in contrast to translations from modules).
  • Previously missing translation strings have been added to the UI module. Fix submitted by Jeroen in pull request 11440. GitHub-5956
  • We’ve fixed an issue with the <![CDATA[]]> translate phrase in the system.xml file. [Fix submitted by Malyovanets Nickolas in pull request 11675. GitHub-7767
  • The update button.phtml translation has been simplified. Fix submitted by Karla Saaremäe in pull request 12136.

Varnish

  • Cache headers for documents now factor in the cookie for the store code as expected.

Known issues

General

Issue: In Swagger, the text area that contains the payload structure of some POST and PUT operations is not displayed. If a fraction of the text area is displayed, you can click on it to display the payload structure in a text area in the center of the page. If the text area is not displayed at all, then you cannot access the payload structure.

Workaround: Use the static Swagger site to navigate to the REST call you want to use, then copy the payload structure to your Swagger instance.

Magento Shipping issues

We’ve identified the following unresolved issues with this version of Magento Shipping:

Issue: Merchants should not use Magento Shipping to connect with FedEx at this time. This option will be removed by Friday, December 15, and any existing shipping options tied to FedEx will no longer work at that time. We will be re-enabling FedEx integration through Magento Shipping at a future date.

Issue: Currency conversion problem for shipping methods during checkout when store supports multiple currencies.

Workaround: Ensure that the experience currency, base currency, and display currency are the same. Additionally, incorporate these best practices into your shipping method configuration by ensuring that:

  • the Magento Core base currency is the same as the experience currency (Store > Configuration > Currency Set Up > Base Current).
  • the Magento Core base currency converter is the same as the experience and base currency (Store > Currency Rates)

Issue: Selecting a shipping method at checkout can sometimes result in two shipping methods being selected. This issue occurs during checkout. When a user selects a shipping method during checkout, Magento will select two shipping methods.

Workaround: Ensure that no two rules with a ‘Show Shipping Method’ outcome can both apply to the scenario. Consider these example rules:

  • Rule 1: Show ‘Free Shipping’ for Country is Canada and Cost is not greater than $99.99
  • Rule 2: Show ‘Free Shipping’ for Country is not Canada and Cost is greater than $100

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.

Pull request Related GitHub issue Contributing community member
11240 N/A David
11261 9968 Oscar Recio
11342 11310 Denis Ristic
11351 11332 Manu Gonzalez Rodriguez
11359 N/A @adrian-martinez-interactiv4
11383 11207 Jeroen
11406 10795 Peter Jaap Blaakmeer
11430 10941 Lorenzo Stramaccia
11445 10007 Raul Mateos
11470 10231 Marc Rodriguez
11493 N/A Jeroen
11199 11176 Oscar Recio
11299 11275 Juliano Vargas
11381 10441 Raul Mateos
11460 11140 Sylvain Rayé
11505 N/A Max Chadwick
11437 10765 Luke Rodgers
11486 N/A Jeroen
11495 9783 Raul E Watson
11500 7678 Kirill Morozov
11555 N/A Ievgen Shakhsuvarov
11235 10824 Ihor Sviziev
11565 9919 Brett
11569 N/A @dverkade
11317 5439 Oscar Recio
11385 10856 Ievgen Sentiabov
11510 N/A Christian Münch
11499 10025 Joshua Warren
11522 10301 Oscar Recio
11553 N/A Thomas
11561 11540 Cristian Sanclemente
11591 11586 @adrian-martinez-interactiv4
11057 6350 Joachim Vanthuyne
11439 11328 @adrian-martinez-interactiv4
11673 7591 Mr. Lewis
11675 7767 Malyovanets Nickolas
11704 N/A @adrian-martinez-interactiv4
11677 N/A Mr. Lewis
11676 7915 Roman K.
11250 10275 Romain Ruaud
11421 11022 David Verholen
11440 5956 Jeroen
11643 N/A Vova Yatsyuk
11635 10168 Cristian Sanclemente
11637 9944 Paul Briscoe
11710 9763 Gabriel Queiroz Silva
11690 11157 Andrew Howden
11720 N/A Alexander Menk
11734 11322 Mr. Lewis
11751 7927 Oscar Recio
11745 7099 @enriquei4
11749 9869 @enriquei4
11765 N/A Ben Tideswell
11410 11365 Cristian Sanclemente
11607 N/A @adrian-martinez-interactiv4
11610 6891 Marc Rodriguez
11757 11729 HausO
11363 6924 Tim Bezhashvyly
11425 N/A Denis Ristic
11767 7640 Malyovanets Nickolas
11779 4711 @p-bystritsky
11827 4696 Raul Encinas
11830 11581 @dverkade
11337 10908, 11211 Thiago
11458 2991 Peter Jaap Blaakmeer
11595 10032 Pieter Cappelle
11747 11534 @enriquei4
11824 10291 Paul Briscoe
11651 11095 Mr. Lewis
11802 8236 Thiago
11843 4808 Raul Mateos
11854 N/A bytecreation
11397 9566 Michiel Gerritsen
11732 5015 @p-bystritsky
11829 10682 @dverkade
11933 N/A @dverkade
11911 10185 Ihor Sviziev
11817 8970 @p-bystritsky
11405 9028 Gabriel Queiroz Silva
11858 11697 @adrian-martinez-interactiv4
11869 8954 @neeta-wagento
11889 8799 Raul Mateos
11917 N/A Mr. Lewis
11949 11868 Malyovanets Nickolas
11959 11898 Oscar Recio
11620 N/A Raul Mateos
11770 N/A Euronet
11863 N/A @adrian-martinez-interactiv4
12011 11996 Manu Gonzalez Rodriguez
12013 7995 Cristian Sanclemente
11785 8846 gonzalopelon
11993 11700 Roman K.
12018 12017 Emipro Technologies
11556 10583 Ievgen Sentiabov
11879 4004 IvanK
11588 7225 Martin Peverelli
11958 11197 Malyovanets Nickolas
12091 N/A Joe Constant
12107 11880 @p-bystritsky
11461 10811 Sylvain Rayé
11719 10920 Malyovanets Nickolas
11722 6802 Malyovanets Nickolas
11857 N/A @adrian-martinez-interactiv4
11902 9151 Serhii
11947 N/A Tibor Kotosz
11962 11793 Roman K.
11988 10195 Roman K.
12031 6661 @enriquei4
12082 12079 @mihaifaget
12131 N/A Vova Yatsyuk
12139 9768 Roman K.
11914 6238 Mr. Lewis
11944 N/A Max Chadwick
12144 11230 WEXO team
11459 10810 Jonas Hünig
11968 N/A Juan Alonso
12061 N/A Atish Goswami
12136 N/A @ChuckyK
11876 10834 @p-bystritsky
11274 10477 Marina Gociu
11952 11832 Roman K.
12001 11532 Roman K.
12035 10014 Sergio Baixauli
12077 10628 Roman K.
12130 N/A Vova Yatsyuk
12141 N/A Vova Yatsyuk
12173 8022 Roman K.

System requirements

Our technology stack is built on PHP and MySQL. For details, see Technology stack requirements

For more information, System Requirements.

Installation and upgrade instructions

You can install Magento Commerce 2.2 General Availability (GA) using Composer.

Install the Magento software

See one of the following sections:

Get Magento Commerce using Composer

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

composer create-project --repository-url=https://repo.magento.com/ 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-url=https://repo.magento.com/ 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 magento.com.
  2. Log in with your Magento user name 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.