[NEW RELEASE] SM Social Login - Responsive Magento 2 Module Is Available Now!
Our Feature Items: SM Market // SM Destino // SP Revo
Shopping cart (0)

Magento 2.2 Has Been Officially Released - Check Enhancements and Fixes

Rate this item
(0 votes)
Written by  Katy
Tuesday, 03 October 2017 15:43

After the short time of releasing Magento 2.1.9, the newest version of Magento 2.2.0 is officially launched and brought some functional fixes and enhancements.

Let's read this article to know more about the newest version of Magento2.

Highlights

Magento Open Source 2.2.0 includes a wealth of new, exciting features, and hundreds of enhancements and fixes. Look for the following highlights in this release:

  • Bundled extensions: This release of Magento includes the first third-party extension that we are bundling with Magento Commerce – Magento Social. This extension establishes a connection between your store and your corporate Facebook account, and creates a page with products from your catalog. When shoppers click a product, they are redirected to the corresponding product page in your Magento store.
  • Significant enhancements in platform security and developer experience: Security improvements include the removal of unserialize calls and protection of this functionality to increase resilence against dangerous code execution attacks. We have also continued to review and improve our protection against Cross-Site Scripting (XSS) attacks.
  • Upgraded technology stack We’ve dropped support for PHP 5.6, and Varnish 3. We now support PHP 7.1 Varnish 5, and MySQL 5.7. All third-party libraries have been upgraded to the latest stable version.
  • Pipeline deployment: a new deployment process, enables build and deployment stages to minimize production system downtime for site updates. Resource-intensive processes can run on the build server. Pipeline deployment supports easy management of configuration between environments, too.
  • Performance gains from improvements in indexing, cart, and cache operations: Customers can browse and shop on a storefront while indexers are running with no visible impact to their experience. Additionally, long-running indexers operate in batches to better manage memory and run times. Cart improvements enable a buyer to create a cart with more than 300 line items, and merchants can process a cart with at least 300 line items. Varnish cache configuration now includes saint and grace mode to ensure Varnish is always presenting a cached page to a shop’s customers. Enhancements to cache invalidation logic and optimization of edge side include blocks for frequently changing data that significantly boost cache hit ratios.
  • Substantial contributions from our Community members: Our Community Engineering Team has been working with skilled and enthusiastic community members, and together they’ve added hundreds of pull requests to the Magento code base. For more information about our Community Engineering Team. see Magento Community Engineering.

Security enhancements

Magento 2.2.0 includes multiple security enhancements. Although this release includes these enhancements, no confirmed attacks related to these issues have occurred to date. However, certain vulnerabilities can potentially be exploited to access customer information or take over administrator sessions, so we recommend that you upgrade your Magento software to the latest version as soon as possible.

In general, we’ve removed serialize/unserialize from most the code to improve protection against remote code execution attacks. We’ve enhanced protection of code where use of object serialization or unserialization was unavoidable. Additionally, we’ve increased our use of output escaping to protect against cross-site scripting (XSS) attacks.

Known issues

Magento 2.2.0 GA includes the following known issues. Fixes for these issues are scheduled for patch releases in the near future.

Issue: This issue affects Magento installations that include multiple store views. If you delete a store view, any product grid filtered to that Store View does not load. If you’ve set your product filter to a store view you’ve deleted, when you open Catalog > Products, Magento displays the following behavior:

  • spinner widget spins indefinitely
  • error message: A technical problem with the server created an error. Try again to continue what you were doing. If the problem persists, try again later.

Issue: Errors result when a deleted customer tries to log in or register for new account. When you delete a customer from the Admin panel, a fatal error occurs if someone tries to log in or register using that deleted customer account.

Issue: A mistake entering credit card information during an order for a new customer can cause subsequent errors even after the user has corrected the credit card information.

Issue: Failure to specify a – base_url during installation when using custom server ports results in unresolved static content. Workaround: You can use the CLI command config:set web/secure/base_url to set the base_url parameter.

Issue: The Performance Toolkit does not currently work.

Fixed issues

This release contains hundreds of fixes and enhancements.

Installation, upgrade, deployment

  • You can now run magento setup:upgrade --keep-generated in production mode. Previously, Magento would throw an error when you ran setup:upgrade after compiling dependency injection. (This significantly curtailed your ability to deploy continuous integration.)
  • You can now upgrade your Magento installation when using multiple master databases for checkout, order management, and product data.
  • We fixed an issue that blocked using the web installer to successfully set up Magento. Previously, if you tried to install Magento with the web installer, Magento would indicate that the readiness check failed, and installation would not complete.
  • You can now deploy build processes on a different staging machine than the one you’re running your production environment on.
  • Magento 2.0.x and 2.1.x now support the use of table prefixing during installation. Previously, when you used table prefixing, your Magento installation failed with this error: “Duplicate key on write or update”.
  • Third-party command line tools no longer fail when you run setup:di:compile.
  • Magento now correctly applies website configuration parameters to the corresponding store view.
  • Fixed HTML inline style used when sending emails when implementing the upgraded emorgifier library.
  • We’ve changed how Magento displays status updates during a product upgrade. Previously, potentially vulnerable information such as full paths and module names were displayed in the product GUI, potentially exposing this information to a malicious user. Magento now restricts this potentially vulnerable information to logs that are available to administrators only.
  • The cron:install command now works as expected in Magento 2.2.0. Previously, the configuration for crontab commands contained double quotes that were not escaped, which caused invalid commands to be written to the crontab file.
  • Magento now moves the sequence_* table to the correct database after implementing a split database.
  • You can now run magento setup:upgrade --keep-generated in production mode. Previously, Magento would throw an error when you ran setup:upgrade after compiling DI. (This significantly curtailed your ability to deploy continuous integration.).
  • Magento no longer throws an exception when the configuration checksum is absent on a new installation.
  • Custom themes now inherit parent XML configuration information as expected.
  • We’ve removed the sample password from the Setup Wizard
  • You can now enable JavaScript minification without error. Previously, after enabling JS minification, the Magento Admin displayed 404 errors when accessing JavaScript elements.
  • Magento no longer displays console errors after CSS merging and minification is enabled. Previously, when CSS merging and minification was enabled, the storefront was not displayed as expected, and the styles-l.min.css and print.min.css files could not be found.
  • You can now successfully use the config:set command to set allowed or default currencies.
  • Nginx now redirects to the setup page when using port 81.
  • We’ve added the dev:template-hints:enable and dev:template-hints:disable commands to manage template hints.
  • We’ve added the dev:query-log:enable and dev:query-log:disable to manage database query logging.
  • We’ve added the varnish:vcl:generate command to create the Varnish VCL file.
  • Magento now adds a new record to the quote table and adds the current date and time to the created_at field. Previously, this field was not updated.
  • The installation script no longer creates files in the root directory for missing modules when you install a community-created language pack. Translation packs created by the community often include translations for Magento Commerce modules. When you install these translation packs on an Open Source installation, the Commerce modules are missing. Previously, the installation script creates a file in the root directory for these Commerce modules instead of skipping them.
  • We’ve fixed issues with upgrading installations with split databases.
  • The import URL directive now contains base URL and locale placeholders instead of the real URL.
  • Magento now works as expected on an Apache php-fpm environment.
  • The DOCUMENT_ROOT directory is now writable. Previously, installation failed because this directory was not writable.
  • When upgrading Magento from 2.1.x to 2.2, the quote_address.free_shipping column is the same whether you upgraded from a previous installation of Magento or performed a fresh installation. Previously, different upgrade/installation options affected the contents of this column.

Cart and checkout

  • Magento now implements the minicart maximum display recently added item setting to your shopping cart. Previously, Magento displayed all the items in the shopping cart, even when the number of items exceeded this limit.
  • You can now reload a page during checkout without unintentionally changing shipping information.
  • Custom address attributes now appear in the Checkout summary.
  • Lengthy Order Status tables are now paginated as expected.
  • Magento now displays the product add validation message (“Product was added to the cart”) only after you have successfully added a product to your cart.
  • We’ve resolved an issue that prevented you from adding more than one product to a shopping cart from a wishlist.
  • The number of items in the minicart is now updated correctly when you run Magento in mixed HTTP/HTTPS mode.
  • The minicart now performs as expected in deployments that span multiple websites. Previously, in a Magento installation that had multiple websites, products that you added to one website appeared in the other websites’ minicarts.
  • A cart rule with a coupon code no longer overrides a cart rule without a coupon code when multiple cart rules are applied. Previously, when you created two cart rules and applied them to a cart, the rule with a coupon was applied, but the second rule was not.
  • Refreshing your browser page while on the Review and Payments page of the checkout process no longer clears information from form fields. Previously, Magento cleared information from the Ship to field if you refreshed your browser page during this process.
  • Magento no longer lets you add a product variation to your shopping cart if the item is out of stock. Previously, Magento permitted you to select an out-of-stock item and when you added it to your cart, displayed the “Product is out of stock” message.
  • We’ve corrected a problem with Magento throwing an HTTP ERROR 500 intermittently during checkout.
  • We fixed a JavaScript error that occurred on the Checkout page after you changed the country in the Estimate Shipping and Tax field.
  • Magento now successfully estimates shipping costs. Previously, when you tried to estimate shipping costs, the load indicator would spin indefinitely, and Magento displayed this exception,Object doesn't support this action.
  • Magento now displays the State/Province field on the Add New Address page.
  • Credit card information now persists as expected after a user enters a promotion code during checkout. Previously, After an user enters credit card information, then discount code and then click Place Order. The credit card information fields are emptied and user has to enter the credit card information again to proceed with the order transaction.
  • 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 no longer throws an exception when a customer updates their shopping cart after you’ve enabled the Minimum Order setting.
  • You can now translate the FPT label on the checkout page.
  • Magento no longer truncates bill-to names and shio-to names to 20 characters in the Admin.
  • You can now delete the last item in your cart when the Minimum Order setting is enabled.
  • You can now create unique checkbox IDs for the Terms and Conditions part of the checkout process.
  • Magento now correctly displays the coupon label in the shopping cart during checkout.
  • Magento now pre-fills prefixes and suffixes in the quote shipping address
  • The country drop-down box now correctly shows the countries for which the current store and customer account are configured.
  • The shopping cart now handles products with custom options.
  • Magento now requires completion of the State field during the check out process if this field has been configured as required.

Catalog

  • Magento no longer locks the category_product_entity table. Unlocking this table reduces the potential of lock-related timeouts that can occur when indexing and checkout operations run in parallel. Previously, Magento locked the category_product_entity table.
  • The storefront now displays images that Magento resizes during product save operations, rather than resizing the product on the storefront. Previously, the image path contained store_id, and during save operations, Magento resized images for images the default store only.
  • The \Magento\CatalogInventory\Model\Stock\Status\getStockId() method now returns the correct values.
  • The storefront gallery now displays all the images associated with a configurable product. Previously, when you clicked on the swatches associated with a configurable product, the gallery displayed only one of several possible images.
  • Magento now displays the This is a required field message immediately adjacent to the product options as needed during checkout. Previously, Magento displayed this message at the bottom of the checkout form.
  • You can now save a product with images multiple times.
  • The category page now shows the current price after Magento runs a scheduled update. Previously, the category page would not update the price after running a scheduled update.
  • You can now sort and filter on the New Review page.
  • Magento now displays server-side Ajax error messages.
  • Magento now validates the uniqueness of product attribute values as you create or edit them. Previously, you could add identically named values to an attribute.
  • Magento now displays the price of out-of-stock products on the product page.
  • If you remove an item from the Compare Items list that is displayed on any Category page, Magento no longer redirects you to the Compare Products page.
  • Subcategories no longer show up in the menu when the parent category is disabled or hidden from the menu.
  • We’ve corrected a problem with Magento throwing an HTTP ERROR 500 intermittently during checkout.
  • The product attribute category_ids can have only Global scope. Previously, you could change the scope value of category_ids to Store.
  • A price change to a custom option affects only that option. Previously, changing the price of a custom option also affected the price of related products.
  • The prices you assign to custom options no longer change unexpectedly after you save them.
  • You can now create a blank attribute option using the drop-down input option on products that do not require an attribute.
  • Magento no longer encounters an error when it cannot find a product image file.
  • 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.
  • Magento now correctly displays custom options at the store-view level.
  • 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.
  • 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.
  • Sorting configurable products by price now works as expected when a simple product has a special price.
  • Magento no longer displays an error when you open a product with a Fixed Product Tax attribute enabled.
  • We’ve improved the process of using the WebAPI interface to save a product stock item. Previously, this type of save action worked inconsistently.
  • You can no longer change or fake a product price from the Magento storefront and then complete an order with that faked price.
  • View permissions to high-level product categories now work as expected. Previously, Magento displayed only the product categories that users who belonged to the NOT_LOGGED_IN customer group were permitted to view, no matter which user logged in. Additionally, a user restricted to browse a category could still see the category in the top-level navigation menu if the page were previously cached in FPC.
  • You can now successfully add a product to the compare list. Previously, when you tried to add a product to a compare list, Magento displayed an error.
  • You can now remove custom options from simple products. Previously, when you tried to remove a custom option from a product, Magento did not remove the options, and displayed an error message.
  • You can now successfully set the Enable Product attribute to no.
  • Magento no longer permits a shopper to place a re-order once you’ve disabled one of items in the order.
  • Fixed an issue that occurred in the Catalog Gallery on mobile displays when the allowfullscreen setting is enabled.
  • Magento now successfully loads re-ordered related products when Edge-Mode is activated.
  • Magento now displays cross-sells as expected when you use the product/list/items.phtml template.
  • Magento now displays the Yes or No attribute value on Product pages.
  • Setting the show_out_of_stock attribute to No now works as expected.
  • Magento now uses parent names (instead of SKU-based names) when creating configurable products.
  • You can now create an etc/view.xml file containing an images tag with an attribute module.
  • Magento now displays the Category selection UI under Conditions when you select a rule for editing.
  • Magento now displays the correct image when you switch between a configurable product’s options. Previously, Magento loaded product images from a different product.
  • The Magento WYSIWYG editor now handles special characters such as percent sign (%).
  • The indexer:reindex catalog_category_product process can now handle more than 500 products in a category.
  • Magento now displays the price set at store view-level for a product that has different prices set on the global and store view level.
  • Out-of-stock options for configurable products no longer show up in search and layered navigation results.
  • Magento no longer throws an error when you try to save a product with imported custom options.
  • Magento now displays the product price even when the product is out-of-stock.
  • productWebsiteLink no longer deletes a product’s custom origins.

Configurable products

  • You can now successfully disable the lowest price of a configurable product and its associated simple products. Previously, Magento displayed a configurable product’s lowest price even after you disabled that price.
  • Magento no longer applies one simple product’s special price to another simple product of the same configurable product. Previously, when you set a regular and special price for a child product, all products associated with the same configurable product displayed a regular and special price, even when these amounts were the same.
  • You can now edit a product attribute for multiple configurable products. Previously, when you tried to bulk-edit an attribute on a collection of filtered, configurable products, Magento would complete the process without incorporating your edits, and then incorrectly tell you that the products had been edited.
  • Magento no longer throws an exception when you add a configurable product by SKU if an associated simple product is out-of-stock. Magento now correctly displays a product as out-of-stock if its child products are disabled. Previously, the category page failed to list the product at all, rather than listing it as out-of-stock.
  • A price change to a custom option affects only that option. Previously, changing the price of a custom option also affected the price of related products.
  • The check that Magento runs to confirm a configurable product’s readiness for sale is now faster. (The isSalable method checks that a configurable product can be sold (that is, is in a saleable state)).
  • Query optimizations have improved the speed of configurable product price calculation.
  • Magento no longer calculates configurable product special prices on the category page. Previously, Magento calculated special prices on the category page, but did not display them.
  • Magento now displays configurable products as expected after creation.
  • Magento no longer displays a configurable product on the storefront when its child products are deleted and the show out-of-stock setting is set to No.
  • Configurable products no longer show up on category page when all children are set to enable product = No and ,display out-of-stock products = Off.
  • Magento no longer displays the as low as label for a disabled price on the Category page.
  • The price you set on the website scope no longer overrides any local settings you set on configurable products at the store view level.
  • You can now successfully disable the lowest price of a configurable product and its associated simple products. Previously, Magento displayed a configurable product’s lowest price even after you disabled the price.
  • Magento now correctly displays a product as out-of-stock if its child products are disabled. Previously, the category page failed to list the product at all, rather than listing it as out-of-stock.
  • Magento now displays the correct drop-down option labels for configurable products when using attributes with custom source.
  • Magento now shows the correct price of a configurable product based in installations that run multiple websites.
  • We’ve improved the performance of Magento installations that contain configurable products with many (1600+) options.
  • We’ve resolved some issues with the display of configurable products on the Magento frontend after product creation.
  • Magento now displays only the set price for a configurable product, not its set price and “as low as” price. Previously, Magento showed both prices if a minimum price was not configured.
  • 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.

Email

  • Magento now successfully loads the New Order Email templates.
  • The Send Welcome Email From field now identifies the store that the customer is associated with.
  • 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.

Frameworks

  • 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.
  • The ability to disable module output has been removed from Admin. If you disabled module output from Admin in a previous release, you must manually configure these settings. See Disable module output for details.
  • Static tests run in a Windows environment no longer fail due to file path mismatches.

Admin framework

  • You can no longer delete a currently logged-in user.

Application framework

  • Magento now supports new top level domains for email addresses.
  • Page titles in layout files are not translatable.
  • The setup:static-content:deploy, setup:di:compile and deploy:mode:set commands now return non-zero exit code if an error occurs.
  • We’ve changed the select protected property to query in the AbstractSearchResult class.
  • \Magento\Framework\Interception\Code\Generator\Interceptor now supports interceptors for generating for methods that return references.

Configuration framework

  • The currency setup in Admin no longer throws an in_array error when a single value is selected.

JavaScript framework

  • Customers can now place orders as expected when Magento is running a French locale in production mode. Previously, customers could not complete a transaction in a storefront running a French locale, although they could if they switched to the storefront running the English locale.
  • Magento now displays server-side Ajax error messages.
  • JavaScript mixins now work when you add a urlArgs argument to a require_js file. Fix submitted by community member James Reed in pull request 9665.

Zend framework

  • We’ve removed Zend_Json from Magento Theme and replaced it with a new serializer class.
  • We’ve removed Zend_Json from the Weee module.
  • We’ve replaced the direct usage of Zend_Json with a call to the Json_Help class.
  • We’ve replaced Zend_Json in the configurable product block test.
  • We’ve removed Zend_Json from form elements.
  • We’ve replaced the Magento Framework’s Zend_Session interface usage with SessionHandlerInterface.
  • We’ve removed Zend_Wildfire and Zend_Controller from the codebase.
  • We’ve resolved issues with selecting widgets in TinyMCE.
  • We’ve replaced Zend_Log with Psr\Log\LoggerInterface.
  • Magento no longer throws a Zend_Db_Statement_Exception when a user opens an empty Category page.

General fixes

  • You can now save products using the multiple select attribute value. Previously, you could not save values if using this attribute.
  • You can now log in successfully after creating a custom attribute. Previously, Magento would display an error message, and you could not log in, after first creating a custom attribute, then logging out.
  • Magento now correctly displays customer address during account creation. Previously, when you selected a default billing address during creation of a new customer account, Magento would not display the address.
  • Admin users with restricted permissions can now log in successfully as determined by those permissions. Previously, Magento displayed a fatal error when you logged in under these conditions.
  • We’ve removed the duplicated PHP settings from the sample web server configuration files.
  • When creating a new page with the Add New Page feature, Magento no longer throws a JavaScript error when Layout is set to empty
  • We’ve removed the sample password from the Setup Wizard.
  • You can now assign open-ended start and complete dates for product rules. Previously, if you left the start and end date field blanks when creating a rule, Magento would supply the start and end dates based on the save date.
  • The Magento Framework now makes its dependency upon the zendframework/zend-stdlib library explicit in composer.json.
  • You can now upload changes to the robots.txt file from the Admin panel.
  • We’ve eliminated difficulties saving product information when logged in as Admin. Previously, the Product Save feature worked erratically for Admin users.
  • Custom themes now inherit parent XML configuration information as expected.
  • Information set by the Default Billing Address and Default Shipping Address checkboxes on the Customer page are now saved correctly.
  • Admin users with appropriate permissions can now reset the passwords of more than one customer at a time.
  • Admin interface forms now load data as expected after initializing all components. Previously, under certain conditions, the load indicator would spin indefinitely, and Magento would not load data.
  • Showing reports on the Reports > Coupons page no longer throws an error when the user is in a non-default Admin locale.
  • You can now generate static content without a database connection.
  • Static content deployment now generates secure content, whether content included secure or non-secure URLs.
  • The Recently Viewed Products block now appears as expected when the full page cache is enabled.
  • We’ve resolved an issue that prevented you from adding more than one product to a shopping cart from a wishlist.
  • 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.
  • Mass actions now work as expected on the Customer grid. Previously, Magento could not process more than 20 items at a time.
  • Customers who subscribe to a newsletter are now subscribed as expected after confirming their account. Previously, Magento unsubscribed customers from the newsletter after confirming their account.
  • You can now save products using the multiple select attribute value. Previously, you could not save values if using this attribute.
  • You can now assign open-ended start and complete dates for product rules. Previously, if you left the start and end date field blanks when creating a rule, Magento would supply the start and end dates based on the save date.
  • Magento no longer generates incorrect URLs in the site map when the Use Secure URLs in Admin setting is set to Yes.
  • We’ve resolved a conflict that occurred after you changed a base URL. Previously, after you changed a base_url value (Stores->Configuration > General > Web > Base URLs (Secure)), Magento would update the base URL, then resubscribe, potentially resulting in a failure during the next update secure base_url call.
  • Magento now displays newly registered customers in the Admin customer list as expected.
  • The Customer Segment page no longer shows non-matching customers when a customer logs in and you refresh the Customer Segment page.
  • You can now add a translate attribute to any String argument in the di.xml file for any class. This attribute provides an ability on the level of dependency injection configuration to specify that an argument can be translated. The actual translation of strings is handled by another Magento component.
  • 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.
  • Only users with permission to view a store can view or process the orders placed on it.
  • You can render the tax_class_id attribute nonsearchable. Previously, Magento displayed a 503 error under these circumstances.
  • Fixed the location of the wishlist.js file.
  • You can no longer download products after you’ve set order state to STATE_CANCELED.
  • Fixed a typo in the Pull Request Template.
  • You now receive an error message as expected if you try to submit a product review while not logged in.
  • Fixed grammar error in the customer dashboard.
  • The popup window in the Safari browser now closes properly.
  • We’ve fixed minor performance issues when you use /pub as docroot.
  • The Actions dropdown menu is now properly aligned in the Admin when the action column is not the last column.
  • Magento now deletes pending entries in cron_schedule when you reconfigure a cron job.
  • We’ve fixed the cron timestamp method.
  • You can now save customers with unique attributes.
  • The Magento_Framework/View/Layout/etc/elements.xsd file blockReferenceType definition now allows for the optional argument template.
  • Customer sessions for different customers are no longer shared on installations on multiple websites.
  • Magento now handles quotation marks in product names. Previously, quotation marks in product names caused a JSON error on the Product page.

Google Analytics

  • We’ve added the missing single quote (‘) to the Google API Tracking code.
  • Google Analytics tracking now works when Cookie Restriction is enabled.

HTML

  • The CSS minify option no longer removes the whitespace around the minus (-) sign. Also, this option is now compatible with the calc() CSS function.

Images

  • Magento no longer encounters an error when it cannot find a product image file.
  • Magento now successfully saves images that you edit in a WYSIWYG editor. Previously, when you tried to change an image by right-clicking it in a WYSIWYG editor and choosing Insert/Edit Image, Magento did not save your changes.
  • You can now preview uploaded images.
  • You can now set an image size for product watermarks.
  • Graphics now scroll as expected on mobile devices.
  • Magento now successfully saves images that you edit in a WYSIWYG editor. Previously, when you tried to change an image by right-clicking it in a WYSIWYG editor and choosing Insert/Edit Image, Magento did not save your changes.
  • Inserted images on the content block of Category no longer reference the Admin URL. Previously, when you used the Wysiwyg editor to insert an image into the Content block of a Category, the image URL on the front end would reference the Admin location. When you subsequently logged out of the Admin panel, and refreshed the Category page, the image is no longer available.

Import/Export

  • You can now successfully import multiselect attributes that contain special symbols or delimiters. Previously, when you tried to import attributes containing delimiters, data validation (and the import) failed.
  • You can now import negative quantities. Previously, when importing a product quantity of ‘-1’, Magento returned an error.
  • Magento now imports custom options correctly. Previously, when you tried to import a custom option, the import failed, and Magento displayed this error: Javascript Error: Uncaught RangeError: Maximum call stack size exceeded.
  • We’ve added a new way to import images: You can now successfully import images when you set your document root to your_Magento_install_dir/pub. Previously, you needed to set document root to /magento to import images. Both ways of importing now work.
  • Magento now removes category URL keys from the url_rewrite table as expected during import. Previously, Magento did not remove these keys, which triggered a failure during import. This subsequently caused Magento to quickly reach the maximum error count, returning this error: “Maximum error count has been reached or system error is occurred!”.
  • You can now export a bundle product that contains a custom text area attribute. Previously, if you tried to export this type of bundle product, the export would fail, and Magento displayed the message, “There is no data for the export”.
  • 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 correctly displays both configurable and simple products, their attribute values, and visibility values after import if SKU is an integer.
  • 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.
  • The export process now populates values in the configurable variations column for configurable products as expected. Previously, when exporting more than one product, the values for the configurable variations column for configurable products were not included.
  • Magento now displays imported product images in this order: first, the base image, then the additional images in the order in which they were listed in the CSV file. Previously, Magento displayed images in this unexpected order: first, an additional image, then the base image, and finally, all remaining additional images.
  • Magento now runs a selective partial re-indexing operation after import if you enable Update on Schedule. Previously, Magento ran a full reindex no matter which index mode was set.
  • We’ve fixed an issue with the correct representation of date and time zones of items in a product catalog during import or export. Previously, Magento exported all dates in the default format (UTC-8), including values that you set to be displayed using another standard.
  • Magento now successfully imports customer multiselect attributes. Previously, when you imported a CSV file with either the option’s ID numbers or the option’s values, Magento returned an error.
  • Magento now displays more verbose information about duplicated information with links to action for troubleshooting the import process. Previously, Magento displayed duplicated or incomplete information on the product page after import.
  • 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.
  • 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.
  • The CatalogImportExport uploader now handles HTTPS images as expected.
  • You can now successfully import multiselect attributes that contain special symbols or delimiters. Previously, when you tried to import attributes containing delimiters, data validation (and the import) failed.
  • 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).
  • The exported sheet now generates or renders data for columns that indicate associations for configurable products.

Integrations

  • With valid permissions, you can now regain access to your Admin account after it is temporarily disabled due to invalid credentials. Previously, you could not unlock the account of a valid Admin user if it were disabled due to multiple invalid login attempts.
  • Web API tokens now have a default expiration period: 4 hours for Admin tokens and 1 hour for Customer tokens. This can be changed in the Admin Panel configuration settings
  • You can now edit authentication_lock from the Admin.

Indexing

  • We’ve improved the performance of the algorithm that Magento uses to calculate batch sizes while indexing categories.
  • The category/product indexer now successfully completes a full reindexing of all indexes on large profiles with 500,000 or more products. Previously, Magento successfully generated a large profile, but failed to complete the reindexing of the categories or products, and displayed the following error: “Error 1114: Table is full”.
  • IndexerHandlerFactory no longer tries to cast the $indexer object to a String if an error occurs. Since $indexer is an object of type IndexerInterface and does not have a __toString() method, attempting to cast the $indexer object to a String previously resulted in an error.
  • The Magento flat indexer now collects correct product data for ROW_ID.
  • The Magento flat indexer no longer throws an error after flat tables are enabled and reindexed. This fix applies to both product and catalog tables. Magento now runs a selective partial re-indexing operation after import if you enable Update on Schedule. Previously, Magento ran a full reindex no matter which index mode was set.
  • IndexerHandlerFactory no longer tries to cast the $indexer object to a String if an error occurs. Since $indexer is an object of type IndexerInterface and does not have a __toString() method, attempting to cast the $indexer object to a String previously resulted in an error.
  • The category/product indexer now successfully completes a full reindexing of all indexes on large profiles with 500,000 or more products. Previously, Magento successfully generated a large profile, but failed to complete the reindexing of the categories or products, and displayed the following error: “Error 1114: Table is full”.
  • We’ve resolved failures with indexing in installations that implemented catalogs containing at least 5,000 - 6,000 SKUs.
  • We’ve improved the performance of the algorithm that Magento uses to calculate batch sizes while indexing categories.
  • Reindexing no longer results in an SQL error that prevents bundle products from being reindexed, and results in wrong product prices.

Orders

  • We’ve added PHP interfaces that add the ability to change the status of a shipment. The new Creditmemo interface supports tasks you can already do through the Magento Admin, including the ability to:
    • support returning multiple units of a configurable product. Previously, when you tried to refund an order, you could refund only one unit of a configurable product, not the amount in the original order.
    • return the product to stock
    • change order status after a credit memo has been created.
  • You can now set the customer group when creating a new order from the Admin interface.
  • You can now print invoices and credit memos from the Order page.
  • You can now successfully place orders when the Enable and Configure Website Payments Standard Payment Action attribute is set to Sale. Previously, under these conditions, Magento would display an error message and not allow you to complete the purchase.
  • Attributes of the salesInvoiceRepository methods are now more appropriately type cast. (The data type is now a nullable float.) Previously, due to the use of an incorrect data type, Magento would produce an error when calling the salesInvoiceRepositoryV1GetList method.
  • The order comments history no longer duplicates the time that a comment was made. Previously, the time that a comment was made was listed twice.
  • 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.
  • 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.
  • The order comments history no longer duplicates the time that a comment was made. Previously, the time that a comment was made was listed twice.
  • 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.
  • You can now create an order through Admin if there is a translate csv for order-header.
  • You can now use a second credit memo to successfully issue a full refund for a credit memo with adjustment fees.
  • Coupon codes are now included in invoice print outs.
  • The Orders grid now displays correct order dates.
  • Magento now displays the correct order time in the Sales Order grid in the Admin panel.
  • We’ve increased the size of the sales_order_payment.cc_number_encfield.
  • We’ve fixed an issue with an undefined offset in the order\config.php file.
  • The Create Order page now works as expected after you select Update items and quantities.
  • Magento no longer creates unnecessary loaders during checkout with an order that contains virtual products.

Payment methods

  • We’ve added support for the change to the USPS API that USPS implemented on September 1, 2017. After installing or upgrading to this release, Magento will display the Domestic rate for USPS, First-Class Mail Parcel as expected. Previously, the USPS First-Class Mail Parcel option was not available after September 1, 2017 on installations running Magento 2.x unless you applied the workaround described here.
  • You can now successfully complete Paypal checkout with products that have custom options.
  • Third-party payment gateways are now visible from the Admin.
  • Magento no longer displays the No Payment method available message when a customer tries to ship items to a billing-restricted country.
  • Magento now successfully completes checkout when a custom address attribute is added. Previously, an error occurred during checkout when the user added a required custom address attribute.
  • Removed a duplicate method call to the getLinkField method in the Magento\Catalog\Model\ResourceModel\Category class.
  • During order creation, you can now continue with a payment after clicking the Back button to the payment selection window.
  • The expiration year validator now works as expected.
  • We’ve introduced the Magento\Vault\Block\TokenRendererInterface::getToken method. This method provides details about payment tokens to renderer components, such as public hash and available card or account details. Third-party developers can use this method to implement this functionality in their payment integrations.

Braintree

  • You can now place orders from the Admin using the Braintree payment method.
  • We’ve enhanced our PayPal and Braintree implementations so that merchants can now:
    • Save customer PayPal account information in the Braintree Vault when using Braintree as a service. This enhancement provides a secure method for charging my customers without prompting them to enter a payment information for multiple purchases or for purchases from multiple devices. We’ve also added support for Maestro and Discover BINs added to the credit card form both for Braintree and PayPal solutions.
    • Configure dynamic descriptors (Company Name, Phone and URL) for Braintree. This enhancement supports customers easily identifying a source of transactions in their bank statements. (This will potential simplify the resolution of disputed transactions by supporting the display of the Kount status for Braintree in the Admin interface.)
  • Kount and 3D Secure now work as expected for Braintree Vault.
  • Magento now updates you as expected on order comments and order history after you initiate a refund using Braintree. Previously, when you clicked the Refund button (to initiate a refund), Magento did not redirect you to order comments and history information.
  • You can now use Braintree as a payment method when applying reward points or store credit to an order.
  • The Braintree payment method now works as expected with Vault table prefixing.
  • Magento no longer encounters an error when using the Braintree Vault payment GET order API call.
  • You can now use JCB and Diners Club credit cards with the Authorize.net payment method.
  • Fixed issue with credit card capture information failing to remain associated with its first authorization.
  • You can now successfully place orders with Braintree when using an alternative merchant account ID. (The merchant account does not need to match the 3D Secure authorization merchant account.)
  • Braintree no longer encounters an error during checkout when you apply a 100% discount coupon to a product and enable free shipping. Previously, Magento displayed a spinning loader widget, and your screen froze. The Developer console displayed this error: Uncaught Error: [paypal-container] is not a valid DOM Element.
  • Merchants can now accept payment on a Suspected Fraud order without Magento altering the amount in Total Paid. Previously, when a merchant accepted payment for an order with a status of Suspected Fraud, Magento doubled the payment amount.
  • You can now modify the product quantities of a previous order and re-order it using the saved credit card information from the first order.

PayPal

  • We’ve improved and streamlined the Magento Admin PayPal configuration interface.
  • PayPal Payflow Pro now uses the currency you’ve specified in your store settings. Previously, Magento converted the total price into U.S. dollars, no matter which currency was specified in the store settings.
  • We’ve fixed an issue with using PayPal Express Checkout to order products with custom options. Previously, although an Admin user could create and configure “File type” custom options, customers could not upload and store files within the order quote.
  • Fixed issue related to incorrect stock quantity calculation for bundle and configurable products during place order flow with PayPal Express Checkout.
  • Third-party payment gateways are now visible from the Admin.
  • Fixed issue with credit card capture information failing to remain associated with its first authorization.
  • 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.
  • Paypal errors no longer occur when Fixed Product Tax (FPT) is enabled. Previously, when a product had a FPT, Paypal Express reported an error when you tried to place the order.
  • PayPal Payflow Pro now uses the currency you’ve specified in your store settings. Previously, Magento converted the total price into U.S. dollars, no matter which currency was specified in the store settings.
  • When refunding an order from PayPal, Magento now creates a credit memo with the correct status.
  • The exported sheet now generates or renders data for columns that indicate associations for configurable products.
  • We’ve resolved a loader issue with Payflow Pro. The loader image is now invisible after redirecting to the payment page/success page or error page.

Performance

This release includes substantial improvements to Magento caching, image processing, and re-indexing, among other enhancements.

  • We’ve improved the speed of static asset deployment and now support a variety of asset deployment strategies that can be used to optimize speed and size of assets deployed. Indexers can now be run with 256M of PHP RAM and default MySQL configuration settings. Developers can further tune memory usage to improve indexer performance (in some cases up to 100% improvement).
  • We’ve improved storefront performance when creating 2500 or more product variants.
  • Opening many products from the Admin interface is now faster.
  • Creating many (2500 - 5000) product variants, both simple and complex product types is more efficient.
  • You can now quickly generate or preview multiple variations of a configurable product. (Saving these variations to the database can be time-consuming, if you have several thousand product options, and our efforts to improve performance continue.) Previously, Magento threw an Invalid Form key error is thrown while you tried to save a configurable product with variations.
  • Magento no longer performs unnecessary file check operations (for example, file_exists, is_file), which improves the performance of the category and product pages.
  • We’ve optimized compiler performance (that is, the setup:di:compile command).
  • We’ve improved the performance of the Display Time for Category Edit page for catalogs with many products or categories.

Image processing

  • We’ve improved the process of resizing images on the frontend.
  • The process of loading many configurable products with multiple images (for example, configurable products with three attributes and 250 options) is more efficient.

Caching

  • Magento now caches image metadata, which avoids the time-consuming need to read images for metadata loading.
  • Magento now caches attribute options for the layered navigation feature. This reduces the number of queries to the database, and consequently improves performance.
  • We’ve optimized and streamlined how we cache EAV attributes by removing unnecessary SQL queries.

PHP

  • PHPCS can now correctly parse the syntax of PHP 7.x return types.
  • Cart Price rules are now applied as expected to payment method conditions. Previously, discounts set in Cart Price rules were not applied during checkout.

Sample data

  • Magento now handles the catalog_product_entity_media_gallery_value.position value the same whether you’ve installed or upgraded the product. Previously, these values differed depending upon whether you upgraded or freshly installed your Magento code.
  • 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.

SalesRule

  • You can now select and add a category to a Cart Price rule. Previously, Magento displayed this error: “Uncaught ReferenceError: sales_rule_form is not defined”, and did not add the selected category to the condition.
  • A cart rule with a coupon code no longer overrides a cart rule without a coupon code when multiple cart rules are applied. Previously, when you created two cart rules and applied them to a cart, the rule with a coupon was applied, but the second rule was not.
  • The SalesRule table is the same whether you’ve freshly installed or updated Magento 2.2.
  • Magento no longer discounts items that belong to an excluded category. Previously, you were unable to exclude products assigned to a specific category due to the cart price rule.
  • The Cart Price rule nows affects coupon life as expected. Previously, coupons did not persist longer than the current date if they did not have a designated end-date.
  • Customers can no longer apply a coupon code twice. Previously, the “Uses per Coupon” limit did not work for auto-generated coupons.
  • Magento now implements free shipping if there is a Cart Price Rule match.
  • SalesRule now applies to auto-generated coupon codes as expected.

Scope

  • Changing a product price under the website scope now updates the product price across all stores. Previously, any price you set on the store view level overrode the price set in website scope.
  • The list of allowed countries is now configured as part of website scope, not store view scope.
  • A restricted user can now change storeview- or website- level attributes that are defined within his scope.
  • You can now select the scope for an action that you are running from the Catalog page’s product table.
  • The price you set on the website scope no longer overrides any local settings you set on configurable products at the store view level.

Search

  • Out-of-stock items no longer erroneously appear in results of layered navigation if that product option is out-of-stock.
  • 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.

Shipping

  • UPS now generates shipping rates for Puerto Rico postal codes.
  • Magento now displays tracking information when selected for the second shipping label created for the DHL shipping method. Previously, when you tried to display a completed DHL shipping label, Magento displayed an exception.
  • Refreshing your browser page while on the Review and Payments page of the checkout process no longer clears information from form fields. Previously, Magento cleared information from the Ship to field if you refreshed your browser page during this process.
  • You can now reload a page during checkout without unintentionally changing shipping information.
  • You can now save the settings you enter when creating a shipping label on an existing shipment. Previously, clicking the Save button resulted in an error, and the shipping label was not saved.
  • Added missing translation to label argument xml.
  • Magento no longer throws a fatal error when you create a new shipment for a placed order.
  • The State/Province field now changes to an input field as expected after you select United Kingdom when filling out the shipping address during checkout

Sitemap

  • Sitemap image URLs now match the URLs on product pages.
  • The sitemap is no longer generated in the wrong folder when vhost is connected to /pub.

Static file processing

  • We’ve corrected a problem with _requirejs asset retrieval via static.php in static content versioning.
  • Versioning of static files (including CSS, JS, font, and image files) is now enabled by default.
  • We’ve improved the speed of static asset deployment.
  • The setup:static-content:deploy command now provides flags that you can use to exclude or include individual themes, areas, and locales.

Swatches

  • Magento no longer creates redundant objects when initializing a configurable product on the Category page.
  • You can now disable swatches for both the Catalog page and search results (quick or advanced). To disable swatches from these requests, disable Stores > Configuration > Catalog > Storefront > Show Swatches in Product List.
  • We’ve optimized the logic that Magento uses to validate swatch attributes.
  • Magento now caches swatch data in the block cache, which improves the responsiveness of the configurable product pages.
  • Magento now correctly matches images to products. Previously, after you selected a configurable product, Magento displayed the images for another product.
  • Magento no longer displays a notice error when you create a text swatch attribute while the update product preview image setting is set to Yes.

TargetRule

  • Magento now displays Up-sells on the Product page.
  • We’ve fixed an SQL error that previously caused a logical error during the creation of a TargetRule. (This issue affected the modifyConditionByCategoryIdsAttribute function.)

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.
  • We’ve improved the performance of the Tax Rules form in installations containing many tax rates.
  • You can now create a tax rule when running Magento in Mozilla Firefox and Internet Explorer. Previously, you could not select a tax rate, and Magento displayed an error.
  • The tax_region_id value is no longer hard-coded in the \Magento\Tax\Setup\InstallData file.

Testing

  • We’ve fixed a fatal issue that occurred if you executed the CatalogImportExport test before running a subsequent test. Previously, you’d receive this error: Failed asserting that false is true.
  • We’ve fixed a fatal issue that occurred if you ran Travis builds on imagettfbbox 2.1.2. Previously, you’d receive this error:
  • PHP Fatal error: Call to undefined function Magento\Framework\Image\Adapter\imagettfbbox() in /home/travis/build/magento/magento2/lib/internal/Magento/Framework/Image/Adapter/Gd2.php
  • StdoTest is now marked as skipped.

Tier pricing

  • Magento now correctly calculates the tier price percentage when displayed prices include tax.
  • Magento no longer resets the tier price during quote recalculation. Previously, when you triggered an automatic quote recalculation (by changing the shipping address, for example), the tier price was lost. (This issue occurred only if the product record in the database had values for row_id and entity_id that didn’t match.)
  • Magento no longer adds a thousands separator ( , ) to representations of quantities that exceed 1000.
  • Tier pricing now works correctly with full page cache.

Translation and locales

  • String localizations now work as expected when phrases include text wrapped with single quotation marks.
  • Translations now work for layered navigation attribute options.

URL rewrites

  • You can now successfully create a product and assign it to a store without encountering the following error: Unique constraint violation found.
  • The catalog_url_rewrite_product_category table is the same whether you’ve freshly installed or updated Magento 2.2.
  • The Use default URL Key setting now works on the store-view level.
  • We’ve fixed several issues with how Magento processes URLs with trailing slashes.

Varnish

  • We’ve changed the behavior of the Varnish X-header. Only the parent (meta) SKU is now included in the list – not the SKUs of all child products.
  • Varnish no longer caches Cookie Restriction Mode Overlay.
  • Varnish now supports grace and saint mode to ensure that customers always see cached pages.
  • Viewing the page with HTTPS instead of HTTP no longer causes the Category menu to disappear in installations using Varnish cache.

Web API

  • You can now use REST to add video to a product description.
  • The PUT /V1/products/:sku/media/:entryId correctly updates a product’s media gallery and image role.
  • A null value may now be specified to unset the special_price attribute.
  • The Swagger documentation erroneously indicated that search queries can return detailed information about multiple objects. The description of these APIs now state which API to use to return detailed information about a single object.
  • You can now use REST to successfully update customer information without unintentionally deleting default billing and shipping address information.
  • You can now use a REST request to retrieve a shopping cart that contained a product with custom options. Previously, you could not use a REST request to retrieve a shopping cart that contained a product with custom options.
  • The PUT /V1/products/:sku/media/:entryId correctly updates a product’s media gallery and image role.
  • Searching for products via REST API using a store code in the URL returns products from all stores.

Source: Magento.com

Google+