diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7adb137e5586baa40c7e85da83344c94320b6d2e..67c355bcc7bd8b2d1b450ebc8240d3e19e9b4cf6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,25 @@
+0.74.0-beta6
+=============
+* Framework improvements
+    * Implemented a default exception handler for blocks
+    * Updated the root composer.json file
+    * Updated the setup tool to support different editions
+    * Added an ability to operate with Sales & Checkout APIs as guests and registered users
+    * Implemented the additional Sales & Checkout APIs for registered customers and guests
+    * Added unit tests to cover Sales & Checkout services code
+* Various
+    * Standardized the hierarchy of exceptions
+    * Added bundle product API integration to Catalog
+* Fixed bugs
+    * Fixed an issue where it was impossible to place an order using multiple address checkout
+    * Fixed an issue where DB timestamp columns with current_timestamp on update were not handled correctly
+    * Fixed an issue with FPT in partial invoices
+    * Fixed a performance issue in benchmark test
+    * Fixed the incorrect Exception class in the Magento_CurrencySymbol module
+    * Fixed an issue by letting MySQL determine a database table type instead of MyISAM
+    * Fixed an issue where test failures occurred when the database and the application were in different time zones
+    * Fixed an issue where \Magento\Framework\Phrase omitted placeholder values if no renderer was set
+
 0.74.0-beta5
 =============
 * Various
diff --git a/app/code/Magento/AdminNotification/composer.json b/app/code/Magento/AdminNotification/composer.json
index a3420f351b9588fbbdcaecd0c03e5ed4dafe1ef3..354ef5fe45ea35de94ce81c1970bbb98e1a889ab 100644
--- a/app/code/Magento/AdminNotification/composer.json
+++ b/app/code/Magento/AdminNotification/composer.json
@@ -3,15 +3,15 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-media-storage": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-media-storage": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "lib-libxml": "*",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Authorization/composer.json b/app/code/Magento/Authorization/composer.json
index 7e73256be4e784c664a74d31269a01cc2ac551d2..22341f8d0b4d16e93ce92006994cd36e1fbedb58 100644
--- a/app/code/Magento/Authorization/composer.json
+++ b/app/code/Magento/Authorization/composer.json
@@ -3,12 +3,12 @@
     "description": "Authorization module provides access to Magento ACL functionality.",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Backend/App/Action/Context.php b/app/code/Magento/Backend/App/Action/Context.php
index e6618170e4d6b72683ed960679575649e307dec4..b16e9b05d18047a5420f007e4136cce3177907a5 100644
--- a/app/code/Magento/Backend/App/Action/Context.php
+++ b/app/code/Magento/Backend/App/Action/Context.php
@@ -5,6 +5,8 @@
  */
 namespace Magento\Backend\App\Action;
 
+use Magento\Framework\Controller\ResultFactory;
+
 /**
  * Backend Controller context
  * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
@@ -62,6 +64,7 @@ class Context extends \Magento\Framework\App\Action\Context
      * @param \Magento\Framework\App\ViewInterface $view
      * @param \Magento\Framework\Message\ManagerInterface $messageManager
      * @param \Magento\Backend\Model\View\Result\RedirectFactory $resultRedirectFactory
+     * @param \Magento\Framework\Controller\ResultFactory $resultFactory
      * @param \Magento\Backend\Model\Session $session
      * @param \Magento\Framework\AuthorizationInterface $authorization
      * @param \Magento\Backend\Model\Auth $auth
@@ -83,6 +86,7 @@ class Context extends \Magento\Framework\App\Action\Context
         \Magento\Framework\App\ViewInterface $view,
         \Magento\Framework\Message\ManagerInterface $messageManager,
         \Magento\Backend\Model\View\Result\RedirectFactory $resultRedirectFactory,
+        ResultFactory $resultFactory,
         \Magento\Backend\Model\Session $session,
         \Magento\Framework\AuthorizationInterface $authorization,
         \Magento\Backend\Model\Auth $auth,
@@ -102,7 +106,8 @@ class Context extends \Magento\Framework\App\Action\Context
             $actionFlag,
             $view,
             $messageManager,
-            $resultRedirectFactory
+            $resultRedirectFactory,
+            $resultFactory
         );
 
         $this->_session = $session;
diff --git a/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Datetime.php b/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Datetime.php
index 4d5255c93cd4187907d0873697444b7d2203af2f..7ff6ce3773c50ef14917a85706ac5d8a0af4d02b 100644
--- a/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Datetime.php
+++ b/app/code/Magento/Backend/Block/Widget/Grid/Column/Filter/Datetime.php
@@ -104,7 +104,7 @@ class Datetime extends \Magento\Backend\Block\Widget\Grid\Column\Filter\Date
         $html =
             '<div class="range" id="' . $htmlId . '_range"><div class="range-line date">' . '<input type="text" name="'
             . $this->_getHtmlName() . '[from]" id="' . $htmlId . '_from"' . ' value="' . $this->getEscapedValue('from')
-            . '" class="input-text no-changes" placeholder="' . __(
+            . '" class="input-text admin__control-text no-changes" placeholder="' . __(
                 'From'
             ) . '" ' . $this->getUiId(
                 'filter',
@@ -114,7 +114,7 @@ class Datetime extends \Magento\Backend\Block\Widget\Grid\Column\Filter\Date
         $html .= '<div class="range-line date">' . '<input type="text" name="' . $this->_getHtmlName() . '[to]" id="'
             . $htmlId . '_to"' . ' value="' . $this->getEscapedValue(
                 'to'
-            ) . '" class="input-text no-changes" placeholder="' . __(
+            ) . '" class="input-text admin__control-text no-changes" placeholder="' . __(
                 'To'
             ) . '" ' . $this->getUiId(
                 'filter',
diff --git a/app/code/Magento/Backend/composer.json b/app/code/Magento/Backend/composer.json
index b6bf9931bf462f34dac09df561c6b74514caecbe..d229a7feb44b54367af4b052d1c43bc2a8f7e517 100644
--- a/app/code/Magento/Backend/composer.json
+++ b/app/code/Magento/Backend/composer.json
@@ -3,27 +3,27 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-developer": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-cron": "0.74.0-beta5",
-        "magento/module-theme": "0.74.0-beta5",
-        "magento/module-reports": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-user": "0.74.0-beta5",
-        "magento/module-backup": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-translation": "0.74.0-beta5",
-        "magento/module-require-js": "0.74.0-beta5",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-developer": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-cron": "0.74.0-beta6",
+        "magento/module-theme": "0.74.0-beta6",
+        "magento/module-reports": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-user": "0.74.0-beta6",
+        "magento/module-backup": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-translation": "0.74.0-beta6",
+        "magento/module-require-js": "0.74.0-beta6",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Backend/etc/adminhtml/di.xml b/app/code/Magento/Backend/etc/adminhtml/di.xml
index ba52677a683d9ee8e098cdd48bda87ddc128c2e9..553d30e85541f36dbd0a50834d1d146d99b84d5d 100644
--- a/app/code/Magento/Backend/etc/adminhtml/di.xml
+++ b/app/code/Magento/Backend/etc/adminhtml/di.xml
@@ -90,6 +90,24 @@
             <argument name="instanceName" xsi:type="string">Magento\Backend\Model\View\Result\Page</argument>
         </arguments>
     </type>
+    <type name="Magento\Framework\Controller\ResultFactory">
+        <arguments>
+            <argument name="typeMap" xsi:type="array">
+                <item name="redirect" xsi:type="array">
+                    <item name="type" xsi:type="const">Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT</item>
+                    <item name="class" xsi:type="string">Magento\Backend\Model\View\Result\Redirect</item>
+                </item>
+                <item name="page" xsi:type="array">
+                    <item name="type" xsi:type="const">Magento\Framework\Controller\ResultFactory::TYPE_PAGE</item>
+                    <item name="class" xsi:type="string">Magento\Backend\Model\View\Result\Page</item>
+                </item>
+                <item name="forward" xsi:type="array">
+                    <item name="type" xsi:type="const">Magento\Framework\Controller\ResultFactory::TYPE_FORWARD</item>
+                    <item name="class" xsi:type="string">Magento\Backend\Model\View\Result\Forward</item>
+                </item>
+            </argument>
+        </arguments>
+    </type>
     <type name="Magento\Framework\View\Layout\BuilderFactory">
         <arguments>
             <argument name="typeMap" xsi:type="array">
diff --git a/app/code/Magento/Backend/view/adminhtml/templates/dashboard/grid.phtml b/app/code/Magento/Backend/view/adminhtml/templates/dashboard/grid.phtml
index 78d3d2677e94c705cc86af43d9562ff37aaacc6f..e9a724fdbf857b838c893142f1cd7c88e8276af3 100644
--- a/app/code/Magento/Backend/view/adminhtml/templates/dashboard/grid.phtml
+++ b/app/code/Magento/Backend/view/adminhtml/templates/dashboard/grid.phtml
@@ -14,7 +14,7 @@ $numColumns = sizeof($block->getColumns());
 <?php if ($block->getCollection()): ?>
 <div class="dashboard-item-content">
     <?php if ($block->getCollection()->getSize()>0): ?>
-        <table class="table-info dashboard-data" id="<?php echo $block->getId() ?>_table">
+        <table class="admin__table-primary dashboard-data" id="<?php echo $block->getId() ?>_table">
             <?php
             /* This part is commented to remove all <col> tags from the code. */
             /* foreach ($block->getColumns() as $_column): ?>
diff --git a/app/code/Magento/Backup/composer.json b/app/code/Magento/Backup/composer.json
index 6c0ab82327295bb0ca7c5ef74b812b144f4259c5..f7f9a0371534346f0bc39f7d7087a12200428386 100644
--- a/app/code/Magento/Backup/composer.json
+++ b/app/code/Magento/Backup/composer.json
@@ -3,14 +3,14 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-cron": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-cron": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Bundle/composer.json b/app/code/Magento/Bundle/composer.json
index 8873d0536f9e9cdb8c708d4657998186c26256ff..a16b4ad6d56cfb1002fae21f984ace5e9a5ea588 100644
--- a/app/code/Magento/Bundle/composer.json
+++ b/app/code/Magento/Bundle/composer.json
@@ -3,28 +3,28 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-tax": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-checkout": "0.74.0-beta5",
-        "magento/module-catalog-inventory": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-catalog-rule": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-gift-message": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/module-media-storage": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-tax": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-checkout": "0.74.0-beta6",
+        "magento/module-catalog-inventory": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-catalog-rule": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-gift-message": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/module-media-storage": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "suggest": {
-        "magento/module-webapi": "0.74.0-beta5"
+        "magento/module-webapi": "0.74.0-beta6"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Bundle/view/adminhtml/templates/product/composite/fieldset/options/bundle.phtml b/app/code/Magento/Bundle/view/adminhtml/templates/product/composite/fieldset/options/bundle.phtml
index 73d5d50ee6574c39c785bb19b5c59977faf7d54c..c1f89d31bf4b7f5373a4538aa402470328621606 100644
--- a/app/code/Magento/Bundle/view/adminhtml/templates/product/composite/fieldset/options/bundle.phtml
+++ b/app/code/Magento/Bundle/view/adminhtml/templates/product/composite/fieldset/options/bundle.phtml
@@ -11,7 +11,8 @@
 <?php /* @var $block \Magento\Bundle\Block\Adminhtml\Catalog\Product\Composite\Fieldset\Bundle */ ?>
 <?php $options = $block->decorateArray($block->getOptions()); ?>
 <?php if (count($options)): ?>
-<fieldset id="catalog_product_composite_configure_fields_bundle" class="fieldset admin__fieldset composite-bundle <?php echo $block->getIsLastFieldset() ? ' last-fieldset' : '' ?>">
+<fieldset id="catalog_product_composite_configure_fields_bundle"
+          class="fieldset admin__fieldset composite-bundle<?php echo $block->getIsLastFieldset() ? ' last-fieldset' : '' ?>">
     <legend class="legend admin__legend"><span><?php echo __('Bundle Items') ?></span></legend><br />
     <?php foreach ($options as $option) : ?>
         <?php if ($option->getSelections()) : ?>
diff --git a/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/create/items/renderer.phtml b/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/create/items/renderer.phtml
index 6986d5ab2953413e6dc7d7ae5a3bd3c168f834f7..1179737cea667d6e059ea35b4add49db3264d4a2 100644
--- a/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/create/items/renderer.phtml
+++ b/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/create/items/renderer.phtml
@@ -50,8 +50,8 @@
         <?php if (!$_item->getOrderItem()->getParentItem()): ?>
         <td class="col-product">
             <div class="product-title"><?php echo $block->escapeHtml($_item->getName()) ?></div>
-            <div>
-                <strong><?php echo __('SKU') ?>:</strong>
+            <div class="product-sku-block">
+                <span><?php echo __('SKU') ?>:</span>
                 <?php echo implode('<br />', $this->helper('Magento\Catalog\Helper\Data')->splitSku($block->escapeHtml($_item->getSku()))); ?>
             </div>
         </td>
@@ -67,46 +67,46 @@
         </td>
         <td class="col-ordered-qty">
             <?php if ($block->canShowPriceInfo($_item)): ?>
-                <table cellspacing="0" class="qty-table">
+                <table class="data-table qty-table">
                     <tr>
-                        <td><?php echo __('Ordered') ?></td>
-                        <td><strong><?php echo $_item->getOrderItem()->getQtyOrdered()*1 ?></strong></td>
+                        <th><?php echo __('Ordered') ?></th>
+                        <td><?php echo $_item->getOrderItem()->getQtyOrdered()*1 ?></td>
                     </tr>
                     <?php if ((float) $_item->getOrderItem()->getQtyInvoiced()): ?>
                     <tr>
-                        <td><?php echo __('Invoiced') ?></td>
-                        <td><strong><?php echo $_item->getOrderItem()->getQtyInvoiced()*1 ?></strong></td>
+                        <th><?php echo __('Invoiced') ?></th>
+                        <td><?php echo $_item->getOrderItem()->getQtyInvoiced()*1 ?></td>
                     </tr>
                     <?php endif; ?>
                     <?php if ((float) $_item->getOrderItem()->getQtyShipped() && $block->isShipmentSeparately($_item)): ?>
                     <tr>
-                        <td><?php echo __('Shipped') ?></td>
-                        <td><strong><?php echo $_item->getOrderItem()->getQtyShipped()*1 ?></strong></td>
+                        <th><?php echo __('Shipped') ?></th>
+                        <td><?php echo $_item->getOrderItem()->getQtyShipped()*1 ?></td>
                     </tr>
                     <?php endif; ?>
                     <?php if ((float) $_item->getOrderItem()->getQtyRefunded()): ?>
                     <tr>
-                        <td><?php echo __('Refunded') ?></td>
-                        <td><strong><?php echo $_item->getOrderItem()->getQtyRefunded()*1 ?></strong></td>
+                        <th><?php echo __('Refunded') ?></th>
+                        <td><?php echo $_item->getOrderItem()->getQtyRefunded()*1 ?></td>
                     </tr>
                     <?php endif; ?>
                     <?php if ((float) $_item->getOrderItem()->getQtyCanceled()): ?>
                     <tr>
-                        <td><?php echo __('Canceled') ?></td>
-                        <td><strong><?php echo $_item->getOrderItem()->getQtyCanceled()*1 ?></strong></td>
+                        <th><?php echo __('Canceled') ?></th>
+                        <td><?php echo $_item->getOrderItem()->getQtyCanceled()*1 ?></td>
                     </tr>
                     <?php endif; ?>
                 </table>
             <?php elseif ($block->isShipmentSeparately($_item)): ?>
-                <table cellspacing="0" class="qty-table">
+                <table class="data-table qty-table">
                     <tr>
-                        <td><?php echo __('Ordered') ?></td>
-                        <td><strong><?php echo $_item->getOrderItem()->getQtyOrdered()*1 ?></strong></td>
+                        <th><?php echo __('Ordered') ?></th>
+                        <td><?php echo $_item->getOrderItem()->getQtyOrdered()*1 ?></td>
                     </tr>
                     <?php if ((float) $_item->getOrderItem()->getQtyShipped()): ?>
                     <tr>
-                        <td><?php echo __('Shipped') ?></td>
-                        <td><strong><?php echo $_item->getOrderItem()->getQtyShipped()*1 ?></strong></td>
+                        <th><?php echo __('Shipped') ?></th>
+                        <td><?php echo $_item->getOrderItem()->getQtyShipped()*1 ?></td>
                     </tr>
                     <?php endif; ?>
                 </table>
@@ -118,17 +118,24 @@
         <td class="col-return-to-stock">
             <?php if ($block->canShowPriceInfo($_item)): ?>
                 <?php if ($block->canReturnItemToStock($_item)) : ?>
-                    <input type="checkbox" name="creditmemo[items][<?php echo $_item->getOrderItemId() ?>][back_to_stock]" value="1"<?php if ($_item->getBackToStock()):?> checked="checked"<?php endif;?> />
+                    <input type="checkbox"
+                           class="admin__control-checkbox"
+                           name="creditmemo[items][<?php echo $_item->getOrderItemId() ?>][back_to_stock]"
+                           value="1"<?php if ($_item->getBackToStock()):?> checked="checked"<?php endif;?> />
+                    <label class="admin__field-label"></label>
                 <?php endif; ?>
             <?php else: ?>
                 &nbsp;
             <?php endif; ?>
         </td>
         <?php endif; ?>
-        <td class="col-refund">
+        <td class="col-refund col-qty">
             <?php if ($block->canShowPriceInfo($_item)): ?>
                 <?php if ($block->canEditQty()) : ?>
-                    <input type="text" class="input-text qty-input" name="creditmemo[items][<?php echo $_item->getOrderItemId() ?>][qty]" value="<?php echo $_item->getQty()*1 ?>" />
+                    <input type="text"
+                           class="input-text admin__control-text qty-input"
+                           name="creditmemo[items][<?php echo $_item->getOrderItemId() ?>][qty]"
+                           value="<?php echo $_item->getQty()*1 ?>" />
                 <?php else: ?>
                     <?php echo $_item->getQty()*1 ?>
                 <?php endif; ?>
diff --git a/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/view/items/renderer.phtml b/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/view/items/renderer.phtml
index 37b22d2d43a2b046b225e2a2b247efc230ac5663..339bc32af067a91741ffcf2945265f7696177ecd 100644
--- a/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/view/items/renderer.phtml
+++ b/app/code/Magento/Bundle/view/adminhtml/templates/sales/creditmemo/view/items/renderer.phtml
@@ -48,8 +48,8 @@
         <?php if (!$_item->getOrderItem()->getParentItem()): ?>
         <td class="col-product">
             <div class="product-title"><?php echo $block->escapeHtml($_item->getName()) ?></div>
-            <div>
-                <strong><?php echo __('SKU') ?>:</strong>
+            <div class="product-sku-block">
+                <span><?php echo __('SKU') ?>:</span>
                 <?php echo implode('<br />', $this->helper('Magento\Catalog\Helper\Data')->splitSku($block->escapeHtml($_item->getSku()))); ?>
             </div>
         </td>
diff --git a/app/code/Magento/Bundle/view/adminhtml/templates/sales/invoice/create/items/renderer.phtml b/app/code/Magento/Bundle/view/adminhtml/templates/sales/invoice/create/items/renderer.phtml
index 5ad5c664845271785c65c01e01aa961591b6c333..ffabb6efc13ddf417d9fccb35aacdbec50099598 100644
--- a/app/code/Magento/Bundle/view/adminhtml/templates/sales/invoice/create/items/renderer.phtml
+++ b/app/code/Magento/Bundle/view/adminhtml/templates/sales/invoice/create/items/renderer.phtml
@@ -49,8 +49,8 @@
         <?php if (!$_item->getOrderItem()->getParentItem()): ?>
         <td class="col-product">
             <div class="product-title"><?php echo $block->escapeHtml($_item->getName()) ?></div>
-            <div>
-                <strong><?php echo __('SKU') ?>:</strong>
+            <div class="product-sku-block">
+                <span><?php echo __('SKU') ?>:</span>
                 <?php echo implode('<br />', $this->helper('Magento\Catalog\Helper\Data')->splitSku($block->escapeHtml($_item->getSku()))); ?>
             </div>
         </td>
@@ -68,46 +68,46 @@
         </td>
         <td class="col-qty">
             <?php if ($block->canShowPriceInfo($_item)): ?>
-                <table cellspacing="0" class="qty-table">
+                <table class="data-table qty-table">
                     <tr>
-                        <td><?php echo __('Ordered') ?></td>
+                        <th><?php echo __('Ordered') ?></th>
                         <td><strong><?php echo $_item->getOrderItem()->getQtyOrdered()*1 ?></strong></td>
                     </tr>
                     <?php if ((float) $_item->getOrderItem()->getQtyInvoiced()): ?>
                     <tr>
-                        <td><?php echo __('Invoiced') ?></td>
-                        <td><strong><?php echo $_item->getOrderItem()->getQtyInvoiced()*1 ?></strong></td>
+                        <th><?php echo __('Invoiced') ?></th>
+                        <td><?php echo $_item->getOrderItem()->getQtyInvoiced()*1 ?></td>
                     </tr>
                     <?php endif; ?>
                     <?php if ((float) $_item->getOrderItem()->getQtyShipped() && $block->isShipmentSeparately($_item)): ?>
                     <tr>
-                        <td><?php echo __('Shipped') ?></td>
-                        <td><strong><?php echo $_item->getOrderItem()->getQtyShipped()*1 ?></strong></td>
+                        <th><?php echo __('Shipped') ?></th>
+                        <td><?php echo $_item->getOrderItem()->getQtyShipped()*1 ?></td>
                     </tr>
                     <?php endif; ?>
                     <?php if ((float) $_item->getOrderItem()->getQtyRefunded()): ?>
                     <tr>
-                        <td><?php echo __('Refunded') ?></td>
-                        <td><strong><?php echo $_item->getOrderItem()->getQtyRefunded()*1 ?></strong></td>
+                        <th><?php echo __('Refunded') ?></th>
+                        <td><?php echo $_item->getOrderItem()->getQtyRefunded()*1 ?></td>
                     </tr>
                     <?php endif; ?>
                     <?php if ((float) $_item->getOrderItem()->getQtyCanceled()): ?>
                     <tr>
-                        <td><?php echo __('Canceled') ?></td>
-                        <td><strong><?php echo $_item->getOrderItem()->getQtyCanceled()*1 ?></strong></td>
+                        <th><?php echo __('Canceled') ?></th>
+                        <td><?php echo $_item->getOrderItem()->getQtyCanceled()*1 ?></td>
                     </tr>
                     <?php endif; ?>
                 </table>
             <?php elseif ($block->isShipmentSeparately($_item)): ?>
-                <table cellspacing="0" class="qty-table">
+                <table class="data-table qty-table">
                     <tr>
-                        <td><?php echo __('Ordered') ?></td>
-                        <td><strong><?php echo $_item->getOrderItem()->getQtyOrdered()*1 ?></strong></td>
+                        <th><?php echo __('Ordered') ?></th>
+                        <td><?php echo $_item->getOrderItem()->getQtyOrdered()*1 ?></td>
                     </tr>
                     <?php if ((float) $_item->getOrderItem()->getQtyShipped()): ?>
                     <tr>
-                        <td><?php echo __('Shipped') ?></td>
-                        <td><strong><?php echo $_item->getOrderItem()->getQtyShipped()*1 ?></strong></td>
+                        <th><?php echo __('Shipped') ?></th>
+                        <td><?php echo $_item->getOrderItem()->getQtyShipped()*1 ?></td>
                     </tr>
                     <?php endif; ?>
                 </table>
@@ -118,7 +118,10 @@
         <td class="col-qty-invoice">
             <?php if ($block->canShowPriceInfo($_item)): ?>
                 <?php if ($block->canEditQty()) : ?>
-                    <input type="text" class="input-text qty-input" name="invoice[items][<?php echo $_item->getOrderItemId() ?>]" value="<?php echo $_item->getQty()*1 ?>" />
+                    <input type="text"
+                           class="input-text admin__control-text qty-input"
+                           name="invoice[items][<?php echo $_item->getOrderItemId() ?>]"
+                           value="<?php echo $_item->getQty()*1 ?>" />
                 <?php else : ?>
                     <?php echo $_item->getQty()*1 ?>
                 <?php endif; ?>
diff --git a/app/code/Magento/Bundle/view/adminhtml/templates/sales/invoice/view/items/renderer.phtml b/app/code/Magento/Bundle/view/adminhtml/templates/sales/invoice/view/items/renderer.phtml
index 33db5d905cf3acebb353d935c8665e76c5f455fc..904d804580feace61ab761f2daaf284fc712b64c 100644
--- a/app/code/Magento/Bundle/view/adminhtml/templates/sales/invoice/view/items/renderer.phtml
+++ b/app/code/Magento/Bundle/view/adminhtml/templates/sales/invoice/view/items/renderer.phtml
@@ -48,8 +48,8 @@
         <?php if (!$_item->getOrderItem()->getParentItem()): ?>
         <td class="col-product">
             <div class="product-title"><?php echo $block->escapeHtml($_item->getName()) ?></div>
-            <div>
-                <strong><?php echo __('SKU') ?>:</strong>
+            <div class="product-sku-block">
+                <span><?php echo __('SKU') ?>:</span>
                 <?php echo implode('<br />', $this->helper('Magento\Catalog\Helper\Data')->splitSku($block->escapeHtml($_item->getSku()))); ?>
             </div>
         <?php else: ?>
diff --git a/app/code/Magento/Bundle/view/adminhtml/templates/sales/order/view/items/renderer.phtml b/app/code/Magento/Bundle/view/adminhtml/templates/sales/order/view/items/renderer.phtml
index 8c89a6e27c5cf1c22168dd930127ad3efb3d97c5..2f31655de1e2eaa36a24aeb73c80812725ba71e0 100644
--- a/app/code/Magento/Bundle/view/adminhtml/templates/sales/order/view/items/renderer.phtml
+++ b/app/code/Magento/Bundle/view/adminhtml/templates/sales/order/view/items/renderer.phtml
@@ -53,8 +53,8 @@
             <div class="product-title" id="order_item_<?php echo $_item->getId() ?>_title">
                 <?php echo $block->escapeHtml($_item->getName()) ?>
             </div>
-            <div>
-                <strong><?php echo __('SKU') ?>:</strong>
+            <div class="product-sku-block">
+                <span><?php echo __('SKU') ?>:</span>
                 <?php echo implode('<br />', $this->helper('Magento\Catalog\Helper\Data')->splitSku($block->escapeHtml($_item->getSku()))); ?>
             </div>
         </td>
@@ -86,46 +86,46 @@
         </td>
         <td class="col-ordered-qty">
             <?php if ($block->canShowPriceInfo($_item)): ?>
-                <table cellspacing="0" class="qty-table">
+                <table class="data-table qty-table">
                     <tr>
-                        <td><?php echo __('Ordered') ?></td>
-                        <td><strong><?php echo $_item->getQtyOrdered()*1 ?></strong></td>
+                        <th><?php echo __('Ordered') ?></th>
+                        <td><?php echo $_item->getQtyOrdered()*1 ?></td>
                     </tr>
                     <?php if ((float) $_item->getQtyInvoiced()): ?>
                     <tr>
-                        <td><?php echo __('Invoiced') ?></td>
-                        <td><strong><?php echo $_item->getQtyInvoiced()*1 ?></strong></td>
+                        <th><?php echo __('Invoiced') ?></th>
+                        <td><?php echo $_item->getQtyInvoiced()*1 ?></td>
                     </tr>
                     <?php endif; ?>
                     <?php if ((float) $_item->getQtyShipped() && $block->isShipmentSeparately($_item)): ?>
                     <tr>
-                        <td><?php echo __('Shipped') ?></td>
-                        <td><strong><?php echo $_item->getQtyShipped()*1 ?></strong></td>
+                        <th><?php echo __('Shipped') ?></th>
+                        <td><?php echo $_item->getQtyShipped()*1 ?></td>
                     </tr>
                     <?php endif; ?>
                     <?php if ((float) $_item->getQtyRefunded()): ?>
                     <tr>
-                        <td><?php echo __('Refunded') ?></td>
-                        <td><strong><?php echo $_item->getQtyRefunded()*1 ?></strong></td>
+                        <th><?php echo __('Refunded') ?></th>
+                        <td><?php echo $_item->getQtyRefunded()*1 ?></td>
                     </tr>
                     <?php endif; ?>
                     <?php if ((float) $_item->getQtyCanceled()): ?>
                     <tr>
-                        <td><?php echo __('Canceled') ?></td>
-                        <td><strong><?php echo $_item->getQtyCanceled()*1 ?></strong></td>
+                        <th><?php echo __('Canceled') ?></th>
+                        <td><?php echo $_item->getQtyCanceled()*1 ?></td>
                     </tr>
                     <?php endif; ?>
                 </table>
             <?php elseif ($block->isShipmentSeparately($_item)): ?>
-                <table cellspacing="0" class="qty-table">
+                <table class="data-table qty-table">
                     <tr>
-                        <td><?php echo __('Ordered') ?></td>
-                        <td><strong><?php echo $_item->getQtyOrdered()*1 ?></strong></td>
+                        <th><?php echo __('Ordered') ?></th>
+                        <td><?php echo $_item->getQtyOrdered()*1 ?></td>
                     </tr>
                     <?php if ((float) $_item->getQtyShipped()): ?>
                     <tr>
-                        <td><?php echo __('Shipped') ?></td>
-                        <td><strong><?php echo $_item->getQtyShipped()*1 ?></strong></td>
+                        <th><?php echo __('Shipped') ?></th>
+                        <td><?php echo $_item->getQtyShipped()*1 ?></td>
                     </tr>
                     <?php endif; ?>
                 </table>
diff --git a/app/code/Magento/Bundle/view/adminhtml/templates/sales/shipment/create/items/renderer.phtml b/app/code/Magento/Bundle/view/adminhtml/templates/sales/shipment/create/items/renderer.phtml
index 08ef77d9161508a2601fe4ff14fb2ae2ab093e98..f1555682244ee4ba68b1d7e6202f2d9b66f884bc 100644
--- a/app/code/Magento/Bundle/view/adminhtml/templates/sales/shipment/create/items/renderer.phtml
+++ b/app/code/Magento/Bundle/view/adminhtml/templates/sales/shipment/create/items/renderer.phtml
@@ -43,8 +43,8 @@
         <?php if (!$_item->getOrderItem()->getParentItem()): ?>
         <td class="col-product">
             <div class="product-title"><?php echo $block->escapeHtml($_item->getName()) ?></div>
-            <div>
-                <strong><?php echo __('SKU') ?>:</strong>
+            <div class="product-sku-block">
+                <span><?php echo __('SKU') ?>:</span>
                 <?php echo implode('<br />', $this->helper('Magento\Catalog\Helper\Data')->splitSku($block->escapeHtml($_item->getSku()))); ?>
             </div>
         </td>
@@ -60,7 +60,10 @@
         </td>
         <td class="col-qty last">
             <?php if ($block->isShipmentSeparately($_item)): ?>
-                <input type="text" class="input-text" name="shipment[items][<?php echo $_item->getOrderItemId() ?>]" value="<?php echo $_item->getQty()*1 ?>" />
+                <input type="text"
+                       class="input-text admin__control-text"
+                       name="shipment[items][<?php echo $_item->getOrderItemId() ?>]"
+                       value="<?php echo $_item->getQty()*1 ?>" />
             <?php else: ?>
                 &nbsp;
             <?php endif; ?>
diff --git a/app/code/Magento/Bundle/view/adminhtml/templates/sales/shipment/view/items/renderer.phtml b/app/code/Magento/Bundle/view/adminhtml/templates/sales/shipment/view/items/renderer.phtml
index 16c98a2522059be6648f1c36364584dca4a26ac7..e8a2d69f16530de18698e5808cc57591fb420bb2 100644
--- a/app/code/Magento/Bundle/view/adminhtml/templates/sales/shipment/view/items/renderer.phtml
+++ b/app/code/Magento/Bundle/view/adminhtml/templates/sales/shipment/view/items/renderer.phtml
@@ -43,8 +43,8 @@
         <?php if (!$_item->getParentItem()): ?>
         <td class="col-product">
             <div class="product-title"><?php echo $block->escapeHtml($_item->getName()) ?></div>
-            <div>
-                <strong><?php echo __('SKU') ?>:</strong>
+            <div class="product-sku-block">
+                <span><?php echo __('SKU') ?>:</span>
                 <?php echo implode('<br />', $this->helper('Magento\Catalog\Helper\Data')->splitSku($block->escapeHtml($_item->getSku()))); ?>
             </div>
         </td>
diff --git a/app/code/Magento/CacheInvalidate/composer.json b/app/code/Magento/CacheInvalidate/composer.json
index 85636ed03a214e287940522cc1dad44b1eb30d67..4e1062c5a74902db562b9e2c7ed010ff9ab5bdfa 100644
--- a/app/code/Magento/CacheInvalidate/composer.json
+++ b/app/code/Magento/CacheInvalidate/composer.json
@@ -3,12 +3,12 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-page-cache": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-page-cache": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Captcha/composer.json b/app/code/Magento/Captcha/composer.json
index 95638b5822e5f4dc0018ca232f89f0e52d998735..dee103fd89226bade4029e318d5b99fd03bf2b30 100644
--- a/app/code/Magento/Captcha/composer.json
+++ b/app/code/Magento/Captcha/composer.json
@@ -3,15 +3,15 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-checkout": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-checkout": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Catalog/composer.json b/app/code/Magento/Catalog/composer.json
index ff1d9af0f319ce435b778507018f44d1bf92f526..16e53d937b9199bb77a3828853871a6e287d4060 100644
--- a/app/code/Magento/Catalog/composer.json
+++ b/app/code/Magento/Catalog/composer.json
@@ -3,37 +3,37 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-cms": "0.74.0-beta5",
-        "magento/module-indexer": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-theme": "0.74.0-beta5",
-        "magento/module-checkout": "0.74.0-beta5",
-        "magento/module-log": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-widget": "0.74.0-beta5",
-        "magento/module-wishlist": "0.74.0-beta5",
-        "magento/module-tax": "0.74.0-beta5",
-        "magento/module-msrp": "0.74.0-beta5",
-        "magento/module-catalog-inventory": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-catalog-rule": "0.74.0-beta5",
-        "magento/module-product-alert": "0.74.0-beta5",
-        "magento/module-url-rewrite": "0.74.0-beta5",
-        "magento/module-catalog-url-rewrite": "0.74.0-beta5",
-        "magento/module-page-cache": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-media-storage": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-cms": "0.74.0-beta6",
+        "magento/module-indexer": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-theme": "0.74.0-beta6",
+        "magento/module-checkout": "0.74.0-beta6",
+        "magento/module-log": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-widget": "0.74.0-beta6",
+        "magento/module-wishlist": "0.74.0-beta6",
+        "magento/module-tax": "0.74.0-beta6",
+        "magento/module-msrp": "0.74.0-beta6",
+        "magento/module-catalog-inventory": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-catalog-rule": "0.74.0-beta6",
+        "magento/module-product-alert": "0.74.0-beta6",
+        "magento/module-url-rewrite": "0.74.0-beta6",
+        "magento/module-catalog-url-rewrite": "0.74.0-beta6",
+        "magento/module-page-cache": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-media-storage": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "suggest": {
-        "magento/module-cookie": "0.74.0-beta5"
+        "magento/module-cookie": "0.74.0-beta6"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/CatalogImportExport/composer.json b/app/code/Magento/CatalogImportExport/composer.json
index ea1dd5d998620505acfee1def2956798f4793866..ee8f34355558e63ab22dc08089041e4bdc99c3a4 100644
--- a/app/code/Magento/CatalogImportExport/composer.json
+++ b/app/code/Magento/CatalogImportExport/composer.json
@@ -3,20 +3,20 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-import-export": "0.74.0-beta5",
-        "magento/module-indexer": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-catalog-inventory": "0.74.0-beta5",
-        "magento/module-media-storage": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-import-export": "0.74.0-beta6",
+        "magento/module-indexer": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-catalog-inventory": "0.74.0-beta6",
+        "magento/module-media-storage": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "ext-ctype": "*",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/CatalogInventory/composer.json b/app/code/Magento/CatalogInventory/composer.json
index 8740b2ea137f6385daf408aa4fa61c820d5b8e94..129c2285172ca06dabdd98cb51dcc1a6ba9fdad7 100644
--- a/app/code/Magento/CatalogInventory/composer.json
+++ b/app/code/Magento/CatalogInventory/composer.json
@@ -3,18 +3,18 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-indexer": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-indexer": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/CatalogRule/composer.json b/app/code/Magento/CatalogRule/composer.json
index 352835339794eddfb3d2dabc82ef7cda88bc6e78..321bbcd7334b631b6f630452474b2ae25f5a265c 100644
--- a/app/code/Magento/CatalogRule/composer.json
+++ b/app/code/Magento/CatalogRule/composer.json
@@ -3,19 +3,19 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-rule": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-indexer": "0.74.0-beta5",
-        "magento/module-import-export": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-rule": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-indexer": "0.74.0-beta6",
+        "magento/module-import-export": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/CatalogSearch/composer.json b/app/code/Magento/CatalogSearch/composer.json
index 0a988ba3be2b861d5508ef2582e21f8a697bd09d..d9f2822e173203097515ba797209fdbb4a4c8a64 100644
--- a/app/code/Magento/CatalogSearch/composer.json
+++ b/app/code/Magento/CatalogSearch/composer.json
@@ -3,20 +3,20 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-search": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-indexer": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-theme": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-search": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-indexer": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-theme": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/CatalogUrlRewrite/composer.json b/app/code/Magento/CatalogUrlRewrite/composer.json
index cc49b31047ff20939f65f08a266450791b29792f..2488990a45e7570de05a47be2802787cb2fe1395 100644
--- a/app/code/Magento/CatalogUrlRewrite/composer.json
+++ b/app/code/Magento/CatalogUrlRewrite/composer.json
@@ -3,18 +3,18 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-catalog-import-export": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-import-export": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-url-rewrite": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-catalog-import-export": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-import-export": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-url-rewrite": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/CatalogWidget/composer.json b/app/code/Magento/CatalogWidget/composer.json
index 7804885f1155dc5cf7b2885140ccbab81812bae5..e92c896cb1a574e1aa912d5cc378bb8c70aead25 100644
--- a/app/code/Magento/CatalogWidget/composer.json
+++ b/app/code/Magento/CatalogWidget/composer.json
@@ -3,19 +3,19 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-widget": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-rule": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-wishlist": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-widget": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-rule": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-wishlist": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Centinel/composer.json b/app/code/Magento/Centinel/composer.json
index f6c1b2a6459cbcdebea1ae76ce0927355218606c..584771858a87c0b5d497fd4ff33d11d890b28892 100644
--- a/app/code/Magento/Centinel/composer.json
+++ b/app/code/Magento/Centinel/composer.json
@@ -3,15 +3,15 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-checkout": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-checkout": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Checkout/composer.json b/app/code/Magento/Checkout/composer.json
index 3ff8bfdb0e1e152992f8a393859817f6fc9ad865..266290632764108d9de90c7d0d6a60a447173e5e 100644
--- a/app/code/Magento/Checkout/composer.json
+++ b/app/code/Magento/Checkout/composer.json
@@ -3,32 +3,32 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-catalog-inventory": "0.74.0-beta5",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-payment": "0.74.0-beta5",
-        "magento/module-shipping": "0.74.0-beta5",
-        "magento/module-tax": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-gift-message": "0.74.0-beta5",
-        "magento/module-wishlist": "0.74.0-beta5",
-        "magento/module-page-cache": "0.74.0-beta5",
-        "magento/module-theme": "0.74.0-beta5",
-        "magento/module-msrp": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
-        "magento/module-ui": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-catalog-inventory": "0.74.0-beta6",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-payment": "0.74.0-beta6",
+        "magento/module-shipping": "0.74.0-beta6",
+        "magento/module-tax": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-gift-message": "0.74.0-beta6",
+        "magento/module-wishlist": "0.74.0-beta6",
+        "magento/module-page-cache": "0.74.0-beta6",
+        "magento/module-theme": "0.74.0-beta6",
+        "magento/module-msrp": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
+        "magento/module-ui": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "suggest": {
-        "magento/module-cookie": "0.74.0-beta5"
+        "magento/module-cookie": "0.74.0-beta6"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js b/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js
index d3c3a264b88d814fd8123aa84bc1df10d3828aa6..31e16ff05c81bd932e7250420acce9e270f46aa4 100644
--- a/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js
+++ b/app/code/Magento/Checkout/view/frontend/web/js/sidebar.js
@@ -60,11 +60,13 @@ define([
          * @private
          */
         _isOverflowed: function() {
-            var list = $(this.options.minicart.list);
+            var list = $(this.options.minicart.list),
+                cssOverflowClass = 'overflowed';
+
             if (this.scrollHeight > list.innerHeight()) {
-                list.parent().addClass('overflowed');
+                list.parent().addClass(cssOverflowClass);
             } else {
-                list.parent().removeClass('overflowed');
+                list.parent().removeClass(cssOverflowClass);
             }
         },
 
@@ -238,9 +240,9 @@ define([
             this.scrollHeight = 0;
             target.children().each(function() {
                 if (counter-- > 0) {
-                    height += $(this).height() - 15;
+                    height += $(this).height();
                 }
-                self.scrollHeight += $(this).height() - 15;
+                self.scrollHeight += $(this).height();
             });
 
             target.remove();
diff --git a/app/code/Magento/CheckoutAgreements/composer.json b/app/code/Magento/CheckoutAgreements/composer.json
index 2df471b27277a34a6fe4fe297f57adce503fea55..4693f5b11aa25b57cde6a425594a965b1355de7f 100644
--- a/app/code/Magento/CheckoutAgreements/composer.json
+++ b/app/code/Magento/CheckoutAgreements/composer.json
@@ -3,14 +3,14 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-checkout": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-checkout": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Cms/composer.json b/app/code/Magento/Cms/composer.json
index fdec1f9aabe0043a939d82a4733de8d4e65a872f..9ee9de410e132ace5520da29bfb9f6edc89fb4c7 100644
--- a/app/code/Magento/Cms/composer.json
+++ b/app/code/Magento/Cms/composer.json
@@ -3,20 +3,20 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-theme": "0.74.0-beta5",
-        "magento/module-widget": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-email": "0.74.0-beta5",
-        "magento/module-ui": "0.74.0-beta5",
-        "magento/module-variable": "0.74.0-beta5",
-        "magento/module-media-storage": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-theme": "0.74.0-beta6",
+        "magento/module-widget": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-email": "0.74.0-beta6",
+        "magento/module-ui": "0.74.0-beta6",
+        "magento/module-variable": "0.74.0-beta6",
+        "magento/module-media-storage": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/CmsUrlRewrite/composer.json b/app/code/Magento/CmsUrlRewrite/composer.json
index 427b28143c9d1d9b8f0f4bbfe20f5d732430ea77..06f0e19df1fb840dd3dde3e6028ab68dda347b3a 100644
--- a/app/code/Magento/CmsUrlRewrite/composer.json
+++ b/app/code/Magento/CmsUrlRewrite/composer.json
@@ -3,14 +3,14 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-cms": "0.74.0-beta5",
-        "magento/module-url-rewrite": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-cms": "0.74.0-beta6",
+        "magento/module-url-rewrite": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Config/composer.json b/app/code/Magento/Config/composer.json
index 0e2c50498195b943caa93504a716c734e711b04e..04e2fbc1e741c134694fdd2579fc618a3bf132c4 100644
--- a/app/code/Magento/Config/composer.json
+++ b/app/code/Magento/Config/composer.json
@@ -3,17 +3,17 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/framework": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-cron": "0.74.0-beta5",
-        "magento/module-email": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-media-storage": "0.74.0-beta5",
+        "magento/framework": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-cron": "0.74.0-beta6",
+        "magento/module-email": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-media-storage": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/ConfigurableImportExport/composer.json b/app/code/Magento/ConfigurableImportExport/composer.json
index b316df5f4500302cb6b6a72a185d41468df54f1c..d504ebf2a76d16c9f183cd6419774e822571e6c3 100644
--- a/app/code/Magento/ConfigurableImportExport/composer.json
+++ b/app/code/Magento/ConfigurableImportExport/composer.json
@@ -3,16 +3,16 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-catalog-import-export": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-import-export": "0.74.0-beta5",
-        "magento/module-configurable-product": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-catalog-import-export": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-import-export": "0.74.0-beta6",
+        "magento/module-configurable-product": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/ConfigurableProduct/composer.json b/app/code/Magento/ConfigurableProduct/composer.json
index d7a6e4738064976fcbc4d905dd033f51a6e1a232..507ee995f908bde44cc3f29647133573e35de89c 100644
--- a/app/code/Magento/ConfigurableProduct/composer.json
+++ b/app/code/Magento/ConfigurableProduct/composer.json
@@ -3,26 +3,26 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-catalog-inventory": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-checkout": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-catalog-rule": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
-        "magento/module-media-storage": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-catalog-inventory": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-checkout": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-catalog-rule": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
+        "magento/module-media-storage": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "suggest": {
-      "magento/module-webapi": "0.74.0-beta5"
+      "magento/module-webapi": "0.74.0-beta6"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Contact/composer.json b/app/code/Magento/Contact/composer.json
index ac2fdff06e047a7756a76fbe87f93d13348ef5aa..d2e5971064d0752a9053de71ef835fa13f07b6db 100644
--- a/app/code/Magento/Contact/composer.json
+++ b/app/code/Magento/Contact/composer.json
@@ -3,15 +3,15 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-cms": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-cms": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Cookie/composer.json b/app/code/Magento/Cookie/composer.json
index a9cf290b513184022ee15e1519efd17024b822f9..d3d5ef16f597b19653d8a69ff3e597bca16d30bf 100644
--- a/app/code/Magento/Cookie/composer.json
+++ b/app/code/Magento/Cookie/composer.json
@@ -3,15 +3,15 @@
     "description": "N/A",
     "require": {
         "php": "~5.4.11|~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "suggest": {
-        "magento/module-backend": "0.74.0-beta5"
+        "magento/module-backend": "0.74.0-beta6"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Cron/composer.json b/app/code/Magento/Cron/composer.json
index ef1fa3050a934823fb612caf437be5ca8712edfb..02fe4b2ed4e83bb3de474176d18e622266e9552d 100644
--- a/app/code/Magento/Cron/composer.json
+++ b/app/code/Magento/Cron/composer.json
@@ -3,13 +3,13 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/CurrencySymbol/composer.json b/app/code/Magento/CurrencySymbol/composer.json
index 722aef23ea946acd5c43ec20ee850ea702e7ddf0..4ef0b1acf67493b6de9ff927c58ba3ad8ae97166 100644
--- a/app/code/Magento/CurrencySymbol/composer.json
+++ b/app/code/Magento/CurrencySymbol/composer.json
@@ -3,16 +3,16 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-page-cache": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-page-cache": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Customer/Model/Resource/GroupRepository.php b/app/code/Magento/Customer/Model/Resource/GroupRepository.php
index 73b59ff2dd1e54166d149019ae8585076b46b37d..fe0d52ca471ef7a45f563a5529657d4a189a2b03 100644
--- a/app/code/Magento/Customer/Model/Resource/GroupRepository.php
+++ b/app/code/Magento/Customer/Model/Resource/GroupRepository.php
@@ -164,6 +164,7 @@ class GroupRepository implements \Magento\Customer\Api\GroupRepositoryInterface
 
         /** @var \Magento\Customer\Model\Resource\Group\Collection $collection */
         $collection = $this->groupFactory->create()->getCollection();
+        $collection->addTaxClass();
 
         //Add filters from root filter group to the collection
         /** @var FilterGroup $group */
@@ -234,6 +235,8 @@ class GroupRepository implements \Magento\Customer\Api\GroupRepositoryInterface
                 return 'customer_group_code';
             case GroupInterface::ID:
                 return 'customer_group_id';
+            case GroupInterface::TAX_CLASS_NAME:
+                return 'class_name';
             default:
                 return $field;
         }
diff --git a/app/code/Magento/Customer/Test/Unit/Block/Adminhtml/Edit/Tab/View/PersonalInfoTest.php b/app/code/Magento/Customer/Test/Unit/Block/Adminhtml/Edit/Tab/View/PersonalInfoTest.php
index 29adf1a01cca112fc6833837accaef7d1c3864ad..efc9e86abe834e477cb21e77577a6f4358f88fc3 100644
--- a/app/code/Magento/Customer/Test/Unit/Block/Adminhtml/Edit/Tab/View/PersonalInfoTest.php
+++ b/app/code/Magento/Customer/Test/Unit/Block/Adminhtml/Edit/Tab/View/PersonalInfoTest.php
@@ -171,7 +171,7 @@ class PersonalInfoTest extends \PHPUnit_Framework_TestCase
                 'customer/online_customers/online_minutes_interval',
                 \Magento\Store\Model\ScopeInterface::SCOPE_STORE
             )
-            ->willReturn(60); //TODO: it's value mocked because unit tests run data providers before all testsuite
+            ->willReturn(240); //TODO: it's value mocked because unit tests run data providers before all testsuite
 
         $this->customerLog->expects($this->any())->method('getLastLoginAt')->willReturn($lastLoginAt);
         $this->customerLog->expects($this->any())->method('getLastVisitAt')->willReturn($lastVisitAt);
diff --git a/app/code/Magento/Customer/composer.json b/app/code/Magento/Customer/composer.json
index 43d57a0229b6424f94f719b15ed7960ca14c6688..340ab29eca160e1cca6c80f8426ea2ebe66261cb 100644
--- a/app/code/Magento/Customer/composer.json
+++ b/app/code/Magento/Customer/composer.json
@@ -3,33 +3,33 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-newsletter": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-checkout": "0.74.0-beta5",
-        "magento/module-wishlist": "0.74.0-beta5",
-        "magento/module-theme": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-review": "0.74.0-beta5",
-        "magento/module-tax": "0.74.0-beta5",
-        "magento/module-page-cache": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
-        "magento/module-authorization": "0.74.0-beta5",
-        "magento/module-integration": "0.74.0-beta5",
-        "magento/module-media-storage": "0.74.0-beta5",
-        "magento/module-ui": "0.74.0-beta5",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-newsletter": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-checkout": "0.74.0-beta6",
+        "magento/module-wishlist": "0.74.0-beta6",
+        "magento/module-theme": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-review": "0.74.0-beta6",
+        "magento/module-tax": "0.74.0-beta6",
+        "magento/module-page-cache": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
+        "magento/module-authorization": "0.74.0-beta6",
+        "magento/module-integration": "0.74.0-beta6",
+        "magento/module-media-storage": "0.74.0-beta6",
+        "magento/module-ui": "0.74.0-beta6",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "suggest": {
-        "magento/module-cookie": "0.74.0-beta5"
+        "magento/module-cookie": "0.74.0-beta6"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/CustomerImportExport/composer.json b/app/code/Magento/CustomerImportExport/composer.json
index cab754cc3457e624a37dfeede79d2b7210833e31..3635354b9f3c6e0593281f1465051226cfc8c355 100644
--- a/app/code/Magento/CustomerImportExport/composer.json
+++ b/app/code/Magento/CustomerImportExport/composer.json
@@ -3,17 +3,17 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-import-export": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-import-export": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/DesignEditor/composer.json b/app/code/Magento/DesignEditor/composer.json
index f913fe9609962f88c00152fc389f1fe4e360ead6..7a24e23445b99be4268f881b05eff8013e9553da 100644
--- a/app/code/Magento/DesignEditor/composer.json
+++ b/app/code/Magento/DesignEditor/composer.json
@@ -3,18 +3,18 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-theme": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-translation": "0.74.0-beta5",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-media-storage": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-theme": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-translation": "0.74.0-beta6",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-media-storage": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Developer/composer.json b/app/code/Magento/Developer/composer.json
index 1684bd8ce8cb42e5d07f74d8524c479fa9c02926..2acb479e5e7da4b25ea3e78b4269be86c45fa06c 100644
--- a/app/code/Magento/Developer/composer.json
+++ b/app/code/Magento/Developer/composer.json
@@ -3,12 +3,12 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Dhl/composer.json b/app/code/Magento/Dhl/composer.json
index 9058fc5e562ad74ba84cc36c8336a5ea2db87ba5..9523a52d2f19d36247e9a99814c24cf43e8ee2a5 100644
--- a/app/code/Magento/Dhl/composer.json
+++ b/app/code/Magento/Dhl/composer.json
@@ -3,22 +3,22 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-shipping": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-checkout": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-catalog-inventory": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-shipping": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-checkout": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-catalog-inventory": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "lib-libxml": "*",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Directory/composer.json b/app/code/Magento/Directory/composer.json
index eb90b0170052f76bd3e75919e2b3a2ab8e4a67a0..bc25eea4a4f6717ae53a92714ecf462bfa6f0e6d 100644
--- a/app/code/Magento/Directory/composer.json
+++ b/app/code/Magento/Directory/composer.json
@@ -3,15 +3,15 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "lib-libxml": "*",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Downloadable/composer.json b/app/code/Magento/Downloadable/composer.json
index cabce5bc9cce6d05f8d2d2ff274610968d89882f..69f7d646d0ffd16100c2deddc801ab123ab375ad 100644
--- a/app/code/Magento/Downloadable/composer.json
+++ b/app/code/Magento/Downloadable/composer.json
@@ -3,28 +3,28 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-tax": "0.74.0-beta5",
-        "magento/module-theme": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-checkout": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-wishlist": "0.74.0-beta5",
-        "magento/module-gift-message": "0.74.0-beta5",
-        "magento/module-catalog-inventory": "0.74.0-beta5",
-        "magento/module-msrp": "0.74.0-beta5",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-media-storage": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-tax": "0.74.0-beta6",
+        "magento/module-theme": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-checkout": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-wishlist": "0.74.0-beta6",
+        "magento/module-gift-message": "0.74.0-beta6",
+        "magento/module-catalog-inventory": "0.74.0-beta6",
+        "magento/module-msrp": "0.74.0-beta6",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-media-storage": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable/links.phtml b/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable/links.phtml
index dada69c3e47a9ba4ee7732276d71affd02ea4667..8196069e692019324ad8295aaa7a6d70be207d0c 100644
--- a/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable/links.phtml
+++ b/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable/links.phtml
@@ -39,7 +39,7 @@
     <div class="admin__field admin__field-wide">
         <div class="admin__field-control">
             <div class="admin__control-table-wrapper">
-                <table cellspacing="0" class="admin__control-table">
+                <table class="admin__control-table">
                     <thead>
                         <tr>
                             <th class="col-title _required"><span><?php echo __('Title') ?></span></th>
@@ -163,7 +163,7 @@ require([
             '</td>'+
             '<td class="col-sort"><input type="text" name="downloadable[link][<%- data.id %>][sort_order]" value="<%- data.sort_order %>" class="input-text admin__control-text sort" /></td>'+
             '<td class="col-action">'+
-                '<button id="downloadable_link_<%- data.id %>_delete_button" type="button" class="action-remove"><span><?php echo __('Delete'); ?></span></button>'+
+                '<button id="downloadable_link_<%- data.id %>_delete_button" type="button" class="action-delete"><span><?php echo __('Delete'); ?></span></button>'+
             '</td>'+
         '</tr>';
 
@@ -310,7 +310,7 @@ require([
                 }
             },
             bindRemoveButtons : function(){
-                var buttons = $$('tbody#link_items_body .action-remove');
+                var buttons = $$('tbody#link_items_body .action-delete');
                 for(var i=0;i<buttons.length;i++){
                     if(!$(buttons[i]).binded && !$(buttons[i]).hasClassName('disabled')){
                         $(buttons[i]).binded = true;
diff --git a/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable/samples.phtml b/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable/samples.phtml
index 82ba490f0cf862ddce3e8a84944e889443979a62..11f7ee94465e6c143b1a6037c5b3ffebd59a21a7 100644
--- a/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable/samples.phtml
+++ b/app/code/Magento/Downloadable/view/adminhtml/templates/product/edit/downloadable/samples.phtml
@@ -31,7 +31,7 @@ $block->getConfigJson();
     <div class="admin__field admin__field-wide">
         <div class="admin__field-control">
             <div class="admin__control-table-wrapper">
-                <table cellspacing="0" class="admin__control-table">
+                <table class="admin__control-table">
                     <thead>
                         <tr>
                             <th class="_required col-title"><span><?php echo __('Title') ?></span></th>
@@ -102,7 +102,7 @@ require([
                             '</td>'+
                             '<td class="col-sort"><input type="text" name="downloadable[sample][<%- data.id %>][sort_order]" value="<%- data.sort_order %>" class="input-text sort admin__control-text" /></td>'+
                             '<td class="col-actions">'+
-                                '<button type="button" class="action-remove"><span>Delete</span></button>'+
+                                '<button type="button" class="action-delete"><span>Delete</span></button>'+
                             '</td>'+
                         '</tr>';
         sampleItems = {
@@ -183,7 +183,7 @@ require([
                 }
             },
             bindRemoveButtons: function() {
-                var buttons = $$('tbody#sample_items_body .action-remove');
+                var buttons = $$('tbody#sample_items_body .action-delete');
                 for(var i=0;i<buttons.length;i++){
                     if(!$(buttons[i]).binded){
                         $(buttons[i]).binded = true;
diff --git a/app/code/Magento/Downloadable/view/adminhtml/templates/sales/items/column/downloadable/name.phtml b/app/code/Magento/Downloadable/view/adminhtml/templates/sales/items/column/downloadable/name.phtml
index 79f67d109af865df0a47bcb29e0003d86b152c83..aa6712c6d459d0938ff92651aa3516465aa69039 100644
--- a/app/code/Magento/Downloadable/view/adminhtml/templates/sales/items/column/downloadable/name.phtml
+++ b/app/code/Magento/Downloadable/view/adminhtml/templates/sales/items/column/downloadable/name.phtml
@@ -10,11 +10,14 @@
 
 <?php if ($_item = $block->getItem()): ?>
     <div class="product-title"><?php echo $_item->getName() ?></div>
-    <div><strong><?php echo __('SKU') ?>:</strong> <?php echo implode('<br />', $this->helper('Magento\Catalog\Helper\Data')->splitSku($block->escapeHtml($block->getSku()))); ?></div>
+    <div class="product-sku-block">
+        <span><?php echo __('SKU') ?>:</span>
+        <?php echo implode('<br />', $this->helper('Magento\Catalog\Helper\Data')->splitSku($block->escapeHtml($block->getSku()))); ?>
+    </div>
     <?php if ($block->getOrderOptions()): ?>
         <dl class="item-options">
         <?php foreach ($block->getOrderOptions() as $_option): ?>
-            <dt><?php echo $_option['label'] ?></dt>
+            <dt><?php echo $_option['label'] ?>:</dt>
             <dd>
             <?php if (isset($_option['custom_view']) && $_option['custom_view']): ?>
                 <?php echo $_option['value'];?>
@@ -39,7 +42,7 @@ require(['prototype'], function(){
     <?php endif; ?>
     <?php if ($block->getLinks()): ?>
         <dl class="item-options">
-            <dt><?php echo $block->getLinksTitle(); ?></dt>
+            <dt><?php echo $block->getLinksTitle(); ?>:</dt>
             <?php foreach ($block->getLinks()->getPurchasedItems() as $_link): ?>
                 <dd><?php echo $block->escapeHtml($_link->getLinkTitle()) ?> (<?php echo $_link->getNumberOfDownloadsUsed() . ' / ' . ($_link->getNumberOfDownloadsBought() ? $_link->getNumberOfDownloadsBought() : __('U')) ?>)</dd>
             <?php endforeach; ?>
diff --git a/app/code/Magento/Eav/composer.json b/app/code/Magento/Eav/composer.json
index 0c10785c21dc2ea3a16f8f44c5894cb6a74360d6..48ba714ad64dafc7360bb73aa31e87ac3a96ac0d 100644
--- a/app/code/Magento/Eav/composer.json
+++ b/app/code/Magento/Eav/composer.json
@@ -3,16 +3,16 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-media-storage": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-media-storage": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Email/composer.json b/app/code/Magento/Email/composer.json
index 734bedc62d4af7f6a88aa3bdd5739040ab2671ee..afc6d37eb433e3b75b32196ad86b641530dbb796 100644
--- a/app/code/Magento/Email/composer.json
+++ b/app/code/Magento/Email/composer.json
@@ -3,16 +3,16 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-cms": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-variable": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-cms": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-variable": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Fedex/composer.json b/app/code/Magento/Fedex/composer.json
index 0e25a9cef9e08a1fb68bb4bd766907df267332d3..4e2b254631e2af230d799ecfca6b01371e26afcf 100644
--- a/app/code/Magento/Fedex/composer.json
+++ b/app/code/Magento/Fedex/composer.json
@@ -3,20 +3,20 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-shipping": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-catalog-inventory": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-shipping": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-catalog-inventory": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "lib-libxml": "*",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/GiftMessage/composer.json b/app/code/Magento/GiftMessage/composer.json
index 3b3f8bd3286e75382cfe29df8113150d353c8b51..68ce2c1de0918b500fa744563995ea560aa00240 100644
--- a/app/code/Magento/GiftMessage/composer.json
+++ b/app/code/Magento/GiftMessage/composer.json
@@ -3,20 +3,20 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-checkout": "0.74.0-beta5",
-        "magento/module-multishipping": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-checkout": "0.74.0-beta6",
+        "magento/module-multishipping": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/GiftMessage/view/adminhtml/templates/sales/order/create/giftoptions.phtml b/app/code/Magento/GiftMessage/view/adminhtml/templates/sales/order/create/giftoptions.phtml
index 3b6710cb9e1450263c494d2ee40e9860b66a4a69..b810ccccd95d8f23085677614fd4b2279705688c 100644
--- a/app/code/Magento/GiftMessage/view/adminhtml/templates/sales/order/create/giftoptions.phtml
+++ b/app/code/Magento/GiftMessage/view/adminhtml/templates/sales/order/create/giftoptions.phtml
@@ -12,8 +12,8 @@
 <?php if ($_item): ?>
     <?php $_childHtml = trim($block->getChildHtml('', false));?>
     <?php if ($_childHtml): ?>
-        <tr class="border">
-            <td colspan="8">
+        <tr class="row-gift-options">
+            <td colspan="7">
                 <a class="action-link" href="#" id="gift_options_link_<?php echo $_item->getId() ?>"><?php echo __('Gift Options') ?></a>
                 <script>
 require([
diff --git a/app/code/Magento/GoogleAdwords/composer.json b/app/code/Magento/GoogleAdwords/composer.json
index 4281f69da74682acc428f3a6378604d323802293..81dcd88401f817917d78a4ef6c7662e1cef9e6b8 100644
--- a/app/code/Magento/GoogleAdwords/composer.json
+++ b/app/code/Magento/GoogleAdwords/composer.json
@@ -3,13 +3,13 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/GoogleAnalytics/composer.json b/app/code/Magento/GoogleAnalytics/composer.json
index 465388ad322c19fc32b2c70780daa33e4c2a07ac..68cfa226900d210e823aae6eb94a46500ba21fd0 100644
--- a/app/code/Magento/GoogleAnalytics/composer.json
+++ b/app/code/Magento/GoogleAnalytics/composer.json
@@ -3,14 +3,14 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
-        "magento/module-cookie": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
+        "magento/module-cookie": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/GoogleOptimizer/composer.json b/app/code/Magento/GoogleOptimizer/composer.json
index 2b97a33986a56fc2a652b0b198c7393a6b0f1881..a20b62e29cb95b1840d2dfc056c0e6df5b9638a2 100644
--- a/app/code/Magento/GoogleOptimizer/composer.json
+++ b/app/code/Magento/GoogleOptimizer/composer.json
@@ -3,16 +3,16 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-google-analytics": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-cms": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-google-analytics": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-cms": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items.php b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items.php
index 1a7253c6c788cf98453a2221537b92fcc7992cae..0ec30477e3866e7d7582241f0892d6fa860d67d1 100644
--- a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items.php
+++ b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items.php
@@ -7,12 +7,10 @@ namespace Magento\GoogleShopping\Controller\Adminhtml\Googleshopping;
 
 use Magento\Backend\App\Action;
 use Magento\Framework\Notification\NotifierInterface;
+use Magento\Framework\Controller\ResultFactory;
 
 /**
  * GoogleShopping Admin Items Controller
- *
- * @name       \Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\Items
- * @author     Magento Core Team <core@magentocommerce.com>
  */
 class Items extends \Magento\Backend\App\Action
 {
@@ -55,7 +53,7 @@ class Items extends \Magento\Backend\App\Action
      * Redirect user to Google Captcha challenge
      *
      * @param \Zend_Gdata_App_CaptchaRequiredException $e
-     * @return void
+     * @return \Magento\Framework\Controller\ResultInterface
      */
     protected function _redirectToCaptcha($e)
     {
@@ -68,12 +66,13 @@ class Items extends \Magento\Backend\App\Action
             ]
         );
         if ($this->getRequest()->isAjax()) {
-            $this->getResponse()->representJson(
-                $this->_objectManager->get('Magento\Framework\Json\Helper\Data')
-                    ->jsonEncode(['redirect' => $redirectUrl])
-            );
+            /** @var \Magento\Framework\Controller\Result\Json $resultJson */
+            $resultJson = $this->resultFactory->create(ResultFactory::TYPE_JSON);
+            return $resultJson->setData(['redirect' => $redirectUrl]);
         } else {
-            $this->_redirect($redirectUrl);
+            /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
+            $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
+            return $resultRedirect->setUrl($redirectUrl);
         }
     }
 
diff --git a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/ConfirmCaptcha.php b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/ConfirmCaptcha.php
index ab9061908528a8d2cc1786b291096e190ae97702..ef6a9807e247bfe195da7c0aad055eb0e1a821ff 100644
--- a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/ConfirmCaptcha.php
+++ b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/ConfirmCaptcha.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -35,39 +34,34 @@ class ConfirmCaptcha extends \Magento\GoogleShopping\Controller\Adminhtml\Google
     /**
      * Confirm CAPTCHA
      *
-     * @return void
+     * @return \Magento\Framework\Controller\ResultInterface
      */
     public function execute()
     {
         $storeId = $this->_getStore()->getId();
         try {
-            $this->_objectManager->create(
-                'Magento\GoogleShopping\Model\Service'
-            )->getClient(
-                $storeId,
-                $this->urlDecoder->decode(
-                    $this->getRequest()->getParam('captcha_token')
-                ),
-                $this->getRequest()->getParam('user_confirm')
-            );
+            $this->_objectManager->create('Magento\GoogleShopping\Model\Service')
+                ->getClient(
+                    $storeId,
+                    $this->urlDecoder->decode($this->getRequest()->getParam('captcha_token')),
+                    $this->getRequest()->getParam('user_confirm')
+                );
             $this->messageManager->addSuccess(__('Captcha has been confirmed.'));
         } catch (\Zend_Gdata_App_CaptchaRequiredException $e) {
             $this->messageManager->addError(__('There was a Captcha confirmation error: %1', $e->getMessage()));
-            $this->_redirectToCaptcha($e);
-            return;
+            return $this->_redirectToCaptcha($e);
         } catch (\Zend_Gdata_App_Exception $e) {
             $this->messageManager->addError(
-                $this->_objectManager->get(
-                    'Magento\GoogleShopping\Helper\Data'
-                )->parseGdataExceptionMessage(
-                    $e->getMessage()
-                )
+                $this->_objectManager->get('Magento\GoogleShopping\Helper\Data')
+                    ->parseGdataExceptionMessage($e->getMessage())
             );
         } catch (\Exception $e) {
             $this->_objectManager->get('Psr\Log\LoggerInterface')->critical($e);
             $this->messageManager->addError(__('Something went wrong during Captcha confirmation.'));
         }
 
-        $this->_redirect('adminhtml/*/index', ['store' => $storeId]);
+        /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT);
+        return $resultRedirect->setPath('adminhtml/*/index', ['store' => $storeId]);
     }
 }
diff --git a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/Grid.php b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/Grid.php
index 7bd43f98baa86da153c1ad3984d05720acdef6f1..c0565fd7d89b67cbf1ce1bbee6eef31180fdd0d8 100644
--- a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/Grid.php
+++ b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/Grid.php
@@ -6,22 +6,43 @@
  */
 namespace Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\Items;
 
+use Magento\Backend\App\Action;
+use Magento\Framework\Notification\NotifierInterface;
+
 class Grid extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\Items
 {
+    /**
+     * @var \Magento\Framework\View\LayoutFactory
+     */
+    protected $layoutFactory;
+
+    /**
+     * @param Action\Context $context
+     * @param NotifierInterface $notifier
+     * @param \Magento\Framework\Url\EncoderInterface $urlEncoder
+     * @param \Magento\Framework\View\LayoutFactory $layoutFactory
+     */
+    public function __construct(
+        Action\Context $context,
+        NotifierInterface $notifier,
+        \Magento\Framework\Url\EncoderInterface $urlEncoder,
+        \Magento\Framework\View\LayoutFactory $layoutFactory
+    ) {
+        $this->layoutFactory = $layoutFactory;
+        parent::__construct($context, $notifier, $urlEncoder);
+    }
+
     /**
      * Grid with Google Content items
      *
-     * @return void
+     * @return \Magento\Framework\Controller\Result\Raw
      */
     public function execute()
     {
-        $this->_view->loadLayout();
-        $this->getResponse()->setBody(
-            $this->_view->getLayout()->createBlock(
-                'Magento\GoogleShopping\Block\Adminhtml\Items\Item'
-            )->setIndex(
-                $this->getRequest()->getParam('index')
-            )->toHtml()
-        );
+        /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
+        $resultRaw = $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_RAW);
+        /** @var \Magento\GoogleShopping\Block\Adminhtml\Items\Item $block */
+        $block = $this->layoutFactory->create()->createBlock('Magento\GoogleShopping\Block\Adminhtml\Items\Item');
+        return $resultRaw->setContents($block->setIndex($this->getRequest()->getParam('index'))->toHtml());
     }
 }
diff --git a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/Index.php b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/Index.php
index 56380c2148cfacfde955603861af9d03fa33fbb4..092ac1d0a4471fb21333cfa312cbeaf090d682cb 100644
--- a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/Index.php
+++ b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/Index.php
@@ -35,54 +35,36 @@ class Index extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\
         $this->urlDecoder = $urlDecoder;
     }
 
-    /**
-     * Initialize general settings for action
-     *
-     * @return $this
-     */
-    protected function _initAction()
-    {
-        $this->_view->loadLayout();
-        $this->_setActiveMenu(
-            'Magento_GoogleShopping::catalog_googleshopping_items'
-        )->_addBreadcrumb(
-            __('Catalog'),
-            __('Catalog')
-        )->_addBreadcrumb(
-            __('Google Content'),
-            __('Google Content')
-        );
-        return $this;
-    }
-
     /**
      * Manage Items page with two item grids: Magento products and Google Content items
      *
-     * @return void
+     * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Redirect
      */
     public function execute()
     {
         if (0 === (int)$this->getRequest()->getParam('store')) {
-            $this->_redirect(
+            /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
+            $resultRedirect = $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT);
+            return $resultRedirect->setPath(
                 'adminhtml/*/',
                 [
-                    'store' => $this->_objectManager->get(
-                        'Magento\Store\Model\StoreManagerInterface'
-                    )->getStore()->getId(),
+                    'store' => $this->_objectManager->get('Magento\Store\Model\StoreManagerInterface')
+                        ->getStore()->getId(),
                     '_current' => true
                 ]
             );
-            return;
         }
 
-        $this->_initAction();
-        $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Google Content Items'));
+        /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
+        $resultPage = $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_PAGE);
+        $resultPage->setActiveMenu('Magento_GoogleShopping::catalog_googleshopping_items')
+            ->addBreadcrumb(__('Catalog'), __('Catalog'))
+            ->addBreadcrumb(__('Google Content'), __('Google Content'));
+        $resultPage->getConfig()->getTitle()->prepend(__('Google Content Items'));
 
-        $contentBlock = $this->_view->getLayout()->createBlock(
-            'Magento\GoogleShopping\Block\Adminhtml\Items'
-        )->setStore(
-            $this->_getStore()
-        );
+        $contentBlock = $resultPage->getLayout()
+            ->createBlock('Magento\GoogleShopping\Block\Adminhtml\Items')
+            ->setStore($this->_getStore());
 
         if ($this->getRequest()->getParam('captcha_token') && $this->getRequest()->getParam('captcha_url')) {
             $contentBlock->setGcontentCaptchaToken(
@@ -97,11 +79,8 @@ class Index extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\
             );
         }
 
-        if (!$this->_objectManager->get(
-            'Magento\GoogleShopping\Model\Config'
-        )->isValidDefaultCurrencyCode(
-            $this->_getStore()->getId()
-        )
+        if (!$this->_objectManager->get('Magento\GoogleShopping\Model\Config')
+                ->isValidDefaultCurrencyCode($this->_getStore()->getId())
         ) {
             $_countryInfo = $this->_objectManager->get(
                 'Magento\GoogleShopping\Model\Config'
@@ -110,14 +89,14 @@ class Index extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\
             );
             $this->messageManager->addNotice(
                 __(
-                    "The store's currency should be set to %1 for %2 in system configuration. Otherwise item prices won't be correct in Google Content.",
+                    "The store's currency should be set to %1 for %2 in system configuration."
+                        . " Otherwise item prices won't be correct in Google Content.",
                     $_countryInfo['currency_name'],
                     $_countryInfo['name']
                 )
             );
         }
 
-        $this->_addBreadcrumb(__('Items'), __('Items'))->_addContent($contentBlock);
-        $this->_view->renderLayout();
+        return $resultPage->addBreadcrumb(__('Items'), __('Items'))->addContent($contentBlock);
     }
 }
diff --git a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/MassAdd.php b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/MassAdd.php
index 4af5444a043b464a7403dbf8d73e1e7cd0a93b12..4f101189769876999ba8e662e2bb2f711a653dda 100644
--- a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/MassAdd.php
+++ b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/MassAdd.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -11,13 +10,14 @@ class MassAdd extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshoppin
     /**
      * Add (export) several products to Google Content
      *
-     * @return void
+     * @return \Magento\Framework\Controller\ResultInterface
+     * @throws \Magento\Framework\Exception\LocalizedException
      */
     public function execute()
     {
         $flag = $this->_getFlag();
         if ($flag->isLocked()) {
-            return;
+            return $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_RAW);
         }
 
         session_write_close();
@@ -29,20 +29,14 @@ class MassAdd extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshoppin
 
         try {
             $flag->lock();
-            $this->_objectManager->create(
-                'Magento\GoogleShopping\Model\MassOperations'
-            )->setFlag(
-                $flag
-            )->addProducts(
-                $productIds,
-                $storeId
-            );
+            $this->_objectManager->create('Magento\GoogleShopping\Model\MassOperations')
+                ->setFlag($flag)
+                ->addProducts($productIds, $storeId);
         } catch (\Zend_Gdata_App_CaptchaRequiredException $e) {
             // Google requires CAPTCHA for login
             $this->messageManager->addError(__($e->getMessage()));
             $flag->unlock();
-            $this->_redirectToCaptcha($e);
-            return;
+            return $this->_redirectToCaptcha($e);
         } catch (\Exception $e) {
             $flag->unlock();
             $this->notifier->addMajor(
@@ -50,9 +44,10 @@ class MassAdd extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshoppin
                 $e->getMessage()
             );
             $this->_objectManager->get('Psr\Log\LoggerInterface')->critical($e);
-            return;
+            return $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_RAW);
         }
 
         $flag->unlock();
+        return $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_RAW);
     }
 }
diff --git a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/Refresh.php b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/Refresh.php
index 03fc43a2939797febd4ccdcc5bb1b837a3e9783c..60795768337b509e918aa33877ee4f8b5df2b447 100644
--- a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/Refresh.php
+++ b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/Refresh.php
@@ -1,7 +1,5 @@
 <?php
 /**
- * Update items statistics and remove the items which are not available in Google Content
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -10,6 +8,9 @@
 
 namespace Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\Items;
 
+/**
+ * Update items statistics and remove the items which are not available in Google Content
+ */
 class Refresh extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\Items
 {
     /**
@@ -20,13 +21,13 @@ class Refresh extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshoppin
     protected $operation = 'synchronizeItems';
 
     /**
-     * {@inheritdoc}
+     * @return \Magento\Framework\Controller\ResultInterface
      */
     public function execute()
     {
         $flag = $this->_getFlag();
         if ($flag->isLocked()) {
-            return;
+            return $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_RAW);
         }
 
         session_write_close();
@@ -38,19 +39,14 @@ class Refresh extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshoppin
         try {
             $flag->lock();
             $operation = $this->operation;
-            $this->_objectManager->create(
-                'Magento\GoogleShopping\Model\MassOperations'
-            )->setFlag(
-                $flag
-            )->$operation(
-                $itemIds
-            );
+            $this->_objectManager->create('Magento\GoogleShopping\Model\MassOperations')
+                ->setFlag($flag)
+                ->$operation($itemIds);
         } catch (\Zend_Gdata_App_CaptchaRequiredException $e) {
             // Google requires CAPTCHA for login
             $this->messageManager->addError(__($e->getMessage()));
             $flag->unlock();
-            $this->_redirectToCaptcha($e);
-            return;
+            return $this->_redirectToCaptcha($e);
         } catch (\Exception $e) {
             $flag->unlock();
             $this->notifier->addMajor(
@@ -60,9 +56,10 @@ class Refresh extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshoppin
                 )
             );
             $this->_objectManager->get('Psr\Log\LoggerInterface')->critical($e);
-            return;
+            return $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_RAW);
         }
 
         $flag->unlock();
+        return $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_RAW);
     }
 }
diff --git a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/Status.php b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/Status.php
index 02e72b6a7ccbd2cacba6d2570eeda4740d0b353e..373b05d547cc4c3818e3558a3242ecd21afeb422 100644
--- a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/Status.php
+++ b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Items/Status.php
@@ -11,16 +11,16 @@ class Status extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshopping
     /**
      * Retrieve background process status
      *
-     * @return \Magento\Framework\App\Response\Http
+     * @return \Magento\Framework\Controller\Result\Json
      */
     public function execute()
     {
         if ($this->getRequest()->isAjax()) {
             $this->getResponse()->setHeader('Content-Type', 'application/json');
             $params = ['is_running' => $this->_getFlag()->isLocked()];
-            return $this->getResponse()->representJson(
-                $this->_objectManager->get('Magento\Framework\Json\Helper\Data')->jsonEncode($params)
-            );
+            /** @var \Magento\Framework\Controller\Result\Json $resultJson */
+            $resultJson = $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_JSON);
+            return $resultJson->setData($params);
         }
     }
 }
diff --git a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Selection/Grid.php b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Selection/Grid.php
index a8c5ec7e749d33b799233a0b402fc79f4e9bc065..c3103f9882740b17732fa8946c3d134f75045c8c 100644
--- a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Selection/Grid.php
+++ b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Selection/Grid.php
@@ -8,20 +8,35 @@ namespace Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\Selection;
 
 class Grid extends \Magento\Backend\App\Action
 {
+    /**
+     * @var \Magento\Framework\View\LayoutFactory
+     */
+    protected $layoutFactory;
+
+    /**
+     * @param \Magento\Backend\App\Action\Context $context
+     * @param \Magento\Framework\View\LayoutFactory $layoutFactory
+     */
+    public function __construct(
+        \Magento\Backend\App\Action\Context $context,
+        \Magento\Framework\View\LayoutFactory $layoutFactory
+    ) {
+        $this->layoutFactory = $layoutFactory;
+        parent::__construct($context);
+    }
+
     /**
      * Grid with available products for Google Content
      *
-     * @return void
+     * @return \Magento\Framework\Controller\Result\Raw
      */
     public function execute()
     {
-        $this->_view->loadLayout();
-        $this->getResponse()->setBody(
-            $this->_view->getLayout()->createBlock(
-                'Magento\GoogleShopping\Block\Adminhtml\Items\Product'
-            )->setIndex(
-                $this->getRequest()->getParam('index')
-            )->toHtml()
+        /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
+        $resultRaw = $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_RAW);
+        return $resultRaw->setContents(
+            $this->layoutFactory->create()->createBlock('Magento\GoogleShopping\Block\Adminhtml\Items\Product')
+                ->setIndex($this->getRequest()->getParam('index'))->toHtml()
         );
     }
 }
diff --git a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Selection/Search.php b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Selection/Search.php
index 487ae3016ae2994d2d142c87cb5dfcd3e7c5b648..8a86f1fd794f8b4fdf8be9127c1a23e49fdb2dab 100644
--- a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Selection/Search.php
+++ b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Selection/Search.php
@@ -8,21 +8,35 @@ namespace Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\Selection;
 
 class Search extends \Magento\Backend\App\Action
 {
+    /**
+     * @var \Magento\Framework\View\LayoutFactory
+     */
+    protected $layoutFactory;
+
+    /**
+     * @param \Magento\Backend\App\Action\Context $context
+     * @param \Magento\Framework\View\LayoutFactory $layoutFactory
+     */
+    public function __construct(
+        \Magento\Backend\App\Action\Context $context,
+        \Magento\Framework\View\LayoutFactory $layoutFactory
+    ) {
+        $this->layoutFactory = $layoutFactory;
+        parent::__construct($context);
+    }
+
     /**
      * Search result grid with available products for Google Content
      *
-     * @return void
+     * @return \Magento\Framework\Controller\Result\Raw
      */
     public function execute()
     {
-        $this->getResponse()->setBody(
-            $this->_view->getLayout()->createBlock(
-                'Magento\GoogleShopping\Block\Adminhtml\Items\Product'
-            )->setIndex(
-                $this->getRequest()->getParam('index')
-            )->setFirstShow(
-                true
-            )->toHtml()
+        /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
+        $resultRaw = $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_RAW);
+        return $resultRaw->setContents(
+            $this->layoutFactory->create()->createBlock('Magento\GoogleShopping\Block\Adminhtml\Items\Product')
+                ->setIndex($this->getRequest()->getParam('index'))->setFirstShow(true)->toHtml()
         );
     }
 }
diff --git a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types.php b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types.php
index a233721ed9f907b4c715ecd96d7389851b3e6a17..068fa2cdf168fd1e33bb838ca4dfa0508f2724fd 100644
--- a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types.php
+++ b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types.php
@@ -68,21 +68,16 @@ class Types extends \Magento\Backend\App\Action
     /**
      * Initialize general settings for action
      *
-     * @return $this
+     * @return \Magento\Backend\Model\View\Result\Page
      */
-    protected function _initAction()
+    protected function initPage()
     {
-        $this->_view->loadLayout();
-        $this->_setActiveMenu(
-            'Magento_GoogleShopping::catalog_googleshopping_types'
-        )->_addBreadcrumb(
-            __('Catalog'),
-            __('Catalog')
-        )->_addBreadcrumb(
-            __('Google Content'),
-            __('Google Content')
-        );
-        return $this;
+        /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
+        $resultPage = $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_PAGE);
+        $resultPage->setActiveMenu('Magento_GoogleShopping::catalog_googleshopping_types')
+            ->addBreadcrumb(__('Catalog'), __('Catalog'))
+            ->addBreadcrumb(__('Google Content'), __('Google Content'));
+        return $resultPage;
     }
 
     /**
diff --git a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/Edit.php b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/Edit.php
index 89648aa1adabaa42ab4d07e41b667056e25e5fcc..e3f5eb02d2406786e6222f31416041c308bf5f9e 100644
--- a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/Edit.php
+++ b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/Edit.php
@@ -11,7 +11,7 @@ class Edit extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\T
     /**
      * Edit attribute set mapping
      *
-     * @return void
+     * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Redirect
      */
     public function execute()
     {
@@ -21,11 +21,9 @@ class Edit extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\T
         try {
             $result = [];
             if ($typeId) {
-                $collection = $this->_objectManager->create(
-                    'Magento\GoogleShopping\Model\Resource\Attribute\Collection'
-                )->addTypeFilter(
-                    $typeId
-                )->load();
+                $collection = $this->_objectManager
+                    ->create('Magento\GoogleShopping\Model\Resource\Attribute\Collection')
+                    ->addTypeFilter($typeId)->load();
                 foreach ($collection as $attribute) {
                     $result[] = $attribute->getData();
                 }
@@ -34,19 +32,22 @@ class Edit extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\T
             $this->_coreRegistry->register('attributes', $result);
 
             $breadcrumbLabel = $typeId ? __('Edit attribute set mapping') : __('New attribute set mapping');
-            $this->_initAction()->_addBreadcrumb(
-                $breadcrumbLabel,
-                $breadcrumbLabel
-            )->_addContent(
-                $this->_view->getLayout()->createBlock('Magento\GoogleShopping\Block\Adminhtml\Types\Edit')
-            );
-            $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Google Content Attribute Mapping'));
-            $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Google Content Attributes'));
-            $this->_view->renderLayout();
+
+            $resultPage = $this->initPage();
+            $resultPage->addBreadcrumb($breadcrumbLabel, $breadcrumbLabel)
+                ->addContent(
+                    $resultPage->getLayout()->createBlock('Magento\GoogleShopping\Block\Adminhtml\Types\Edit')
+                );
+
+            $resultPage->getConfig()->getTitle()->prepend(__('Google Content Attribute Mapping'));
+            $resultPage->getConfig()->getTitle()->prepend(__('Google Content Attributes'));
+            return $resultPage;
         } catch (\Exception $e) {
             $this->_objectManager->get('Psr\Log\LoggerInterface')->critical($e);
             $this->messageManager->addError(__("We can't edit Attribute Set Mapping."));
-            $this->_redirect('adminhtml/*/index');
+            /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
+            $resultRedirect = $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT);
+            return $resultRedirect->setPath('adminhtml/*/index');
         }
     }
 }
diff --git a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/Grid.php b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/Grid.php
index 1418bc0242a11271ec54d23ef3768dc6cce86141..91270934b4154ba019d2766c6c8911b1f8c64964 100644
--- a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/Grid.php
+++ b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/Grid.php
@@ -11,11 +11,10 @@ class Grid extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\T
     /**
      * Grid for AJAX request
      *
-     * @return void
+     * @return \Magento\Framework\View\Result\Layout
      */
     public function execute()
     {
-        $this->_view->loadLayout('false');
-        $this->_view->renderLayout();
+        return $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_LAYOUT);
     }
 }
diff --git a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/Index.php b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/Index.php
index 30232cbe3d40df6ca6d84739e4d94ba98ce1720d..b6116c7316a0283956bf4f8a049e2509c2f691a6 100644
--- a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/Index.php
+++ b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/Index.php
@@ -11,12 +11,12 @@ class Index extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\
     /**
      * List of all maps (items)
      *
-     * @return void
+     * @return \Magento\Backend\Model\View\Result\Page
      */
     public function execute()
     {
-        $this->_initAction()->_addBreadcrumb(__('Attribute Maps'), __('Attribute Maps'));
-        $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Google Content Attributes'));
-        $this->_view->renderLayout();
+        $resultPage = $this->initPage()->addBreadcrumb(__('Attribute Maps'), __('Attribute Maps'));
+        $resultPage->getConfig()->getTitle()->prepend(__('Google Content Attributes'));
+        return $resultPage;
     }
 }
diff --git a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/LoadAttributeSets.php b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/LoadAttributeSets.php
index 6cb5d6885d1355e0049abc808c63bc297ea878c4..fc8a1dc2bd6ccf7ed9b86858edf1983d0308de52 100644
--- a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/LoadAttributeSets.php
+++ b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/LoadAttributeSets.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -8,16 +7,37 @@ namespace Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\Types;
 
 class LoadAttributeSets extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\Types
 {
+    /**
+     * @var \Magento\Framework\View\LayoutFactory
+     */
+    protected $layoutFactory;
+
+    /**
+     * @param \Magento\Backend\App\Action\Context $context
+     * @param \Magento\Framework\Registry $coreRegistry
+     * @param \Magento\Framework\View\LayoutFactory $layoutFactory
+     */
+    public function __construct(
+        \Magento\Backend\App\Action\Context $context,
+        \Magento\Framework\Registry $coreRegistry,
+        \Magento\Framework\View\LayoutFactory $layoutFactory
+    ) {
+        $this->layoutFactory = $layoutFactory;
+        parent::__construct($context, $coreRegistry);
+    }
+
     /**
      * Get available attribute sets
      *
-     * @return void
+     * @return \Magento\Framework\Controller\Result\Raw
      * @throws \Exception
      */
     public function execute()
     {
-        $this->getResponse()->setBody(
-            $this->_view->getLayout()->getBlockSingleton('Magento\GoogleShopping\Block\Adminhtml\Types\Edit\Form')
+        /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
+        $resultRaw = $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_RAW);
+        return $resultRaw->setContents(
+            $this->layoutFactory->create()->getBlockSingleton('Magento\GoogleShopping\Block\Adminhtml\Types\Edit\Form')
                 ->getAttributeSetsSelectElement($this->getRequest()->getParam('target_country'))
                 ->toHtml()
         );
diff --git a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/LoadAttributes.php b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/LoadAttributes.php
index 54a0bce4af48ce45f7c35ced453aff950f94a9f3..0d817329dd869c3b8563c784190729ce2a04a394 100644
--- a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/LoadAttributes.php
+++ b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/LoadAttributes.php
@@ -8,29 +8,48 @@ namespace Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\Types;
 
 class LoadAttributes extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshopping\Types
 {
+    /**
+     * @var \Magento\Framework\View\LayoutFactory
+     */
+    protected $layoutFactory;
+
+    /**
+     * @param \Magento\Backend\App\Action\Context $context
+     * @param \Magento\Framework\Registry $coreRegistry
+     * @param \Magento\Framework\View\LayoutFactory $layoutFactory
+     */
+    public function __construct(
+        \Magento\Backend\App\Action\Context $context,
+        \Magento\Framework\Registry $coreRegistry,
+        \Magento\Framework\View\LayoutFactory $layoutFactory
+    ) {
+        $this->layoutFactory = $layoutFactory;
+        parent::__construct($context, $coreRegistry);
+    }
+
     /**
      * Get Google Content attributes list
      *
-     * @return void
+     * @return \Magento\Framework\Controller\Result\Raw
      */
     public function execute()
     {
+        /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */
+        $resultRaw = $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_RAW);
         try {
-            $this->getResponse()->setBody(
-                $this->_view->getLayout()->createBlock(
-                    'Magento\GoogleShopping\Block\Adminhtml\Types\Edit\Attributes'
-                )->setAttributeSetId(
-                    $this->getRequest()->getParam('attribute_set_id')
-                )->setTargetCountry(
-                    $this->getRequest()->getParam('target_country')
-                )->setAttributeSetSelected(
-                    true
-                )->toHtml()
+            $resultRaw->setContents(
+                $this->layoutFactory->create()
+                    ->createBlock('Magento\GoogleShopping\Block\Adminhtml\Types\Edit\Attributes')
+                    ->setAttributeSetId($this->getRequest()->getParam('attribute_set_id'))
+                    ->setTargetCountry($this->getRequest()->getParam('target_country'))
+                    ->setAttributeSetSelected(true)
+                    ->toHtml()
             );
         } catch (\Exception $e) {
             $this->_objectManager->get('Psr\Log\LoggerInterface')->critical($e);
             // just need to output text with error
             $this->messageManager->addError(__("We can't load attributes."));
         }
+        return $resultRaw;
     }
 }
diff --git a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/NewAction.php b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/NewAction.php
index ffb8ee171b7f6fc7c7466178b5b67e04f7e481a3..86b62a33b9c033d19c3153b56161a5e769cacb1c 100644
--- a/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/NewAction.php
+++ b/app/code/Magento/GoogleShopping/Controller/Adminhtml/Googleshopping/Types/NewAction.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -11,25 +10,31 @@ class NewAction extends \Magento\GoogleShopping\Controller\Adminhtml\Googleshopp
     /**
      * Create new attribute set mapping
      *
-     * @return void
+     * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Redirect
      */
     public function execute()
     {
         try {
             $this->_initItemType();
-            $this->_initAction()->_addBreadcrumb(
+
+            /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
+            $resultPage = $this->initPage()->addBreadcrumb(
                 __('New attribute set mapping'),
                 __('New attribute set mapping')
-            )->_addContent(
-                $this->_view->getLayout()->createBlock('Magento\GoogleShopping\Block\Adminhtml\Types\Edit')
             );
-            $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Google Content Attributes'));
-            $this->_view->getPage()->getConfig()->getTitle()->prepend(__('New Google Content Attribute Mapping'));
-            $this->_view->renderLayout();
+            $resultPage->addContent(
+                $resultPage->getLayout()->createBlock('Magento\GoogleShopping\Block\Adminhtml\Types\Edit')
+            );
+            $resultPage->getConfig()->getTitle()->prepend(__('Google Content Attributes'));
+            $resultPage->getConfig()->getTitle()->prepend(__('New Google Content Attribute Mapping'));
+            return $resultPage;
         } catch (\Exception $e) {
             $this->_objectManager->get('Psr\Log\LoggerInterface')->critical($e);
             $this->messageManager->addError(__("We can't create Attribute Set Mapping."));
-            $this->_redirect('adminhtml/*/index', ['store' => $this->_getStore()->getId()]);
+            /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
+            $resultRedirect = $this->resultFactory->create(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT);
+            $resultRedirect->setPath('adminhtml/*/index', ['store' => $this->_getStore()->getId()]);
+            return $resultRedirect;
         }
     }
 }
diff --git a/app/code/Magento/GoogleShopping/composer.json b/app/code/Magento/GoogleShopping/composer.json
index 691c21c5e5170582f692b3d8ff642d0f87a946cf..267a3c8cb23aeea71338a8532432c3e4a133ce26 100644
--- a/app/code/Magento/GoogleShopping/composer.json
+++ b/app/code/Magento/GoogleShopping/composer.json
@@ -3,18 +3,18 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-tax": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-tax": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/GroupedImportExport/composer.json b/app/code/Magento/GroupedImportExport/composer.json
index 6a7c82281d9845133e14500a6df7040ae028c074..2d66faa4f5b3761512df683740754d918999fe0c 100644
--- a/app/code/Magento/GroupedImportExport/composer.json
+++ b/app/code/Magento/GroupedImportExport/composer.json
@@ -3,16 +3,16 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-import-export": "0.74.0-beta5",
-        "magento/module-catalog-import-export": "0.74.0-beta5",
-        "magento/module-grouped-product": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-import-export": "0.74.0-beta6",
+        "magento/module-catalog-import-export": "0.74.0-beta6",
+        "magento/module-grouped-product": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/GroupedProduct/composer.json b/app/code/Magento/GroupedProduct/composer.json
index 3374488e9aefe2d27165e2537d1179f99eb5a3b1..cdd8818ca6b36d0d881e58e187ae078e61590d0c 100644
--- a/app/code/Magento/GroupedProduct/composer.json
+++ b/app/code/Magento/GroupedProduct/composer.json
@@ -3,22 +3,22 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-catalog-inventory": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-checkout": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-media-storage": "0.74.0-beta5",
-        "magento/module-msrp": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-catalog-inventory": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-checkout": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-media-storage": "0.74.0-beta6",
+        "magento/module-msrp": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/GroupedProduct/view/adminhtml/templates/catalog/product/composite/fieldset/grouped.phtml b/app/code/Magento/GroupedProduct/view/adminhtml/templates/catalog/product/composite/fieldset/grouped.phtml
index 0a09bcdf7488f7cc713a1a13a9f8b05e1027262d..08f14bf4c075522f0ef228743d89de74221b1b21 100644
--- a/app/code/Magento/GroupedProduct/view/adminhtml/templates/catalog/product/composite/fieldset/grouped.phtml
+++ b/app/code/Magento/GroupedProduct/view/adminhtml/templates/catalog/product/composite/fieldset/grouped.phtml
@@ -20,7 +20,7 @@
         <?php if ((!$_product->isAvailable() && !$_skipSaleableCheck) || !$_hasAssociatedProducts): ?>
             <p class="availability out-of-stock"><?php echo __('Availability:') ?> <span><?php echo __('Out of stock') ?></span></p>
         <?php endif; ?>
-        <table class="data-table table-info grouped-items-table" id="super-product-table">
+        <table class="data-table admin__table-primary grouped-items-table" id="super-product-table">
             <thead>
                 <tr class="headings">
                     <th class="col-id"><?php echo __('ID') ?></th>
diff --git a/app/code/Magento/ImportExport/composer.json b/app/code/Magento/ImportExport/composer.json
index 61c2c2b3db566f40ce5f5dcfec04e0d29d8e6488..747df1717017a7ddeffb4d80ef8640f23e2f5dfd 100644
--- a/app/code/Magento/ImportExport/composer.json
+++ b/app/code/Magento/ImportExport/composer.json
@@ -3,17 +3,17 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-indexer": "0.74.0-beta5",
-        "magento/module-media-storage": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-indexer": "0.74.0-beta6",
+        "magento/module-media-storage": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "ext-ctype": "*",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Indexer/composer.json b/app/code/Magento/Indexer/composer.json
index 8f8cb731492cbc26d2e9ae42e1daf0657889854b..1e199e2a193d9de0028b8d9ee4a0c2c62c026580 100644
--- a/app/code/Magento/Indexer/composer.json
+++ b/app/code/Magento/Indexer/composer.json
@@ -3,13 +3,13 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-page-cache": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-page-cache": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Integration/composer.json b/app/code/Magento/Integration/composer.json
index 6d55a11affe41674b996715169b4742df04d9e7a..9fa6582f0d0cd4bb38e11ceed92222616d1abd5a 100644
--- a/app/code/Magento/Integration/composer.json
+++ b/app/code/Magento/Integration/composer.json
@@ -3,16 +3,16 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-user": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
-        "magento/module-authorization": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-user": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
+        "magento/module-authorization": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/LayeredNavigation/composer.json b/app/code/Magento/LayeredNavigation/composer.json
index 7f68626650803f5cafd24ae952242a86a5b4e34f..ed19740fa51a2ec85a258179adb1147d47cbe49e 100644
--- a/app/code/Magento/LayeredNavigation/composer.json
+++ b/app/code/Magento/LayeredNavigation/composer.json
@@ -3,13 +3,13 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Log/composer.json b/app/code/Magento/Log/composer.json
index acb3bafe61980ed0ddc61025239aadfc9264a67b..5179484e4165391b9d64e747c7cde887bacdc2c5 100644
--- a/app/code/Magento/Log/composer.json
+++ b/app/code/Magento/Log/composer.json
@@ -3,15 +3,15 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/MediaStorage/composer.json b/app/code/Magento/MediaStorage/composer.json
index d451da9eea6a398b075e779ee2c936a41c8a9a17..1a140593019d9982ad679be6ab959f95baf4ac63 100644
--- a/app/code/Magento/MediaStorage/composer.json
+++ b/app/code/Magento/MediaStorage/composer.json
@@ -3,14 +3,14 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Msrp/composer.json b/app/code/Magento/Msrp/composer.json
index 2782d30f5999cfd7e1bf1c07825e97815639cac8..5e288eaebe15fdb2d3d2c35d2fa2ca7de5fd5dae 100644
--- a/app/code/Magento/Msrp/composer.json
+++ b/app/code/Magento/Msrp/composer.json
@@ -3,19 +3,19 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-bundle": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-downloadable": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-grouped-product": "0.74.0-beta5",
-        "magento/module-tax": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-bundle": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-downloadable": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-grouped-product": "0.74.0-beta6",
+        "magento/module-tax": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Multishipping/composer.json b/app/code/Magento/Multishipping/composer.json
index cdce6dfcb3c5bc6a1cc4f819199b0f74aa00c371..ebcccdf5ade42bf663bb71b3bf0c100e6800df47 100644
--- a/app/code/Magento/Multishipping/composer.json
+++ b/app/code/Magento/Multishipping/composer.json
@@ -3,19 +3,19 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-checkout": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-payment": "0.74.0-beta5",
-        "magento/module-tax": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-theme": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-checkout": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-payment": "0.74.0-beta6",
+        "magento/module-tax": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-theme": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Newsletter/composer.json b/app/code/Magento/Newsletter/composer.json
index ae2c1141f0ac99c31210498329899b2e480ef485..2393d31c94a9e4d4840e0276b8d84bff76ea6237 100644
--- a/app/code/Magento/Newsletter/composer.json
+++ b/app/code/Magento/Newsletter/composer.json
@@ -3,20 +3,20 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-widget": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-cms": "0.74.0-beta5",
-        "magento/module-email": "0.74.0-beta5",
-        "magento/module-cron": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-require-js": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-widget": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-cms": "0.74.0-beta6",
+        "magento/module-email": "0.74.0-beta6",
+        "magento/module-cron": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-require-js": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/OfflinePayments/composer.json b/app/code/Magento/OfflinePayments/composer.json
index 3f861432ea8e2dd449341f8821a9bf4ca94af463..f47d2c7fd2030470d1926ef74a8e7376cf9a4b78 100644
--- a/app/code/Magento/OfflinePayments/composer.json
+++ b/app/code/Magento/OfflinePayments/composer.json
@@ -3,12 +3,12 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-payment": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-payment": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/OfflineShipping/composer.json b/app/code/Magento/OfflineShipping/composer.json
index 0f1aab96e650ba234876c0d41f03c170f913a38f..b3ddea4da64c2a823e492e92649ee945bc126687 100644
--- a/app/code/Magento/OfflineShipping/composer.json
+++ b/app/code/Magento/OfflineShipping/composer.json
@@ -3,21 +3,21 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-shipping": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-sales-rule": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-checkout": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-shipping": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-sales-rule": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-checkout": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/PageCache/composer.json b/app/code/Magento/PageCache/composer.json
index 3e62d64f6204c23c7da0c34924f3efd9299348c7..b8ad947ba68430c71160dc994e099cc10c073d59 100644
--- a/app/code/Magento/PageCache/composer.json
+++ b/app/code/Magento/PageCache/composer.json
@@ -3,14 +3,14 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Payment/composer.json b/app/code/Magento/Payment/composer.json
index cd9e1d94cc5cd62404ef06fdad296b46074393e5..b4e88d864a2b2c0868d6bd2cb685f0b81bcb0d4d 100644
--- a/app/code/Magento/Payment/composer.json
+++ b/app/code/Magento/Payment/composer.json
@@ -3,17 +3,17 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-centinel": "0.74.0-beta5",
-        "magento/module-checkout": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-centinel": "0.74.0-beta6",
+        "magento/module-checkout": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Persistent/Controller/Index.php b/app/code/Magento/Persistent/Controller/Index.php
index 0232cecb0bc7aa8f35766424f9872f8a037dc4b9..69e283a403112f93401ab4fa6f0a81c5bad6f522 100644
--- a/app/code/Magento/Persistent/Controller/Index.php
+++ b/app/code/Magento/Persistent/Controller/Index.php
@@ -5,54 +5,69 @@
  */
 namespace Magento\Persistent\Controller;
 
+use Magento\Framework\App\Action\Action;
+use Magento\Framework\App\Action\Context;
+use Magento\Persistent\Model\QuoteManager;
+use Magento\Checkout\Model\Session as CheckoutSession;
+use Magento\Customer\Model\Session as CustomerSession;
+use Magento\Persistent\Helper\Session as SessionHelper;
+
 /**
  * Persistent front controller
  */
-class Index extends \Magento\Framework\App\Action\Action
+class Index extends Action
 {
     /**
-     * Whether clear checkout session when logout
+     * Persistent observer
      *
-     * @var bool
+     * @var \Magento\Persistent\Model\Observer
      */
-    protected $_clearCheckoutSession = true;
+    protected $quoteManager;
+
+    /**
+     * Checkout session
+     *
+     * @var \Magento\Checkout\Model\Session
+     */
+    protected $checkoutSession;
 
     /**
      * Customer session
      *
      * @var \Magento\Customer\Model\Session
      */
-    protected $_customerSession;
+    protected $customerSession;
 
     /**
-     * Checkout session
-     *
-     * @var \Magento\Checkout\Model\Session
+     * @var \Magento\Persistent\Helper\Session
      */
-    protected $_checkoutSession;
+    protected $sessionHelper;
 
     /**
-     * Persistent observer
+     * Whether clear checkout session when logout
      *
-     * @var \Magento\Persistent\Model\Observer
+     * @var bool
      */
-    protected $quoteManager;
+    protected $clearCheckoutSession = true;
 
     /**
      * @param \Magento\Framework\App\Action\Context $context
      * @param \Magento\Persistent\Model\QuoteManager $quoteManager
      * @param \Magento\Checkout\Model\Session $checkoutSession
      * @param \Magento\Customer\Model\Session $customerSession
+     * @param \Magento\Persistent\Helper\Session $sessionHelper
      */
     public function __construct(
-        \Magento\Framework\App\Action\Context $context,
-        \Magento\Persistent\Model\QuoteManager $quoteManager,
-        \Magento\Checkout\Model\Session $checkoutSession,
-        \Magento\Customer\Model\Session $customerSession
+        Context $context,
+        QuoteManager $quoteManager,
+        CheckoutSession $checkoutSession,
+        CustomerSession $customerSession,
+        SessionHelper $sessionHelper
     ) {
         $this->quoteManager = $quoteManager;
-        $this->_checkoutSession = $checkoutSession;
-        $this->_customerSession = $customerSession;
+        $this->checkoutSession = $checkoutSession;
+        $this->customerSession = $customerSession;
+        $this->sessionHelper = $sessionHelper;
         parent::__construct($context);
     }
 
@@ -64,17 +79,7 @@ class Index extends \Magento\Framework\App\Action\Action
      */
     public function setClearCheckoutSession($clear = true)
     {
-        $this->_clearCheckoutSession = $clear;
+        $this->clearCheckoutSession = $clear;
         return $this;
     }
-
-    /**
-     * Retrieve 'persistent session' helper instance
-     *
-     * @return \Magento\Persistent\Helper\Session
-     */
-    protected function _getHelper()
-    {
-        return $this->_objectManager->get('Magento\Persistent\Helper\Session');
-    }
 }
diff --git a/app/code/Magento/Persistent/Controller/Index/ExpressCheckout.php b/app/code/Magento/Persistent/Controller/Index/ExpressCheckout.php
index cf0a4884841bf1d38405b47b019e63d3f1ee9795..4a53814bbccb1cae33124197c448fd30b7214a30 100644
--- a/app/code/Magento/Persistent/Controller/Index/ExpressCheckout.php
+++ b/app/code/Magento/Persistent/Controller/Index/ExpressCheckout.php
@@ -1,21 +1,26 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 namespace Magento\Persistent\Controller\Index;
 
-class ExpressCheckout extends \Magento\Persistent\Controller\Index
+use Magento\Persistent\Controller\Index;
+use Magento\Framework\Controller\ResultFactory;
+
+class ExpressCheckout extends Index
 {
     /**
      * Add appropriate session message and redirect to shopping cart
      *
-     * @return void
+     * @return \Magento\Framework\Controller\Result\Redirect
      */
     public function execute()
     {
         $this->messageManager->addNotice(__('Your shopping cart has been updated with new prices.'));
-        $this->_redirect('checkout/cart');
+        /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
+        $resultRedirect->setPath('checkout/cart');
+        return $resultRedirect;
     }
 }
diff --git a/app/code/Magento/Persistent/Controller/Index/SaveMethod.php b/app/code/Magento/Persistent/Controller/Index/SaveMethod.php
index d64059a510e3ae66ec5f16348bbe0f0ba49c76c1..64e32cb94724642e429b84d55d61c742e6f0e619 100644
--- a/app/code/Magento/Persistent/Controller/Index/SaveMethod.php
+++ b/app/code/Magento/Persistent/Controller/Index/SaveMethod.php
@@ -1,35 +1,33 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 namespace Magento\Persistent\Controller\Index;
 
-class SaveMethod extends \Magento\Persistent\Controller\Index
-{
-    /**
-     * @var \Magento\Persistent\Model\QuoteManager
-     */
-    protected $quoteManager;
+use Magento\Persistent\Controller\Index;
+use Magento\Framework\Controller\ResultFactory;
 
+class SaveMethod extends Index
+{
     /**
      * Save onepage checkout method to be register
      *
-     * @return void
+     * @return \Magento\Framework\Controller\Result\Redirect
      */
     public function execute()
     {
-        if ($this->_getHelper()->isPersistent()) {
-            $this->_getHelper()->getSession()->removePersistentCookie();
-            if (!$this->_customerSession->isLoggedIn()) {
-                $this->_customerSession->setCustomerId(null)->setCustomerGroupId(null);
+        if ($this->sessionHelper->isPersistent()) {
+            $this->sessionHelper->getSession()->removePersistentCookie();
+            if (!$this->customerSession->isLoggedIn()) {
+                $this->customerSession->setCustomerId(null)->setCustomerGroupId(null);
             }
-
             $this->quoteManager->setGuest();
         }
-
         $checkoutUrl = $this->_redirect->getRefererUrl();
-        $this->getResponse()->setRedirect($checkoutUrl . (strpos($checkoutUrl, '?') ? '&' : '?') . 'register');
+        /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
+        $resultRedirect->setUrl($checkoutUrl . (strpos($checkoutUrl, '?') ? '&' : '?') . 'register');
+        return $resultRedirect;
     }
 }
diff --git a/app/code/Magento/Persistent/Controller/Index/UnsetCookie.php b/app/code/Magento/Persistent/Controller/Index/UnsetCookie.php
index 8f358bc672a0edff0b6857a99b18eb2adfef0b0f..369c63f7de88093d062f2625bab0558d86f4ad15 100644
--- a/app/code/Magento/Persistent/Controller/Index/UnsetCookie.php
+++ b/app/code/Magento/Persistent/Controller/Index/UnsetCookie.php
@@ -1,40 +1,44 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 namespace Magento\Persistent\Controller\Index;
 
-class UnsetCookie extends \Magento\Persistent\Controller\Index
+use Magento\Persistent\Controller\Index;
+use Magento\Framework\Controller\ResultFactory;
+
+class UnsetCookie extends Index
 {
     /**
-     * Revert all persistent data
+     * Unset persistent cookie action
      *
-     * @return $this
+     * @return \Magento\Framework\Controller\Result\Redirect
      */
-    protected function _cleanup()
+    public function execute()
     {
-        $this->_eventManager->dispatch('persistent_session_expired');
-        $this->_customerSession->setCustomerId(null)->setCustomerGroupId(null);
-        if ($this->_clearCheckoutSession) {
-            $this->_checkoutSession->clearStorage();
+        if ($this->sessionHelper->isPersistent()) {
+            $this->cleanup();
         }
-        $this->_getHelper()->getSession()->removePersistentCookie();
-        return $this;
+        /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
+        $resultRedirect->setPath('customer/account/login');
+        return $resultRedirect;
     }
 
     /**
-     * Unset persistent cookie action
+     * Revert all persistent data
      *
-     * @return void
+     * @return $this
      */
-    public function execute()
+    protected function cleanup()
     {
-        if ($this->_getHelper()->isPersistent()) {
-            $this->_cleanup();
+        $this->_eventManager->dispatch('persistent_session_expired');
+        $this->customerSession->setCustomerId(null)->setCustomerGroupId(null);
+        if ($this->clearCheckoutSession) {
+            $this->checkoutSession->clearStorage();
         }
-        $this->_redirect('customer/account/login');
-        return;
+        $this->sessionHelper->getSession()->removePersistentCookie();
+        return $this;
     }
 }
diff --git a/app/code/Magento/Persistent/composer.json b/app/code/Magento/Persistent/composer.json
index 31b1a279ef4fd0bf45d9e5c72eab10f9269db1cd..6b71977bb0d02f8105c6b0fc6ab5b57c6345fd7b 100644
--- a/app/code/Magento/Persistent/composer.json
+++ b/app/code/Magento/Persistent/composer.json
@@ -3,17 +3,17 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-checkout": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-cron": "0.74.0-beta5",
-        "magento/module-page-cache": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-checkout": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-cron": "0.74.0-beta6",
+        "magento/module-page-cache": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/ProductAlert/composer.json b/app/code/Magento/ProductAlert/composer.json
index 62750ea8e688881021ad76e5fe7c1635bd86777a..f6482671da0a929b537d916d2d9960bcf2b24161 100644
--- a/app/code/Magento/ProductAlert/composer.json
+++ b/app/code/Magento/ProductAlert/composer.json
@@ -3,14 +3,14 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Quote/Api/CartItemRepositoryInterface.php b/app/code/Magento/Quote/Api/CartItemRepositoryInterface.php
index 992a93583b33679287c2e3513f31980e937ea072..96787607500b7216d5826ec63141a12741a564bf 100644
--- a/app/code/Magento/Quote/Api/CartItemRepositoryInterface.php
+++ b/app/code/Magento/Quote/Api/CartItemRepositoryInterface.php
@@ -28,22 +28,45 @@ interface CartItemRepositoryInterface
     public function save(\Magento\Quote\Api\Data\CartItemInterface $cartItem);
 
     /**
-     * Remove bundle option
+     * Removes the specified item from the specified cart.
+     *
+     * @param int $cartId The cart ID.
+     * @param int $itemId The item ID of the item to be removed.
+     * @return bool
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified item or cart does not exist.
+     * @throws \Magento\Framework\Exception\CouldNotSaveException The item could not be removed.
+     */
+    public function deleteById($cartId, $itemId);
+
+    /**
+     * Lists items that are assigned to a specified cart.
+     *
+     * @param int $customerId Customer ID.
+     * @return \Magento\Quote\Api\Data\CartItemInterface[] Array of items.
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart does not exist.
+     */
+    public function getListForCustomer($customerId);
+
+    /**
+     * Adds the specified item to the specified cart.
      *
-     * @param \Magento\Quote\Api\Data\CartItemInterface $cartItem
-     * @return void
-     * @throws \Magento\Framework\Exception\CouldNotSaveException
+     * @param int $customerId Customer ID.
+     * @param \Magento\Quote\Api\Data\CartItemInterface $cartItem The item.
+     * @return \Magento\Quote\Api\Data\CartItemInterface Item.
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart does not exist.
+     * @throws \Magento\Framework\Exception\CouldNotSaveException The specified item could not be saved to the cart.
+     * @throws \Magento\Framework\Exception\InputException The specified item or cart is not valid.
      */
-    public function delete(\Magento\Quote\Api\Data\CartItemInterface $cartItem);
+    public function saveForCustomer($customerId, \Magento\Quote\Api\Data\CartItemInterface $cartItem);
 
     /**
      * Removes the specified item from the specified cart.
      *
-     * @param int $cartId The cart ID.
+     * @param int $customerId Customer ID.
      * @param int $itemId The item ID of the item to be removed.
      * @return bool
      * @throws \Magento\Framework\Exception\NoSuchEntityException The specified item or cart does not exist.
      * @throws \Magento\Framework\Exception\CouldNotSaveException The item could not be removed.
      */
-    public function deleteById($cartId, $itemId);
+    public function deleteByIdForCustomer($customerId, $itemId);
 }
diff --git a/app/code/Magento/Quote/Api/CartManagementInterface.php b/app/code/Magento/Quote/Api/CartManagementInterface.php
index 4bf49813ac4313319350c774ee038d1f312453da..fdc0d18085cf0a4b0acf0adcd9dfa8366b78190e 100644
--- a/app/code/Magento/Quote/Api/CartManagementInterface.php
+++ b/app/code/Magento/Quote/Api/CartManagementInterface.php
@@ -8,13 +8,21 @@ namespace Magento\Quote\Api;
 interface CartManagementInterface
 {
     /**
-     * Enables an administrative or guest user to create an empty cart and quote for an anonymous customer.
+     * Creates an empty cart and quote for a guest.
      *
-     * @param int $storeId
+     * @return int Cart ID.
      * @throws \Magento\Framework\Exception\CouldNotSaveException The empty cart and quote could not be created.
+     */
+    public function createEmptyCart();
+
+    /**
+     * Creates an empty cart and quote for a specified customer.
+     *
+     * @param int $customerId The customer ID.
      * @return int Cart ID.
+     * @throws \Magento\Framework\Exception\CouldNotSaveException The empty cart and quote could not be created.
      */
-    public function createEmptyCart($storeId);
+    public function createEmptyCartForCustomer($customerId);
 
     /**
      * Returns information for the cart for a specified customer.
diff --git a/app/code/Magento/Quote/Api/Data/CartItemInterface.php b/app/code/Magento/Quote/Api/Data/CartItemInterface.php
index 4951fe1698006419285934bc95c4645537394e1c..7fd33b17342861f61f868535d4baecfcfec46750 100644
--- a/app/code/Magento/Quote/Api/Data/CartItemInterface.php
+++ b/app/code/Magento/Quote/Api/Data/CartItemInterface.php
@@ -119,14 +119,14 @@ interface CartItemInterface extends \Magento\Framework\Api\ExtensibleDataInterfa
     /**
      * Returns Quote id.
      *
-     * @return int
+     * @return string
      */
     public function getQuoteId();
 
     /**
      * Sets Quote id.
      *
-     * @param int $quoteId
+     * @param string $quoteId
      * @return $this
      */
     public function setQuoteId($quoteId);
diff --git a/app/code/Magento/Quote/Api/GuestBillingAddressManagementInterface.php b/app/code/Magento/Quote/Api/GuestBillingAddressManagementInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..0400edba25ea1ec38f32cc2e4ed20c145485bd4d
--- /dev/null
+++ b/app/code/Magento/Quote/Api/GuestBillingAddressManagementInterface.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Api;
+
+/**
+ * Billing address management interface for guest carts.
+ */
+interface GuestBillingAddressManagementInterface
+{
+    /**
+     * Assigns a specified billing address to a specified cart.
+     *
+     * @param string $cartId The cart ID.
+     * @param \Magento\Quote\Api\Data\AddressInterface $address Billing address data.
+     * @return int Address ID.
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart does not exist.
+     * @throws \Magento\Framework\Exception\InputException The specified cart ID or address data is not valid.
+     */
+    public function assign($cartId, \Magento\Quote\Api\Data\AddressInterface $address);
+
+    /**
+     * Returns the billing address for a specified quote.
+     *
+     * @param string $cartId The cart ID.
+     * @return \Magento\Quote\Api\Data\AddressInterface Quote billing address object.
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart does not exist.
+     */
+    public function get($cartId);
+}
diff --git a/app/code/Magento/Quote/Api/GuestCartItemRepositoryInterface.php b/app/code/Magento/Quote/Api/GuestCartItemRepositoryInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..40138b5e0cfdcc741a462fd19262df68fbc9c027
--- /dev/null
+++ b/app/code/Magento/Quote/Api/GuestCartItemRepositoryInterface.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Api;
+
+/**
+ * Cart Item repository interface for guest carts.
+ */
+interface GuestCartItemRepositoryInterface
+{
+    /**
+     * Lists items that are assigned to a specified cart.
+     *
+     * @param string $cartId The cart ID.
+     * @return \Magento\Quote\Api\Data\CartItemInterface[] Array of items.
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart does not exist.
+     */
+    public function getList($cartId);
+
+    /**
+     * Adds the specified item to the specified cart.
+     *
+     * @param \Magento\Quote\Api\Data\CartItemInterface $cartItem The item.
+     * @return \Magento\Quote\Api\Data\CartItemInterface Item.
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart does not exist.
+     * @throws \Magento\Framework\Exception\CouldNotSaveException The specified item could not be saved to the cart.
+     * @throws \Magento\Framework\Exception\InputException The specified item or cart is not valid.
+     */
+    public function save(\Magento\Quote\Api\Data\CartItemInterface $cartItem);
+
+    /**
+     * Removes the specified item from the specified cart.
+     *
+     * @param string $cartId The cart ID.
+     * @param int $itemId The item ID of the item to be removed.
+     * @return bool
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified item or cart does not exist.
+     * @throws \Magento\Framework\Exception\CouldNotSaveException The item could not be removed.
+     */
+    public function deleteById($cartId, $itemId);
+}
diff --git a/app/code/Magento/Quote/Api/GuestCartManagementInterface.php b/app/code/Magento/Quote/Api/GuestCartManagementInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..7fa298c2d719d7586a81f41ce777502d7d49b60e
--- /dev/null
+++ b/app/code/Magento/Quote/Api/GuestCartManagementInterface.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Api;
+
+/**
+ * Cart Management interface for guest carts.
+ */
+interface GuestCartManagementInterface
+{
+    /**
+     * Enables an customer or guest user to create an empty cart and quote for an anonymous customer.
+     *
+     * @return string Cart ID.
+     * @throws \Magento\Framework\Exception\CouldNotSaveException The empty cart and quote could not be created.
+     */
+    public function createEmptyCart();
+
+    /**
+     * Assigns a specified customer to a specified shopping cart.
+     *
+     * @param string $cartId The cart ID.
+     * @param int $customerId The customer ID.
+     * @param int $storeId
+     * @return boolean
+     */
+    public function assignCustomer($cartId, $customerId, $storeId);
+
+    /**
+     * Places an order for a specified cart.
+     *
+     * @param string $cartId The cart ID.
+     * @return int Order ID.
+     */
+    public function placeOrder($cartId);
+}
diff --git a/app/code/Magento/Quote/Api/GuestCartRepositoryInterface.php b/app/code/Magento/Quote/Api/GuestCartRepositoryInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..eb7293e15ee908aa31e5154aa5b86cf630a5cd97
--- /dev/null
+++ b/app/code/Magento/Quote/Api/GuestCartRepositoryInterface.php
@@ -0,0 +1,21 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Api;
+
+/**
+ * Cart Repository interface for guest carts.
+ */
+interface GuestCartRepositoryInterface
+{
+    /**
+     * Enables a guest user to return information for a specified cart.
+     *
+     * @param string $cartId
+     * @return \Magento\Quote\Api\Data\CartInterface
+     * @throws \Magento\Framework\Exception\NoSuchEntityException
+     */
+    public function get($cartId);
+}
diff --git a/app/code/Magento/Quote/Api/GuestCartTotalRepositoryInterface.php b/app/code/Magento/Quote/Api/GuestCartTotalRepositoryInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..6384407793a7a5f736751d304292a82a5b212c42
--- /dev/null
+++ b/app/code/Magento/Quote/Api/GuestCartTotalRepositoryInterface.php
@@ -0,0 +1,22 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Quote\Api;
+
+/**
+ * Cart totals repository interface for guest carts.
+ */
+interface GuestCartTotalRepositoryInterface
+{
+    /**
+     * Returns quote totals data for a specified cart.
+     *
+     * @param string $cartId The cart ID.
+     * @return \Magento\Quote\Api\Data\TotalsInterface Quote totals data.
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart does not exist.
+     */
+    public function get($cartId);
+}
diff --git a/app/code/Magento/Quote/Api/GuestCouponManagementInterface.php b/app/code/Magento/Quote/Api/GuestCouponManagementInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..14d0a1d5def59cb543f8fc60024ba8f43f155af5
--- /dev/null
+++ b/app/code/Magento/Quote/Api/GuestCouponManagementInterface.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Quote\Api;
+
+/**
+ * Coupon management interface for guest carts.
+ */
+interface GuestCouponManagementInterface
+{
+    /**
+     * Returns information for a coupon in a specified cart.
+     *
+     * @param string $cartId The cart ID.
+     * @return string The coupon code data.
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart does not exist.
+     */
+    public function get($cartId);
+
+    /**
+     * Adds a coupon by code to a specified cart.
+     *
+     * @param string $cartId The cart ID.
+     * @param string $couponCode The coupon code data.
+     * @return bool
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart does not exist.
+     * @throws \Magento\Framework\Exception\CouldNotSaveException The specified coupon could not be added.
+     */
+    public function set($cartId, $couponCode);
+
+    /**
+     * Deletes a coupon from a specified cart.
+     *
+     * @param string $cartId The cart ID.
+     * @return bool
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart does not exist.
+     * @throws \Magento\Framework\Exception\CouldNotDeleteException The specified coupon could not be deleted.
+     */
+    public function remove($cartId);
+}
diff --git a/app/code/Magento/Quote/Api/GuestPaymentMethodManagementInterface.php b/app/code/Magento/Quote/Api/GuestPaymentMethodManagementInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..e40142b3e2cb2052603955128fad18bfb4aee765
--- /dev/null
+++ b/app/code/Magento/Quote/Api/GuestPaymentMethodManagementInterface.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Api;
+
+/**
+ * Payment method management interface for guest carts.
+ */
+interface GuestPaymentMethodManagementInterface
+{
+    /**
+     * Adds a specified payment method to a specified shopping cart.
+     *
+     * @param string $cartId The cart ID.
+     * @param \Magento\Quote\Api\Data\PaymentInterface $method The payment method.
+     * @return int Payment method ID.
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart does not exist.
+     * @throws \Magento\Framework\Exception\State\InvalidTransitionException The billing or shipping address
+     * is not set, or the specified payment method is not available.
+     */
+    public function set($cartId, \Magento\Quote\Api\Data\PaymentInterface $method);
+
+    /**
+     * Returns the payment method for a specified shopping cart.
+     *
+     * @param string $cartId The cart ID.
+     * @return \Magento\Quote\Api\Data\PaymentInterface  Payment method object.
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart does not exist.
+     */
+    public function get($cartId);
+
+    /**
+     * Lists available payment methods for a specified shopping cart.
+     *
+     * @param string $cartId The cart ID.
+     * @return \Magento\Quote\Api\Data\PaymentMethodInterface[] Array of payment methods.
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart does not exist.
+     */
+    public function getList($cartId);
+}
diff --git a/app/code/Magento/Quote/Api/GuestShippingAddressManagementInterface.php b/app/code/Magento/Quote/Api/GuestShippingAddressManagementInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..c208b9a0fe19d91fc60b678eb4e12ab2a95d5b64
--- /dev/null
+++ b/app/code/Magento/Quote/Api/GuestShippingAddressManagementInterface.php
@@ -0,0 +1,32 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Api;
+
+/**
+ * Shipping address management interface for guest carts.
+ */
+interface GuestShippingAddressManagementInterface
+{
+    /**
+     * Assigns a specified shipping address to a specified cart.
+     *
+     * @param string $cartId The cart ID.
+     * @param \Magento\Quote\Api\Data\AddressInterface $address The shipping address data.
+     * @return int Address ID.
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart does not exist.
+     * @throws \Magento\Framework\Exception\InputException The specified cart ID or address data is not valid.
+     */
+    public function assign($cartId, \Magento\Quote\Api\Data\AddressInterface $address);
+
+    /**
+     * Returns the shipping address for a specified quote.
+     *
+     * @param string $cartId The cart ID.
+     * @return \Magento\Quote\Api\Data\AddressInterface Shipping address object.
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart does not exist.
+     */
+    public function get($cartId);
+}
diff --git a/app/code/Magento/Quote/Api/GuestShippingMethodManagementInterface.php b/app/code/Magento/Quote/Api/GuestShippingMethodManagementInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..0e881009d98567359254ceb57397a0fbb403155b
--- /dev/null
+++ b/app/code/Magento/Quote/Api/GuestShippingMethodManagementInterface.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Api;
+
+/**
+ * Shipping method management interface for guest carts.
+ */
+interface GuestShippingMethodManagementInterface
+{
+    /**
+     * Sets the carrier and shipping methods codes for a specified cart.
+     *
+     * @param string $cartId The shopping cart ID.
+     * @param string $carrierCode The carrier code.
+     * @param string $methodCode The shipping method code.
+     * @return bool
+     * @throws \Magento\Framework\Exception\InputException The shipping method is not valid for an empty cart.
+     * @throws \Magento\Framework\Exception\CouldNotSaveException The shipping method could not be saved.
+     * @throws \Magento\Framework\Exception\StateException The billing or shipping address is not set.
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified cart contains only virtual products
+     * so the shipping method does not apply.
+     */
+    public function set($cartId, $carrierCode, $methodCode);
+
+    /**
+     * Returns selected shipping method for a specified quote.
+     *
+     * @param string $cartId The shopping cart ID.
+     * @return \Magento\Quote\Api\Data\ShippingMethodInterface Shipping method.
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified shopping cart does not exist.
+     * @throws \Magento\Framework\Exception\StateException The shipping address is not set.
+     */
+    public function get($cartId);
+
+    /**
+     * Lists applicable shipping methods for a specified quote.
+     *
+     * @param string $cartId The shopping cart ID.
+     * @return \Magento\Quote\Api\Data\ShippingMethodInterface[] An array of shipping methods.
+     * @throws \Magento\Framework\Exception\NoSuchEntityException The specified quote does not exist.
+     * @throws \Magento\Framework\Exception\StateException The shipping address is not set.
+     */
+    public function getList($cartId);
+}
diff --git a/app/code/Magento/Quote/Model/Cart/Access/CartManagementPlugin.php b/app/code/Magento/Quote/Model/Cart/Access/CartManagementPlugin.php
deleted file mode 100644
index f7ab6e07b0ecd9b135f3b800cd9f05e7c29e3791..0000000000000000000000000000000000000000
--- a/app/code/Magento/Quote/Model/Cart/Access/CartManagementPlugin.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-namespace Magento\Quote\Model\Cart\Access;
-
-use Magento\Framework\Exception\AuthorizationException;
-use Magento\Authorization\Model\UserContextInterface;
-
-class CartManagementPlugin
-{
-    /**
-     * @var UserContextInterface
-     */
-    protected $userContext;
-
-    /**
-     * @var int[]
-     */
-    protected $allowedUserTypes = [
-        UserContextInterface::USER_TYPE_ADMIN,
-        UserContextInterface::USER_TYPE_INTEGRATION,
-    ];
-
-    /**
-     * @param UserContextInterface $userContext
-     */
-    public function __construct(UserContextInterface $userContext)
-    {
-        $this->userContext = $userContext;
-    }
-
-    /**
-     * Check whether access is allowed for create cart resource
-     *
-     * @param \Magento\Quote\Api\CartManagementInterface $subject
-     * @param int $cartId
-     * @param int $customerId
-     * @param int $storeId
-     *
-     * @return void
-     * @throws AuthorizationException if access denied
-     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
-     */
-    public function beforeAssignCustomer(
-        \Magento\Quote\Api\CartManagementInterface $subject,
-        $cartId,
-        $customerId,
-        $storeId
-    ) {
-        if (!in_array($this->userContext->getUserType(), $this->allowedUserTypes)) {
-            throw new AuthorizationException(__('Access denied'));
-        }
-    }
-}
diff --git a/app/code/Magento/Quote/Model/Cart/Access/CartRepositoryPlugin.php b/app/code/Magento/Quote/Model/Cart/Access/CartRepositoryPlugin.php
deleted file mode 100644
index 0410af82ca10c736cda6c151f8bd34e81e30d60d..0000000000000000000000000000000000000000
--- a/app/code/Magento/Quote/Model/Cart/Access/CartRepositoryPlugin.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-namespace Magento\Quote\Model\Cart\Access;
-
-use Magento\Framework\Api\SearchCriteria;
-use Magento\Framework\Exception\AuthorizationException;
-use Magento\Authorization\Model\UserContextInterface;
-
-class CartRepositoryPlugin
-{
-    /**
-     * @var UserContextInterface
-     */
-    protected $userContext;
-
-    /**
-     * @var int[]
-     */
-    protected $allowedUserTypes = [
-        UserContextInterface::USER_TYPE_ADMIN,
-        UserContextInterface::USER_TYPE_INTEGRATION,
-    ];
-
-    /**
-     * @param UserContextInterface $userContext
-     */
-    public function __construct(UserContextInterface $userContext)
-    {
-        $this->userContext = $userContext;
-    }
-
-    /**
-     * Check whether access is allowed for cart resource
-     *
-     * @param \Magento\Quote\Api\CartRepositoryInterface $subject
-     * @param int $cartId
-     *
-     * @return void
-     * @throws AuthorizationException if access denied
-     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
-     */
-    public function beforeGet(
-        \Magento\Quote\Api\CartRepositoryInterface $subject,
-        $cartId
-    ) {
-        if (!in_array($this->userContext->getUserType(), $this->allowedUserTypes)) {
-            throw new AuthorizationException(__('Access denied'));
-        }
-    }
-
-    /**
-     * Check whether access is allowed for cart list resource
-     *
-     * @param \Magento\Quote\Api\CartRepositoryInterface $subject
-     * @param SearchCriteria $searchCriteria
-     *
-     * @return void
-     * @throws AuthorizationException if access denied
-     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
-     */
-    public function beforeGetList(
-        \Magento\Quote\Api\CartRepositoryInterface $subject,
-        SearchCriteria $searchCriteria
-    ) {
-        if (!in_array($this->userContext->getUserType(), $this->allowedUserTypes)) {
-            throw new AuthorizationException(__('Access denied'));
-        }
-    }
-}
diff --git a/app/code/Magento/Quote/Model/GuestCart/GuestBillingAddressManagement.php b/app/code/Magento/Quote/Model/GuestCart/GuestBillingAddressManagement.php
new file mode 100644
index 0000000000000000000000000000000000000000..61788f4920def75997a0a12225990c5ba1be89d8
--- /dev/null
+++ b/app/code/Magento/Quote/Model/GuestCart/GuestBillingAddressManagement.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Model\GuestCart;
+
+use Magento\Quote\Api\GuestBillingAddressManagementInterface;
+use Magento\Quote\Api\BillingAddressManagementInterface;
+use Magento\Quote\Model\QuoteIdMask;
+use Magento\Quote\Model\QuoteIdMaskFactory;
+
+/**
+ * Billing address management service for guest carts.
+ */
+class GuestBillingAddressManagement implements GuestBillingAddressManagementInterface
+{
+    /**
+     * @var QuoteIdMaskFactory
+     */
+    private $quoteIdMaskFactory;
+
+    /**
+     * @var BillingAddressManagementInterface
+     */
+    private $billingAddressManagement;
+
+    /**
+     * Constructs a quote billing address service object.
+     *
+     * @param BillingAddressManagementInterface $billingAddressManagement
+     * @param QuoteIdMaskFactory $quoteIdMaskFactory
+     */
+    public function __construct(
+        BillingAddressManagementInterface $billingAddressManagement,
+        QuoteIdMaskFactory $quoteIdMaskFactory
+    ) {
+        $this->quoteIdMaskFactory = $quoteIdMaskFactory;
+        $this->billingAddressManagement = $billingAddressManagement;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function assign($cartId, \Magento\Quote\Api\Data\AddressInterface $address)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        return $this->billingAddressManagement->assign($quoteIdMask->getId(), $address);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function get($cartId)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        return $this->billingAddressManagement->get($quoteIdMask->getId());
+    }
+}
diff --git a/app/code/Magento/Quote/Model/GuestCart/GuestCartItemRepository.php b/app/code/Magento/Quote/Model/GuestCart/GuestCartItemRepository.php
new file mode 100644
index 0000000000000000000000000000000000000000..a3750601070b89099292981361a99667a5ec39b7
--- /dev/null
+++ b/app/code/Magento/Quote/Model/GuestCart/GuestCartItemRepository.php
@@ -0,0 +1,78 @@
+<?php
+/**
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Model\GuestCart;
+
+use Magento\Quote\Api\Data\CartItemInterface;
+use Magento\Quote\Model\Quote\Item\Repository;
+use Magento\Quote\Model\QuoteIdMask;
+use Magento\Quote\Model\QuoteIdMaskFactory;
+
+/**
+ * Cart Item repository class for guest carts.
+ */
+class GuestCartItemRepository implements \Magento\Quote\Api\GuestCartItemRepositoryInterface
+{
+    /**
+     * @var Repository
+     */
+    protected $repository;
+
+    /**
+     * @var QuoteIdMaskFactory
+     */
+    protected $quoteIdMaskFactory;
+
+    /**
+     * Constructs a read service object.
+     *
+     * @param \Magento\Quote\Model\Quote\Item\Repository $repository
+     * @param QuoteIdMaskFactory $quoteIdMaskFactory
+     */
+    public function __construct(
+        \Magento\Quote\Model\Quote\Item\Repository $repository,
+        QuoteIdMaskFactory $quoteIdMaskFactory
+    ) {
+        $this->quoteIdMaskFactory = $quoteIdMaskFactory;
+        $this->repository = $repository;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getList($cartId)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        $cartItemList = $this->repository->getList($quoteIdMask->getId());
+        /** @var $item CartItemInterface */
+        foreach ($cartItemList as $item) {
+            $item->setQuoteId($quoteIdMask->getMaskedId());
+        }
+        return $cartItemList;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function save(\Magento\Quote\Api\Data\CartItemInterface $cartItem)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartItem->getQuoteId(), 'masked_id');
+        $cartItem->setQuoteId($quoteIdMask->getId());
+        return $this->repository->save($cartItem);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function deleteById($cartId, $itemId)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        return $this->repository->deleteById($quoteIdMask->getId(), $itemId);
+    }
+}
diff --git a/app/code/Magento/Quote/Model/GuestCart/GuestCartManagement.php b/app/code/Magento/Quote/Model/GuestCart/GuestCartManagement.php
new file mode 100644
index 0000000000000000000000000000000000000000..c62fab57f1bc5bf9328c7bc02cc58745b10377d1
--- /dev/null
+++ b/app/code/Magento/Quote/Model/GuestCart/GuestCartManagement.php
@@ -0,0 +1,77 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Quote\Model\GuestCart;
+
+use Magento\Quote\Api\GuestCartManagementInterface;
+use Magento\Quote\Api\CartManagementInterface;
+use Magento\Quote\Model\QuoteIdMask;
+use Magento\Quote\Model\QuoteIdMaskFactory;
+
+/**
+ * Cart Management class for guest carts.
+ *
+ * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
+ */
+class GuestCartManagement implements GuestCartManagementInterface
+{
+    /**
+     * @var CartManagementInterface
+     */
+    protected $quoteManagement;
+
+    /**
+     * @var QuoteIdMaskFactory
+     */
+    protected $quoteIdMaskFactory;
+
+    /**
+     * Initialize dependencies.
+     *
+     * @param CartManagementInterface $quoteManagement
+     * @param QuoteIdMaskFactory $quoteIdMaskFactory
+     * @SuppressWarnings(PHPMD.ExcessiveParameterList)
+     */
+    public function __construct(
+        CartManagementInterface $quoteManagement,
+        QuoteIdMaskFactory $quoteIdMaskFactory
+    ) {
+        $this->quoteManagement = $quoteManagement;
+        $this->quoteIdMaskFactory = $quoteIdMaskFactory;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function createEmptyCart()
+    {
+        /** @var $quoteIdMask \Magento\Quote\Model\QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create();
+        $cartId = $this->quoteManagement->createEmptyCart();
+        $quoteIdMask->setId($cartId)->save();
+        return $quoteIdMask->getMaskedId();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function assignCustomer($cartId, $customerId, $storeId)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        return $this->quoteManagement->assignCustomer($quoteIdMask->getId(), $customerId, $storeId);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function placeOrder($cartId)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        return $this->quoteManagement->placeOrder($quoteIdMask->getId());
+    }
+}
diff --git a/app/code/Magento/Quote/Model/GuestCart/GuestCartRepository.php b/app/code/Magento/Quote/Model/GuestCart/GuestCartRepository.php
new file mode 100644
index 0000000000000000000000000000000000000000..577f2b2a76b039477036bfd932f68963b64c217a
--- /dev/null
+++ b/app/code/Magento/Quote/Model/GuestCart/GuestCartRepository.php
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Model\GuestCart;
+
+use Magento\Quote\Api\GuestCartRepositoryInterface;
+use Magento\Quote\Model\QuoteIdMask;
+use Magento\Quote\Api\CartRepositoryInterface;
+use Magento\Quote\Model\QuoteIdMaskFactory;
+
+/**
+ * Cart Repository class for guest carts.
+ */
+class GuestCartRepository implements GuestCartRepositoryInterface
+{
+    /**
+     * @var QuoteIdMaskFactory
+     */
+    protected $quoteIdMaskFactory;
+
+    /**
+     * @var CartRepositoryInterface
+     */
+    protected $quoteRepository;
+
+    /**
+     * Initialize dependencies.
+     *
+     * @param CartRepositoryInterface $quoteRepository
+     * @param QuoteIdMaskFactory $quoteIdMaskFactory
+     */
+    public function __construct(
+        CartRepositoryInterface $quoteRepository,
+        QuoteIdMaskFactory $quoteIdMaskFactory
+    ) {
+        $this->quoteIdMaskFactory = $quoteIdMaskFactory;
+        $this->quoteRepository = $quoteRepository;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function get($cartId)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        return $this->quoteRepository->get($quoteIdMask->getId());
+    }
+}
diff --git a/app/code/Magento/Quote/Model/GuestCart/GuestCartTotalRepository.php b/app/code/Magento/Quote/Model/GuestCart/GuestCartTotalRepository.php
new file mode 100644
index 0000000000000000000000000000000000000000..1ab5f5eeb8c43a88c14705240f17878335b71fce
--- /dev/null
+++ b/app/code/Magento/Quote/Model/GuestCart/GuestCartTotalRepository.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Quote\Model\GuestCart;
+
+use Magento\Quote\Api\CartTotalRepositoryInterface;
+use Magento\Quote\Api\GuestCartTotalRepositoryInterface;
+use Magento\Quote\Model\QuoteIdMask;
+use Magento\Quote\Model\QuoteIdMaskFactory;
+
+/**
+ * Cart totals repository class for guest carts.
+ */
+class GuestCartTotalRepository implements GuestCartTotalRepositoryInterface
+{
+    /**
+     * @var QuoteIdMaskFactory
+     */
+    private $quoteIdMaskFactory;
+
+    /**
+     * @var CartTotalRepositoryInterface
+     */
+    private $cartTotalRepository;
+
+    /**
+     * Constructs a cart totals data object.
+     *
+     * @param CartTotalRepositoryInterface $cartTotalRepository
+     * @param QuoteIdMaskFactory $quoteIdMaskFactory
+     */
+    public function __construct(
+        CartTotalRepositoryInterface $cartTotalRepository,
+        QuoteIdMaskFactory $quoteIdMaskFactory
+    ) {
+        $this->cartTotalRepository = $cartTotalRepository;
+        $this->quoteIdMaskFactory = $quoteIdMaskFactory;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function get($cartId)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        return $this->cartTotalRepository->get($quoteIdMask->getId());
+    }
+}
diff --git a/app/code/Magento/Quote/Model/GuestCart/GuestCouponManagement.php b/app/code/Magento/Quote/Model/GuestCart/GuestCouponManagement.php
new file mode 100644
index 0000000000000000000000000000000000000000..90b1047ee3c867a5b3a414f42da47469b0b79387
--- /dev/null
+++ b/app/code/Magento/Quote/Model/GuestCart/GuestCouponManagement.php
@@ -0,0 +1,72 @@
+<?php
+/**
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Model\GuestCart;
+
+use Magento\Quote\Api\GuestCouponManagementInterface;
+use Magento\Quote\Api\CouponManagementInterface;
+use Magento\Quote\Model\QuoteIdMask;
+use Magento\Quote\Model\QuoteIdMaskFactory;
+
+/**
+ * Coupon management class for guest carts.
+ */
+class GuestCouponManagement implements GuestCouponManagementInterface
+{
+    /**
+     * @var QuoteIdMaskFactory
+     */
+    private $quoteIdMaskFactory;
+
+    /**
+     * @var CouponManagementInterface
+     */
+    private $couponManagement;
+
+    /**
+     * Constructs a coupon read service object.
+     *
+     * @param CouponManagementInterface $couponManagement
+     * @param QuoteIdMaskFactory $quoteIdMaskFactory
+     */
+    public function __construct(
+        CouponManagementInterface $couponManagement,
+        QuoteIdMaskFactory $quoteIdMaskFactory
+    ) {
+        $this->quoteIdMaskFactory = $quoteIdMaskFactory;
+        $this->couponManagement = $couponManagement;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function get($cartId)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        return $this->couponManagement->get($quoteIdMask->getId());
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function set($cartId, $couponCode)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        return $this->couponManagement->set($quoteIdMask->getId(), $couponCode);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function remove($cartId)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        return $this->couponManagement->remove($quoteIdMask->getId());
+    }
+}
diff --git a/app/code/Magento/Quote/Model/GuestCart/GuestPaymentMethodManagement.php b/app/code/Magento/Quote/Model/GuestCart/GuestPaymentMethodManagement.php
new file mode 100644
index 0000000000000000000000000000000000000000..b0b99599ef14d631512360cd1e5f9ff1446a1d2b
--- /dev/null
+++ b/app/code/Magento/Quote/Model/GuestCart/GuestPaymentMethodManagement.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Model\GuestCart;
+
+use Magento\Quote\Api\PaymentMethodManagementInterface;
+use Magento\Quote\Api\GuestPaymentMethodManagementInterface;
+use Magento\Quote\Model\QuoteIdMask;
+use Magento\Quote\Model\QuoteIdMaskFactory;
+
+/**
+ * Payment method management class for guest carts.
+ */
+class GuestPaymentMethodManagement implements GuestPaymentMethodManagementInterface
+{
+    /**
+     * @var QuoteIdMaskFactory
+     */
+    protected $quoteIdMaskFactory;
+
+    /**
+     * @var PaymentMethodManagementInterface
+     */
+    protected $paymentMethodManagement;
+
+    /**
+     * Initialize dependencies.
+     *
+     * @param PaymentMethodManagementInterface $paymentMethodManagement
+     * @param QuoteIdMaskFactory $quoteIdMaskFactory
+     */
+    public function __construct(
+        PaymentMethodManagementInterface $paymentMethodManagement,
+        QuoteIdMaskFactory $quoteIdMaskFactory
+    ) {
+        $this->quoteIdMaskFactory = $quoteIdMaskFactory;
+        $this->paymentMethodManagement = $paymentMethodManagement;
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function set($cartId, \Magento\Quote\Api\Data\PaymentInterface $method)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        return $this->paymentMethodManagement->set($quoteIdMask->getId(), $method);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function get($cartId)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        return $this->paymentMethodManagement->get($quoteIdMask->getId());
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function getList($cartId)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        return $this->paymentMethodManagement->getList($quoteIdMask->getId());
+    }
+}
diff --git a/app/code/Magento/Quote/Model/GuestCart/GuestShippingAddressManagement.php b/app/code/Magento/Quote/Model/GuestCart/GuestShippingAddressManagement.php
new file mode 100644
index 0000000000000000000000000000000000000000..f2ce3fb46fcf9834d1af86ae5a9e2b311e478eed
--- /dev/null
+++ b/app/code/Magento/Quote/Model/GuestCart/GuestShippingAddressManagement.php
@@ -0,0 +1,61 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Model\GuestCart;
+
+use Magento\Quote\Api\GuestShippingAddressManagementInterface;
+use Magento\Quote\Model\QuoteIdMask;
+use Magento\Quote\Model\QuoteIdMaskFactory;
+use Magento\Quote\Api\ShippingAddressManagementInterface;
+
+/**
+ * Shipping address management class for guest carts.
+ */
+class GuestShippingAddressManagement implements GuestShippingAddressManagementInterface
+{
+    /**
+     * @var QuoteIdMaskFactory
+     */
+    protected $quoteIdMaskFactory;
+
+    /**
+     * @var ShippingAddressManagementInterface
+     */
+    protected $shippingAddressManagement;
+
+    /**
+     * Constructs a quote shipping address write service object.
+     *
+     * @param ShippingAddressManagementInterface $shippingAddressManagement
+     * @param QuoteIdMaskFactory $quoteIdMaskFactory
+     */
+    public function __construct(
+        ShippingAddressManagementInterface $shippingAddressManagement,
+        QuoteIdMaskFactory $quoteIdMaskFactory
+    ) {
+        $this->shippingAddressManagement = $shippingAddressManagement;
+        $this->quoteIdMaskFactory = $quoteIdMaskFactory;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function assign($cartId, \Magento\Quote\Api\Data\AddressInterface $address)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        return $this->shippingAddressManagement->assign($quoteIdMask->getId(), $address);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function get($cartId)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        return $this->shippingAddressManagement->get($quoteIdMask->getId());
+    }
+}
diff --git a/app/code/Magento/Quote/Model/GuestCart/GuestShippingMethodManagement.php b/app/code/Magento/Quote/Model/GuestCart/GuestShippingMethodManagement.php
new file mode 100644
index 0000000000000000000000000000000000000000..e847e1bd36051c8da0845f0857d53994ce387ec9
--- /dev/null
+++ b/app/code/Magento/Quote/Model/GuestCart/GuestShippingMethodManagement.php
@@ -0,0 +1,72 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Quote\Model\GuestCart;
+
+use Magento\Quote\Api\GuestShippingMethodManagementInterface;
+use Magento\Quote\Api\ShippingMethodManagementInterface;
+use Magento\Quote\Model\QuoteIdMask;
+use Magento\Quote\Model\QuoteIdMaskFactory;
+
+/**
+ * Shipping method management class for guest carts.
+ */
+class GuestShippingMethodManagement implements GuestShippingMethodManagementInterface
+{
+    /**
+     * @var ShippingMethodManagementInterface
+     */
+    private $shippingMethodManagement;
+
+    /**
+     * @var QuoteIdMaskFactory
+     */
+    private $quoteIdMaskFactory;
+
+    /**
+     * Constructs a shipping method read service object.
+     *
+     * @param ShippingMethodManagementInterface $shippingMethodManagement
+     * @param QuoteIdMaskFactory $quoteIdMaskFactory
+     */
+    public function __construct(
+        ShippingMethodManagementInterface $shippingMethodManagement,
+        QuoteIdMaskFactory $quoteIdMaskFactory
+    ) {
+        $this->shippingMethodManagement = $shippingMethodManagement;
+        $this->quoteIdMaskFactory = $quoteIdMaskFactory;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function get($cartId)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        return $this->shippingMethodManagement->get($quoteIdMask->getId());
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function getList($cartId)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        return $this->shippingMethodManagement->getList($quoteIdMask->getId());
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function set($cartId, $carrierCode, $methodCode)
+    {
+        /** @var $quoteIdMask QuoteIdMask */
+        $quoteIdMask = $this->quoteIdMaskFactory->create()->load($cartId, 'masked_id');
+        return $this->shippingMethodManagement->set($quoteIdMask->getId(), $carrierCode, $methodCode);
+    }
+}
diff --git a/app/code/Magento/Quote/Model/Quote/Item/Repository.php b/app/code/Magento/Quote/Model/Quote/Item/Repository.php
index fc4a0f7db7ef47c3b71ea4bbab5be324167a7425..35b928ecb37a05f51135bf34ece53d0ecbd3a07b 100644
--- a/app/code/Magento/Quote/Model/Quote/Item/Repository.php
+++ b/app/code/Magento/Quote/Model/Quote/Item/Repository.php
@@ -107,10 +107,8 @@ class Repository implements \Magento\Quote\Api\CartItemRepositoryInterface
     /**
      * {@inheritdoc}
      */
-    public function delete(\Magento\Quote\Api\Data\CartItemInterface $cartItem)
+    public function deleteById($cartId, $itemId)
     {
-        $cartId = $cartItem->getQuoteId();
-        $itemId = $cartItem->getItemId();
         /**
          * Quote.
          *
@@ -129,18 +127,35 @@ class Repository implements \Magento\Quote\Api\CartItemRepositoryInterface
         } catch (\Exception $e) {
             throw new CouldNotSaveException(__('Could not remove item from quote'));
         }
+
+        return true;
     }
 
     /**
      * {@inheritdoc}
      */
-    public function deleteById($cartId, $itemId)
+    public function getListForCustomer($customerId)
     {
-        $item = $this->itemDataFactory->create()
-            ->setQuoteId($cartId)
-            ->setItemId($itemId);
+        $cart = $this->quoteRepository->getActiveForCustomer($customerId);
+        return $this->getList($cart->getId());
+    }
 
-        $this->delete($item);
-        return true;
+    /**
+     * {@inheritdoc}
+     */
+    public function saveForCustomer($customerId, \Magento\Quote\Api\Data\CartItemInterface $cartItem)
+    {
+        $cart = $this->quoteRepository->getActiveForCustomer($customerId);
+        $cartItem->setQuoteId($cart->getId());
+        return $this->save($cartItem);
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function deleteByIdForCustomer($customerId, $itemId)
+    {
+        $cart = $this->quoteRepository->getActiveForCustomer($customerId);
+        return $this->deleteById($cart->getId(), $itemId);
     }
 }
diff --git a/app/code/Magento/Quote/Model/QuoteIdMask.php b/app/code/Magento/Quote/Model/QuoteIdMask.php
new file mode 100644
index 0000000000000000000000000000000000000000..953fe1d7af87e232fca36fd79b9d79d0e69d367d
--- /dev/null
+++ b/app/code/Magento/Quote/Model/QuoteIdMask.php
@@ -0,0 +1,63 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Quote\Model;
+
+/**
+ * QuoteIdMask model
+ *
+ * @method string getMaskedId()
+ * @method QuoteIdMask setMaskedId()
+ */
+class QuoteIdMask extends \Magento\Framework\Model\AbstractModel
+{
+    /**
+     * @var \Magento\Framework\Math\Random
+     */
+    protected $randomDataGenerator;
+
+    /**
+     * @param \Magento\Framework\Model\Context $context
+     * @param \Magento\Framework\Registry $registry
+     * @param \Magento\Framework\Math\Random $randomDataGenerator
+     * @param \Magento\Framework\Model\Resource\AbstractResource $resource
+     * @param \Magento\Framework\Data\Collection\Db $resourceCollection
+     * @param array $data
+     */
+    public function __construct(
+        \Magento\Framework\Model\Context $context,
+        \Magento\Framework\Registry $registry,
+        \Magento\Framework\Math\Random $randomDataGenerator,
+        \Magento\Framework\Model\Resource\AbstractResource $resource = null,
+        \Magento\Framework\Data\Collection\Db $resourceCollection = null,
+        array $data = []
+    ) {
+        $this->randomDataGenerator = $randomDataGenerator;
+        parent::__construct($context, $registry, $resource, $resourceCollection, $data);
+    }
+
+    /**
+     * Initialize resource
+     *
+     * @return void
+     */
+    protected function _construct()
+    {
+        $this->_init('Magento\Quote\Model\Resource\Quote\QuoteIdMask');
+    }
+
+    /**
+     * Initialize quote identifier before save
+     *
+     * @return $this
+     */
+    public function beforeSave()
+    {
+        parent::beforeSave();
+        $this->setMaskedId($this->randomDataGenerator->getUniqueHash());
+        return $this;
+    }
+}
diff --git a/app/code/Magento/Quote/Model/QuoteManagement.php b/app/code/Magento/Quote/Model/QuoteManagement.php
index 241f7d4c5784fee1ee0c48dbb53f94f4c42169a2..c09a32964aa3f3cf9c7c797a7629d55a10e19b21 100644
--- a/app/code/Magento/Quote/Model/QuoteManagement.php
+++ b/app/code/Magento/Quote/Model/QuoteManagement.php
@@ -6,17 +6,18 @@
 
 namespace Magento\Quote\Model;
 
-use Magento\Quote\Model\Quote as QuoteEntity;
+use Magento\Authorization\Model\UserContextInterface;
 use Magento\Framework\Event\ManagerInterface as EventManager;
-use Magento\Sales\Api\Data\OrderInterfaceFactory as OrderFactory;
-use Magento\Sales\Api\OrderManagementInterface as OrderManagement;
+use Magento\Framework\Exception\CouldNotSaveException;
+use Magento\Framework\Exception\StateException;
+use Magento\Quote\Model\Quote as QuoteEntity;
 use Magento\Quote\Model\Quote\Address\ToOrder as ToOrderConverter;
 use Magento\Quote\Model\Quote\Address\ToOrderAddress as ToOrderAddressConverter;
 use Magento\Quote\Model\Quote\Item\ToOrderItem as ToOrderItemConverter;
 use Magento\Quote\Model\Quote\Payment\ToOrderPayment as ToOrderPaymentConverter;
-use Magento\Authorization\Model\UserContextInterface;
-use Magento\Framework\Exception\CouldNotSaveException;
-use Magento\Framework\Exception\StateException;
+use Magento\Sales\Api\Data\OrderInterfaceFactory as OrderFactory;
+use Magento\Sales\Api\OrderManagementInterface as OrderManagement;
+use Magento\Store\Model\StoreManagerInterface;
 
 /**
  * Class QuoteManagement
@@ -95,6 +96,11 @@ class QuoteManagement implements \Magento\Quote\Api\CartManagementInterface
      */
     protected $dataObjectHelper;
 
+    /**
+     * @var StoreManagerInterface
+     */
+    protected $storeManager;
+
     /**
      * @param EventManager $eventManager
      * @param QuoteValidator $quoteValidator
@@ -110,6 +116,7 @@ class QuoteManagement implements \Magento\Quote\Api\CartManagementInterface
      * @param \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository
      * @param \Magento\Customer\Model\CustomerFactory $customerModelFactory
      * @param \Magento\Framework\Api\DataObjectHelper $dataObjectHelper
+     * @param StoreManagerInterface $storeManager
      * @SuppressWarnings(PHPMD.ExcessiveParameterList)
      */
     public function __construct(
@@ -126,7 +133,8 @@ class QuoteManagement implements \Magento\Quote\Api\CartManagementInterface
         QuoteRepository $quoteRepository,
         \Magento\Customer\Api\CustomerRepositoryInterface $customerRepository,
         \Magento\Customer\Model\CustomerFactory $customerModelFactory,
-        \Magento\Framework\Api\DataObjectHelper $dataObjectHelper
+        \Magento\Framework\Api\DataObjectHelper $dataObjectHelper,
+        StoreManagerInterface $storeManager
     ) {
         $this->eventManager = $eventManager;
         $this->quoteValidator = $quoteValidator;
@@ -142,16 +150,32 @@ class QuoteManagement implements \Magento\Quote\Api\CartManagementInterface
         $this->customerRepository = $customerRepository;
         $this->customerModelFactory = $customerModelFactory;
         $this->dataObjectHelper = $dataObjectHelper;
+        $this->storeManager = $storeManager;
     }
 
     /**
      * {@inheritdoc}
      */
-    public function createEmptyCart($storeId)
+    public function createEmptyCart()
     {
-        $quote = $this->userContext->getUserType() == UserContextInterface::USER_TYPE_CUSTOMER
-            ? $this->createCustomerCart($storeId)
-            : $this->createAnonymousCart($storeId);
+        $storeId = $this->storeManager->getStore()->getStoreId();
+        $quote = $this->createAnonymousCart($storeId);
+
+        try {
+            $this->quoteRepository->save($quote);
+        } catch (\Exception $e) {
+            throw new CouldNotSaveException(__('Cannot create quote'));
+        }
+        return $quote->getId();
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function createEmptyCartForCustomer($customerId)
+    {
+        $storeId = $this->storeManager->getStore()->getStoreId();
+        $quote = $this->createCustomerCart($customerId, $storeId);
 
         try {
             $this->quoteRepository->save($quote);
@@ -213,16 +237,17 @@ class QuoteManagement implements \Magento\Quote\Api\CartManagementInterface
     /**
      * Creates a cart for the currently logged-in customer.
      *
+     * @param int $customerId
      * @param int $storeId
      * @return \Magento\Quote\Model\Quote Cart object.
      * @throws CouldNotSaveException The cart could not be created.
      */
-    protected function createCustomerCart($storeId)
+    protected function createCustomerCart($customerId, $storeId)
     {
-        $customer = $this->customerRepository->getById($this->userContext->getUserId());
+        $customer = $this->customerRepository->getById($customerId);
 
         try {
-            $this->quoteRepository->getActiveForCustomer($this->userContext->getUserId());
+            $this->quoteRepository->getActiveForCustomer($customerId);
             throw new CouldNotSaveException(__('Cannot create quote'));
         } catch (\Magento\Framework\Exception\NoSuchEntityException $e) {
 
diff --git a/app/code/Magento/Quote/Model/Resource/Quote/QuoteIdMask.php b/app/code/Magento/Quote/Model/Resource/Quote/QuoteIdMask.php
new file mode 100644
index 0000000000000000000000000000000000000000..8fa2507073a2e4e9b86d23bc2c953363ecd5703b
--- /dev/null
+++ b/app/code/Magento/Quote/Model/Resource/Quote/QuoteIdMask.php
@@ -0,0 +1,26 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Model\Resource\Quote;
+
+use Magento\Framework\Model\Resource\Db\AbstractDb;
+
+/**
+ * QuoteIdMask Resource model
+ * @codeCoverageIgnore
+ */
+class QuoteIdMask extends AbstractDb
+{
+    /**
+     * Main table and field initialization
+     *
+     * @return void
+     */
+    protected function _construct()
+    {
+        $this->_init('quote_id_mask', 'quote_id');
+        $this->_isPkAutoIncrement = false;
+    }
+}
diff --git a/app/code/Magento/Quote/Model/Webapi/ParamOverriderCartId.php b/app/code/Magento/Quote/Model/Webapi/ParamOverriderCartId.php
new file mode 100644
index 0000000000000000000000000000000000000000..3f5b280d505d2762e48b42c4715f1cdf74aa04a0
--- /dev/null
+++ b/app/code/Magento/Quote/Model/Webapi/ParamOverriderCartId.php
@@ -0,0 +1,63 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Quote\Model\Webapi;
+
+use Magento\Authorization\Model\UserContextInterface;
+use Magento\Framework\Webapi\Rest\Request\ParamOverriderInterface;
+use Magento\Framework\Exception\NoSuchEntityException;
+use Magento\Quote\Api\CartManagementInterface;
+
+/**
+ * Replaces a "%cart_id%" value with the current authenticated customer's cart
+ */
+class ParamOverriderCartId implements ParamOverriderInterface
+{
+    /**
+     * @var UserContextInterface
+     */
+    private $userContext;
+
+    /**
+     * @var CartManagementInterface
+     */
+    private $cartManagement;
+
+    /**
+     * Constructs an object to override the cart ID parameter on a request.
+     *
+     * @param UserContextInterface $userContext
+     * @param CartManagementInterface $cartManagement
+     */
+    public function __construct(
+        UserContextInterface $userContext,
+        CartManagementInterface $cartManagement
+    ) {
+        $this->userContext = $userContext;
+        $this->cartManagement = $cartManagement;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function getOverriddenValue()
+    {
+        try {
+            if ($this->userContext->getUserType() === UserContextInterface::USER_TYPE_CUSTOMER) {
+                $customerId = $this->userContext->getUserId();
+
+                /** @var \Magento\Quote\Api\Data\CartInterface */
+                $cart = $this->cartManagement->getCartForCustomer($customerId);
+                if ($cart) {
+                    return $cart->getId();
+                }
+            }
+        } catch (NoSuchEntityException $e) {
+            /* do nothing and just return null */
+        }
+        return null;
+    }
+}
diff --git a/app/code/Magento/Quote/Setup/InstallSchema.php b/app/code/Magento/Quote/Setup/InstallSchema.php
index 7e9947028060c0ec596393146748c4e5907b7789..905cfba56782664a89b0d33b722e9e43828e7319 100644
--- a/app/code/Magento/Quote/Setup/InstallSchema.php
+++ b/app/code/Magento/Quote/Setup/InstallSchema.php
@@ -1535,6 +1535,35 @@ class InstallSchema implements InstallSchemaInterface
         );
         $installer->getConnection()->createTable($table);
 
+        /**
+         * Create table to store cartId and obscured UUID based cartId mapping
+         */
+        $table = $installer->getConnection()->newTable(
+            $installer->getTable('quote_id_mask')
+        )->addColumn(
+            'quote_id',
+            \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
+            null,
+            ['identity' => true, 'unsigned' => true, 'nullable' => false],
+            'Quote ID'
+        )->addForeignKey(
+            'quote_id',
+            'quote_id',
+            $installer->getTable('quote'),
+            'entity_id',
+            \Magento\Framework\DB\Ddl\Table::ACTION_CASCADE
+        )->addColumn(
+            'masked_id',
+            \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
+            32,
+            ['nullable' => 'false'],
+            'Masked ID'
+        )->setComment(
+            'Quote ID and masked ID mapping'
+        );
+
+        $installer->getConnection()->createTable($table);
+
         $installer->endSetup();
 
     }
diff --git a/app/code/Magento/Quote/Test/Unit/Model/Cart/Access/CartManagementPluginTest.php b/app/code/Magento/Quote/Test/Unit/Model/Cart/Access/CartManagementPluginTest.php
deleted file mode 100644
index 4a900ce7550ec771285259f09d35f2055e6eaeeb..0000000000000000000000000000000000000000
--- a/app/code/Magento/Quote/Test/Unit/Model/Cart/Access/CartManagementPluginTest.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-namespace Magento\Quote\Test\Unit\Model\Cart\Access;
-
-use \Magento\Quote\Model\Cart\Access\CartManagementPlugin;
-
-class CartManagementPluginTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \Magento\Quote\Model\Cart\Access\CartManagementPlugin
-     */
-    protected $model;
-
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $userContextMock;
-
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $subjectMock;
-
-    protected function setUp()
-    {
-        $this->userContextMock = $this->getMock('Magento\Authorization\Model\UserContextInterface');
-        $this->subjectMock = $this->getMock('\Magento\Quote\Api\CartManagementInterface');
-        $this->model = new CartManagementPlugin($this->userContextMock);
-    }
-
-    /**
-     * @param int $userType
-     * @dataProvider successTypeDataProvider
-     */
-    public function testBeforeCreateSuccess($userType)
-    {
-        $this->userContextMock->expects($this->once())->method('getUserType')->will($this->returnValue($userType));
-        $this->model->beforeAssignCustomer($this->subjectMock, 1, 1, 1);
-    }
-
-    public function successTypeDataProvider()
-    {
-        return [
-            'admin' => [\Magento\Authorization\Model\UserContextInterface::USER_TYPE_ADMIN],
-            'integration' => [\Magento\Authorization\Model\UserContextInterface::USER_TYPE_INTEGRATION],
-        ];
-    }
-
-    /**
-     * @expectedException \Magento\Framework\Exception\AuthorizationException
-     * @expectedExceptionMessage Access denied
-     */
-    public function testBeforeCreateDenied()
-    {
-        $this->userContextMock->expects($this->once())->method('getUserType')
-            ->will($this->returnValue(\Magento\Authorization\Model\UserContextInterface::USER_TYPE_CUSTOMER));
-        $this->model->beforeAssignCustomer($this->subjectMock, 1, 1, 1);
-    }
-}
diff --git a/app/code/Magento/Quote/Test/Unit/Model/Cart/Access/CartRepositoryPluginTest.php b/app/code/Magento/Quote/Test/Unit/Model/Cart/Access/CartRepositoryPluginTest.php
deleted file mode 100644
index d4e5a472c390440024e37095090d777f8b7cf0ba..0000000000000000000000000000000000000000
--- a/app/code/Magento/Quote/Test/Unit/Model/Cart/Access/CartRepositoryPluginTest.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
-
-namespace Magento\Quote\Test\Unit\Model\Cart\Access;
-
-use \Magento\Quote\Model\Cart\Access\CartRepositoryPlugin;
-
-class CartRepositoryPluginTest extends \PHPUnit_Framework_TestCase
-{
-    /**
-     * @var \Magento\Quote\Model\Cart\Access\CartRepositoryPlugin
-     */
-    protected $model;
-
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $userContextMock;
-
-    /**
-     * @var \PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $subjectMock;
-
-    protected function setUp()
-    {
-        $this->userContextMock = $this->getMock('Magento\Authorization\Model\UserContextInterface');
-        $this->subjectMock = $this->getMock('\Magento\Quote\Api\CartRepositoryInterface');
-        $this->model = new CartRepositoryPlugin($this->userContextMock);
-    }
-
-    /**
-     * @param int $userType
-     * @dataProvider successTypeDataProvider
-     */
-    public function testBeforeGetSuccess($userType)
-    {
-        $this->userContextMock->expects($this->once())->method('getUserType')->will($this->returnValue($userType));
-        $this->model->beforeGet($this->subjectMock, 1);
-    }
-
-    /**
-     * @expectedException \Magento\Framework\Exception\AuthorizationException
-     * @expectedExceptionMessage Access denied
-     */
-    public function testBeforeGetCartDenied()
-    {
-        $this->userContextMock->expects($this->once())->method('getUserType')
-            ->will($this->returnValue(\Magento\Authorization\Model\UserContextInterface::USER_TYPE_CUSTOMER));
-        $this->model->beforeGet($this->subjectMock, 1);
-    }
-
-    public function successTypeDataProvider()
-    {
-        return [
-            'admin' => [\Magento\Authorization\Model\UserContextInterface::USER_TYPE_ADMIN],
-            'integration' => [\Magento\Authorization\Model\UserContextInterface::USER_TYPE_INTEGRATION],
-        ];
-    }
-
-    /**
-     * @param int $userType
-     * @dataProvider successTypeDataProvider
-     */
-    public function testBeforeGetCartSuccess($userType)
-    {
-        $this->userContextMock->expects($this->once())->method('getUserType')->will($this->returnValue($userType));
-        $this->model->beforeGetList(
-            $this->subjectMock,
-            $this->getMock('\Magento\Framework\Api\SearchCriteria', [], [], '', false)
-        );
-    }
-
-    /**
-     * @expectedException \Magento\Framework\Exception\AuthorizationException
-     * @expectedExceptionMessage Access denied
-     */
-    public function testBeforeGetListDenied()
-    {
-        $this->userContextMock->expects($this->once())->method('getUserType')
-            ->will($this->returnValue(\Magento\Authorization\Model\UserContextInterface::USER_TYPE_CUSTOMER));
-        $this->model->beforeGetList(
-            $this->subjectMock,
-            $this->getMock('\Magento\Framework\Api\SearchCriteria', [], [], '', false)
-        );
-    }
-}
diff --git a/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestBillingAddressManagementTest.php b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestBillingAddressManagementTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..4f6a3e63a632df58afc6eadeb44871820866100c
--- /dev/null
+++ b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestBillingAddressManagementTest.php
@@ -0,0 +1,97 @@
+<?php
+/**
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Test\Unit\Model\GuestCart;
+
+class GuestBillingAddressManagementTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Quote\Model\GuestCart\GuestBillingAddressManagement
+     */
+    protected $model;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteIdMaskFactoryMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteIdMaskMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $billingAddressManagementMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $addressMock;
+
+    /**
+     * @var string
+     */
+    protected $maskedCartId;
+
+    /**
+     * @var int
+     */
+    protected $cartId;
+
+    /**
+     * @return void
+     */
+    protected function setUp()
+    {
+        $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
+        $this->addressMock = $this->getMock('\Magento\Quote\Model\Quote\Address', [], [], '', false);
+        $this->billingAddressManagementMock = $this->getMock(
+            'Magento\Quote\Api\BillingAddressManagementInterface',
+            [],
+            [],
+            '',
+            false
+        );
+
+        $this->maskedCartId = 'f216207248d65c789b17be8545e0aa73';
+        $this->cartId = 123;
+
+        $guestCartTestHelper = new GuestCartTestHelper($this);
+        list($this->quoteIdMaskFactoryMock, $this->quoteIdMaskMock) = $guestCartTestHelper->mockQuoteIdMask(
+            $this->maskedCartId,
+            $this->cartId
+        );
+
+        $this->model = $objectManager->getObject(
+            'Magento\Quote\Model\GuestCart\GuestBillingAddressManagement',
+            [
+                'quoteIdMaskFactory' => $this->quoteIdMaskFactoryMock,
+                'billingAddressManagement' => $this->billingAddressManagementMock
+            ]
+        );
+    }
+
+    /**
+     * @return void
+     */
+    public function testGet()
+    {
+        $this->billingAddressManagementMock->expects($this->once())->method('get')->willReturn($this->addressMock);
+        $this->assertEquals($this->addressMock, $this->model->get($this->maskedCartId));
+    }
+
+    /**
+     * @return void
+     */
+    public function testAssign()
+    {
+        $addressId = 1;
+        $this->billingAddressManagementMock->expects($this->once())->method('assign')->willReturn($addressId);
+        $this->assertEquals($addressId, $this->model->assign($this->maskedCartId, $this->addressMock));
+    }
+}
diff --git a/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartItemRepositoryTest.php b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartItemRepositoryTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..9535e3c1c7455e063d9fa7770e48e15616ede6a0
--- /dev/null
+++ b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartItemRepositoryTest.php
@@ -0,0 +1,133 @@
+<?php
+/**
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Quote\Test\Unit\Model\GuestCart;
+
+class GuestCartItemRepositoryTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Quote\Model\GuestCart\GuestCartItemRepository
+     */
+    protected $guestCartItemRepository;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $cartItemRepositoryMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteIdMaskFactoryMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteIdMaskMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteItemMock;
+
+    /**
+     * @var string
+     */
+    protected $maskedCartId;
+
+    /**
+     * @var string
+     */
+    protected $cartId;
+
+    /**
+     * @return void
+     */
+    protected function setUp()
+    {
+        $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
+
+        $this->maskedCartId = 'f216207248d65c789b17be8545e0aa73';
+        $this->cartId = 33;
+
+        /**
+         * @var \Magento\Quote\Test\Unit\Model\GuestCart\GuestCartTestHelper
+         */
+        $guestCartTestHelper = new \Magento\Quote\Test\Unit\Model\GuestCart\GuestCartTestHelper($this);
+        list($this->quoteIdMaskFactoryMock, $this->quoteIdMaskMock) =
+            $guestCartTestHelper->mockQuoteIdMask(
+                $this->maskedCartId,
+                $this->cartId
+            );
+
+        $this->quoteIdMaskMock->expects($this->any())
+            ->method('getMaskedId')
+            ->willReturn($this->maskedCartId);
+
+        $this->quoteItemMock = $this->getMock('\Magento\Quote\Model\Quote\Item', [], [], '', false);
+        $this->quoteItemMock->expects($this->any())
+            ->method('getItemId')
+            ->willReturn($this->maskedCartId);
+        $this->quoteItemMock->expects($this->any())
+            ->method('getQuoteId')
+            ->willReturn($this->maskedCartId);
+        $this->quoteItemMock->expects($this->any())
+            ->method('setQuoteId')
+            ->with($this->cartId);
+
+        $this->cartItemRepositoryMock = $this->getMock('\Magento\Quote\Model\Quote\Item\Repository', [], [], '', false);
+        $this->guestCartItemRepository =
+            $objectManager->getObject(
+                'Magento\Quote\Model\GuestCart\GuestCartItemRepository',
+                [
+                    'repository' => $this->cartItemRepositoryMock,
+                    'quoteIdMaskFactory' => $this->quoteIdMaskFactoryMock,
+                ]
+            );
+    }
+
+    /**
+     * @return void
+     */
+    public function testSave()
+    {
+        $expectedValue = 'expected value';
+        $this->cartItemRepositoryMock->expects($this->once())
+            ->method('save')
+            ->willReturn($expectedValue);
+        $this->assertEquals($expectedValue, $this->guestCartItemRepository->save($this->quoteItemMock));
+    }
+
+    /**
+     * @return void
+     */
+    public function testGetList()
+    {
+        $itemMock = $this->getMock('\Magento\Quote\Model\Quote\Item', [], [], '', false);
+        $itemMock->expects($this->any())
+            ->method('setQuoteId')
+            ->with($this->maskedCartId);
+        $this->cartItemRepositoryMock->expects($this->once())
+            ->method('getList')
+            ->with($this->cartId)
+            ->will($this->returnValue([$itemMock]));
+        $this->assertEquals([$itemMock], $this->guestCartItemRepository->getList($this->maskedCartId));
+    }
+
+    /**
+     * @return void
+     */
+    public function testDeleteById()
+    {
+        $itemId = 5;
+        $this->cartItemRepositoryMock->expects($this->once())
+            ->method('deleteById')
+            ->with($this->cartId, $itemId)
+            ->willReturn(true);
+        $this->assertTrue($this->guestCartItemRepository->deleteById($this->maskedCartId, $itemId));
+    }
+}
diff --git a/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartManagementTest.php b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartManagementTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..444aa62322a04a9a039b274755c0e8ab863a2ddc
--- /dev/null
+++ b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartManagementTest.php
@@ -0,0 +1,116 @@
+<?php
+/**
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Quote\Test\Unit\Model\GuestCart;
+
+class GuestCartManagementTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteManagementMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteRepositoryMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteIdMaskFactoryMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteIdMaskMock;
+
+    /**
+     * @var \Magento\Quote\Model\GuestCart\GuestCartManagement
+     */
+    protected $guestCartManagement;
+
+    protected function setUp()
+    {
+        $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
+
+        $this->quoteManagementMock = $this->getMockForAbstractClass(
+            'Magento\Quote\Api\CartManagementInterface',
+            [],
+            '',
+            false,
+            true,
+            true,
+            []
+        );
+        $this->quoteIdMaskFactoryMock = $this->getMock(
+            'Magento\Quote\Model\QuoteIdMaskFactory',
+            ['create'],
+            [],
+            '',
+            false
+        );
+        $this->quoteIdMaskMock = $this->getMock(
+            'Magento\Quote\Model\QuoteIdMask',
+            ['getId', 'getMaskedId', 'load', 'save', 'setId'],
+            [],
+            '',
+            false
+        );
+
+        $this->guestCartManagement = $objectManager->getObject(
+            'Magento\Quote\Model\GuestCart\GuestCartManagement',
+            [
+                'quoteManagement' => $this->quoteManagementMock,
+                'quoteIdMaskFactory' => $this->quoteIdMaskFactoryMock
+            ]
+        );
+    }
+
+    public function testCreateEmptyCart()
+    {
+        $maskedCartId = 'masked1cart2id3';
+        $cartId = 1;
+
+        $this->quoteIdMaskMock->expects($this->once())->method('setId')->with($cartId)->willReturnSelf();
+        $this->quoteIdMaskMock->expects($this->once())->method('save')->willReturnSelf();
+        $this->quoteIdMaskMock->expects($this->once())->method('getMaskedId')->willreturn($maskedCartId);
+        $this->quoteIdMaskFactoryMock->expects($this->once())->method('create')->willReturn($this->quoteIdMaskMock);
+        $this->quoteManagementMock->expects($this->once())->method('createEmptyCart')->willReturn($cartId);
+
+        $this->assertEquals($maskedCartId, $this->guestCartManagement->createEmptyCart());
+    }
+
+    public function testAssignCustomer()
+    {
+        $maskedCartId = 'masked1cart2id3';
+        $cartId = 1;
+        $customerId = 1;
+        $storeId = 1;
+
+        $this->quoteIdMaskMock->expects($this->once())->method('load')->with($cartId, 'masked_id')->willReturnSelf();
+        $this->quoteIdMaskMock->expects($this->once())->method('getId')->willReturn($maskedCartId);
+        $this->quoteIdMaskFactoryMock->expects($this->once())->method('create')->willReturn($this->quoteIdMaskMock);
+        $this->quoteManagementMock->expects($this->once())->method('assignCustomer')->willReturn(true);
+
+        $this->assertEquals(true, $this->guestCartManagement->assignCustomer($cartId, $customerId, $storeId));
+    }
+
+    public function testPlaceOrder()
+    {
+        $maskedCartId = 'masked1cart2id3';
+        $cartId = 1;
+        $orderId = 1;
+
+        $this->quoteIdMaskMock->expects($this->once())->method('load')->with($cartId, 'masked_id')->willReturnSelf();
+        $this->quoteIdMaskMock->expects($this->once())->method('getId')->willReturn($maskedCartId);
+        $this->quoteIdMaskFactoryMock->expects($this->once())->method('create')->willReturn($this->quoteIdMaskMock);
+        $this->quoteManagementMock->expects($this->once())->method('placeOrder')->willReturn($orderId);
+
+        $this->assertEquals($orderId, $this->guestCartManagement->placeOrder($cartId));
+    }
+}
diff --git a/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartRepositoryTest.php b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartRepositoryTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..3a7e2fac3ae37a9fb1d30bdceb39a88616c40ac6
--- /dev/null
+++ b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartRepositoryTest.php
@@ -0,0 +1,75 @@
+<?php
+/**
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Test\Unit\Model\GuestCart;
+
+class GuestCartRepositoryTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Quote\Model\GuestCart\GuestCartRepository
+     */
+    protected $model;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteRepositoryMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteIdMaskFactoryMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteIdMaskMock;
+
+    /**
+     * @var string
+     */
+    protected $maskedCartId;
+
+    /**
+     * @var int
+     */
+    protected $cartId;
+
+    protected function setUp()
+    {
+        $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
+        $this->quoteRepositoryMock = $this->getMock('Magento\Quote\Api\CartRepositoryInterface', [], [], '', false);
+        $this->quoteMock = $this->getMock('Magento\Quote\Model\Quote', [], [], '', false);
+
+        $this->maskedCartId = 'f216207248d65c789b17be8545e0aa73';
+        $this->cartId = 123;
+
+        $guestCartTestHelper = new GuestCartTestHelper($this);
+        list($this->quoteIdMaskFactoryMock, $this->quoteIdMaskMock) = $guestCartTestHelper->mockQuoteIdMask(
+            $this->maskedCartId,
+            $this->cartId
+        );
+
+        $this->model = $objectManager->getObject(
+            'Magento\Quote\Model\GuestCart\GuestCartRepository',
+            [
+                'quoteRepository' => $this->quoteRepositoryMock,
+                'quoteIdMaskFactory' => $this->quoteIdMaskFactoryMock
+            ]
+        );
+    }
+
+    public function testGet()
+    {
+        $this->quoteRepositoryMock->expects($this->once())->method('get')->willReturn($this->quoteMock);
+        $this->assertEquals($this->quoteMock, $this->model->get($this->maskedCartId));
+    }
+}
diff --git a/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartTestHelper.php b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartTestHelper.php
new file mode 100644
index 0000000000000000000000000000000000000000..25649077b5fd6c9bbe8a478b4987947d59eda4cc
--- /dev/null
+++ b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartTestHelper.php
@@ -0,0 +1,54 @@
+<?php
+/**
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Test\Unit\Model\GuestCart;
+
+/**
+ * Class GuestCartTestHelper
+ *
+ */
+class GuestCartTestHelper
+{
+    /**
+     * @var \PHPUnit_Framework_TestCase
+     */
+    protected $testCase;
+
+    /**
+     * Initialize helper
+     *
+     * @param \PHPUnit_Framework_TestCase $testCase
+     */
+    public function __construct(\PHPUnit_Framework_TestCase $testCase)
+    {
+        $this->testCase = $testCase;
+    }
+
+    /**
+     * Return mocks with expected invokes
+     *
+     * First element is quoteIdMaskFactoryMock, second one is quoteIdMaskMock
+     *
+     * @param $maskedCartId
+     * @param $cartId
+     * @return array
+     */
+    public function mockQuoteIdMask($maskedCartId, $cartId)
+    {
+        $quoteIdMaskMock = $this->testCase->getMock(
+            'Magento\Quote\Model\QuoteIdMask',
+            ['load', 'getId', 'getMaskedId'],
+            [],
+            '',
+            false
+        );
+        $quoteIdMaskFactoryMock = $this->testCase->getMock('Magento\Quote\Model\QuoteIdMaskFactory', [], [], '', false);
+        $quoteIdMaskFactoryMock->expects($this->testCase->once())->method('create')->willReturn($quoteIdMaskMock);
+        $quoteIdMaskMock->expects($this->testCase->once())->method('load')->with($maskedCartId)->willReturnSelf();
+        $quoteIdMaskMock->expects($this->testCase->once())->method('getId')->willReturn($cartId);
+        return [$quoteIdMaskFactoryMock, $quoteIdMaskMock];
+    }
+}
diff --git a/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartTotalRepositoryTest.php b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartTotalRepositoryTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..a8ef8d94e9fa2f92b324d81931ed87c7cd647e0b
--- /dev/null
+++ b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCartTotalRepositoryTest.php
@@ -0,0 +1,82 @@
+<?php
+/**
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Test\Unit\Model\GuestCart;
+
+class GuestCartTotalRepositoryTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Quote\Model\GuestCart\GuestCartTotalRepository
+     */
+    protected $model;
+
+    /**
+     * @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager
+     */
+    protected $objectManager;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $cartTotalRepository;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteIdMaskFactoryMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteIdMaskMock;
+
+    /**
+     * @var string
+     */
+    protected $maskedCartId;
+
+    /**
+     * @var int
+     */
+    protected $cartId;
+
+    public function setUp()
+    {
+        $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
+
+        $this->cartTotalRepository = $this->getMockBuilder('Magento\Quote\Api\CartTotalRepositoryInterface')
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $this->maskedCartId = 'f216207248d65c789b17be8545e0aa73';
+        $this->cartId = 123;
+
+        $guestCartTestHelper = new GuestCartTestHelper($this);
+        list($this->quoteIdMaskFactoryMock, $this->quoteIdMaskMock) = $guestCartTestHelper->mockQuoteIdMask(
+            $this->maskedCartId,
+            $this->cartId
+        );
+
+        $this->model = $this->objectManager->getObject(
+            'Magento\Quote\Model\GuestCart\GuestCartTotalRepository',
+            [
+                'cartTotalRepository' => $this->cartTotalRepository,
+                'quoteIdMaskFactory' => $this->quoteIdMaskFactoryMock,
+            ]
+        );
+    }
+
+    public function testGetTotals()
+    {
+        $retValue = 'retValue';
+
+        $this->cartTotalRepository->expects($this->once())
+            ->method('get')
+            ->with($this->cartId)
+            ->will($this->returnValue($retValue));
+        $this->assertSame($retValue, $this->model->get($this->maskedCartId));
+    }
+}
diff --git a/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCouponManagementTest.php b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCouponManagementTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..74b00ed942f4a1ba2d8e05e4ab678a9ad05c7d3d
--- /dev/null
+++ b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestCouponManagementTest.php
@@ -0,0 +1,87 @@
+<?php
+/**
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Test\Unit\Model\GuestCart;
+
+class GuestCouponManagementTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Quote\Model\GuestCart\GuestCouponManagement
+     */
+    protected $model;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteIdMaskFactoryMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteIdMaskMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $couponManagementMock;
+
+    /**
+     * @var string
+     */
+    protected $maskedCartId;
+
+    /**
+     * @var int
+     */
+    protected $cartId;
+
+    /**
+     * @var string
+     */
+    protected $couponCode;
+
+    protected function setUp()
+    {
+        $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
+        $this->couponManagementMock = $this->getMock('Magento\Quote\Api\CouponManagementInterface', [], [], '', false);
+
+        $this->couponCode = 'test_coupon_code';
+        $this->maskedCartId = 'f216207248d65c789b17be8545e0aa73';
+        $this->cartId = 123;
+
+        $guestCartTestHelper = new GuestCartTestHelper($this);
+        list($this->quoteIdMaskFactoryMock, $this->quoteIdMaskMock) = $guestCartTestHelper->mockQuoteIdMask(
+            $this->maskedCartId,
+            $this->cartId
+        );
+
+        $this->model = $objectManager->getObject(
+            'Magento\Quote\Model\GuestCart\GuestCouponManagement',
+            [
+                'couponManagement' => $this->couponManagementMock,
+                'quoteIdMaskFactory' => $this->quoteIdMaskFactoryMock
+            ]
+        );
+    }
+
+    public function testGet()
+    {
+        $this->couponManagementMock->expects($this->once())->method('get')->willReturn($this->couponCode);
+        $this->assertEquals($this->couponCode, $this->model->get($this->maskedCartId));
+    }
+
+    public function testSet()
+    {
+        $this->couponManagementMock->expects($this->once())->method('set')->willReturn(true);
+        $this->assertTrue($this->model->set($this->maskedCartId, $this->couponCode));
+    }
+
+    public function testRemove()
+    {
+        $this->couponManagementMock->expects($this->once())->method('remove')->willReturn(true);
+        $this->assertTrue($this->model->remove($this->maskedCartId));
+    }
+}
diff --git a/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestPaymentMethodManagementTest.php b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestPaymentMethodManagementTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..ebde097f89bd4c551b920d69fac12fc3b4543497
--- /dev/null
+++ b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestPaymentMethodManagementTest.php
@@ -0,0 +1,94 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Test\Unit\Model\GuestCart;
+
+class GuestPaymentMethodManagementTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Quote\Model\GuestCart\GuestPaymentMethodManagement
+     */
+    protected $model;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteIdMaskFactoryMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteIdMaskMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $paymentMethodManagementMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $paymentMock;
+
+    /**
+     * @var string
+     */
+    protected $maskedCartId;
+
+    /**
+     * @var int
+     */
+    protected $cartId;
+
+    protected function setUp()
+    {
+        $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
+        $this->paymentMethodManagementMock = $this->getMock(
+            'Magento\Quote\Api\PaymentMethodManagementInterface',
+            [],
+            [],
+            '',
+            false
+        );
+        $this->paymentMock = $this->getMock('Magento\Quote\Model\Quote\Payment', [], [], '', false);
+
+        $this->maskedCartId = 'f216207248d65c789b17be8545e0aa73';
+        $this->cartId = 11;
+
+        $guestCartTestHelper = new GuestCartTestHelper($this);
+        list($this->quoteIdMaskFactoryMock, $this->quoteIdMaskMock) = $guestCartTestHelper->mockQuoteIdMask(
+            $this->maskedCartId,
+            $this->cartId
+        );
+
+        $this->model = $objectManager->getObject(
+            'Magento\Quote\Model\GuestCart\GuestPaymentMethodManagement',
+            [
+                'paymentMethodManagement' => $this->paymentMethodManagementMock,
+                'quoteIdMaskFactory' => $this->quoteIdMaskFactoryMock
+            ]
+        );
+    }
+
+    public function testGet()
+    {
+        $this->paymentMethodManagementMock->expects($this->once())->method('get')->willReturn($this->paymentMock);
+        $this->assertEquals($this->paymentMock, $this->model->get($this->maskedCartId));
+    }
+
+    public function testGetList()
+    {
+        $paymentMethod = $this->getMock('Magento\Quote\Api\Data\PaymentMethodInterface', [], [], '', false);
+        $this->paymentMethodManagementMock->expects($this->once())->method('getList')->willReturn([$paymentMethod]);
+        $this->assertEquals([$paymentMethod], $this->model->getList($this->maskedCartId));
+    }
+
+    public function testSetSimpleProduct()
+    {
+        $paymentId = 20;
+        $this->paymentMethodManagementMock->expects($this->once())->method('set')->willReturn($paymentId);
+        $this->assertEquals($paymentId, $this->model->set($this->maskedCartId, $this->paymentMock));
+    }
+}
diff --git a/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestShippingAddressManagementTest.php b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestShippingAddressManagementTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..67e35a93bf73c07409993caf9926d5fc77232301
--- /dev/null
+++ b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestShippingAddressManagementTest.php
@@ -0,0 +1,91 @@
+<?php
+/**
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Test\Unit\Model\GuestCart;
+
+class GuestShippingAddressManagementTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Quote\Api\GuestShippingAddressManagementInterface
+     */
+    protected $model;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteAddressMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteIdMaskFactoryMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $quoteIdMaskMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $shippingAddressManagementMock;
+
+    /**
+     * @var string
+     */
+    protected $maskedCartId;
+
+    /**
+     * @var int
+     */
+    protected $cartId;
+
+    protected function setUp()
+    {
+        $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
+
+        $this->shippingAddressManagementMock = $this->getMock(
+            'Magento\Quote\Api\ShippingAddressManagementInterface',
+            [],
+            [],
+            '',
+            false
+        );
+        $this->quoteAddressMock = $this->getMock('Magento\Quote\Model\Quote\Address', [], [], '', false);
+
+        $this->maskedCartId = 'f216207248d65c789b17be8545e0aa73';
+        $this->cartId = 123;
+
+        $guestCartTestHelper = new GuestCartTestHelper($this);
+        list($this->quoteIdMaskFactoryMock, $this->quoteIdMaskMock) = $guestCartTestHelper->mockQuoteIdMask(
+            $this->maskedCartId,
+            $this->cartId
+        );
+
+        $this->model = $objectManager->getObject(
+            'Magento\Quote\Model\GuestCart\GuestShippingAddressManagement',
+            [
+                'shippingAddressManagement' => $this->shippingAddressManagementMock,
+                'quoteIdMaskFactory' => $this->quoteIdMaskFactoryMock
+            ]
+        );
+    }
+
+    public function testAssign()
+    {
+        $addressId = 1;
+        $this->shippingAddressManagementMock->expects($this->once())->method('assign')->willReturn($addressId);
+        $this->assertEquals($addressId, $this->model->assign($this->maskedCartId, $this->quoteAddressMock));
+    }
+
+    public function testGet()
+    {
+        $this->shippingAddressManagementMock->expects($this->once())->method('get')->willReturn(
+            $this->quoteAddressMock
+        );
+        $this->assertEquals($this->quoteAddressMock, $this->model->get($this->maskedCartId));
+    }
+}
diff --git a/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestShippingMethodManagementTest.php b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestShippingMethodManagementTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..c91510a165fac2c1ecbacf3400cfba4b6f6d5be1
--- /dev/null
+++ b/app/code/Magento/Quote/Test/Unit/Model/GuestCart/GuestShippingMethodManagementTest.php
@@ -0,0 +1,103 @@
+<?php
+/**
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Quote\Test\Unit\Model\GuestCart;
+
+class GuestShippingMethodManagementTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Quote\Api\GuestShippingMethodManagementInterface
+     */
+    private $model;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    private $shippingMethodManagementMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    private $quoteIdMaskFactoryMock;
+
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    private $quoteIdMaskMock;
+
+    /**
+     * @var string
+     */
+    private $maskedCartId;
+
+    /**
+     * @var string
+     */
+    private $cartId;
+
+    protected function setUp()
+    {
+        $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
+
+        $this->shippingMethodManagementMock =
+            $this->getMockBuilder('Magento\Quote\Api\ShippingMethodManagementInterface')
+            ->getMockForAbstractClass();
+
+        $this->maskedCartId = 'f216207248d65c789b17be8545e0aa73';
+        $this->cartId = 867;
+
+        $guestCartTestHelper = new GuestCartTestHelper($this);
+        list($this->quoteIdMaskFactoryMock, $this->quoteIdMaskMock) = $guestCartTestHelper->mockQuoteIdMask(
+            $this->maskedCartId,
+            $this->cartId
+        );
+
+        $this->model = $objectManager->getObject(
+            'Magento\Quote\Model\GuestCart\GuestShippingMethodManagement',
+            [
+                'shippingMethodManagement' => $this->shippingMethodManagementMock,
+                'quoteIdMaskFactory' => $this->quoteIdMaskFactoryMock,
+            ]
+        );
+    }
+
+    public function testSet()
+    {
+        $carrierCode = 'carrierCode';
+        $methodCode = 'methodCode';
+
+        $retValue = 'retValue';
+        $this->shippingMethodManagementMock->expects($this->once())
+            ->method('set')
+            ->with($this->cartId, $carrierCode, $methodCode)
+            ->will($this->returnValue($retValue));
+
+        $this->assertEquals($retValue, $this->model->set($this->maskedCartId, $carrierCode, $methodCode));
+    }
+
+    public function testGetList()
+    {
+        $retValue = 'retValue';
+        $this->shippingMethodManagementMock->expects($this->once())
+            ->method('getList')
+            ->with($this->cartId)
+            ->will($this->returnValue($retValue));
+
+        $this->assertEquals($retValue, $this->model->getList($this->maskedCartId));
+    }
+
+    public function testGet()
+    {
+        $retValue = 'retValue';
+        $this->shippingMethodManagementMock->expects($this->once())
+            ->method('get')
+            ->with($this->cartId)
+            ->will($this->returnValue($retValue));
+
+        $this->assertEquals($retValue, $this->model->get($this->maskedCartId));
+    }
+}
diff --git a/app/code/Magento/Quote/Test/Unit/Model/Quote/Item/RepositoryTest.php b/app/code/Magento/Quote/Test/Unit/Model/Quote/Item/RepositoryTest.php
index b90d93933827cbe676a413b79cbc4ed2e0d615b4..9081537f2790e8389100a5e3c4549e3578cc0222 100644
--- a/app/code/Magento/Quote/Test/Unit/Model/Quote/Item/RepositoryTest.php
+++ b/app/code/Magento/Quote/Test/Unit/Model/Quote/Item/RepositoryTest.php
@@ -7,7 +7,7 @@
 
 namespace Magento\Quote\Test\Unit\Model\Quote\Item;
 
-use \Magento\Quote\Model\Quote\Item\Repository;
+use Magento\Quote\Model\Quote\Item\Repository;
 
 class RepositoryTest extends \PHPUnit_Framework_TestCase
 {
@@ -160,6 +160,38 @@ class RepositoryTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($this->quoteItemMock, $this->repository->save($this->dataMock));
     }
 
+    /**
+     * @return void
+     */
+    public function testSaveForCustomer()
+    {
+        $customerId = 1;
+        $cartId = 13;
+        $this->quoteRepositoryMock->expects($this->once())->method('getActiveForCustomer')
+            ->with($customerId)
+            ->will($this->returnValue($this->quoteMock));
+        $this->quoteMock->expects($this->once())->method('getId')->willReturn($cartId);
+        $this->dataMock->expects($this->once())->method('getQty')->will($this->returnValue(12));
+        $this->dataMock->expects($this->once())->method('getQuoteId')->willReturn($cartId);
+        $this->quoteRepositoryMock->expects($this->once())
+            ->method('getActive')->with($cartId)->will($this->returnValue($this->quoteMock));
+        $this->productRepositoryMock->expects($this->once())
+            ->method('get')
+            ->will($this->returnValue($this->productMock));
+        $this->dataMock->expects($this->once())->method('getSku');
+        $this->quoteMock->expects($this->once())->method('addProduct')->with($this->productMock, 12);
+        $this->quoteMock->expects($this->never())->method('getItemById');
+        $this->quoteMock->expects($this->once())->method('collectTotals')->will($this->returnValue($this->quoteMock));
+        $this->quoteRepositoryMock->expects($this->once())->method('save')->with($this->quoteMock);
+        $this->quoteMock
+            ->expects($this->once())
+            ->method('getItemByProduct')
+            ->with($this->productMock)
+            ->will($this->returnValue($this->quoteItemMock));
+        $this->dataMock->expects($this->once())->method('getItemId')->will($this->returnValue(null));
+        $this->assertEquals($this->quoteItemMock, $this->repository->saveForCustomer($customerId, $this->dataMock));
+    }
+
     /**
      * @return void
      * @expectedException \Magento\Framework\Exception\NoSuchEntityException
@@ -260,15 +292,13 @@ class RepositoryTest extends \PHPUnit_Framework_TestCase
     {
         $cartId = 11;
         $itemId = 5;
-        $this->dataMock->expects($this->once())->method('getQuoteId')->willReturn($cartId);
-        $this->dataMock->expects($this->once())->method('getItemId')->willReturn($itemId);
         $this->quoteRepositoryMock->expects($this->once())
             ->method('getActive')->with($cartId)->will($this->returnValue($this->quoteMock));
         $this->quoteMock->expects($this->once())
             ->method('getItemById')->with($itemId)->will($this->returnValue(false));
         $this->quoteMock->expects($this->never())->method('removeItem');
 
-        $this->repository->delete($this->dataMock);
+        $this->repository->deleteById($cartId, $itemId);
     }
 
     /**
@@ -280,8 +310,6 @@ class RepositoryTest extends \PHPUnit_Framework_TestCase
     {
         $cartId = 11;
         $itemId = 5;
-        $this->dataMock->expects($this->once())->method('getQuoteId')->willReturn($cartId);
-        $this->dataMock->expects($this->once())->method('getItemId')->willReturn($itemId);
         $this->quoteRepositoryMock->expects($this->once())
             ->method('getActive')->with($cartId)->will($this->returnValue($this->quoteMock));
         $this->quoteMock->expects($this->once())
@@ -296,18 +324,21 @@ class RepositoryTest extends \PHPUnit_Framework_TestCase
             ->with($this->quoteMock)
             ->willThrowException($exception);
 
-        $this->repository->delete($this->dataMock);
+        $this->repository->deleteById($cartId, $itemId);
     }
 
     /**
      * @return void
      */
-    public function testDelete()
+    public function testDeleteByIdForCustomer()
     {
+        $customerId = 1;
         $cartId = 11;
         $itemId = 5;
-        $this->dataMock->expects($this->once())->method('getQuoteId')->willReturn($cartId);
-        $this->dataMock->expects($this->once())->method('getItemId')->willReturn($itemId);
+        $this->quoteRepositoryMock->expects($this->once())->method('getActiveForCustomer')
+            ->with($customerId)
+            ->will($this->returnValue($this->quoteMock));
+        $this->quoteMock->expects($this->once())->method('getId')->willReturn($cartId);
         $this->quoteRepositoryMock->expects($this->once())
             ->method('getActive')->with($cartId)->will($this->returnValue($this->quoteMock));
         $this->quoteMock->expects($this->once())
@@ -316,7 +347,7 @@ class RepositoryTest extends \PHPUnit_Framework_TestCase
         $this->quoteMock->expects($this->once())->method('collectTotals')->will($this->returnValue($this->quoteMock));
         $this->quoteRepositoryMock->expects($this->once())->method('save')->with($this->quoteMock);
 
-        $this->repository->delete($this->dataMock);
+        $this->assertTrue($this->repository->deleteByIdForCustomer($customerId, $itemId));
     }
 
     /**
@@ -334,6 +365,27 @@ class RepositoryTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals([$itemMock], $this->repository->getList(33));
     }
 
+    /**
+     * @return void
+     */
+    public function testGetListForCustomer()
+    {
+        $cartId = 1;
+        $customerId = 33;
+        $quoteMock = $this->getMock('Magento\Quote\Model\Quote', [], [], '', false);
+        $this->quoteRepositoryMock->expects($this->once())->method('getActiveForCustomer')
+            ->with($customerId)
+            ->will($this->returnValue($quoteMock));
+        $quoteMock->expects($this->once())->method('getId')->willReturn($cartId);
+        $this->quoteRepositoryMock->expects($this->once())->method('getActive')
+            ->with($cartId)
+            ->will($this->returnValue($quoteMock));
+        $itemMock = $this->getMock('\Magento\Quote\Model\Quote\Item', [], [], '', false);
+        $quoteMock->expects($this->any())->method('getAllItems')->will($this->returnValue([$itemMock]));
+
+        $this->assertEquals([$itemMock], $this->repository->getListForCustomer($customerId));
+    }
+
     /**
      * @return void
      */
@@ -341,13 +393,6 @@ class RepositoryTest extends \PHPUnit_Framework_TestCase
     {
         $cartId = 11;
         $itemId = 5;
-        $this->itemDataFactoryMock->expects($this->once())->method('create')->willReturn($this->dataMock);
-        $this->dataMock->expects($this->once())->method('setQuoteId')
-            ->with($cartId)->willReturn($this->dataMock);
-        $this->dataMock->expects($this->once())->method('setItemId')
-            ->with($itemId)->willReturn($this->dataMock);
-        $this->dataMock->expects($this->once())->method('getQuoteId')->willReturn($cartId);
-        $this->dataMock->expects($this->once())->method('getItemId')->willReturn($itemId);
         $this->quoteRepositoryMock->expects($this->once())
             ->method('getActive')->with($cartId)->will($this->returnValue($this->quoteMock));
         $this->quoteMock->expects($this->once())
diff --git a/app/code/Magento/Quote/Test/Unit/Model/QuoteIdMaskTest.php b/app/code/Magento/Quote/Test/Unit/Model/QuoteIdMaskTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..9bd03b6bea45e5fc97ad1eac52d1285c458bd2b0
--- /dev/null
+++ b/app/code/Magento/Quote/Test/Unit/Model/QuoteIdMaskTest.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Quote\Test\Unit\Model;
+
+use Magento\Framework\Math\Random;
+
+/**
+ * Unit test for \Magento\Quote\Model\QuoteIdMask
+ */
+class QuoteIdMaskTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var \Magento\Quote\Model\QuoteIdMask
+     */
+    protected $quoteIdMask;
+
+    protected function setUp()
+    {
+        $helper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
+        $this->quoteIdMask = $helper->getObject(
+            'Magento\Quote\Model\QuoteIdMask',
+            ['randomDataGenerator' => new Random()]
+        );
+    }
+
+    public function testBeforeSave()
+    {
+        $this->quoteIdMask->beforeSave();
+        $this->assertNotNull($this->quoteIdMask->getMaskedId(), 'Masked identifier is not generated.');
+    }
+}
diff --git a/app/code/Magento/Quote/Test/Unit/Model/QuoteManagementTest.php b/app/code/Magento/Quote/Test/Unit/Model/QuoteManagementTest.php
index 522734a324ad98bc080654f4ceaee3e3a6da295e..12c4248d82c81175ac6d23d31f714611e1f08495 100644
--- a/app/code/Magento/Quote/Test/Unit/Model/QuoteManagementTest.php
+++ b/app/code/Magento/Quote/Test/Unit/Model/QuoteManagementTest.php
@@ -86,6 +86,11 @@ class QuoteManagementTest extends \PHPUnit_Framework_TestCase
      */
     protected $customerFactoryMock;
 
+    /**
+     * @var \PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $storeManagerMock;
+
     protected function setUp()
     {
         $objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
@@ -140,6 +145,15 @@ class QuoteManagementTest extends \PHPUnit_Framework_TestCase
             '',
             false
         );
+        $this->storeManagerMock = $this->getMockForAbstractClass(
+            'Magento\Store\Model\StoreManagerInterface',
+            [],
+            '',
+            false,
+            true,
+            true,
+            ['getStore', 'getStoreId']
+        );
 
         $dataObjectHelper = $this->getMock('\Magento\Framework\Api\DataObjectHelper', [], [], '', false);
 
@@ -160,6 +174,7 @@ class QuoteManagementTest extends \PHPUnit_Framework_TestCase
                 'customerRepository' => $this->customerRepositoryMock,
                 'customerModelFactory' => $this->customerFactoryMock,
                 'dataObjectHelper' => $dataObjectHelper,
+                'storeManager' => $this->storeManagerMock
             ]
         );
     }
@@ -171,20 +186,19 @@ class QuoteManagementTest extends \PHPUnit_Framework_TestCase
 
         $quoteMock = $this->getMock('\Magento\Quote\Model\Quote', [], [], '', false);
 
-        $this->userContextMock->expects($this->once())->method('getUserType')
-            ->willReturn(\Magento\Authorization\Model\UserContextInterface::USER_TYPE_GUEST);
-
         $this->quoteRepositoryMock->expects($this->once())->method('create')->willReturn($quoteMock);
         $quoteMock->expects($this->any())->method('setStoreId')->with($storeId);
 
-
         $this->quoteRepositoryMock->expects($this->once())->method('save')->with($quoteMock);
         $quoteMock->expects($this->once())->method('getId')->willReturn($quoteId);
 
-        $this->assertEquals($quoteId, $this->model->createEmptyCart($storeId));
+        $this->storeManagerMock->expects($this->once())->method('getStore')->willReturnSelf();
+        $this->storeManagerMock->expects($this->once())->method('getStoreId')->willReturn($storeId);
+
+        $this->assertEquals($quoteId, $this->model->createEmptyCart());
     }
 
-    public function testCreateEmptyCartLoggedInUser()
+    public function testCreateEmptyCartForCustomer()
     {
         $storeId = 345;
         $quoteId = 2311;
@@ -192,18 +206,6 @@ class QuoteManagementTest extends \PHPUnit_Framework_TestCase
 
         $quoteMock = $this->getMock('\Magento\Quote\Model\Quote', [], [], '', false);
 
-        $this->userContextMock->expects($this->once())->method('getUserType')
-            ->willReturn(\Magento\Authorization\Model\UserContextInterface::USER_TYPE_CUSTOMER);
-
-        $this->userContextMock->expects($this->atLeastOnce())->method('getUserId')->willReturn($userId);
-
-        $customerMock = $this->getMock('\Magento\Customer\Api\Data\CustomerInterface', [], [], '', false);
-        $this->customerRepositoryMock
-            ->expects($this->once())
-            ->method('getById')
-            ->with($userId)
-            ->willReturn($customerMock);
-
         $this->quoteRepositoryMock
             ->expects($this->once())
             ->method('getActiveForCustomer')
@@ -212,48 +214,39 @@ class QuoteManagementTest extends \PHPUnit_Framework_TestCase
 
         $this->quoteRepositoryMock->expects($this->once())->method('create')->willReturn($quoteMock);
         $quoteMock->expects($this->any())->method('setStoreId')->with($storeId);
-        $quoteMock->expects($this->any())->method('setCustomer')->with($customerMock);
         $quoteMock->expects($this->any())->method('setCustomerIsGuest')->with(0);
 
-
         $this->quoteRepositoryMock->expects($this->once())->method('save')->with($quoteMock);
         $quoteMock->expects($this->once())->method('getId')->willReturn($quoteId);
 
-        $this->assertEquals($quoteId, $this->model->createEmptyCart($storeId));
+        $this->storeManagerMock->expects($this->once())->method('getStore')->willReturnSelf();
+        $this->storeManagerMock->expects($this->once())->method('getStoreId')->willReturn($storeId);
+
+        $this->assertEquals($quoteId, $this->model->createEmptyCartForCustomer($userId));
     }
 
     /**
      * @expectedException \Magento\Framework\Exception\CouldNotSaveException
      */
-    public function testCreateEmptyCartLoggedInUserException()
+    public function testCreateEmptyCartForCustomerException()
     {
         $storeId = 345;
         $userId = 567;
 
         $quoteMock = $this->getMock('\Magento\Quote\Model\Quote', [], [], '', false);
 
-        $this->userContextMock->expects($this->once())->method('getUserType')
-            ->willReturn(\Magento\Authorization\Model\UserContextInterface::USER_TYPE_CUSTOMER);
-
-        $this->userContextMock->expects($this->atLeastOnce())->method('getUserId')->willReturn($userId);
-
-        $customerMock = $this->getMock('\Magento\Customer\Api\Data\CustomerInterface', [], [], '', false);
-        $this->customerRepositoryMock
-            ->expects($this->once())
-            ->method('getById')
-            ->with($userId)
-            ->willReturn($customerMock);
-
         $this->quoteRepositoryMock
             ->expects($this->once())
             ->method('getActiveForCustomer')
             ->with($userId);
 
         $this->quoteRepositoryMock->expects($this->never())->method('create')->willReturn($quoteMock);
-
         $this->quoteRepositoryMock->expects($this->never())->method('save')->with($quoteMock);
 
-        $this->model->createEmptyCart($storeId);
+        $this->storeManagerMock->expects($this->once())->method('getStore')->willReturnSelf();
+        $this->storeManagerMock->expects($this->once())->method('getStoreId')->willReturn($storeId);
+
+        $this->model->createEmptyCartForCustomer($userId);
     }
 
     /**
diff --git a/app/code/Magento/Quote/Test/Unit/Model/Webapi/ParamOverriderCartIdTest.php b/app/code/Magento/Quote/Test/Unit/Model/Webapi/ParamOverriderCartIdTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..cb83bf6112341df2a9f9ccadcd2824b57ebed0fc
--- /dev/null
+++ b/app/code/Magento/Quote/Test/Unit/Model/Webapi/ParamOverriderCartIdTest.php
@@ -0,0 +1,116 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Quote\Test\Unit\Model\Webapi;
+
+use Magento\Authorization\Model\UserContextInterface;
+use Magento\Framework\Exception\NoSuchEntityException;
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
+use Magento\Quote\Api\CartManagementInterface;
+use Magento\Quote\Model\Webapi\ParamOverriderCartId;
+
+/**
+ * Test for \Magento\Quote\Model\Webapi\ParamOverriderCartId
+ */
+class ParamOverriderCartIdTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var ParamOverriderCartId
+     */
+    private $model;
+
+    /**
+     * @var UserContextInterface
+     */
+    private $userContext;
+
+    public function setUp()
+    {
+        $this->userContext = $this->getMockBuilder('Magento\Authorization\Model\UserContextInterface')
+            ->getMockForAbstractClass();
+        $this->cartManagement = $this->getMockBuilder('Magento\Quote\Api\CartManagementInterface')
+            ->getMockForAbstractClass();
+        $this->model = (new ObjectManager($this))->getObject(
+            'Magento\Quote\Model\Webapi\ParamOverriderCartId',
+            [
+                'userContext' => $this->userContext,
+                'cartManagement' => $this->cartManagement,
+            ]
+        );
+    }
+
+    public function testGetOverriddenValueIsCustomerAndCartExists()
+    {
+        $retValue = 'retValue';
+        $customerId = 1;
+
+        $this->userContext->expects($this->once())
+            ->method('getUserType')
+            ->will($this->returnValue(UserContextInterface::USER_TYPE_CUSTOMER));
+        $this->userContext->expects($this->once())
+            ->method('getUserId')
+            ->will($this->returnValue($customerId));
+
+        $cart = $this->getMockBuilder('Magento\Quote\Api\Data\CartInterface')
+            ->getMockForAbstractClass();
+        $this->cartManagement->expects($this->once())
+            ->method('getCartForCustomer')
+            ->with($customerId)
+            ->will($this->returnValue($cart));
+        $cart->expects($this->once())
+            ->method('getId')
+            ->will($this->returnValue($retValue));
+
+        $this->assertSame($retValue, $this->model->getOverriddenValue());
+    }
+
+    public function testGetOverriddenValueIsCustomerAndCartDoesNotExist()
+    {
+        $customerId = 1;
+
+        $this->userContext->expects($this->once())
+            ->method('getUserType')
+            ->will($this->returnValue(UserContextInterface::USER_TYPE_CUSTOMER));
+        $this->userContext->expects($this->once())
+            ->method('getUserId')
+            ->will($this->returnValue($customerId));
+
+        $this->cartManagement->expects($this->once())
+            ->method('getCartForCustomer')
+            ->with($customerId)
+            ->will($this->throwException(new NoSuchEntityException()));
+
+        $this->assertNull($this->model->getOverriddenValue());
+    }
+
+    public function testGetOverriddenValueIsCustomerAndCartIsNull()
+    {
+        $customerId = 1;
+
+        $this->userContext->expects($this->once())
+            ->method('getUserType')
+            ->will($this->returnValue(UserContextInterface::USER_TYPE_CUSTOMER));
+        $this->userContext->expects($this->once())
+            ->method('getUserId')
+            ->will($this->returnValue($customerId));
+
+        $this->cartManagement->expects($this->once())
+            ->method('getCartForCustomer')
+            ->with($customerId)
+            ->will($this->returnValue(null));
+
+        $this->assertNull($this->model->getOverriddenValue());
+    }
+
+    public function testGetOverriddenValueIsNotCustomer()
+    {
+        $this->userContext->expects($this->once())
+            ->method('getUserType')
+            ->will($this->returnValue(UserContextInterface::USER_TYPE_ADMIN));
+
+        $this->assertNull($this->model->getOverriddenValue());
+    }
+}
diff --git a/app/code/Magento/Quote/composer.json b/app/code/Magento/Quote/composer.json
index c28feaa41dcb842b926fa2925e7fdf88420d4bfc..c4bf2a50e6d26dbf3884fd47edee836d756ea200 100644
--- a/app/code/Magento/Quote/composer.json
+++ b/app/code/Magento/Quote/composer.json
@@ -3,25 +3,25 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-catalog-rule": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-authorization": "0.74.0-beta5",
-        "magento/module-payment": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-shipping": "0.74.0-beta5",
-        "magento/module-sales-sequence": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-tax": "0.74.0-beta5",
-        "magento/module-catalog-inventory": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-catalog-rule": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-authorization": "0.74.0-beta6",
+        "magento/module-payment": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-shipping": "0.74.0-beta6",
+        "magento/module-sales-sequence": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-tax": "0.74.0-beta6",
+        "magento/module-catalog-inventory": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Quote/etc/acl.xml b/app/code/Magento/Quote/etc/acl.xml
new file mode 100644
index 0000000000000000000000000000000000000000..14792adfa7170110bfc1da6dd6c6c6c347686f87
--- /dev/null
+++ b/app/code/Magento/Quote/etc/acl.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Acl/etc/acl.xsd">
+    <acl>
+        <resources>
+            <resource id="Magento_Backend::admin">
+                <resource id="Magento_Cart::cart" title="Carts" sortOrder="40">
+                    <resource id="Magento_Cart::manage" title="Manage carts" sortOrder="10" />
+                </resource>
+            </resource>
+        </resources>
+    </acl>
+</config>
diff --git a/app/code/Magento/Quote/etc/di.xml b/app/code/Magento/Quote/etc/di.xml
index 214e414e3207d0c9a2438f9f68d3ac35456f581e..4eeb1ff2b61a7e865d24c28af7411c599b7c3f05 100644
--- a/app/code/Magento/Quote/etc/di.xml
+++ b/app/code/Magento/Quote/etc/di.xml
@@ -25,4 +25,22 @@
     <preference for="Magento\Quote\Api\Data\TotalsInterface" type="\Magento\Quote\Model\Cart\Totals" />
     <preference for="Magento\Quote\Api\Data\TotalsItemInterface" type="\Magento\Quote\Model\Quote\Cart\Totals\Item" />
     <preference for="Magento\Quote\Api\Data\CurrencyInterface" type="\Magento\Quote\Model\Cart\Currency" />
+
+    <preference for="Magento\Quote\Api\GuestCartManagementInterface" type="Magento\Quote\Model\GuestCart\GuestCartManagement" />
+    <preference for="Magento\Quote\Api\GuestCartRepositoryInterface" type="Magento\Quote\Model\GuestCart\GuestCartRepository" />
+    <preference for="Magento\Quote\Api\GuestCartItemRepositoryInterface" type="Magento\Quote\Model\GuestCart\GuestCartItemRepository" />
+    <preference for="Magento\Quote\Api\GuestCouponManagementInterface" type="Magento\Quote\Model\GuestCart\GuestCouponManagement" />
+    <preference for="Magento\Quote\Api\GuestPaymentMethodManagementInterface" type="Magento\Quote\Model\GuestCart\GuestPaymentMethodManagement" />
+    <preference for="Magento\Quote\Api\GuestCartTotalRepositoryInterface" type="Magento\Quote\Model\GuestCart\GuestCartTotalRepository" />
+    <preference for="Magento\Quote\Api\GuestShippingAddressManagementInterface" type="Magento\Quote\Model\GuestCart\GuestShippingAddressManagement" />
+    <preference for="Magento\Quote\Api\GuestShippingMethodManagementInterface" type="Magento\Quote\Model\GuestCart\GuestShippingMethodManagement" />
+    <preference for="Magento\Quote\Api\GuestBillingAddressManagementInterface" type="Magento\Quote\Model\GuestCart\GuestBillingAddressManagement" />
+
+    <type name="Magento\Webapi\Controller\Rest\ParamsOverrider">
+        <arguments>
+            <argument name="paramOverriders" xsi:type="array">
+                <item name="%cart_id%" xsi:type="object">Magento\Quote\Model\Webapi\ParamOverriderCartId</item>
+            </argument>
+        </arguments>
+    </type>
 </config>
diff --git a/app/code/Magento/Quote/etc/webapi.xml b/app/code/Magento/Quote/etc/webapi.xml
index 412dab6361b1f7ef5e24168ebcb9b1b980a32c48..9540a2d3b88aa9d72923608322fec5834eb2d382 100644
--- a/app/code/Magento/Quote/etc/webapi.xml
+++ b/app/code/Magento/Quote/etc/webapi.xml
@@ -7,34 +7,101 @@
 -->
 <routes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="../../../../../app/code/Magento/Webapi/etc/webapi.xsd">
+
+    <!-- Managing Cart -->
     <route url="/V1/carts/:cartId" method="GET">
         <service class="Magento\Quote\Api\CartRepositoryInterface" method="get"/>
         <resources>
-            <resource ref="anonymous" />
+            <resource ref="Magento_Cart::manage" />
         </resources>
     </route>
     <route url="/V1/carts" method="GET">
         <service class="Magento\Quote\Api\CartRepositoryInterface" method="getList"/>
         <resources>
-            <resource ref="anonymous" />
+            <resource ref="Magento_Cart::manage" />
         </resources>
     </route>
     <route url="/V1/carts/" method="POST">
         <service class="Magento\Quote\Api\CartManagementInterface" method="createEmptyCart"/>
         <resources>
-            <resource ref="anonymous" />
+            <resource ref="Magento_Cart::manage" />
+        </resources>
+    </route>
+    <route url="/V1/customers/:customerId/carts" method="POST">
+        <service class="Magento\Quote\Api\CartManagementInterface" method="createEmptyCartForCustomer"/>
+        <resources>
+            <resource ref="Magento_Cart::manage" />
         </resources>
     </route>
     <route url="/V1/carts/:cartId" method="PUT">
         <service class="Magento\Quote\Api\CartManagementInterface" method="assignCustomer"/>
+        <resources>
+            <resource ref="Magento_Cart::manage" />
+        </resources>
+    </route>
+
+    <!-- Managing my Cart -->
+    <route url="/V1/carts/mine" method="POST">
+        <service class="Magento\Quote\Api\CartManagementInterface" method="createEmptyCartForCustomer"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="customerId" force="true">%customer_id%</parameter>
+        </data>
+    </route>
+    <route url="/V1/carts/mine" method="GET">
+        <service class="Magento\Quote\Api\CartManagementInterface" method="getCartForCustomer"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="customerId" force="true">%customer_id%</parameter>
+        </data>
+    </route>
+    <route url="/V1/carts/mine/order" method="PUT">
+        <service class="Magento\Quote\Api\CartManagementInterface" method="placeOrder"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="cartId" force="true">%cart_id%</parameter>
+        </data>
+    </route>
+
+    <!-- Managing guest carts -->
+
+    <route url="/V1/guest-carts/:cartId" method="GET">
+        <service class="Magento\Quote\Api\GuestCartRepositoryInterface" method="get"/>
+        <resources>
+            <resource ref="anonymous" />
+        </resources>
+    </route>
+        <!-- No getList for anonymous guest cart users -->
+    <route url="/V1/guest-carts" method="POST">
+        <service class="Magento\Quote\Api\GuestCartManagementInterface" method="createEmptyCart"/>
         <resources>
             <resource ref="anonymous" />
         </resources>
     </route>
+    <route url="/V1/guest-carts/:cartId" method="PUT">
+        <service class="Magento\Quote\Api\GuestCartManagementInterface" method="assignCustomer"/>
+        <resources>
+            <resource ref="anonymous" />
+        </resources>
+    </route>
+    <route url="/V1/guest-carts/:cartId/order" method="PUT">
+        <service class="Magento\Quote\Api\GuestCartManagementInterface" method="placeOrder"/>
+        <resources>
+            <resource ref="anonymous" />
+        </resources>
+    </route>
+
+    <!-- Managing Cart Shipment Method -->
     <route url="/V1/carts/:cartId/selected-shipping-method" method="PUT">
         <service class="Magento\Quote\Api\ShippingMethodManagementInterface" method="set"/>
         <resources>
-            <resource ref="anonymous" />
+            <resource ref="Magento_Cart::manage" />
         </resources>
     </route>
     <route url="/V1/carts/:cartId/selected-shipping-method" method="GET">
@@ -45,14 +112,65 @@
     </route>
     <route url="/V1/carts/:cartId/shipping-methods" method="GET">
         <service class="Magento\Quote\Api\ShippingMethodManagementInterface" method="getList"/>
+        <resources>
+            <resource ref="Magento_Cart::manage" />
+        </resources>
+    </route>
+
+    <!-- Managing My Cart Shipment Method -->
+    <route url="/V1/carts/mine/selected-shipping-method" method="PUT">
+        <service class="Magento\Quote\Api\ShippingMethodManagementInterface" method="set"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="cartId" force="true">%cart_id%</parameter>
+        </data>
+    </route>
+    <route url="/V1/carts/mine/selected-shipping-method" method="GET">
+        <service class="Magento\Quote\Api\ShippingMethodManagementInterface" method="get"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="cartId" force="true">%cart_id%</parameter>
+        </data>
+    </route>
+    <route url="/V1/carts/mine/shipping-methods" method="GET">
+        <service class="Magento\Quote\Api\ShippingMethodManagementInterface" method="getList"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="cartId" force="true">%cart_id%</parameter>
+        </data>
+    </route>
+
+    <!-- Managing Guest Cart Shipment Method -->
+    <route url="/V1/guest-carts/:cartId/selected-shipping-method" method="PUT">
+        <service class="Magento\Quote\Api\GuestShippingMethodManagementInterface" method="set"/>
         <resources>
             <resource ref="anonymous" />
         </resources>
     </route>
+    <route url="/V1/guest-carts/:cartId/selected-shipping-method" method="GET">
+        <service class="Magento\Quote\Api\GuestShippingMethodManagementInterface" method="get"/>
+        <resources>
+            <resource ref="anonymous" />
+        </resources>
+    </route>
+    <route url="/V1/guest-carts/:cartId/shipping-methods" method="GET">
+        <service class="Magento\Quote\Api\GuestShippingMethodManagementInterface" method="getList"/>
+        <resources>
+            <resource ref="anonymous" />
+        </resources>
+    </route>
+
+    <!-- Managing Cart Items -->
     <route url="/V1/carts/:cartId/items" method="GET">
         <service class="Magento\Quote\Api\CartItemRepositoryInterface" method="getList"/>
         <resources>
-            <resource ref="anonymous" />
+            <resource ref="Magento_Cart::manage" />
         </resources>
     </route>
     <route url="/V1/carts/items" method="POST">
@@ -64,91 +182,346 @@
     <route url="/V1/carts/items/:itemId" method="PUT">
         <service class="Magento\Quote\Api\CartItemRepositoryInterface" method="save"/>
         <resources>
-            <resource ref="anonymous" />
+            <resource ref="Magento_Cart::manage" />
         </resources>
     </route>
     <route url="/V1/carts/:cartId/items/:itemId" method="DELETE">
         <service class="Magento\Quote\Api\CartItemRepositoryInterface" method="deleteById"/>
+        <resources>
+            <resource ref="Magento_Cart::manage" />
+        </resources>
+    </route>
+
+    <!-- Managing Guest Cart Items -->
+    <route url="/V1/guest-carts/:cartId/items" method="GET">
+        <service class="Magento\Quote\Api\GuestCartItemRepositoryInterface" method="getList"/>
         <resources>
             <resource ref="anonymous" />
         </resources>
     </route>
-    <route url="/V1/carts/:cartId/selected-payment-methods" method="GET">
-        <service class="Magento\Quote\Api\PaymentMethodManagementInterface" method="get"/>
+    <route url="/V1/guest-carts/items" method="POST">
+        <service class="Magento\Quote\Api\GuestCartItemRepositoryInterface" method="save"/>
         <resources>
             <resource ref="anonymous" />
         </resources>
     </route>
-    <route url="/V1/carts/:cartId/selected-payment-methods" method="PUT">
-        <service class="Magento\Quote\Api\PaymentMethodManagementInterface" method="set"/>
+    <route url="/V1/guest-carts/items/:itemId" method="PUT">
+        <service class="Magento\Quote\Api\GuestCartItemRepositoryInterface" method="save"/>
         <resources>
             <resource ref="anonymous" />
         </resources>
     </route>
+    <route url="/V1/guest-carts/:cartId/items/:itemId" method="DELETE">
+        <service class="Magento\Quote\Api\GuestCartItemRepositoryInterface" method="deleteById"/>
+        <resources>
+            <resource ref="anonymous" />
+        </resources>
+    </route>
+
+    <!-- Managing my Cart Items -->
+    <route url="/V1/carts/mine/items" method="GET">
+        <service class="Magento\Quote\Api\CartItemRepositoryInterface" method="getList"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="customerId" force="true">%customer_id%</parameter>
+        </data>
+    </route>
+    <route url="/V1/carts/mine/items" method="POST">
+        <service class="Magento\Quote\Api\CartItemRepositoryInterface" method="save"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="customerId" force="true">%customer_id%</parameter>
+        </data>
+    </route>
+    <route url="/V1/carts/mine/items/:itemId" method="PUT">
+        <service class="Magento\Quote\Api\CartItemRepositoryInterface" method="save"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="customerId" force="true">%customer_id%</parameter>
+        </data>
+    </route>
+    <route url="/V1/carts/mine/items/:itemId" method="DELETE">
+        <service class="Magento\Quote\Api\CartItemRepositoryInterface" method="deleteById"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="customerId" force="true">%customer_id%</parameter>
+        </data>
+    </route>
+
+    <!-- Managing Cart Payment -->
+    <route url="/V1/carts/:cartId/selected-payment-method" method="GET">
+        <service class="Magento\Quote\Api\PaymentMethodManagementInterface" method="get"/>
+        <resources>
+            <resource ref="Magento_Cart::manage" />
+        </resources>
+    </route>
+    <route url="/V1/carts/:cartId/selected-payment-method" method="PUT">
+        <service class="Magento\Quote\Api\PaymentMethodManagementInterface" method="set"/>
+        <resources>
+            <resource ref="Magento_Cart::manage" />
+        </resources>
+    </route>
     <route url="/V1/carts/:cartId/payment-methods" method="GET">
         <service class="Magento\Quote\Api\PaymentMethodManagementInterface" method="getList"/>
+        <resources>
+            <resource ref="Magento_Cart::manage" />
+        </resources>
+    </route>
+
+    <!-- Managing Guest Cart Payment -->
+    <route url="/V1/guest-carts/:cartId/selected-payment-method" method="GET">
+        <service class="Magento\Quote\Api\GuestPaymentMethodManagementInterface" method="get"/>
+        <resources>
+            <resource ref="anonymous" />
+        </resources>
+    </route>
+    <route url="/V1/guest-carts/:cartId/selected-payment-method" method="PUT">
+        <service class="Magento\Quote\Api\GuestPaymentMethodManagementInterface" method="set"/>
+        <resources>
+            <resource ref="anonymous" />
+        </resources>
+    </route>
+    <route url="/V1/guest-carts/:cartId/payment-methods" method="GET">
+        <service class="Magento\Quote\Api\GuestPaymentMethodManagementInterface" method="getList"/>
         <resources>
             <resource ref="anonymous" />
         </resources>
     </route>
+
+    <!-- Managing my Cart Payment -->
+    <route url="/V1/carts/mine/selected-payment-method" method="GET">
+        <service class="Magento\Quote\Api\PaymentMethodManagementInterface" method="get"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="cartId" force="true">%cart_id%</parameter>
+        </data>
+    </route>
+    <route url="/V1/carts/mine/selected-payment-method" method="PUT">
+        <service class="Magento\Quote\Api\PaymentMethodManagementInterface" method="set"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="cartId" force="true">%cart_id%</parameter>
+        </data>
+    </route>
+    <route url="/V1/carts/mine/payment-methods" method="GET">
+        <service class="Magento\Quote\Api\PaymentMethodManagementInterface" method="getList"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="cartId" force="true">%cart_id%</parameter>
+        </data>
+    </route>
+
+    <!-- Managing Cart Billing address -->
     <route url="/V1/carts/:cartId/billing-address" method="GET">
         <service class="Magento\Quote\Api\BillingAddressManagementInterface" method="get"/>
         <resources>
-            <resource ref="anonymous" />
+            <resource ref="Magento_Cart::manage" />
         </resources>
     </route>
     <route url="/V1/carts/:cartId/billing-address" method="POST">
         <service class="Magento\Quote\Api\BillingAddressManagementInterface" method="assign"/>
+        <resources>
+            <resource ref="Magento_Cart::manage" />
+        </resources>
+    </route>
+
+    <!-- Managing Guest Cart Billing address -->
+    <route url="/V1/guest-carts/:cartId/billing-address" method="GET">
+        <service class="Magento\Quote\Api\GuestBillingAddressManagementInterface" method="get"/>
+        <resources>
+            <resource ref="anonymous" />
+        </resources>
+    </route>
+    <route url="/V1/guest-carts/:cartId/billing-address" method="POST">
+        <service class="Magento\Quote\Api\GuestBillingAddressManagementInterface" method="assign"/>
         <resources>
             <resource ref="anonymous" />
         </resources>
     </route>
+
+    <!-- Managing My Cart Billing address -->
+    <route url="/V1/carts/mine/billing-address" method="GET">
+        <service class="Magento\Quote\Api\BillingAddressManagementInterface" method="get"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="cartId" force="true">%cart_id%</parameter>
+        </data>
+    </route>
+    <route url="/V1/carts/mine/billing-address" method="POST">
+        <service class="Magento\Quote\Api\BillingAddressManagementInterface" method="assign"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="cartId" force="true">%cart_id%</parameter>
+        </data>
+    </route>
+
+    <!-- Managing Cart Coupons -->
     <route url="/V1/carts/:cartId/coupons" method="GET">
         <service class="Magento\Quote\Api\CouponManagementInterface" method="get"/>
         <resources>
-            <resource ref="anonymous" />
+            <resource ref="Magento_Cart::manage" />
         </resources>
     </route>
     <route url="/V1/carts/:cartId/coupons/:couponCode" method="PUT">
         <service class="Magento\Quote\Api\CouponManagementInterface" method="set"/>
         <resources>
-            <resource ref="anonymous" />
+            <resource ref="Magento_Cart::manage" />
         </resources>
     </route>
     <route url="/V1/carts/:cartId/coupons" method="DELETE">
         <service class="Magento\Quote\Api\CouponManagementInterface" method="remove"/>
+        <resources>
+            <resource ref="Magento_Cart::manage" />
+        </resources>
+    </route>
+
+    <!-- Managing Guest Cart Coupons -->
+    <route url="/V1/guest-carts/:cartId/coupons" method="GET">
+        <service class="Magento\Quote\Api\GuestCouponManagementInterface" method="get"/>
         <resources>
             <resource ref="anonymous" />
         </resources>
     </route>
+    <route url="/V1/guest-carts/:cartId/coupons/:couponCode" method="PUT">
+        <service class="Magento\Quote\Api\GuestCouponManagementInterface" method="set"/>
+        <resources>
+            <resource ref="anonymous" />
+        </resources>
+    </route>
+    <route url="/V1/guest-carts/:cartId/coupons" method="DELETE">
+        <service class="Magento\Quote\Api\GuestCouponManagementInterface" method="remove"/>
+        <resources>
+            <resource ref="anonymous" />
+        </resources>
+    </route>
+
+    <!-- Managing mine Cart Coupons -->
+    <route url="/V1/carts/mine/coupons" method="GET">
+        <service class="Magento\Quote\Api\CouponManagementInterface" method="get"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="cartId" force="true">%cart_id%</parameter>
+        </data>
+    </route>
+    <route url="/V1/carts/mine/coupons/:couponCode" method="PUT">
+        <service class="Magento\Quote\Api\CouponManagementInterface" method="set"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="cartId" force="true">%cart_id%</parameter>
+        </data>
+    </route>
+    <route url="/V1/carts/mine/coupons" method="DELETE">
+        <service class="Magento\Quote\Api\CouponManagementInterface" method="remove"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="cartId" force="true">%cart_id%</parameter>
+        </data>
+    </route>
+
+    <!-- Managing Cart Shipping address -->
     <route url="/V1/carts/:cartId/shipping-address" method="GET">
         <service class="Magento\Quote\Api\ShippingAddressManagementInterface" method="get"/>
         <resources>
-            <resource ref="anonymous" />
+            <resource ref="Magento_Cart::manage" />
         </resources>
     </route>
     <route url="/V1/carts/:cartId/shipping-address" method="POST">
         <service class="Magento\Quote\Api\ShippingAddressManagementInterface" method="assign"/>
+        <resources>
+            <resource ref="Magento_Cart::manage" />
+        </resources>
+    </route>
+
+    <!-- Managing Guest Cart Shipping address -->
+    <route url="/V1/guest-carts/:cartId/shipping-address" method="GET">
+        <service class="Magento\Quote\Api\GuestShippingAddressManagementInterface" method="get"/>
+        <resources>
+            <resource ref="anonymous" />
+        </resources>
+    </route>
+    <route url="/V1/guest-carts/:cartId/shipping-address" method="POST">
+        <service class="Magento\Quote\Api\GuestShippingAddressManagementInterface" method="assign"/>
         <resources>
             <resource ref="anonymous" />
         </resources>
     </route>
+
+    <!-- Managing My Cart Shipping address -->
+    <route url="/V1/carts/mine/shipping-address" method="GET">
+        <service class="Magento\Quote\Api\ShippingAddressManagementInterface" method="get"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="cartId" force="true">%cart_id%</parameter>
+        </data>
+    </route>
+    <route url="/V1/carts/mine/shipping-address" method="POST">
+        <service class="Magento\Quote\Api\ShippingAddressManagementInterface" method="assign"/>
+        <resources>
+            <resource ref="self" />
+        </resources>
+        <data>
+            <parameter name="cartId" force="true">%cart_id%</parameter>
+        </data>
+    </route>
+
+    <!-- Managing Cart Order -->
     <route url="/V1/carts/:cartId/order" method="PUT">
         <service class="Magento\Quote\Api\CartManagementInterface" method="placeOrder"/>
         <resources>
-            <resource ref="anonymous" />
+            <resource ref="Magento_Cart::manage" />
         </resources>
     </route>
+
+    <!-- Managing Cart Total -->
     <route url="/V1/carts/:cartId/totals" method="GET">
         <service class="Magento\Quote\Api\CartTotalRepositoryInterface" method="get"/>
+        <resources>
+            <resource ref="Magento_Cart::manage" />
+        </resources>
+    </route>
+
+    <!-- Managing Guest Cart Total -->
+    <route url="/V1/guest-carts/:cartId/totals" method="GET">
+        <service class="Magento\Quote\Api\GuestCartTotalRepositoryInterface" method="get"/>
         <resources>
             <resource ref="anonymous" />
         </resources>
     </route>
-    <route url="/V1/customer/:customerId/cart" method="GET">
-        <service class="Magento\Quote\Api\CartManagementInterface" method="getCartForCustomer"/>
+
+    <!-- Managing My Cart Total -->
+    <route url="/V1/carts/mine/totals" method="GET">
+        <service class="Magento\Quote\Api\CartTotalRepositoryInterface" method="get"/>
         <resources>
             <resource ref="self" />
         </resources>
+        <data>
+            <parameter name="cartId" force="true">%cart_id%</parameter>
+        </data>
     </route>
 </routes>
diff --git a/app/code/Magento/Quote/etc/webapi_rest/di.xml b/app/code/Magento/Quote/etc/webapi_rest/di.xml
deleted file mode 100644
index 67774a740401df953616e1fedae05e822e81d32e..0000000000000000000000000000000000000000
--- a/app/code/Magento/Quote/etc/webapi_rest/di.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
--->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
-    <type name="Magento\Quote\Api\CartRepositoryInterface">
-        <plugin name="admin_access" type="\Magento\Quote\Model\Cart\Access\CartRepositoryPlugin" />
-    </type>
-    <type name="Magento\Quote\Api\CartManagementInterface">
-        <plugin name="admin_access" type="\Magento\Quote\Model\Cart\Access\CartManagementPlugin" />
-    </type>
-</config>
diff --git a/app/code/Magento/Quote/etc/webapi_soap/di.xml b/app/code/Magento/Quote/etc/webapi_soap/di.xml
deleted file mode 100644
index 67774a740401df953616e1fedae05e822e81d32e..0000000000000000000000000000000000000000
--- a/app/code/Magento/Quote/etc/webapi_soap/di.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
--->
-<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
-    <type name="Magento\Quote\Api\CartRepositoryInterface">
-        <plugin name="admin_access" type="\Magento\Quote\Model\Cart\Access\CartRepositoryPlugin" />
-    </type>
-    <type name="Magento\Quote\Api\CartManagementInterface">
-        <plugin name="admin_access" type="\Magento\Quote\Model\Cart\Access\CartManagementPlugin" />
-    </type>
-</config>
diff --git a/app/code/Magento/Reports/composer.json b/app/code/Magento/Reports/composer.json
index a163cc907cae09cb530314d2dbb1e857857df0ef..575834f57dafa4f07f7bb71ab6935fde724e4731 100644
--- a/app/code/Magento/Reports/composer.json
+++ b/app/code/Magento/Reports/composer.json
@@ -3,28 +3,28 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-cms": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-widget": "0.74.0-beta5",
-        "magento/module-log": "0.74.0-beta5",
-        "magento/module-wishlist": "0.74.0-beta5",
-        "magento/module-review": "0.74.0-beta5",
-        "magento/module-catalog-inventory": "0.74.0-beta5",
-        "magento/module-tax": "0.74.0-beta5",
-        "magento/module-downloadable": "0.74.0-beta5",
-        "magento/module-sales-rule": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-cms": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-widget": "0.74.0-beta6",
+        "magento/module-log": "0.74.0-beta6",
+        "magento/module-wishlist": "0.74.0-beta6",
+        "magento/module-review": "0.74.0-beta6",
+        "magento/module-catalog-inventory": "0.74.0-beta6",
+        "magento/module-tax": "0.74.0-beta6",
+        "magento/module-downloadable": "0.74.0-beta6",
+        "magento/module-sales-rule": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/RequireJs/composer.json b/app/code/Magento/RequireJs/composer.json
index 04d9a8ad8bd8d2a2e9cbadc47d67d6e3c7c3e99b..968f8b00f4780f6abfd675c4d73350b3d1b10f95 100644
--- a/app/code/Magento/RequireJs/composer.json
+++ b/app/code/Magento/RequireJs/composer.json
@@ -3,11 +3,11 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/framework": "0.74.0-beta5",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Review/composer.json b/app/code/Magento/Review/composer.json
index 9e92c92964afeb3b9f1fcfb78d2562bd321f6b94..35197e270227acf8a04a3e0915411c076af46e0d 100644
--- a/app/code/Magento/Review/composer.json
+++ b/app/code/Magento/Review/composer.json
@@ -3,22 +3,22 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-theme": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-newsletter": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
-        "magento/module-ui": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-theme": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-newsletter": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
+        "magento/module-ui": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "suggest": {
-        "magento/module-cookie": "0.74.0-beta5"
+        "magento/module-cookie": "0.74.0-beta6"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Rss/composer.json b/app/code/Magento/Rss/composer.json
index d0c5619c78bfefd0f2fc524bfe560a87ad0f92f6..cb02900c44ef080abe82adcc3879c5394cf4640c 100644
--- a/app/code/Magento/Rss/composer.json
+++ b/app/code/Magento/Rss/composer.json
@@ -3,14 +3,14 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Rule/composer.json b/app/code/Magento/Rule/composer.json
index 8c6f6962f7f3b5a815395dbac3db9fbb80f03bf2..4e9e4fd3965676ec789fcae5df2f3fc27a1601ca 100644
--- a/app/code/Magento/Rule/composer.json
+++ b/app/code/Magento/Rule/composer.json
@@ -3,16 +3,16 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "lib-libxml": "*",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/Comments/View.php b/app/code/Magento/Sales/Block/Adminhtml/Order/Comments/View.php
index 6dd4434c6e0ef0fc6c47735fa50d84c312ee3230..ea065d8eea7a6dc695f3c1d2c023e39af251f1a6 100644
--- a/app/code/Magento/Sales/Block/Adminhtml/Order/Comments/View.php
+++ b/app/code/Magento/Sales/Block/Adminhtml/Order/Comments/View.php
@@ -60,7 +60,7 @@ class View extends \Magento\Backend\Block\Template
         $this->addChild(
             'submit_button',
             'Magento\Backend\Block\Widget\Button',
-            ['id' => 'submit_comment_button', 'label' => __('Submit Comment'), 'class' => 'save']
+            ['id' => 'submit_comment_button', 'label' => __('Submit Comment'), 'class' => 'action-secondary save']
         );
         return parent::_prepareLayout();
     }
diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Store.php b/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Store.php
index 908dabf48c15cc5f7e4cdaec3eec7c08431fd7a3..cf83b3bc125c7ffd8cb391fd3ea55b687629ab5a 100644
--- a/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Store.php
+++ b/app/code/Magento/Sales/Block/Adminhtml/Order/Create/Store.php
@@ -30,6 +30,6 @@ class Store extends \Magento\Sales\Block\Adminhtml\Order\Create\AbstractCreate
      */
     public function getHeaderText()
     {
-        return __('Please select a store.');
+        return __('Please select a store');
     }
 }
diff --git a/app/code/Magento/Sales/Block/Adminhtml/Order/View/History.php b/app/code/Magento/Sales/Block/Adminhtml/Order/View/History.php
index ad82046b66ed50ea6914ed6775cb90e8b482661e..d0284f3175fdc79c07fd9938f5634fa76cab7ef9 100644
--- a/app/code/Magento/Sales/Block/Adminhtml/Order/View/History.php
+++ b/app/code/Magento/Sales/Block/Adminhtml/Order/View/History.php
@@ -54,7 +54,7 @@ class History extends \Magento\Backend\Block\Template
         $button = $this->getLayout()->createBlock(
             'Magento\Backend\Block\Widget\Button'
         )->setData(
-            ['label' => __('Submit Comment'), 'class' => 'save', 'onclick' => $onclick]
+            ['label' => __('Submit Comment'), 'class' => 'action-save action-secondary', 'onclick' => $onclick]
         );
         $this->setChild('submit_button', $button);
         return parent::_prepareLayout();
diff --git a/app/code/Magento/Sales/composer.json b/app/code/Magento/Sales/composer.json
index 42218c9ee39e9e58973e017fa00d2f89ad17e6e1..482c2576832b49f12c0e42710c10efb31c419643 100644
--- a/app/code/Magento/Sales/composer.json
+++ b/app/code/Magento/Sales/composer.json
@@ -3,35 +3,35 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-authorization": "0.74.0-beta5",
-        "magento/module-payment": "0.74.0-beta5",
-        "magento/module-checkout": "0.74.0-beta5",
-        "magento/module-theme": "0.74.0-beta5",
-        "magento/module-sales-rule": "0.74.0-beta5",
-        "magento/module-sales-sequence": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-widget": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-tax": "0.74.0-beta5",
-        "magento/module-gift-message": "0.74.0-beta5",
-        "magento/module-reports": "0.74.0-beta5",
-        "magento/module-catalog-inventory": "0.74.0-beta5",
-        "magento/module-wishlist": "0.74.0-beta5",
-        "magento/module-email": "0.74.0-beta5",
-        "magento/module-shipping": "0.74.0-beta5",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-media-storage": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
-        "magento/module-ui": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-authorization": "0.74.0-beta6",
+        "magento/module-payment": "0.74.0-beta6",
+        "magento/module-checkout": "0.74.0-beta6",
+        "magento/module-theme": "0.74.0-beta6",
+        "magento/module-sales-rule": "0.74.0-beta6",
+        "magento/module-sales-sequence": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-widget": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-tax": "0.74.0-beta6",
+        "magento/module-gift-message": "0.74.0-beta6",
+        "magento/module-reports": "0.74.0-beta6",
+        "magento/module-catalog-inventory": "0.74.0-beta6",
+        "magento/module-wishlist": "0.74.0-beta6",
+        "magento/module-email": "0.74.0-beta6",
+        "magento/module-shipping": "0.74.0-beta6",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-media-storage": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
+        "magento/module-ui": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_new.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_new.xml
index 031d2ada6a1493e0fba975ea588642a8f3a6fe8c..a4ee30150b13a4236deca813f902e2be14da5d38 100644
--- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_new.xml
+++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_new.xml
@@ -1,33 +1,35 @@
-<?xml version="1.0"?>
-<!--
-/**
- * Copyright © 2015 Magento. All rights reserved.
- * See COPYING.txt for license details.
- */
--->
-<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
-    <update handle="sales_order_item_price"/>
-    <body>
-        <referenceContainer name="content">
-            <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\Create" name="sales_creditmemo_create">
-                <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\Create\Form" name="form" template="order/creditmemo/create/form.phtml">
-                    <block class="Magento\Sales\Block\Adminhtml\Order\View\Info" name="order_info" template="order/view/info.phtml"/>
-                    <block class="Magento\Sales\Block\Adminhtml\Order\Payment" name="order_payment"/>
-                    <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\Create\Items" name="order_items" template="order/creditmemo/create/items.phtml">
-                        <block class="Magento\Sales\Block\Adminhtml\Items\Renderer\DefaultRenderer" as="default" template="order/creditmemo/create/items/renderer/default.phtml"/>
-                        <block class="Magento\Sales\Block\Adminhtml\Items\Column\Qty" name="column_qty" template="items/column/qty.phtml" group="column"/>
-                        <block class="Magento\Sales\Block\Adminhtml\Items\Column\Name" name="column_name" template="items/column/name.phtml" group="column"/>
-                        <block class="Magento\Framework\View\Element\Text\ListText" name="order_item_extra_info"/>
-                        <block class="Magento\Sales\Block\Adminhtml\Order\Totalbar" name="order_totalbar" template="order/totalbar.phtml"/>
-                        <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\Totals" name="creditmemo_totals" template="order/totals.phtml">
-                            <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\Create\Adjustments" name="adjustments" template="order/creditmemo/create/totals/adjustments.phtml"/>
-                            <block class="Magento\Sales\Block\Adminhtml\Order\Totals\Tax" name="tax" template="order/totals/tax.phtml"/>
-                        </block>
-                        <container name="submit_before" label="Submit Before"/>
-                        <container name="submit_after" label="Submit After"/>
-                    </block>
-                </block>
-            </block>
-        </referenceContainer>
-    </body>
-</page>
+<?xml version="1.0"?>
+<!--
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+-->
+<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
+    <update handle="sales_order_item_price"/>
+    <body>
+        <referenceContainer name="admin.scope.col.wrap" htmlClass="admin__old" /> <!-- ToDo UI: remove this wrapper with old styles removal. The class name "admin__old" is for tests only, we shouldn't use it in any way -->
+
+        <referenceContainer name="content">
+            <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\Create" name="sales_creditmemo_create">
+                <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\Create\Form" name="form" template="order/creditmemo/create/form.phtml">
+                    <block class="Magento\Sales\Block\Adminhtml\Order\View\Info" name="order_info" template="order/view/info.phtml"/>
+                    <block class="Magento\Sales\Block\Adminhtml\Order\Payment" name="order_payment"/>
+                    <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\Create\Items" name="order_items" template="order/creditmemo/create/items.phtml">
+                        <block class="Magento\Sales\Block\Adminhtml\Items\Renderer\DefaultRenderer" as="default" template="order/creditmemo/create/items/renderer/default.phtml"/>
+                        <block class="Magento\Sales\Block\Adminhtml\Items\Column\Qty" name="column_qty" template="items/column/qty.phtml" group="column"/>
+                        <block class="Magento\Sales\Block\Adminhtml\Items\Column\Name" name="column_name" template="items/column/name.phtml" group="column"/>
+                        <block class="Magento\Framework\View\Element\Text\ListText" name="order_item_extra_info"/>
+                        <block class="Magento\Sales\Block\Adminhtml\Order\Totalbar" name="order_totalbar" template="order/totalbar.phtml"/>
+                        <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\Totals" name="creditmemo_totals" template="order/totals.phtml">
+                            <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\Create\Adjustments" name="adjustments" template="order/creditmemo/create/totals/adjustments.phtml"/>
+                            <block class="Magento\Sales\Block\Adminhtml\Order\Totals\Tax" name="tax" template="order/totals/tax.phtml"/>
+                        </block>
+                        <container name="submit_before" label="Submit Before"/>
+                        <container name="submit_after" label="Submit After"/>
+                    </block>
+                </block>
+            </block>
+        </referenceContainer>
+    </body>
+</page>
diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_view.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_view.xml
index 916950e7e358e286ebf34bbc762fd64024dd2074..7208039683c8dbf06f7a60bfd8db9e311aa8cfed 100644
--- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_view.xml
+++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_creditmemo_view.xml
@@ -8,6 +8,7 @@
 <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
     <update handle="sales_creditmemo_item_price"/>
     <body>
+        <referenceContainer name="admin.scope.col.wrap" htmlClass="admin__old" /> <!-- ToDo UI: remove this wrapper with old styles removal. The class name "admin__old" is for tests only, we shouldn't use it in any way -->
         <referenceContainer name="content">
             <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\View" name="sales_creditmemo_view">
                 <block class="Magento\Sales\Block\Adminhtml\Order\Creditmemo\View\Form" name="form" template="order/creditmemo/view/form.phtml">
diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_new.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_new.xml
index 0f922d55922bd65f188dfa6840fa8db1c78915e6..f31b37ea47d0b5cbe64c8f688ba5501e1f433e5f 100644
--- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_new.xml
+++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_new.xml
@@ -8,6 +8,8 @@
 <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
     <update handle="sales_order_item_price"/>
     <body>
+        <referenceContainer name="admin.scope.col.wrap" htmlClass="admin__old" /> <!-- ToDo UI: remove this wrapper with old styles removal. The class name "admin__old" is for tests only, we shouldn't use it in any way -->
+
         <referenceContainer name="content">
             <block class="Magento\Sales\Block\Adminhtml\Order\Invoice\Create" name="sales_invoice_create">
                 <block class="Magento\Sales\Block\Adminhtml\Order\Invoice\Create\Form" name="form" template="order/invoice/create/form.phtml">
diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_view.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_view.xml
index 93552d0ec38418451df0cd93d847c94a81cc1b92..e22eaae5cd8f4092cd672c407b0c521c6b129b3c 100644
--- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_view.xml
+++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_invoice_view.xml
@@ -8,6 +8,8 @@
 <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
     <update handle="sales_invoice_item_price"/>
     <body>
+        <referenceContainer name="admin.scope.col.wrap" htmlClass="admin__old" /> <!-- ToDo UI: remove this wrapper with old styles removal. The class name "admin__old" is for tests only, we shouldn't use it in any way -->
+
         <referenceContainer name="content">
             <block class="Magento\Sales\Block\Adminhtml\Order\Invoice\View" name="sales_invoice_view">
                 <block class="Magento\Sales\Block\Adminhtml\Order\Invoice\View\Form" name="form" template="order/invoice/view/form.phtml">
diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_transactions_grid_block.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_transactions_grid_block.xml
index cbc91390fda6cd951fa9ebf480a3cd1b40e3c2b2..36e653b728b26412248d6286a1a0c936b4e59918 100644
--- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_transactions_grid_block.xml
+++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_transactions_grid_block.xml
@@ -8,6 +8,8 @@
 <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
     <update handle="sales_transactions_grid_block"/>
     <body>
+        <referenceContainer name="admin.scope.col.wrap" htmlClass="admin__old" /> <!-- ToDo UI: remove this wrapper with old styles removal. The class name "admin__old" is for tests only, we shouldn't use it in any way -->
+        
         <referenceBlock name="sales.transactions.grid">
             <arguments>
                 <argument name="id" xsi:type="string">order_transactions</argument>
diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_view.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_view.xml
index ed5a0578d7f292c37160a53a417aa5136dce7edb..19260c6cf0849dd9c89287a9291eed94c459d08a 100644
--- a/app/code/Magento/Sales/view/adminhtml/layout/sales_order_view.xml
+++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_order_view.xml
@@ -15,6 +15,8 @@
     </head>
     <update handle="sales_order_item_price"/>
     <body>
+        <referenceContainer name="admin.scope.col.wrap" htmlClass="admin__old" /> <!-- ToDo UI: remove this wrapper with old styles removal. The class name "admin__old" is for tests only, we shouldn't use it in any way -->
+
         <referenceContainer name="content">
             <block class="Magento\Sales\Block\Adminhtml\Order\View" name="sales_order_edit"/>
         </referenceContainer>
diff --git a/app/code/Magento/Sales/view/adminhtml/layout/sales_transactions_view.xml b/app/code/Magento/Sales/view/adminhtml/layout/sales_transactions_view.xml
index aed08edb19e608d84b4a2397972d694dd6473754..0f7144004b45285aa108bfc37999b6596e48240f 100644
--- a/app/code/Magento/Sales/view/adminhtml/layout/sales_transactions_view.xml
+++ b/app/code/Magento/Sales/view/adminhtml/layout/sales_transactions_view.xml
@@ -8,6 +8,8 @@
 <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
     <update handle="sales_transaction_child_block"/>
     <body>
+        <referenceContainer name="admin.scope.col.wrap" htmlClass="admin__old" /> <!-- ToDo UI: remove this wrapper with old styles removal. The class name "admin__old" is for tests only, we shouldn't use it in any way -->
+
         <referenceContainer name="content">
             <block class="Magento\Sales\Block\Adminhtml\Transactions\Detail" name="sales_transactions.detail" template="transactions/detail.phtml">
                 <block class="Magento\Sales\Block\Adminhtml\Transactions\Detail\Grid" name="sales_transactions.detail.grid" as="detail_grid"/>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/items/column/name.phtml b/app/code/Magento/Sales/view/adminhtml/templates/items/column/name.phtml
index 410e44f5977e65522e61d063142f0db15a51390e..d8e8c8eda42623412337857b7d75163a62aa8027 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/items/column/name.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/items/column/name.phtml
@@ -14,33 +14,38 @@
 ?>
 
 <?php if ($_item = $block->getItem()): ?>
-    <div id="order_item_<?php echo $_item->getId() ?>_title" class="product-title"><?php echo $block->escapeHtml($_item->getName()) ?></div>
-    <strong><?php echo __('SKU') ?>:</strong> <?php echo implode('<br />', $this->helper('Magento\Catalog\Helper\Data')->splitSku($block->escapeHtml($block->getSku()))); ?>
-    <?php if ($block->getOrderOptions()): ?>
-        <dl class="item-options">
-        <?php foreach ($block->getOrderOptions() as $_option): ?>
-            <dt><?php echo $_option['label'] ?></dt>
-            <dd>
-            <?php if (isset($_option['custom_view']) && $_option['custom_view']): ?>
-                <?php echo $block->getCustomizedOptionValue($_option); ?>
-            <?php else: ?>
-                <?php $_option = $block->getFormattedOption($_option['value']); ?>
-                <?php echo $_option['value']; ?><?php if (isset($_option['remainder']) && $_option['remainder']): ?><span id="<?php echo $_dots = 'dots' . uniqid()?>"> ...</span><span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_option['remainder'] ?></span>
-                    <script>
-require(['prototype'], function(){
+    <div id="order_item_<?php echo $_item->getId() ?>_title"
+         class="product-title">
+        <?php echo $block->escapeHtml($_item->getName()) ?>
+    </div>
 
-    $('<?php echo $_id ?>').hide();
-    $('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
-    $('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_dots?>').hide();});
-    $('<?php echo $_id ?>').up().observe('mouseout',  function(){$('<?php echo $_id ?>').hide();});
-    $('<?php echo $_id ?>').up().observe('mouseout',  function(){$('<?php echo $_dots ?>').show();});
+    <div class="product-sku-block">
+        <span><?php echo __('SKU') ?>:</span> <?php echo implode('<br />', $this->helper('Magento\Catalog\Helper\Data')->splitSku($block->escapeHtml($block->getSku()))); ?>
+    </div>
 
-});
-</script>
-                <?php endif; ?>
-            <?php endif; ?>
-            </dd>
-        <?php endforeach; ?>
+    <?php if ($block->getOrderOptions()): ?>
+        <dl class="item-options">
+            <?php foreach ($block->getOrderOptions() as $_option): ?>
+                <dt><?php echo $_option['label'] ?>:</dt>
+                <dd>
+                    <?php if (isset($_option['custom_view']) && $_option['custom_view']): ?>
+                        <?php echo $block->getCustomizedOptionValue($_option); ?>
+                    <?php else: ?>
+                        <?php $_option = $block->getFormattedOption($_option['value']); ?>
+                        <?php echo $_option['value']; ?><?php if (isset($_option['remainder']) && $_option['remainder']): ?><span id="<?php echo $_dots = 'dots' . uniqid()?>"> ...</span><span id="<?php echo $_id = 'id' . uniqid()?>"><?php echo $_option['remainder'] ?></span>
+                            <script>
+                                require(['prototype'], function() {
+                                    $('<?php echo $_id ?>').hide();
+                                    $('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_id ?>').show();});
+                                    $('<?php echo $_id ?>').up().observe('mouseover', function(){$('<?php echo $_dots?>').hide();});
+                                    $('<?php echo $_id ?>').up().observe('mouseout',  function(){$('<?php echo $_id ?>').hide();});
+                                    $('<?php echo $_id ?>').up().observe('mouseout',  function(){$('<?php echo $_dots ?>').show();});
+                                });
+                            </script>
+                        <?php endif; ?>
+                    <?php endif; ?>
+                </dd>
+            <?php endforeach; ?>
         </dl>
     <?php endif; ?>
     <?php echo $block->escapeHtml($_item->getDescription()) ?>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/items/column/qty.phtml b/app/code/Magento/Sales/view/adminhtml/templates/items/column/qty.phtml
index 91e20c1f3658451d6d43cfc54f6b657c69526e2d..46b39dc3a78af52bbe12142c47d4876c312e982a 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/items/column/qty.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/items/column/qty.phtml
@@ -8,34 +8,39 @@
 
 ?>
 <?php if ($_item = $block->getItem()): ?>
-<table cellspacing="0" class="qty-table">
+<table class="data-table qty-table">
     <tr>
-        <td><?php echo __('Ordered') ?></td>
-        <td><strong><?php echo $_item->getQtyOrdered()*1 ?></strong></td>
+        <th><?php echo __('Ordered') ?></th>
+        <td><?php echo $_item->getQtyOrdered()*1 ?></td>
     </tr>
+
     <?php if ((float) $_item->getQtyInvoiced()): ?>
-    <tr>
-        <td><?php echo __('Invoiced') ?></td>
-        <td><strong><?php echo $_item->getQtyInvoiced()*1 ?></strong></td>
-    </tr>
+        <tr>
+            <th><?php echo __('Invoiced') ?></th>
+            <td><?php echo $_item->getQtyInvoiced()*1 ?></td>
+        </tr>
     <?php endif; ?>
+
     <?php if ((float) $_item->getQtyShipped()): ?>
-    <tr>
-        <td><?php echo __('Shipped') ?></td>
-        <td><strong><?php echo $_item->getQtyShipped()*1 ?></strong></td>
-    </tr>
+        <tr>
+            <th><?php echo __('Shipped') ?></th>
+            <td><?php echo $_item->getQtyShipped()*1 ?></td>
+        </tr>
     <?php endif; ?>
+
     <?php if ((float) $_item->getQtyRefunded()): ?>
-    <tr>
-        <td><?php echo __('Refunded') ?></td>
-        <td><strong><?php echo $_item->getQtyRefunded()*1 ?></strong></td>
-    </tr>
+        <tr>
+            <th><?php echo __('Refunded') ?></th>
+            <td><?php echo $_item->getQtyRefunded()*1 ?></td>
+        </tr>
     <?php endif; ?>
+
     <?php if ((float) $_item->getQtyCanceled()): ?>
-    <tr>
-        <td><?php echo __('Canceled') ?></td>
-        <td><strong><?php echo $_item->getQtyCanceled()*1 ?></strong></td>
-    </tr>
+        <tr>
+            <th><?php echo __('Canceled') ?></th>
+            <td><?php echo $_item->getQtyCanceled()*1 ?></td>
+        </tr>
     <?php endif; ?>
+
 </table>
 <?php endif; ?>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/comments/view.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/comments/view.phtml
index cbe3b6f40e5b08784d20e03f978f0940d9ee0ddc..096b7098612358a568c5d5feba5022f428dfa7db 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/comments/view.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/comments/view.phtml
@@ -8,38 +8,62 @@
 
 ?>
 <?php if ($_entity = $block->getEntity()): ?>
-<div id="comments_block">
-    <div class="field-row">
-        <label class="normal" for="history_comment"><?php echo __('Comment Text') ?></label>
-        <textarea name="comment[comment]" rows="3" cols="5" id="history_comment"></textarea>
-    </div>
-    <div class="clearfix">
-        <div class="actions">
-            <?php echo $block->getChildHtml('submit_button') ?>
+<div id="comments_block" class="edit-order-comments">
+    <div class="order-history-block">
+        <div class="admin__field field-row">
+            <label class="admin__field-label"
+                   for="history_comment"><?php echo __('Comment Text') ?></label>
+            <textarea name="comment[comment]"
+                      class="admin__control-textarea"
+                      rows="3"
+                      cols="5"
+                      id="history_comment"></textarea>
         </div>
-        <div class="order-history-comments-options">
-            <?php if ($block->canSendCommentEmail()): ?>
-                <input name="comment[is_customer_notified]" type="checkbox" id="history_notify" value="1" /><label class="normal" for="history_notify"><?php echo __('Notify Customer by Email') ?></label><br />
-            <?php endif; ?>
-            <input name="comment[is_visible_on_front]" type="checkbox" id="history_visible" value="1" /><label class="normal" for="history_visible"> <?php echo __('Visible on Frontend') ?></label>
+        <div class="admin__field">
+            <div class="order-history-comments-options">
+                <?php if ($block->canSendCommentEmail()): ?>
+                    <div class="admin__field admin__field-option">
+                        <input name="comment[is_customer_notified]"
+                               type="checkbox"
+                               class="admin__control-checkbox"
+                               id="history_notify"
+                               value="1" />
+                        <label class="admin__field-label"
+                               for="history_notify"><?php echo __('Notify Customer by Email') ?></label>
+                    </div>
+                <?php endif; ?>
+                <div class="admin__field admin__field-option">
+                    <input name="comment[is_visible_on_front]"
+                           type="checkbox"
+                           id="history_visible"
+                           class="admin__control-checkbox"
+                           value="1" />
+                    <label class="admin__field-label"
+                           for="history_visible"> <?php echo __('Visible on Frontend') ?></label>
+                </div>
+            </div>
+            <div class="order-history-comments-actions">
+                <?php echo $block->getChildHtml('submit_button') ?>
+            </div>
         </div>
     </div>
+
     <ul class="note-list">
-    <?php foreach ($_entity->getCommentsCollection(true) as $_comment): ?>
-        <li>
-            <span class="note-list-date"><?php echo $block->formatDate($_comment->getCreatedAtDate(), \IntlDateFormatter::MEDIUM) ?></span>
-            <span class="note-list-time"><?php echo $block->formatTime($_comment->getCreatedAtDate(), \IntlDateFormatter::MEDIUM) ?></span>
-            <span class="note-list-customer">
-                <?php echo __('Customer') ?>
-                <?php if ($_comment->getIsCustomerNotified()): ?>
-                    <span class="note-list-customer-notified"><?php echo __('Notified') ?></span>
-                <?php else: ?>
-                    <span class="note-list-customer-not-notified"><?php echo __('Not Notified') ?></span>
-                <?php endif; ?>
-            </span>
-            <div class="note-list-comment"><?php echo $block->escapeHtml($_comment->getComment(), ['b', 'br', 'strong', 'i', 'u']) ?></div>
-        </li>
-    <?php endforeach; ?>
+        <?php foreach ($_entity->getCommentsCollection(true) as $_comment): ?>
+            <li>
+                <span class="note-list-date"><?php echo $block->formatDate($_comment->getCreatedAtDate(), \IntlDateFormatter::MEDIUM) ?></span>
+                <span class="note-list-time"><?php echo $block->formatTime($_comment->getCreatedAtDate(), \IntlDateFormatter::MEDIUM) ?></span>
+                <span class="note-list-customer">
+                    <?php echo __('Customer') ?>
+                    <?php if ($_comment->getIsCustomerNotified()): ?>
+                        <span class="note-list-customer-notified"><?php echo __('Notified') ?></span>
+                    <?php else: ?>
+                        <span class="note-list-customer-not-notified"><?php echo __('Not Notified') ?></span>
+                    <?php endif; ?>
+                </span>
+                <div class="note-list-comment"><?php echo $block->escapeHtml($_comment->getComment(), ['b', 'br', 'strong', 'i', 'u']) ?></div>
+            </li>
+        <?php endforeach; ?>
     </ul>
 </div>
 <script>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/create/abstract.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/create/abstract.phtml
index 956ca1eedf569a14dca9e099c7ca15f98e6e6eb2..4364258410ba46e1083242b1ac611ba6f053734b 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/create/abstract.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/create/abstract.phtml
@@ -8,8 +8,8 @@
 
 ?>
 
-<div class="admin__fieldset-wrapper-title">
-    <strong><?php echo $block->getHeaderText() ?></strong>
+<div class="admin__page-section-title">
+    <span class="title"><?php echo $block->getHeaderText() ?></span>
     <?php if($block->getButtonsHtml()): ?>
         <div class="actions"><?php echo $block->getButtonsHtml() ?></div>
     <?php endif; ?>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/create/data.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/create/data.phtml
index d166ab4edac32983b6d5f784ede2228b21e362c1..7ba8e8a79394a26020ad406ff7b7ca287cb53b4a 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/create/data.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/create/data.phtml
@@ -14,82 +14,76 @@
     });
 </script>
     <div class="order-details<?php if ($block->getCustomerId()): ?> order-details-existing-customer<?php endif; ?>">
-        <div class="order-details-inner">
-            <div id="order-additional_area" style="display: none" class="admin__fieldset-wrapper order-additional-area">
-                <?php echo $block->getChildHtml('additional_area') ?>
-            </div>
 
-            <div id="order-search" style="display: none" class="admin__fieldset-wrapper order-search-items">
-                <?php echo $block->getChildHtml('search') ?>
-            </div>
+        <div id="order-additional_area" style="display: none" class="admin__page-section order-additional-area">
+            <?php echo $block->getChildHtml('additional_area') ?>
+        </div>
 
-            <div id="order-items" class="admin__fieldset-wrapper order-items" data-mage-init='{"loader": {}}'>
-                <?php echo $block->getChildHtml('items') ?>
-            </div>
+        <div id="order-search" style="display: none" class="admin__page-section order-search-items">
+            <?php echo $block->getChildHtml('search') ?>
+        </div>
 
-            <div id="order-errors" class="order-errors"><?php echo $block->getChildHtml('errors') ?></div>
+        <section id="order-items" class="admin__page-section order-items" data-mage-init='{"loader": {}}'>
+            <?php echo $block->getChildHtml('items') ?>
+        </section>
 
-            <div id="order-form_account" class="admin__fieldset-wrapper order-account-information">
-                <?php echo $block->getChildHtml('form_account') ?>
-            </div>
+        <div id="order-errors" class="order-errors"><?php echo $block->getChildHtml('errors') ?></div>
 
-            <div id="order-addresses" class="admin__fieldset-wrapper order-addresses">
-                <div class="admin__fieldset-wrapper-title">
-                    <strong class="title"><?php echo __('Address Information') ?></strong>
+        <section id="order-form_account" class="admin__page-section order-account-information">
+            <?php echo $block->getChildHtml('form_account') ?>
+        </section>
+
+        <section id="order-addresses" class="admin__page-section order-addresses">
+            <div class="admin__page-section-title">
+                <span class="title"><?php echo __('Address Information') ?></span>
+            </div>
+            <div class="admin__page-section-content">
+                <div id="order-billing_address" class="admin__page-section-item order-billing-address">
+                    <?php echo $block->getChildHtml('billing_address') ?>
                 </div>
-                <div class="admin__fieldset-wrapper-content">
-                    <div id="order-billing_address" class="order-billing-address">
-                        <?php echo $block->getChildHtml('billing_address') ?>
-                    </div>
-                    <div id="order-shipping_address" class="order-shipping-address">
-                        <?php echo $block->getChildHtml('shipping_address') ?>
-                    </div>
+                <div id="order-shipping_address" class="admin__page-section-item order-shipping-address">
+                    <?php echo $block->getChildHtml('shipping_address') ?>
                 </div>
             </div>
+        </section>
 
-            <div id="order-methods" class="admin__fieldset-wrapper order-methods">
-                <div class="admin__fieldset-wrapper-title">
-                    <strong class="title"><?php echo __('Payment & Shipping Information') ?></strong>
+        <section id="order-methods" class="admin__page-section order-methods">
+            <div class="admin__page-section-title">
+                <span class="title"><?php echo __('Payment &amp; Shipping Information') ?></span>
+            </div>
+            <div class="admin__page-section-content">
+                <div id="order-billing_method" class="admin__page-section-item order-billing-method">
+                    <?php echo $block->getChildHtml('billing_method') ?>
                 </div>
-                <div class="admin__fieldset-wrapper-content">
-                    <div id="order-billing_method" class="order-billing-method">
-                        <?php echo $block->getChildHtml('billing_method') ?>
-                    </div>
-                    <div id="order-shipping_method" class="order-shipping-method">
-                        <?php echo $block->getChildHtml('shipping_method') ?>
-                    </div>
+                <div id="order-shipping_method" class="admin__page-section-item order-shipping-method">
+                    <?php echo $block->getChildHtml('shipping_method') ?>
                 </div>
             </div>
+        </section>
 
-            <?php if ($block->getChildBlock('card_validation')): ?>
-                <div id="order-card_validation" class="admin__fieldset-wrapper order-card-validation">
-                    <?php echo $block->getChildHtml('card_validation') ?>
-                </div>
-            <?php endif; ?>
+        <?php if ($block->getChildBlock('card_validation')): ?>
+        <section id="order-card_validation" class="admin__page-section order-card-validation">
+            <?php echo $block->getChildHtml('card_validation') ?>
+        </section>
+        <?php endif; ?>
 
-            <?php echo $block->getChildHtml('gift_options') ?>
+        <?php echo $block->getChildHtml('gift_options') ?>
 
-            <div class="admin__fieldset-wrapper order-summary">
-                <div class="admin__fieldset-wrapper-title">
-                    <strong class="title"><?php echo __('Order Total') ?></strong>
-                </div>
-                <div class="admin__fieldset-wrapper-content">
-                    <div class="order-history">
-                        <fieldset class="admin__fieldset" id="order-comment">
-                            <legend class="admin__legend"><span><?php echo __('Order History') ?></span></legend>
-                            <br>
-                            <?php echo $block->getChildHtml('comment') ?>
-                        </fieldset>
-                    </div>
-                    <div class="order-totals">
-                        <fieldset id="order-totals" class="order-totals-content admin__fieldset">
-                            <?php echo $block->getChildHtml('totals') ?>
-                        </fieldset>
-                    </div>
-                </div>
+        <section class="admin__page-section order-summary">
+            <div class="admin__page-section-title">
+                <span class="title"><?php echo __('Order Total') ?></span>
             </div>
-
-        </div>
+            <div class="admin__page-section-content">
+                <fieldset class="admin__fieldset order-history" id="order-comment">
+                    <legend class="admin__legend"><span><?php echo __('Order History') ?></span></legend>
+                    <br>
+                    <?php echo $block->getChildHtml('comment') ?>
+                </fieldset>
+                <fieldset id="order-totals" class="admin__fieldset order-totals">
+                    <?php echo $block->getChildHtml('totals') ?>
+                </fieldset>
+            </div>
+        </section>
     </div>
 
     <?php if ($block->getCustomerId()): ?>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/create/form/account.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/create/form/account.phtml
index 23f4f8379ceaf37ae403c6e73ac3ea205f88398e..8fa45617a3a04a5de8cd988582c19efbf43dceda 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/create/form/account.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/create/form/account.phtml
@@ -5,12 +5,11 @@
  */
  ?>
 
-<div class="admin__fieldset-wrapper-title <?php echo $block->getHeaderCssClass() ?>">
+<div class="admin__page-section-title <?php echo $block->getHeaderCssClass() ?>">
     <span class="title"><?php echo $block->getHeaderText() ?></span>
     <div class="actions"></div>
 </div>
-
-<div id="customer_account_fieds" class="admin__fieldset-wrapper-content">
+<div id="customer_account_fieds" class="admin__page-section-content">
     <?php echo $block->getForm()->getHtml() ?>
 </div>
 
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/create/items.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/create/items.phtml
index e2b9bd096a03c7f5f6c414b8cc112977f852bc1f..bb7e4b3597c6ee7c9162666bc1dbf411155a7ee7 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/create/items.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/create/items.phtml
@@ -8,7 +8,7 @@
 
 ?>
 
-<div class="admin__fieldset-wrapper-title">
+<div class="admin__page-section-title">
     <strong class="title"><?php echo $block->getHeaderText() ?></strong>
     <div class="actions">
         <?php echo $block->getButtonsHtml() ?>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/create/items/grid.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/create/items/grid.phtml
index d6c4a2dd5a591b2325af448049f8087cb8653bd3..aaf605a22ce9a659942499c8081832f5b26e92d1 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/create/items/grid.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/create/items/grid.phtml
@@ -16,7 +16,7 @@
 <?php $_items = $block->getItems() ?>
 <?php if (empty($_items)): ?>
     <div class="grid" id="order-items_grid">
-        <table class="data-table table-info order-tables">
+        <table class="data-table admin__table-primary order-tables">
             <thead>
                 <tr class="headings">
                     <th class="col-product"><span><?php echo __('Product') ?></span></th>
@@ -40,11 +40,11 @@
 <div class="grid" id="order-items_grid">
     <div class="hor-scroll">
     <?php if (count($_items)>10): ?>
-        <div class="actions update">
-            <?php echo $block->getButtonHtml(__('Update Items and Qty\'s'), 'order.itemsUpdate()'); ?>
+        <div class="actions update actions-update">
+            <?php echo $block->getButtonHtml(__('Update Items and Qty\'s'), 'order.itemsUpdate()', 'action-secondary'); ?>
         </div>
     <?php endif; ?>
-        <table class="data-table table-info order-tables">
+        <table class="data-table admin__table-primary order-tables">
             <thead>
                 <tr class="headings">
                     <th class="col-product"><span><?php echo __('Product') ?></span></th>
@@ -75,8 +75,8 @@
                     <tr>
                         <td class="col-product">
                             <span id="order_item_<?php echo $_item->getId() ?>_title"><?php echo $block->escapeHtml($_item->getName()) ?></span>
-                            <div>
-                                <strong><?php echo __('SKU') ?>:</strong>
+                            <div class="product-sku-block">
+                                <span><?php echo __('SKU') ?>:</span>
                                 <?php echo implode('<br />', $this->helper('Magento\Catalog\Helper\Data')->splitSku($block->escapeHtml($_item->getSku()))); ?>
                             </div>
                             <div class="product-configure-block">
@@ -140,7 +140,7 @@
                         </td>
                         <td class="col-actions last">
                             <select class="admin__control-select" name="item[<?php echo $_item->getId() ?>][action]">
-                                <option value=""></option>
+                                <option value=""><?php echo __('Please select') ?></option>
                                 <option value="remove"><?php echo __('Remove') ?></option>
                                 <?php if ($block->getCustomerId() && $block->getMoveToCustomerStorage()): ?>
                                     <option value="cart"><?php echo __('Move to Shopping Cart') ?></option>
@@ -170,7 +170,7 @@
                     <?php endforeach; ?>
 
                     <?php if ($hasMessageError):?>
-                        <tr class="col-messages-error">
+                        <tr class="row-messages-error">
                             <td colspan="100"> <!-- ToDo UI: remove the 100 -->
                                 <?php foreach ($_item->getMessage(false) as $message):
                                     if (empty($message)) {
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/create/shipping/method/form.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/create/shipping/method/form.phtml
index 7ccbfbb6bd3ec7da874f9ed621c5a736d1cdc132..f1e4430c69ff5937b7a0028d063594639ee27c66 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/create/shipping/method/form.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/create/shipping/method/form.phtml
@@ -52,7 +52,7 @@
         </dl>
     </div>
     <?php if ($_rate = $block->getActiveMethodRate()): ?>
-        <div id="order-shipping-method-info">
+        <div id="order-shipping-method-info" class="order-shipping-method-info">
             <dl class="admin__order-shipment-methods">
                 <dt class="admin__order-shipment-methods-title">
                     <?php echo $block->escapeHtml($block->getCarrierName($_rate->getCarrier())) ?>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/create/sidebar/items.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/create/sidebar/items.phtml
index c3eaf03a4c25526c7211116d86654dcb6e85a935..9ae2ac048ef6aa9e6df1ffa0b6b1f73d893fa9bc 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/create/sidebar/items.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/create/sidebar/items.phtml
@@ -9,7 +9,7 @@
 ?>
 <?php /* @var $block \Magento\Sales\Block\Adminhtml\Order\Create\Sidebar\AbstractSidebar */ ?>
 <div class="create-order-sidebar-block" id="sidebar_data_<?php echo $block->getDataId() ?>">
-    <div class="head">
+    <div class="head sidebar-title-block">
         <a href="#" class="action-refresh"
            title="<?php echo $block->escapeHtml(__('Refresh')); ?>"
            onclick="order.loadArea('sidebar_<?php echo $block->getDataId() ?>', 'sidebar_data_<?php echo $block->getDataId() ?>');return false;">
@@ -23,7 +23,7 @@
     <div class="content">
         <div class="auto-scroll">
         <?php if ($block->getItemCount()): ?>
-        <table class="table-info">
+        <table class="admin__table-primary">
             <thead>
                 <tr>
                     <th class="col-item"><?php echo __('Item') ?></th>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/form.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/form.phtml
index b876ba145accb78c81f8140980e95b76bfb8f1e7..f13fd7a04b50b05f720db68d44501be2c189c928 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/form.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/form.phtml
@@ -13,58 +13,60 @@
 
     <?php echo $block->getChildHtml('order_info') ?>
 
-    <?php if (!$_order->getIsVirtual()): ?>
-    <div class="clearfix">
-    <?php endif; ?>
-
+    <section class="admin__page-section">
+        <div class="admin__page-section-title">
+            <span class="title"><?php echo __('Payment &amp; Shipping Method') ?></span>
+        </div>
+        <div class="admin__page-section-content">
         <?php if (!$_order->getIsVirtual()): ?>
-        <div class="order-payment-method">
+        <div class="admin__page-section-item order-payment-method">
         <?php else: ?>
-        <div class="order-payment-method order-payment-method-virtual">
+        <div class="admin__page-section-item order-payment-method order-payment-method-virtual">
         <?php endif; ?>
 
             <?php /* Billing Address */ ?>
-            <div class="fieldset-wrapper">
-                <div class="fieldset-wrapper-title">
-                    <span class="title"><?php echo __('Payment Information') ?></span>
+            <div class="admin__page-section-item-title">
+                <span class="title"><?php echo __('Payment Information') ?></span>
+            </div>
+            <div class="admin__page-section-item-content">
+                <div class="order-payment-method-title"><?php echo $block->getChildHtml('order_payment') ?></div>
+                <div class="order-payment-currency">
+                    <?php echo __('The order was placed using %1.', $_order->getOrderCurrencyCode()) ?>
+                </div>
+                <div class="order-payment-additional">
+                    <?php echo $block->getChildHtml('order_payment_additional'); ?>
                 </div>
-                <div><?php echo $block->getChildHtml('order_payment') ?></div>
-                <div class="order-payment-currency"><?php echo __('The order was placed using %1.', $_order->getOrderCurrencyCode()) ?></div>
-                <div class="order-payment-additional"><?php echo $block->getChildHtml('order_payment_additional'); ?></div>
             </div>
-
         </div>
 
         <?php if (!$_order->getIsVirtual()): ?>
-        <div class="order-shipping-address">
+        <div class="admin__page-section-item order-shipping-address">
             <?php /* Shipping Address */ ?>
-            <div class="fieldset-wrapper">
-                <div class="fieldset-wrapper-title">
-                    <span class="title"><?php echo __('Shipping Information') ?></span>
-                </div>
-                <div class="shipping-description-wrapper">
-                    <div class="shipping-description-title"><?php echo $block->escapeHtml($_order->getShippingDescription()) ?></div>
-                    <div class="shipping-description-content">
-                        <?php echo __('Total Shipping Charges'); ?>:
+            <div class="admin__page-section-item-title">
+                <span class="title"><?php echo __('Shipping Information') ?></span>
+            </div>
+            <div class="admin__page-section-item-content shipping-description-wrapper">
+                <div class="shipping-description-title"><?php echo $block->escapeHtml($_order->getShippingDescription()) ?></div>
+                <div class="shipping-description-content">
+                    <?php echo __('Total Shipping Charges'); ?>:
 
-                        <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax($block->getSource()->getStoreId())): ?>
-                            <?php $_excl = $block->displayShippingPriceInclTax($_order); ?>
-                        <?php else: ?>
-                            <?php $_excl = $block->displayPriceAttribute('shipping_amount', false, ' '); ?>
-                        <?php endif; ?>
-                        <?php $_incl = $block->displayShippingPriceInclTax($_order); ?>
+                    <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesPriceInclTax($block->getSource()->getStoreId())): ?>
+                        <?php $_excl = $block->displayShippingPriceInclTax($_order); ?>
+                    <?php else: ?>
+                        <?php $_excl = $block->displayPriceAttribute('shipping_amount', false, ' '); ?>
+                    <?php endif; ?>
+                    <?php $_incl = $block->displayShippingPriceInclTax($_order); ?>
 
-                        <?php echo $_excl; ?>
-                        <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($block->getSource()->getStoreId()) && $_incl != $_excl): ?>
-                            (<?php echo __('Incl. Tax'); ?> <?php echo $_incl; ?>)
-                        <?php endif; ?>
-                    </div>
+                    <?php echo $_excl; ?>
+                    <?php if ($this->helper('Magento\Tax\Helper\Data')->displaySalesBothPrices($block->getSource()->getStoreId()) && $_incl != $_excl): ?>
+                        (<?php echo __('Incl. Tax'); ?> <?php echo $_incl; ?>)
+                    <?php endif; ?>
                 </div>
             </div>
         </div>
         <?php endif; ?>
-
-    </div><?php /* opening div can be in app\code\Magento\Sales\view\adminhtml\order\view\info.phtml or above */?>
+        </div>
+    </section>
 
     <div id="creditmemo_item_container">
         <?php echo $block->getChildHtml('order_items') ?>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/items.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/items.phtml
index c09ee04d9435d03df15868073eb92d7e82631786..82770b4f3fa45ba239c13dfb673a1dbb8f5d1bb3 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/items.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/items.phtml
@@ -9,14 +9,14 @@
 ?>
 <?php $_items = $block->getCreditmemo()->getAllItems() ?>
 
-<div class="fieldset-wrapper">
-    <div class="fieldset-wrapper-title">
+<section class="admin__page-section">
+    <div class="admin__page-section-title">
         <span class="title"><?php echo __('Items to Refund') ?></span>
     </div>
 
     <?php if (count($_items)) : ?>
     <div class="grid">
-        <table cellspacing="0" class="data order-tables">
+        <table class="data-table admin__table-primary order-creditmemo-tables">
             <thead>
                 <tr class="headings">
                     <th class="col-product"><span><?php echo __('Product') ?></span></th>
@@ -61,40 +61,66 @@
         <?php echo __('No Items To Refund') ?>
     </div>
     <?php endif; ?>
-</div>
+</section>
 
 <?php $orderTotalBar = $block->getChildHtml('order_totalbar'); ?>
 
 <?php if (!empty($orderTotalBar)): ?>
-<div class="fieldset-wrapper">
+<section class="fieldset-wrapper">
     <?php echo $orderTotalBar; ?>
-</div>
+</section>
 <?php endif; ?>
 
-<div class="clearfix">
+<section class="admin__page-section">
     <input type="hidden" name="creditmemo[do_offline]" id="creditmemo_do_offline" value="0" />
-    <div class="order-comments-history">
-        <div class="fieldset-wrapper">
-            <div class="fieldset-wrapper-title"><span class="title"><?php echo __('Credit Memo Comments') ?></span></div>
-            <fieldset id="history_form">
-                <label class="normal" for="creditmemo_comment_text"><?php echo __('Credit Memo Comments') ?></label><br/>
-                <textarea id="creditmemo_comment_text" name="creditmemo[comment_text]" rows="3" cols="5"><?php echo $block->getCreditmemo()->getCommentText(); ?></textarea>
-            </fieldset>
-        </div>
+    <div class="admin__page-section-title">
+        <span class="title"><?php echo __('Order Total') ?></span>
     </div>
-    <div class="order-totals creditmemo-totals">
-        <div class="fieldset-wrapper">
-            <div class="fieldset-wrapper-title"><span class="title"><?php echo __('Refund Totals') ?></span></div>
+    <div class="admin__page-section-content">
+        <div class="admin__page-section-item order-comments-history">
+            <div class="admin__page-section-item-title">
+                <span class="title"><?php echo __('Credit Memo Comments') ?></span>
+            </div>
+            <div id="history_form" class="admin__fieldset-wrapper-content">
+                <div class="admin__field">
+                    <label class="normal admin__field-label"
+                           for="creditmemo_comment_text"><?php echo __('Comment Text') ?></label>
+                    <div class="admin__field-control">
+                        <textarea id="creditmemo_comment_text"
+                                  class="admin__control-textarea"
+                                  name="creditmemo[comment_text]"
+                                  rows="3"
+                                  cols="5"><?php echo $block->getCreditmemo()->getCommentText(); ?></textarea>
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="admin__page-section-item order-totals creditmemo-totals">
+            <div class="admin__page-section-item-title">
+                <span class="title"><?php echo __('Refund Totals') ?></span>
+            </div>
             <?php echo $block->getChildHtml('creditmemo_totals') ?>
             <div class="order-totals-actions">
-                <div class="field choice field-append-comments">
-                    <input id="notify_customer" name="creditmemo[comment_customer_notify]" value="1" type="checkbox" />
-                    <label for="notify_customer"><span><?php echo __('Append Comments') ?></span></label>
+                <div class="field choice admin__field admin__field-option field-append-comments">
+                    <input id="notify_customer"
+                           class="admin__control-checkbox"
+                           name="creditmemo[comment_customer_notify]"
+                           value="1"
+                           type="checkbox" />
+                    <label for="notify_customer" class="admin__field-label">
+                        <span><?php echo __('Append Comments') ?></span>
+                    </label>
                 </div>
                 <?php if ($block->canSendCreditmemoEmail()):?>
-                <div class="field choice field-email-copy">
-                    <input id="send_email" name="creditmemo[send_email]" value="1" type="checkbox" />
-                    <label for="send_email"><span><?php echo __('Email Copy of Credit Memo') ?></span></label>
+                <div class="field choice admin__field admin__field-option field-email-copy">
+                    <input id="send_email"
+                           class="admin__control-checkbox"
+                           name="creditmemo[send_email]"
+                           value="1"
+                           type="checkbox" />
+                    <label for="send_email" class="admin__field-label">
+                        <span><?php echo __('Email Copy of Credit Memo') ?></span>
+                    </label>
                 </div>
                 <?php endif; ?>
                 <?php echo $block->getChildHtml('submit_before') ?>
@@ -106,7 +132,7 @@
             </div>
         </div>
     </div>
-</div>
+</section>
 
 <script>
 require(['jquery', 'prototype'], function(jQuery){
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/items/renderer/default.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/items/renderer/default.phtml
index 76ec308d8b6696ecb466071cb290bd23d4a7fd3f..c238f2478bffae8180f6391914320fdacdee4db6 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/items/renderer/default.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/items/renderer/default.phtml
@@ -19,13 +19,20 @@
     <?php if ($block->canParentReturnToStock($_item)) : ?>
         <td class="col-return-to-stock">
         <?php if ($block->canReturnItemToStock($_item)) : ?>
-            <input type="checkbox" name="creditmemo[items][<?php echo $_item->getOrderItemId() ?>][back_to_stock]" value="1"<?php if ($_item->getBackToStock()):?> checked<?php endif;?>/>
+            <input type="checkbox"
+                   class="admin__control-checkbox"
+                   name="creditmemo[items][<?php echo $_item->getOrderItemId() ?>][back_to_stock]"
+                   value="1"<?php if ($_item->getBackToStock()):?> checked<?php endif;?>/>
+            <label class="admin__field-label"></label>
         <?php endif; ?>
         </td>
     <?php endif; ?>
-    <td class="col-refund">
+    <td class="col-refund col-qty">
     <?php if ($block->canEditQty()) : ?>
-        <input type="text" class="input-text qty-input" name="creditmemo[items][<?php echo $_item->getOrderItemId() ?>][qty]" value="<?php echo $_item->getQty()*1 ?>"/>
+        <input type="text"
+               class="input-text admin__control-text qty-input"
+               name="creditmemo[items][<?php echo $_item->getOrderItemId() ?>][qty]"
+               value="<?php echo $_item->getQty()*1 ?>"/>
     <?php else : ?>
         <?php echo $_item->getQty()*1 ?>
     <?php endif; ?>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/totals/adjustments.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/totals/adjustments.phtml
index 4b7f73a40590b4ae166748ce1cb2c756ab0b7467..8ae81b1a6d0c0d5046ea7ff7ea45a1bcec2b9780 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/totals/adjustments.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/create/totals/adjustments.phtml
@@ -11,52 +11,69 @@
 <?php if ($_source): ?>
     <tr>
         <td class="label"><?php echo $block->getShippingLabel() ?><div id="shipping_amount_adv"></div></td>
-        <td><input type="text" name="creditmemo[shipping_amount]" value="<?php echo $block->getShippingAmount()?>" class="input-text not-negative-amount" id="shipping_amount" /></td>
+        <td>
+            <input type="text"
+                   name="creditmemo[shipping_amount]"
+                   value="<?php echo $block->getShippingAmount()?>"
+                   class="input-text admin__control-text not-negative-amount"
+                   id="shipping_amount" />
+        </td>
     </tr>
     <tr>
         <td class="label"><?php echo __('Adjustment Refund') ?><div id="adjustment_positive_adv"></div></td>
-        <td><input type="text" name="creditmemo[adjustment_positive]" value="<?php echo $_source->getBaseAdjustmentFeePositive()*1 ?>" class="input-text not-negative-amount" id="adjustment_positive" /></td>
+        <td>
+            <input type="text"
+                   name="creditmemo[adjustment_positive]"
+                   value="<?php echo $_source->getBaseAdjustmentFeePositive()*1 ?>"
+                   class="input-text admin__control-text not-negative-amount"
+                   id="adjustment_positive" />
+        </td>
     </tr>
     <tr>
         <td class="label"><?php echo __('Adjustment Fee') ?><div id="adjustment_negative_adv"></div></td>
-        <td><input type="text" name="creditmemo[adjustment_negative]" value="<?php echo $_source->getBaseAdjustmentFeeNegative()*1 ?>" class="input-text not-negative-amount" id="adjustment_negative"/>
-        <script>
-require(['prototype'], function(){
+        <td>
+            <input type="text"
+                   name="creditmemo[adjustment_negative]"
+                   value="<?php echo $_source->getBaseAdjustmentFeeNegative()*1 ?>"
+                   class="input-text admin__control-text not-negative-amount"
+                   id="adjustment_negative"/>
+            <script>
+                require(['prototype'], function(){
 
-//<![CDATA[
-Validation.addAllThese([
-    ['not-negative-amount', '<?php echo __('Please enter a positive number in this field.') ?>', function(v) {
-        if(v.length)
-            return /^\s*\d+([,.]\d+)*\s*%?\s*$/.test(v);
-        else
-            return true;
-    }]
-]);
+                //<![CDATA[
+                Validation.addAllThese([
+                    ['not-negative-amount', '<?php echo __('Please enter a positive number in this field.') ?>', function(v) {
+                        if(v.length)
+                            return /^\s*\d+([,.]\d+)*\s*%?\s*$/.test(v);
+                        else
+                            return true;
+                    }]
+                ]);
 
-if ($('shipping_amount')) {
-    $('shipping_amount').advaiceContainer = $('shipping_amount_adv');
-    unblockSubmit('shipping_amount');
-}
-if ($('adjustment_positive')) {
-    $('adjustment_positive').advaiceContainer = $('adjustment_positive_adv');
-    unblockSubmit('adjustment_positive');
-}
-if ($('adjustment_negative')) {
-    $('adjustment_negative').advaiceContainer = $('adjustment_negative_adv');
-    unblockSubmit('adjustment_negative');
-}
+                if ($('shipping_amount')) {
+                    $('shipping_amount').advaiceContainer = $('shipping_amount_adv');
+                    unblockSubmit('shipping_amount');
+                }
+                if ($('adjustment_positive')) {
+                    $('adjustment_positive').advaiceContainer = $('adjustment_positive_adv');
+                    unblockSubmit('adjustment_positive');
+                }
+                if ($('adjustment_negative')) {
+                    $('adjustment_negative').advaiceContainer = $('adjustment_negative_adv');
+                    unblockSubmit('adjustment_negative');
+                }
 
-function unblockSubmit(id) {
-    $(id).observe('focus', function(event) {
-        if ($$('button[class="scalable update-button disabled"]').size() > 0) {
-            enableElements('submit-button');
-        }
-    });
-}
-//]]>
+                function unblockSubmit(id) {
+                    $(id).observe('focus', function(event) {
+                        if ($$('button[class="scalable update-button disabled"]').size() > 0) {
+                            enableElements('submit-button');
+                        }
+                    });
+                }
+                //]]>
 
-});
-</script>
+                });
+            </script>
         </td>
     </tr>
 
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/view/form.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/view/form.phtml
index df2f092e4f8aa839320ce77450ec4fceab97d5e4..ee8ec752df51752961a3b64a2bf415a4a3174ccb 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/view/form.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/view/form.phtml
@@ -9,51 +9,56 @@
 ?>
 <?php  $_order = $block->getCreditmemo()->getOrder() ?>
 <?php echo $block->getChildHtml('order_info') ?>
-<div class="clearfix">
-<?php if (!$_order->getIsVirtual()): ?>
-<div class="order-payment-method">
-<?php else: ?>
-<div class="order-payment-method order-payment-method-virtual">
-<?php endif; ?>
-    <?php /* Billing Address */?>
-    <div class="fieldset-wrapper">
-        <div class="fieldset-wrapper-title">
-            <span class="title"><?php echo __('Payment Information') ?></span>
-        </div>
-        <div><?php echo $block->getChildHtml('order_payment') ?></div>
-        <div class="order-payment-currency"><?php echo __('The order was placed using %1.', $_order->getOrderCurrencyCode()) ?></div>
-        <div class="order-payment-additional"><?php echo $block->getChildHtml('order_payment_additional'); ?></div>
+<section class="admin__page-section">
+    <div class="admin__page-section-title">
+        <span class="title"><?php echo __('Payment &amp; Shipping Method') ?></span>
     </div>
-</div>
-<?php if (!$_order->getIsVirtual()): ?>
-<div class="order-shipping-address">
-    <?php /* Shipping Address */ ?>
-    <div class="fieldset-wrapper">
-        <div class="fieldset-wrapper-title">
-            <span class="title"><?php echo __('Shipping Information') ?></span>
+    <div class="admin__page-section-content">
+
+        <?php if (!$_order->getIsVirtual()): ?>
+        <div class="admin__page-section-item order-payment-method">
+        <?php else: ?>
+        <div class="admin__page-section-item order-payment-method order-payment-method-virtual">
+        <?php endif; ?>
+            <?php /* Billing Address */?>
+            <div class="admin__page-section-item-title">
+                <span class="title"><?php echo __('Payment Information') ?></span>
+            </div>
+            <div class="admin__page-section-item-content">
+                <div><?php echo $block->getChildHtml('order_payment') ?></div>
+                <div class="order-payment-currency"><?php echo __('The order was placed using %1.', $_order->getOrderCurrencyCode()) ?></div>
+                <div class="order-payment-additional"><?php echo $block->getChildHtml('order_payment_additional'); ?></div>
+            </div>
         </div>
-        <div class="shipping-description-wrapper">
-            <div class="shipping-description-title"><?php echo $block->escapeHtml($_order->getShippingDescription()) ?></div>
-            <div class="shipping-description-content">
-                <?php echo __('Total Shipping Charges'); ?>:
 
-                <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingPriceIncludingTax()): ?>
-                    <?php $_excl = $block->displayShippingPriceInclTax($_order); ?>
-                <?php else: ?>
-                    <?php $_excl = $block->displayPriceAttribute('shipping_amount', false, ' '); ?>
-                <?php endif; ?>
-                <?php $_incl = $block->displayShippingPriceInclTax($_order); ?>
+        <?php if (!$_order->getIsVirtual()): ?>
+        <div class="admin__page-section-item order-shipping-address">
+            <?php /* Shipping Address */ ?>
+            <div class="admin__page-section-item-title">
+                <span class="title"><?php echo __('Shipping Information') ?></span>
+            </div>
+            <div class="shipping-description-wrapper admin__page-section-item-content">
+                <div class="shipping-description-title"><?php echo $block->escapeHtml($_order->getShippingDescription()) ?></div>
+                <div class="shipping-description-content">
+                    <?php echo __('Total Shipping Charges'); ?>:
 
-                <?php echo $_excl; ?>
-                <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingBothPrices() && $_incl != $_excl): ?>
-                    (<?php echo __('Incl. Tax'); ?> <?php echo $_incl; ?>)
-                <?php endif; ?>
+                    <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingPriceIncludingTax()): ?>
+                        <?php $_excl = $block->displayShippingPriceInclTax($_order); ?>
+                    <?php else: ?>
+                        <?php $_excl = $block->displayPriceAttribute('shipping_amount', false, ' '); ?>
+                    <?php endif; ?>
+                    <?php $_incl = $block->displayShippingPriceInclTax($_order); ?>
+
+                    <?php echo $_excl; ?>
+                    <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingBothPrices() && $_incl != $_excl): ?>
+                        (<?php echo __('Incl. Tax'); ?> <?php echo $_incl; ?>)
+                    <?php endif; ?>
+                </div>
             </div>
         </div>
+        <?php endif; ?>
     </div>
-</div>
-<?php endif; ?>
-</div>
+</section>
 <?php $_items = $block->getCreditmemo()->getAllItems() ?>
 
 <?php if (count($_items)): ?>
@@ -61,24 +66,30 @@
     <?php echo $block->getChildHtml('creditmemo_items') ?>
 </div>
 <?php else: ?>
-<div class="fieldset-wrapper">
-    <div class="fieldset-wrapper-title">
+<section class="admin__page-section">
+    <div class="admin__page-section-title">
         <span class="title"><?php echo __('Items Refunded') ?></span>
     </div>
-    <div class="no-items"><?php echo __('No Items') ?></div>
-</div>
+    <div class="no-items admin__page-section-content"><?php echo __('No Items') ?></div>
+</section>
 <?php endif; ?>
-<div class="clearfix">
-    <div class="order-comments-history">
-        <div class="fieldset-wrapper">
-            <div class="fieldset-wrapper-title"><span class="title"><?php echo __('Credit Memo History') ?></span></div>
-            <fieldset><?php echo $block->getChildHtml('order_comments') ?></fieldset>
-        </div>
+
+<section class="admin__page-section">
+    <div class="admin__page-section-title">
+        <span class="title"><?php echo __('Memo Total') ?></span>
     </div>
-    <div class="order-totals">
-        <div class="fieldset-wrapper" id="history_form">
-            <div class="fieldset-wrapper-title"><span class="title"><?php echo __('Credit Memo Totals') ?></span></div>
-            <div><?php echo $block->getChildHtml('creditmemo_totals') ?></div>
+    <div class="admin__page-section-content">
+        <div class="admin__page-section-item order-comments-history">
+            <div class="admin__page-section-item-title">
+                <span class="title"><?php echo __('Credit Memo History') ?></span>
+            </div>
+            <div class="admin__page-section-item-content"><?php echo $block->getChildHtml('order_comments') ?></div>
+        </div>
+        <div class="admin__page-section-item order-totals" id="history_form">
+            <div class="admin__page-section-item-title">
+                <span class="title"><?php echo __('Credit Memo Totals') ?></span>
+            </div>
+            <div class="admin__page-section-content"><?php echo $block->getChildHtml('creditmemo_totals') ?></div>
         </div>
     </div>
-</div>
+</section>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/view/items.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/view/items.phtml
index a75e830aaacb88ff6ec19021c620544ef227bac2..3618871f0c7cac6da817fc5fe72ca8073cb97777 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/view/items.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/creditmemo/view/items.phtml
@@ -8,12 +8,12 @@
 
 ?>
 <?php $_items = $block->getCreditmemo()->getAllItems() ?>
-<div class="fieldset-wrapper">
-    <div class="fieldset-wrapper-title">
+<div class="admin__page-section">
+    <div class="admin__page-section-title">
         <span class="title"><?php echo __('Items Refunded') ?></span>
     </div>
-    <div class="grid">
-        <table cellspacing="0" class="data">
+    <div class="admin__page-section-content">
+        <table class="data-table admin__table-primary order-creditmemo-tables">
             <thead>
                 <tr class="headings">
                     <th class="col-product"><span><?php echo __('Product') ?></span></th>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/giftoptions.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/giftoptions.phtml
index c837566257032cc8cd89c1c7e5be2e0a8d0d4edc..bab344f25065b2bfba1be65196fa2a28068d6044 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/giftoptions.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/giftoptions.phtml
@@ -8,8 +8,8 @@
 
 ?>
 <?php if ($block->getChildHtml()): ?>
-<div class="admin__fieldset-wrapper order-gift-options">
-    <div class="admin__fieldset-wrapper-title"><strong class="title"><?php echo __('Gift Options') ?></strong></div>
+<section class="admin__page-section order-gift-options">
+    <div class="admin__page-section-title"><strong class="title"><?php echo __('Gift Options') ?></strong></div>
     <?php echo $block->getChildHtml() ?>
-</div>
+</section>
 <?php endif ?>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/create/form.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/create/form.phtml
index ce938f85d2764a1168ee9fb00d92ad9d42a2f84c..b0319ea9791f7b35afe27d1e647e6e9859448e03 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/create/form.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/create/form.phtml
@@ -7,68 +7,72 @@
 // @codingStandardsIgnoreFile
 
 ?>
-<form id="edit_form" method="post" action="<?php echo $block->getSaveUrl() ?>">
+<form id="edit_form" class="order-invoice-edit" method="post" action="<?php echo $block->getSaveUrl() ?>">
     <?php echo $block->getBlockHtml('formkey')?>
     <?php $_order = $block->getInvoice()->getOrder() ?>
     <?php echo $block->getChildHtml('order_info') ?>
-    <?php if (!$_order->getIsVirtual()): ?>
-    <div class="clearfix">
-    <?php endif; ?>
 
-    <div class="order-payment-method<?php if ($_order->getIsVirtual()): ?> order-payment-method-virtual<?php endif; ?>">
-        <div class="fieldset-wrapper">
-            <div class="fieldset-wrapper-title">
-                <span class="title"><?php echo __('Payment Information') ?></span>
-            </div>
-            <div><?php echo $block->getChildHtml('order_payment') ?></div>
-            <div class="order-payment-currency"><?php echo __('The order was placed using %1.', $_order->getOrderCurrencyCode()) ?></div>
-            <div class="order-payment-additional"><?php echo $block->getChildHtml('order_payment_additional'); ?></div>
+    <section class="admin__page-section">
+        <div class="admin__page-section-title">
+            <span class="title"><?php echo __('Payment &amp; Shipping Method') ?></span>
         </div>
-    </div>
-    <?php if (!$_order->getIsVirtual()): ?>
-    <div class="order-shipping-address">
-        <?php /*Shipping Address */ ?>
-        <div class="fieldset-wrapper">
-            <div class="fieldset-wrapper-title">
-                <span class="title"><?php echo __('Shipping Information') ?></span>
+        <div class="admin__page-section-content">
+            <div class="admin__page-section-item order-payment-method<?php if ($_order->getIsVirtual()): ?> order-payment-method-virtual<?php endif; ?>">
+                <div class="admin__page-section-item-title">
+                    <span class="title"><?php echo __('Payment Information') ?></span>
+                </div>
+                <div class="admin__page-section-item-content">
+                    <div><?php echo $block->getChildHtml('order_payment') ?></div>
+                    <div class="order-payment-currency"><?php echo __('The order was placed using %1.', $_order->getOrderCurrencyCode()) ?></div>
+                    <div class="order-payment-additional"><?php echo $block->getChildHtml('order_payment_additional'); ?></div>
+                </div>
             </div>
-            <div class="shipping-description-wrapper">
-                <div class="shipping-description-title"><?php echo $block->escapeHtml($_order->getShippingDescription()) ?></div>
-                <div class="shipping-description-content">
-                    <?php echo __('Total Shipping Charges'); ?>:
+            <?php if (!$_order->getIsVirtual()): ?>
+            <div class="admin__page-section-item order-shipping-address">
+                <?php /*Shipping Address */ ?>
+                <div class="admin__page-section-item-title">
+                    <span class="title"><?php echo __('Shipping Information') ?></span>
+                </div>
+                <div class="admin__page-section-item-content">
+                    <div class="shipping-description-wrapper">
+                        <div class="shipping-description-title"><?php echo $block->escapeHtml($_order->getShippingDescription()) ?></div>
+                        <div class="shipping-description-content">
+                            <?php echo __('Total Shipping Charges'); ?>:
 
-                    <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingPriceIncludingTax()): ?>
-                        <?php $_excl = $block->displayShippingPriceInclTax($_order); ?>
-                    <?php else: ?>
-                        <?php $_excl = $block->displayPriceAttribute('shipping_amount', false, ' '); ?>
-                    <?php endif; ?>
-                    <?php $_incl = $block->displayShippingPriceInclTax($_order); ?>
+                            <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingPriceIncludingTax()): ?>
+                                <?php $_excl = $block->displayShippingPriceInclTax($_order); ?>
+                            <?php else: ?>
+                                <?php $_excl = $block->displayPriceAttribute('shipping_amount', false, ' '); ?>
+                            <?php endif; ?>
+                            <?php $_incl = $block->displayShippingPriceInclTax($_order); ?>
 
-                    <?php echo $_excl; ?>
-                    <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingBothPrices() && $_incl != $_excl): ?>
-                        (<?php echo __('Incl. Tax'); ?> <?php echo $_incl; ?>)
+                            <?php echo $_excl; ?>
+                            <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingBothPrices() && $_incl != $_excl): ?>
+                                (<?php echo __('Incl. Tax'); ?> <?php echo $_incl; ?>)
+                            <?php endif; ?>
+                        </div>
+                    </div>
+                    <?php if ($block->canCreateShipment() && $block->canShipPartiallyItem()): ?>
+                    <div class="admin__field admin__field-option">
+                        <input type="checkbox" name="invoice[do_shipment]" id="invoice_do_shipment" value="1"
+                               class="admin__control-checkbox" <?php echo $block->hasInvoiceShipmentTypeMismatch() ? ' disabled="disabled"' : '' ?> />
+                        <label for="invoice_do_shipment"
+                               class="admin__field-label"><span><?php echo __('Create Shipment') ?></span></label>
+                    </div>
+                    <?php if ($block->hasInvoiceShipmentTypeMismatch()): ?>
+                        <small><?php echo __('Invoice and shipment types do not match for some items on this order. You can create a shipment only after creating the invoice.') ?></small>
+                        <?php endif; ?>
                     <?php endif; ?>
+                    <div id="tracking" style="display:none;"><?php echo $block->getChildHtml('tracking', false) ?></div>
                 </div>
             </div>
-            <?php if ($block->canCreateShipment() && $block->canShipPartiallyItem()): ?>
-            <div>
-                <label for="invoice_do_shipment" class="normal"><?php echo __('Create Shipment') ?></label>
-                <input type="checkbox" name="invoice[do_shipment]" id="invoice_do_shipment" value="1" <?php echo $block->hasInvoiceShipmentTypeMismatch() ? ' disabled="disabled"' : '' ?> />
-            </div>
-            <?php if ($block->hasInvoiceShipmentTypeMismatch()): ?>
-                <small><?php echo __('Invoice and shipment types do not match for some items on this order. You can create a shipment only after creating the invoice.') ?></small>
-                <?php endif; ?>
             <?php endif; ?>
-            <div id="tracking" style="display:none;"><?php echo $block->getChildHtml('tracking', false) ?></div>
         </div>
-    </div>
-    <?php endif; ?>
-
-    </div>
+    </section>
 
-    <div id="invoice_item_container">
+    <section id="invoice_item_container">
         <?php echo $block->getChildHtml('order_items') ?>
-    </div>
+    </section>
 </form>
 <script>
 require(['prototype'], function(){
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/create/items.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/create/items.phtml
index 118eca64172985d63ab5794a01f691cd21ada117..883f04cb7f3eb528cde7db31c8254c1dc197a566 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/create/items.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/create/items.phtml
@@ -8,13 +8,13 @@
 
 ?>
 
-<div class="fieldset-wrapper">
-    <div class="fieldset-wrapper-title">
+<section class="admin__page-section">
+    <div class="admin__page-section-title">
         <?php $_itemsGridLabel = $block->getForcedShipmentCreate() ? 'Items to Invoice and Ship' : 'Items to Invoice'; ?>
         <span class="title"><?php echo __('%1', $_itemsGridLabel) ?></span>
     </div>
-    <div class="grid">
-        <table cellspacing="0" class="data">
+    <div class="admin__page-section-content grid">
+        <table class="data-table admin__table-primary order-invoice-tables">
             <thead>
                 <tr class="headings">
                     <th class="col-product"><span><?php echo __('Product') ?></span></th>
@@ -50,45 +50,55 @@
             <?php endforeach; ?>
         </table>
     </div>
-</div>
+</section>
 
 <?php $orderTotalBar = $block->getChildHtml('order_totalbar'); ?>
 
 <?php if (!empty($orderTotalBar)): ?>
-<div class="fieldset-wrapper">
+<section class="admin__page-section">
     <?php echo $orderTotalBar; ?>
-</div>
+</section>
 <?php endif; ?>
 
-<div class="clearfix">
-    <div class="order-comments-history">
-        <div class="fieldset-wrapper">
-            <div class="fieldset-wrapper-title">
+<section class="admin__page-section">
+    <div class="admin__page-section-title">
+        <span class="title"><?php echo __('Order Total') ?></span>
+    </div>
+    <div class="admin__page-section-content">
+        <div class="admin__page-section-item order-comments-history">
+            <div class="admin__page-section-item-title">
                 <span class="title"><?php echo __('Invoice History') ?></span>
             </div>
-            <div id="history_form" class="order-history-form">
-                <label class="normal" for="invoice_comment_text"><?php echo __('Invoice Comments') ?></label>
-                <textarea id="invoice_comment_text" name="invoice[comment_text]" rows="3" cols="5"><?php echo $block->getInvoice()->getCommentText(); ?></textarea>
+            <div id="history_form" class="admin__page-section-item-content order-history-form">
+                <div class="admin__field">
+                    <label for="invoice_comment_text" class="admin__field-label">
+                        <span><?php echo __('Invoice Comments') ?></span>
+                    </label>
+                    <div class="admin__field-control">
+                        <textarea id="invoice_comment_text" name="invoice[comment_text]" class="admin__control-textarea"
+                                  rows="3" cols="5"><?php echo $block->getInvoice()->getCommentText(); ?></textarea>
+                    </div>
+                </div>
             </div>
         </div>
-    </div>
 
-    <div class="order-totals">
-        <div class="fieldset-wrapper" id="invoice_totals">
-            <div class="fieldset-wrapper-title">
+        <div id="invoice_totals" class="admin__page-section-item order-totals">
+            <div class="admin__page-section-item-title">
                 <span class="title"><?php echo __('Invoice Totals') ?></span>
             </div>
-            <div class="order-totals-actions">
+            <div class="admin__page-section-item-content order-totals-actions">
                 <?php echo $block->getChildHtml('invoice_totals') ?>
                 <?php if ($block->isCaptureAllowed()): ?>
                 <?php if ($block->canCapture()):?>
-                    <div>
-                    <!--
-                      <label for="invoice_do_capture" class="normal"><?php echo __('Capture Amount') ?></label>
-                      <input type="checkbox" name="invoice[do_capture]" id="invoice_do_capture" value="1" checked/>
-                    -->
-                      <label for="invoice_do_capture" class="normal"><?php echo __('Amount') ?></label>
-                      <select name="invoice[capture_case]">
+                    <div class="admin__field">
+                        <?php
+                        /*
+                        <label for="invoice_do_capture" class="normal"><?php echo __('Capture Amount') ?></label>
+                        <input type="checkbox" name="invoice[do_capture]" id="invoice_do_capture" value="1" checked/>
+                        */
+                        ?>
+                      <label for="invoice_do_capture" class="admin__field-label"><?php echo __('Amount') ?></label>
+                      <select class="admin__control-select" name="invoice[capture_case]">
                           <option value="online"><?php echo __('Capture Online') ?></option>
                           <option value="offline"><?php echo __('Capture Offline') ?></option>
                           <option value="not_capture"><?php echo __('Not Capture') ?></option>
@@ -99,14 +109,16 @@
                     <div><?php echo __('The invoice will be created offline without the payment gateway.') ?></div>
                 <?php endif?>
                 <?php endif; ?>
-                <div class="field choice field-append">
-                    <input id="notify_customer" name="invoice[comment_customer_notify]" value="1" type="checkbox" />
-                    <label class="normal" for="notify_customer"><?php echo __('Append Comments') ?></label>
+                <div class="admin__field admin__field-option field-append">
+                    <input id="notify_customer" name="invoice[comment_customer_notify]" value="1" type="checkbox"
+                           class="admin__control-checkbox" />
+                    <label class="admin__field-label" for="notify_customer"><?php echo __('Append Comments') ?></label>
                 </div>
                 <?php if ($block->canSendInvoiceEmail()): ?>
-                <div class="field choice field-email">
-                    <input id="send_email" name="invoice[send_email]" value="1" type="checkbox" />
-                    <label class="normal" for="send_email"><?php echo __('Email Copy of Invoice') ?></label>
+                <div class="admin__field admin__field-option field-email">
+                    <input id="send_email" name="invoice[send_email]" value="1" type="checkbox"
+                           class="admin__control-checkbox" />
+                    <label class="admin__field-label" for="send_email"><?php echo __('Email Copy of Invoice') ?></label>
                 </div>
                 <?php endif; ?>
                 <div class="actions">
@@ -115,7 +127,7 @@
             </div>
         </div>
     </div>
-</div>
+</section>
 
 <script>
 require(['jquery', 'prototype'], function($){
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/create/items/renderer/default.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/create/items/renderer/default.phtml
index f416f1ba7b5983e955099a45ce5c887a23d5ae2e..45b53a6d05ea0c65132c86050ed7ab03d30dc530 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/create/items/renderer/default.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/create/items/renderer/default.phtml
@@ -17,7 +17,9 @@
     <td class="col-qty"><?php echo $block->getColumnHtml($_item, 'qty') ?></td>
     <td class="col-qty-invoice">
     <?php if ($block->canEditQty()) : ?>
-        <input type="text" class="input-text qty-input" name="invoice[items][<?php echo $_item->getOrderItemId() ?>]" value="<?php echo $_item->getQty()*1 ?>"/>
+        <input type="text" class="input-text admin__control-text qty-input"
+               name="invoice[items][<?php echo $_item->getOrderItemId() ?>]"
+               value="<?php echo $_item->getQty()*1 ?>"/>
     <?php else : ?>
         <?php echo $_item->getQty()*1 ?>
     <?php endif; ?>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/view/form.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/view/form.phtml
index d1a08dfeb6d6b4e2d6f654caf88e93922064cc2b..cd625596b541da95d9d24de7069c0d33c71117af 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/view/form.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/view/form.phtml
@@ -11,84 +11,87 @@
 <?php $_order = $_invoice->getOrder() ?>
 <?php echo $block->getChildHtml('order_info') ?>
 
-<?php /* opening div is in app\code\Magento\Sales\view\adminhtml\order\view\info.phtml */?>
-
-<?php if (!$_order->getIsVirtual()): ?>
-<div class="clearfix"> <?php /* if opening div from app\code\Magento\Sales\view\adminhtml\order\view\info.phtml was closed there */?>
-<?php endif; ?>
-
-    <div class="order-payment-method<?php if ($_order->getIsVirtual()): ?> order-payment-method-virtual<?php endif; ?>">
-        <?php /*Billing Address */ ?>
-        <div class="fieldset-wrapper">
-            <div class="fieldset-wrapper-title">
+<section class="admin__page-section order-view-billing-shipping">
+    <div class="admin__page-section-title">
+        <span class="title"><?php echo __('Payment &amp; Shipping Method') ?></span>
+    </div>
+    <div class="admin__page-section-content">
+        <div class="admin__page-section-item order-payment-method<?php if ($_order->getIsVirtual()): ?> order-payment-method-virtual<?php endif; ?> admin__fieldset-wrapper">
+            <?php /*Billing Address */ ?>
+            <div class="admin__page-section-item-title">
                 <span class="title"><?php echo __('Payment Information') ?></span>
             </div>
-            <div><?php echo $block->getChildHtml('order_payment') ?></div>
-            <div class="order-payment-currency"><?php echo __('The order was placed using %1.', $_order->getOrderCurrencyCode()) ?></div>
-            <div class="order-payment-additional"><?php echo $block->getChildHtml('order_payment_additional'); ?></div>
+            <div class="admin__page-section-item-content">
+                <div><?php echo $block->getChildHtml('order_payment') ?></div>
+                <div class="order-payment-currency">
+                    <?php echo __('The order was placed using %1.', $_order->getOrderCurrencyCode()) ?>
+                </div>
+                <div class="order-payment-additional"><?php echo $block->getChildHtml('order_payment_additional'); ?></div>
+            </div>
         </div>
-    </div>
 
-    <?php if (!$_order->getIsVirtual()): ?>
-    <div class="order-shipping-address">
-        <?php /*Shipping Address */ ?>
-        <div class="fieldset-wrapper">
-            <div class="fieldset-wrapper-title">
-                <span class="title"><?php echo __('Shipping Information') ?></span>
-            </div>
-            <div class="shipping-description-wrapper">
-                <div class="shipping-description-title"><?php echo $block->escapeHtml($_order->getShippingDescription()) ?></div>
-                <div class="shipping-description-content">
-                    <?php echo __('Total Shipping Charges'); ?>:
+        <?php if (!$_order->getIsVirtual()): ?>
+            <div class="admin__page-section-item order-shipping-address">
+                <?php /*Shipping Address */ ?>
+                <div class="admin__page-section-item-title">
+                    <span class="title"><?php echo __('Shipping Information') ?></span>
+                </div>
+                <div class="admin__page-section-item-content shipping-description-wrapper">
+                    <div class="shipping-description-title">
+                        <?php echo $block->escapeHtml($_order->getShippingDescription()) ?>
+                    </div>
+                    <div class="shipping-description-content">
+                        <?php echo __('Total Shipping Charges'); ?>:
 
-                    <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingPriceIncludingTax()): ?>
-                        <?php $_excl = $block->displayShippingPriceInclTax($_order); ?>
-                    <?php else: ?>
-                        <?php $_excl = $block->displayPriceAttribute('shipping_amount', false, ' '); ?>
-                    <?php endif; ?>
-                    <?php $_incl = $block->displayShippingPriceInclTax($_order); ?>
+                        <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingPriceIncludingTax()): ?>
+                            <?php $_excl = $block->displayShippingPriceInclTax($_order); ?>
+                        <?php else: ?>
+                            <?php $_excl = $block->displayPriceAttribute('shipping_amount', false, ' '); ?>
+                        <?php endif; ?>
+                        <?php $_incl = $block->displayShippingPriceInclTax($_order); ?>
 
-                    <?php echo $_excl; ?>
-                    <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingBothPrices() && $_incl != $_excl): ?>
-                        (<?php echo __('Incl. Tax'); ?> <?php echo $_incl; ?>)
-                    <?php endif; ?>
-                    <div><?php echo $block->getChildHtml('shipment_tracking') ?></div>
+                        <?php echo $_excl; ?>
+                        <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingBothPrices() && $_incl != $_excl): ?>
+                            (<?php echo __('Incl. Tax'); ?> <?php echo $_incl; ?>)
+                        <?php endif; ?>
+                        <div><?php echo $block->getChildHtml('shipment_tracking') ?></div>
+                    </div>
                 </div>
             </div>
-        </div>
-    </div>
-    <?php endif; ?>
+        <?php endif; ?>
 
-</div>
+    </div>
+</section>
 
-<div class="fieldset-wrapper">
-    <div class="fieldset-wrapper-title">
+<section class="admin__page-section">
+    <div class="admin__page-section-title">
         <span class="title"><?php echo __('Items Invoiced') ?></span>
     </div>
 
-    <div id="invoice_item_container">
+    <div id="invoice_item_container" class="admin__page-section-content">
         <?php echo $block->getChildHtml('invoice_items') ?>
     </div>
-</div>
+</section>
 
-<div class="clearfix">
-    <div class="order-comments-history">
-        <div class="fieldset-wrapper">
-            <div class="fieldset-wrapper-title">
+<section class="admin__page-section">
+    <div class="admin__page-section-title">
+        <span class="title"><?php echo __('Order Total') ?></span>
+    </div>
+    <div class="admin__page-section-content">
+        <div class="admin__page-section-item order-comments-history">
+            <div class="admin__page-section-item-title">
                 <span class="title"><?php echo __('Invoice History') ?></span>
             </div>
-            <fieldset>
+            <div class="admin__page-section-item-content">
                 <?php echo $block->getChildHtml('order_comments') ?>
-            </fieldset>
+            </div>
         </div>
-    </div>
 
-    <div class="order-totals">
-        <div class="fieldset-wrapper" id="history_form">
-            <div class="fieldset-wrapper-title">
+        <div id="history_form" class="admin__page-section-item order-totals">
+            <div class="admin__page-section-item-title">
                 <span class="title"><?php echo __('Invoice Totals') ?></span>
             </div>
             <?php echo $block->getChildHtml('invoice_totals') ?>
         </div>
     </div>
-</div>
+</section>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/view/items.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/view/items.phtml
index 2dd825764ac916f3940e749d2a81798dea4ae633..9298795db0b62507f426147a6d643a0eefca8d03 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/view/items.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/invoice/view/items.phtml
@@ -8,7 +8,7 @@
 
 ?>
 <div class="grid">
-    <table class="data order-tables">
+    <table class="data-table admin__table-primary order-invoice-tables">
         <thead>
             <tr class="headings">
                 <th class="col-product"><span><?php echo __('Product') ?></span></th>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/totals.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/totals.phtml
index 06b1e692a036a4ff9d9659e835b81fe4142ca137..45b816084520bbe14c11af4050b0cf5d533156e2 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/totals.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/totals.phtml
@@ -15,53 +15,56 @@
     <?php echo $block->getChildHtml('footer'); ?>
 </table>
 <?php endif;*/ ?>
-<table class="data-table table-info order-subtotal">
+<table class="data-table admin__table-secondary order-subtotal-table">
     <?php $_totals = $block->getTotals('footer')?>
+
     <?php if ($_totals):?>
-    <tfoot>
-    <?php foreach ($block->getTotals('footer') as $_code => $_total): ?>
-        <?php if ($_total->getBlockName()): ?>
-            <?php echo $block->getChildHtml($_total->getBlockName(), false); ?>
-        <?php else:?>
-        <tr class="col-<?php echo $_code?>">
-            <td <?php echo $block->getLabelProperties()?> class="label">
-                <strong><?php echo $block->escapeHtml($_total->getLabel()); ?></strong>
-            </td>
-            <td <?php echo $block->getValueProperties()?>>
-                <strong><?php echo $block->formatValue($_total) ?></strong>
-            </td>
-        </tr>
-        <?php endif?>
-    <?php endforeach?>
-    </tfoot>
+        <tfoot>
+            <?php foreach ($block->getTotals('footer') as $_code => $_total): ?>
+                <?php if ($_total->getBlockName()): ?>
+                    <?php echo $block->getChildHtml($_total->getBlockName(), false); ?>
+                <?php else:?>
+                <tr class="col-<?php echo $_code?>">
+                    <td <?php echo $block->getLabelProperties()?> class="label">
+                        <strong><?php echo $block->escapeHtml($_total->getLabel()); ?></strong>
+                    </td>
+                    <td <?php echo $block->getValueProperties()?>>
+                        <strong><?php echo $block->formatValue($_total) ?></strong>
+                    </td>
+                </tr>
+                <?php endif?>
+            <?php endforeach?>
+        </tfoot>
     <?php endif?>
 
     <?php $_totals = $block->getTotals('')?>
     <?php if ($_totals):?>
-    <tbody>
-    <?php foreach ($_totals as $_code => $_total): ?>
-        <?php if ($_total->getBlockName()): ?>
-            <?php echo $block->getChildHtml($_total->getBlockName(), false); ?>
-        <?php else:?>
-        <tr class="col-<?php echo $_code?>">
-            <td <?php echo $block->getLabelProperties()?> class="label">
-                <?php if ($_total->getStrong()):?>
-                <strong><?php echo $block->escapeHtml($_total->getLabel()); ?></strong>
+        <tbody>
+            <?php foreach ($_totals as $_code => $_total): ?>
+                <?php if ($_total->getBlockName()): ?>
+                    <?php echo $block->getChildHtml($_total->getBlockName(), false); ?>
                 <?php else:?>
-                <?php echo $block->escapeHtml($_total->getLabel()); ?>
+                    <tr class="col-<?php echo $_code?>">
+                        <td <?php echo $block->getLabelProperties()?> class="label">
+                            <?php if ($_total->getStrong()):?>
+                            <strong><?php echo $block->escapeHtml($_total->getLabel()); ?></strong>
+                            <?php else:?>
+                            <?php echo $block->escapeHtml($_total->getLabel()); ?>
+                            <?php endif?>
+                        </td>
+
+                        <?php if ($_total->getStrong()):?>
+                            <td <?php echo $block->getValueProperties()?>>
+                                <strong><?php echo $block->formatValue($_total) ?></strong>
+                            </td>
+                        <?php else:?>
+                            <td <?php echo $block->getValueProperties()?>>
+                                <span><?php echo $block->formatValue($_total) ?></span>
+                            </td>
+                        <?php endif?>
+                    </tr>
                 <?php endif?>
-            </td>
-            <?php if ($_total->getStrong()):?>
-            <td <?php echo $block->getValueProperties()?>>
-                <strong><?php echo $block->formatValue($_total) ?></strong>
-            <?php else:?>
-            <td <?php echo $block->getValueProperties()?>>
-                <?php echo $block->formatValue($_total) ?>
-            <?php endif?>
-            </td>
-        </tr>
-        <?php endif?>
-    <?php endforeach?>
-    </tbody>
+            <?php endforeach?>
+        </tbody>
     <?php endif?>
 </table>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/view/form.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/view/form.phtml
index 2ccc60117a6ea662ff928690563244c684be7252..ea8956727f637d25ca32d23a10a3aa34648fda2e 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/view/form.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/view/form.phtml
@@ -4,4 +4,4 @@
  * See COPYING.txt for license details.
  */
 ?>
-<div class="entry-edit" id="sales_order_view"></div>
+<div class="entry-edit order-view" id="sales_order_view"></div>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/view/giftmessage.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/view/giftmessage.phtml
index a7d7d1552fcb732eda9bf4b0887c83e55ae7e854..9fa3eda8f0d7a93ae165b39bbd96653c44e56ea6 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/view/giftmessage.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/view/giftmessage.phtml
@@ -9,32 +9,50 @@
 ?>
 <?php if ($block->canDisplayGiftmessage()): ?>
 <?php $_required = $block->getMessage()->getMessage() != ''?>
-<div id="<?php echo $block->getHtmlId() ?>" class="box-left giftmessage-whole-order-container">
+<div id="<?php echo $block->getHtmlId() ?>" class="admin__page-section-content giftmessage-whole-order-container">
     <form class="entry-edit form-inline" id="<?php echo $block->getFieldId('form') ?>" action="<?php echo $block->getSaveUrl() ?>">
-        <fieldset>
+        <fieldset class="admin__fieldset">
             <legend class="admin__legend"><span><?php echo __('Gift Message for the Entire Order'); ?></span></legend>
-            <br>
+            <br/>
 
-            <input type="hidden" id="<?php echo $block->getFieldId('type'); ?>" name="<?php echo $block->getFieldName('type'); ?>" value="order" />
+            <input type="hidden" id="<?php echo $block->getFieldId('type'); ?>"
+                   name="<?php echo $block->getFieldName('type'); ?>"
+                   value="order"/>
 
-            <div class="field field-from-name <?php echo $_required ? 'required' : ''; ?>">
-                <label class="label" for="<?php echo $block->getFieldId('sender'); ?>"><span><?php echo __('From Name'); ?></span></label>
-                <div class="control">
-                    <input class="input-text <?php echo $_required ? 'required-entry' : ''; ?>" type="text" id="<?php echo $block->getFieldId('sender'); ?>" name="<?php echo $block->getFieldName('sender'); ?>" value="<?php echo $block->escapeHtml($block->getMessage()->getSender()); ?>" />
+            <div class="admin__field field-from-name<?php echo $_required ? ' required' : ''; ?>">
+                <label class="admin__field-label"
+                       for="<?php echo $block->getFieldId('sender'); ?>"><span><?php echo __('From Name'); ?></span></label>
+
+                <div class="admin__field-control">
+                    <input class="admin__control-text <?php echo $_required ? 'required-entry' : ''; ?>" type="text"
+                           id="<?php echo $block->getFieldId('sender'); ?>"
+                           name="<?php echo $block->getFieldName('sender'); ?>"
+                           value="<?php echo $block->escapeHtml($block->getMessage()->getSender()); ?>"/>
                 </div>
             </div>
 
-            <div class="field field-to-name <?php echo $_required ? 'required' : ''; ?>">
-                <label class="label" for="<?php echo $block->getFieldId('recipient'); ?>"><span><?php echo __('To Name'); ?></span></label>
-                <div class="control">
-                    <input class="input-text <?php echo $_required ? 'required-entry' : ''; ?>" type="text" id="<?php echo $block->getFieldId('recipient'); ?>" name="<?php echo $block->getFieldName('recipient'); ?>"  value="<?php echo $block->escapeHtml($block->getMessage()->getRecipient()); ?>" />
+            <div class="admin__field field-to-name<?php echo $_required ? ' required' : ''; ?>">
+                <label class="admin__field-label"
+                       for="<?php echo $block->getFieldId('recipient'); ?>"><span><?php echo __('To Name'); ?></span></label>
+
+                <div class="admin__field-control">
+                    <input class="admin__control-text <?php echo $_required ? 'required-entry' : ''; ?>" type="text"
+                           id="<?php echo $block->getFieldId('recipient'); ?>"
+                           name="<?php echo $block->getFieldName('recipient'); ?>"
+                           value="<?php echo $block->escapeHtml($block->getMessage()->getRecipient()); ?>"/>
                 </div>
             </div>
 
-            <div class="field field-gift-message">
-                <label class="label" for="<?php echo $block->getFieldId('message'); ?>"><span><?php echo __('Gift Message'); ?></span></label>
-                <div class="control">
-                    <textarea id="<?php echo $block->getFieldId('message'); ?>" name="<?php echo $block->getFieldName('message') ?>" rows="2" cols="15"><?php echo $block->escapeHtml($block->getMessage()->getMessage()); ?></textarea>
+            <div class="admin__field field-gift-message">
+                <label class="admin__field-label"
+                       for="<?php echo $block->getFieldId('message'); ?>"><span><?php echo __('Gift Message'); ?></span></label>
+
+                <div class="admin__field-control">
+                    <textarea id="<?php echo $block->getFieldId('message'); ?>"
+                              name="<?php echo $block->getFieldName('message') ?>"
+                              class="admin__control-textarea"
+                              rows="2"
+                              cols="15"><?php echo $block->escapeHtml($block->getMessage()->getMessage()); ?></textarea>
                 </div>
             </div>
 
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/view/history.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/view/history.phtml
index a202b3aa0dcee89d76652153dadcd23cb3e2476a..b1c4121b92fc36055dce194757c944a5486fbab3 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/view/history.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/view/history.phtml
@@ -7,38 +7,71 @@
 // @codingStandardsIgnoreFile
 
 ?>
-<div id="order_history_block">
+<div id="order_history_block" class="edit-order-comments">
     <?php if ($block->canAddComment()):?>
-    <div id="history_form">
-        <div><?php echo __('Add Order Comments') ?></div>
-        <div>
-            <label for="history_status"><?php echo __('Status') ?></label>
-            <select name="history[status]" id="history_status">
-            <?php foreach ($block->getStatuses() as $_code => $_label): ?>
-                <option value="<?php echo $_code ?>"<?php if ($_code == $block->getOrder()->getStatus()): ?> selected="selected"<?php endif; ?>><?php echo $_label ?></option>
-            <?php endforeach; ?>
-            </select>
-        </div>
-        <div>
-            <label for="history_comment"><?php echo __('Comment') ?></label>
-            <textarea name="history[comment]" rows="3" cols="5" id="history_comment"></textarea>
-        </div>
-        <div class="clearfix">
-            <div class="order-history-comments-options">
-                <?php if ($block->canSendCommentEmail()): ?>
-                <input name="history[is_customer_notified]" type="checkbox" id="history_notify" value="1" /><label for="history_notify"> <?php echo __('Notify Customer by Email') ?></label><br />
-                <?php endif; ?>
-                <input name="history[is_visible_on_front]" type="checkbox" id="history_visible" value="1" /><label for="history_visible"> <?php echo __('Visible on Frontend') ?></label>
+        <div class="order-history-block" id="history_form">
+
+            <div class="admin__field">
+                <label for="history_status" class="admin__field-label"><?php echo __('Status') ?></label>
+                <div class="admin__field-control">
+                    <select name="history[status]" id="history_status" class="admin__control-select">
+                        <?php foreach ($block->getStatuses() as $_code => $_label): ?>
+                            <option value="<?php echo $_code ?>"<?php if ($_code == $block->getOrder()->getStatus()): ?> selected="selected"<?php endif; ?>><?php echo $_label ?></option>
+                        <?php endforeach; ?>
+                    </select>
+                </div>
+            </div>
+
+            <div class="admin__field">
+                <label for="history_comment" class="admin__field-label">
+                    <?php echo __('Comment') ?>
+                </label>
+                <div class="admin__field-control">
+                    <textarea name="history[comment]"
+                              rows="3"
+                              cols="5"
+                              id="history_comment"
+                              class="admin__control-textarea"></textarea>
+                </div>
             </div>
-            <div class="actions">
-                <?php echo $block->getChildHtml('submit_button') ?>
+
+            <div class="admin__field">
+                <div class="order-history-comments-options">
+                    <div class="admin__field admin__field-option">
+                        <?php if ($block->canSendCommentEmail()): ?>
+                            <input name="history[is_customer_notified]"
+                                   type="checkbox"
+                                   id="history_notify"
+                                   class="admin__control-checkbox"
+                                   value="1" />
+                            <label class="admin__field-label" for="history_notify">
+                                <?php echo __('Notify Customer by Email') ?>
+                            </label>
+                        <?php endif; ?>
+                    </div>
+
+                    <div class="admin__field admin__field-option">
+                        <input name="history[is_visible_on_front]"
+                               type="checkbox"
+                               id="history_visible"
+                               class="admin__control-checkbox"
+                               value="1" />
+                        <label class="admin__field-label" for="history_visible">
+                            <?php echo __('Visible on Frontend') ?>
+                        </label>
+                    </div>
+                </div>
+
+                <div class="order-history-comments-actions">
+                    <?php echo $block->getChildHtml('submit_button') ?>
+                </div>
             </div>
         </div>
-    </div>
     <?php endif;?>
+
     <ul class="note-list">
     <?php foreach ($block->getOrder()->getStatusHistoryCollection(true) as $_item): ?>
-        <li>
+        <li class="note-list-item">
             <span class="note-list-date"><?php echo $block->formatDate($_item->getCreatedAtDate(), \IntlDateFormatter::MEDIUM) ?></span>
             <span class="note-list-time"><?php echo $block->formatTime($_item->getCreatedAtDate(), \IntlDateFormatter::MEDIUM) ?></span>
             <span class="note-list-status"><?php echo $_item->getStatusLabel() ?></span>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/view/info.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/view/info.phtml
index 62900a6f6bb0bb355529cb2b2414e02e5b9ad889..afd5fc24ba3e939735a13492154775d93265827b 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/view/info.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/view/info.phtml
@@ -22,165 +22,158 @@ $orderStoreDate = $block->formatDate(
 );
 ?>
 
-<?php /* the opening and closing divs of these two clearfixes are in app\code\core\Mage\Adminhtml\view\adminhtml\sales\order\invoice\create\form.phtml */?>
-
-<div class="clearfix">
-
-    <div class="order-information">
-        <?php /* Order Information */?>
-        <div class="fieldset-wrapper">
+<section class="admin__page-section order-view-account-information">
+    <div class="admin__page-section-title">
+        <span class="title"><?php echo __('Order & Account Information') ?></span>
+    </div>
+    <div class="admin__page-section-content">
+        <div class="admin__page-section-item order-information">
+            <?php /* Order Information */?>
             <?php if ($_order->getEmailSent()):
                 $_email = __('the order confirmation email was sent');
             else:
                 $_email = __('the order confirmation email is not sent');
             endif; ?>
-            <div class="fieldset-wrapper-title">
+            <div class="admin__page-section-item-title">
                 <span class="title">
                     <?php if ($block->getNoUseOrderLink()): ?>
-                    <?php echo __('Order # %1', $_order->getRealOrderId()) ?> (<span><?php echo $_email ?></span>)
+                        <?php echo __('Order # %1', $_order->getRealOrderId()) ?> (<span><?php echo $_email ?></span>)
                     <?php else: ?>
-                    <a href="<?php echo $block->getViewUrl($_order->getId()) ?>"><?php echo __('Order # %1', $_order->getRealOrderId()) ?></a>
-                    <span>(<?php echo $_email ?>)</span>
+                        <a href="<?php echo $block->getViewUrl($_order->getId()) ?>"><?php echo __('Order # %1', $_order->getRealOrderId()) ?></a>
+                        <span>(<?php echo $_email ?>)</span>
                     <?php endif; ?>
                 </span>
             </div>
-            <table class="data-table table-info">
+            <div class="admin__page-section-item-content">
+                <table class="data-table admin__table-secondary order-information-table">
                 <tr>
                     <th><?php echo __('Order Date') ?></th>
                     <td><?php echo $orderAdminDate ?></td>
                 </tr>
                 <?php if ($orderAdminDate != $orderStoreDate):?>
-                <tr>
-                    <th><?php echo __(
-                            'Order Date (%1)',
-                            $block->getCreatedAtStoreDate(
-                                $_order->getStore(),
-                                $_order->getCreatedAt()
-                            )->getTimezone()->getName()
-                        ) ?></th>
-                    <td><?php echo $orderStoreDate ?></td>
-                </tr>
+                    <tr>
+                        <th><?php echo __(
+                                'Order Date (%1)',
+                                $block->getCreatedAtStoreDate(
+                                    $_order->getStore(),
+                                    $_order->getCreatedAt()
+                                )->getTimezone()->getName()
+                            ) ?></th>
+                        <td><?php echo $orderStoreDate ?></td>
+                    </tr>
                 <?php endif;?>
                 <tr>
                     <th><?php echo __('Order Status') ?></th>
                     <td><span id="order_status"><?php echo $_order->getStatusLabel() ?></span></td>
                 </tr>
                 <?php if ($block->isSingleStoreMode() == false):?>
-                <tr>
-                    <th><?php echo __('Purchased From') ?></th>
-                    <td><?php echo $block->getOrderStoreName() ?></td>
-                </tr>
+                    <tr>
+                        <th><?php echo __('Purchased From') ?></th>
+                        <td><?php echo $block->getOrderStoreName() ?></td>
+                    </tr>
                 <?php endif; ?>
                 <?php if ($_order->getRelationChildId()): ?>
-                <tr>
-                    <th><?php echo __('Link to the New Order') ?></th>
-                    <td><a href="<?php echo $block->getViewUrl($_order->getRelationChildId()) ?>">
-                        <?php echo $_order->getRelationChildRealId() ?>
-                    </a></td>
-                </tr>
+                    <tr>
+                        <th><?php echo __('Link to the New Order') ?></th>
+                        <td><a href="<?php echo $block->getViewUrl($_order->getRelationChildId()) ?>">
+                                <?php echo $_order->getRelationChildRealId() ?>
+                            </a></td>
+                    </tr>
                 <?php endif; ?>
                 <?php if ($_order->getRelationParentId()): ?>
-                <tr>
-                    <th><?php echo __('Link to the Previous Order') ?></th>
-                    <td><a href="<?php echo $block->getViewUrl($_order->getRelationParentId()) ?>">
-                        <?php echo $_order->getRelationParentRealId() ?>
-                    </a></td>
-                </tr>
+                    <tr>
+                        <th><?php echo __('Link to the Previous Order') ?></th>
+                        <td><a href="<?php echo $block->getViewUrl($_order->getRelationParentId()) ?>">
+                                <?php echo $_order->getRelationParentRealId() ?>
+                            </a></td>
+                    </tr>
                 <?php endif; ?>
                 <?php if ($_order->getRemoteIp() && $block->shouldDisplayCustomerIp()): ?>
-                <tr>
-                    <th><?php echo __('Placed from IP') ?></th>
-                    <td><?php echo $_order->getRemoteIp(); echo($_order->getXForwardedFor()) ? ' (' . $block->escapeHtml($_order->getXForwardedFor()) . ')' : ''; ?></td>
-                </tr>
+                    <tr>
+                        <th><?php echo __('Placed from IP') ?></th>
+                        <td><?php echo $_order->getRemoteIp(); echo($_order->getXForwardedFor()) ? ' (' . $block->escapeHtml($_order->getXForwardedFor()) . ')' : ''; ?></td>
+                    </tr>
                 <?php endif; ?>
                 <?php if ($_order->getGlobalCurrencyCode() != $_order->getBaseCurrencyCode()): ?>
-                <tr>
-                    <th><?php echo __('%1 / %2 rate:', $_order->getGlobalCurrencyCode(), $_order->getBaseCurrencyCode()) ?></th>
-                    <td><?php echo $_order->getBaseToGlobalRate() ?></td>
-                </tr>
+                    <tr>
+                        <th><?php echo __('%1 / %2 rate:', $_order->getGlobalCurrencyCode(), $_order->getBaseCurrencyCode()) ?></th>
+                        <td><?php echo $_order->getBaseToGlobalRate() ?></td>
+                    </tr>
                 <?php endif; ?>
                 <?php if ($_order->getBaseCurrencyCode() != $_order->getOrderCurrencyCode()): ?>
-                <tr>
-                    <th><?php echo __('%1 / %2 rate:', $_order->getOrderCurrencyCode(), $_order->getBaseCurrencyCode()) ?></th>
-                    <th><?php echo $_order->getBaseToOrderRate() ?></th>
-                </tr>
+                    <tr>
+                        <th><?php echo __('%1 / %2 rate:', $_order->getOrderCurrencyCode(), $_order->getBaseCurrencyCode()) ?></th>
+                        <th><?php echo $_order->getBaseToOrderRate() ?></th>
+                    </tr>
                 <?php endif; ?>
             </table>
+            </div>
         </div>
-    </div>
 
-    <div class="order-account-information">
-        <?php /* Account Information */?>
-        <div class="admin__fieldset-wrapper">
-            <div class="admin__fieldset-wrapper-title">
+        <div class="admin__page-section-item order-account-information">
+            <?php /* Account Information */?>
+            <div class="admin__page-section-item-title">
+                <span class="title"><?php echo __('Account Information') ?></span>
                 <div class="actions"><?php echo $block->getAccountEditLink()?></div>
-                <strong class="title"><?php echo __('Account Information') ?></strong>
             </div>
-            <table class="data-table table-info">
-                <tr>
-                    <th><?php echo __('Customer Name') ?></th>
-                    <td>
-                    <?php if ($_customerUrl = $block->getCustomerViewUrl()) : ?>
-                        <a href="<?php echo $_customerUrl ?>" target="_blank"><strong><?php echo $block->escapeHtml($_order->getCustomerName()) ?></strong></a>
-                    <?php else: ?>
-                        <?php echo $block->escapeHtml($_order->getCustomerName()) ?>
+            <div class="admin__page-section-item-content">
+                <table class="data-table admin__table-secondary order-account-information-table">
+                    <tr>
+                        <th><?php echo __('Customer Name') ?></th>
+                        <td>
+                            <?php if ($_customerUrl = $block->getCustomerViewUrl()) : ?>
+                                <a href="<?php echo $_customerUrl ?>" target="_blank">
+                                    <span><?php echo $block->escapeHtml($_order->getCustomerName()) ?></span>
+                                </a>
+                            <?php else: ?>
+                                <?php echo $block->escapeHtml($_order->getCustomerName()) ?>
+                            <?php endif; ?>
+                        </td>
+                    </tr>
+                    <tr>
+                        <th><?php echo __('Email') ?></th>
+                        <td><a href="mailto:<?php echo $_order->getCustomerEmail() ?>"><?php echo $_order->getCustomerEmail() ?></a></td>
+                    </tr>
+                    <?php if ($_groupName = $block->getCustomerGroupName()) : ?>
+                        <tr>
+                            <th><?php echo __('Customer Group') ?></th>
+                            <td><?php echo $_groupName ?></td>
+                        </tr>
                     <?php endif; ?>
-                    </td>
-                </tr>
-                <tr>
-                    <th><?php echo __('Email') ?></th>
-                    <td><a href="mailto:<?php echo $_order->getCustomerEmail() ?>"><?php echo $_order->getCustomerEmail() ?></a></td>
-                </tr>
-                <?php if ($_groupName = $block->getCustomerGroupName()) : ?>
-                <tr>
-                    <th><?php echo __('Customer Group') ?></th>
-                    <td><?php echo $_groupName ?></td>
-                </tr>
-                <?php endif; ?>
-                <?php foreach ($block->getCustomerAccountData() as $data):?>
-                <tr>
-                    <th><?php echo $data['label'] ?></th>
-                    <td><?php echo $data['value'] ?></td>
-                </tr>
-                <?php endforeach;?>
-            </table>
+                    <?php foreach ($block->getCustomerAccountData() as $data):?>
+                        <tr>
+                            <th><?php echo $data['label'] ?></th>
+                            <td><?php echo $data['value'] ?></td>
+                        </tr>
+                    <?php endforeach;?>
+                </table>
+            </div>
         </div>
     </div>
+</section>
 
-</div>
-
-<div class="clearfix">
-
-    <div class="order-billing-address">
-        <?php /* Billing Address */?>
-        <div class="fieldset-wrapper">
-            <div class="fieldset-wrapper-title">
-                <div class="actions"><?php echo $block->getAddressEditLink($_order->getBillingAddress()); ?></div>
+<section class="admin__page-section order-addresses">
+    <div class="admin__page-section-title">
+        <span class="title"><?php echo __('Address Information') ?></span>
+    </div>
+    <div class="admin__page-section-content">
+        <div class="admin__page-section-item order-billing-address">
+            <?php /* Billing Address */?>
+            <div class="admin__page-section-item-title">
                 <span class="title"><?php echo __('Billing Address') ?></span>
+                <div class="actions"><?php echo $block->getAddressEditLink($_order->getBillingAddress()); ?></div>
             </div>
-            <address><?php echo $block->getFormattedAddress($_order->getBillingAddress()); ?></address>
+            <address class="admin__page-section-item-content"><?php echo $block->getFormattedAddress($_order->getBillingAddress()); ?></address>
         </div>
-    </div>
-
-    <?php if (!$block->getOrder()->getIsVirtual()): ?>
-    <div class="order-shipping-address">
-        <?php /* Shipping Address */ ?>
-        <div class="fieldset-wrapper">
-            <div class="fieldset-wrapper-title">
-                <div class="actions"><?php echo $block->getAddressEditLink($_order->getShippingAddress()); ?></div>
-                <span class="title"><?php echo __('Shipping Address') ?></span>
+        <?php if (!$block->getOrder()->getIsVirtual()): ?>
+            <div class="admin__page-section-item order-shipping-address">
+                <?php /* Shipping Address */ ?>
+                <div class="admin__page-section-item-title">
+                    <span class="title"><?php echo __('Shipping Address') ?></span>
+                    <div class="actions"><?php echo $block->getAddressEditLink($_order->getShippingAddress()); ?></div>
+                </div>
+                <address class="admin__page-section-item-content"><?php echo $block->getFormattedAddress($_order->getShippingAddress()); ?></address>
             </div>
-            <address><?php echo $block->getFormattedAddress($_order->getShippingAddress()); ?></address>
-        </div>
+        <?php endif; ?>
     </div>
-</div>
-    <?php endif; ?>
-
-<?php
-/*
-    closing div of this opening div are in
-    app\code\Magento\Sales\view\adminhtml\order\invoice\view\form.phtml
-    or
-    app\code\Magento\Sales\view\adminhtml\order\view\tab\info.phtml
-*/
-?>
+</section>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/view/items.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/view/items.phtml
index cb1c7006dd7518fb2a0531d62990980526fecfb9..7fc02861eff16e157e3a8842a84ec731e5ea43dc 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/view/items.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/view/items.phtml
@@ -10,7 +10,7 @@
 <?php $_order = $block->getOrder() ?>
 <div class="grid">
   <div class="hor-scroll">
-    <table class="data-table table-info">
+    <table class="data-table admin__table-primary edit-order-table">
         <thead>
             <tr class="headings">
                 <th class="col-product"><span><?php echo __('Product') ?></span></th>
@@ -25,13 +25,13 @@
                 <th class="col-total last"><span><?php echo __('Row Total') ?></span></th>
             </tr>
         </thead>
-        <?php $_items = $block->getItemsCollection() ?>
+        <?php $_items = $block->getItemsCollection();?>
         <?php $i = 0; foreach ($_items as $_item):?>
             <?php if ($_item->getParentItem()) {
-    continue;
-} else {
-    $i++;
-}?>
+                continue;
+            } else {
+                $i++;
+            }?>
             <tbody class="<?php echo $i%2 ? 'even' : 'odd' ?>">
                 <?php echo $block->getItemHtml($_item) ?>
                 <?php echo $block->getItemExtraInfoHtml($_item) ?>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/view/tab/history.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/view/tab/history.phtml
index 7d9c3acc586e381767ded7f39b09af062bc4b1db..2e8eae106e6a9d0132978547405bb4c31cc787ac 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/view/tab/history.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/view/tab/history.phtml
@@ -7,10 +7,10 @@
 // @codingStandardsIgnoreFile
 
 ?>
-<div class="fieldset-wrapper">
+<section class="admin__page-section edit-order-comments">
     <ul class="note-list">
     <?php foreach ($block->getFullHistory() as $_item): ?>
-        <li>
+        <li class="note-list-item">
             <span class="note-list-date"><?php echo $block->getItemCreatedAt($_item) ?></span>
             <span class="note-list-time"><?php echo $block->getItemCreatedAt($_item, 'time') ?></span>
             <span class="note-list-status"><?php echo $block->getItemTitle($_item) ?></span>
@@ -26,10 +26,26 @@
                     <?php endif; ?>
                 </span>
             <?php endif; ?>
-            <?php if ($_comment = $block->getItemComment($_item)): ?>
-                <div class="note-list-comment"><?php echo $_comment ?></div>
-            <?php endif; ?>
         </li>
     <?php endforeach; ?>
     </ul>
-</div>
+    <div class="edit-order-comments-block">
+        <div class="edit-order-comments-block-title">
+            <?php echo __('Notes for this Order') ?>
+        </div>
+        <?php foreach ($block->getFullHistory() as $_item): ?>
+            <?php if ($_comment = $block->getItemComment($_item)): ?>
+                <div class="comments-block-item">
+                    <div class="comments-block-item-comment">
+                        <?php echo $_comment ?>
+                    </div>
+                    <span class="comments-block-item-date-time">
+                        <?php echo __('Comment added') ?>
+                        <?php echo $block->getItemCreatedAt($_item) ?>
+                        <?php echo $block->getItemCreatedAt($_item, 'time') ?>
+                    </span>
+                </div>
+            <?php endif; ?>
+        <?php endforeach; ?>
+    </div>
+</section>
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/order/view/tab/info.phtml b/app/code/Magento/Sales/view/adminhtml/templates/order/view/tab/info.phtml
index a939192eba8c671d8e654beb40aa9495a7016cc8..b315a0053976c6dac80fba6dcb579ee1782cea58 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/order/view/tab/info.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/order/view/tab/info.phtml
@@ -17,60 +17,55 @@
 <?php echo $block->getChildHtml('order_info') ?>
 <input type="hidden" name="order_id" value="<?php echo $_order->getId() ?>"/>
 
-<?php if (!$_order->getIsVirtual()): ?>
-<div class="clearfix">
-<?php endif; ?>
-
-    <div class="order-payment-method<?php if ($_order->getIsVirtual()): ?> order-payment-method-virtual<?php endif; ?>">
-        <?php /* Payment Method */ ?>
-        <div class="fieldset-wrapper">
-            <div class="fieldset-wrapper-title">
+<section class="admin__page-section order-view-billing-shipping">
+    <div class="admin__page-section-title">
+        <span class="title"><?php echo __('Payment &amp; Shipping Method') ?></span>
+    </div>
+    <div class="admin__page-section-content">
+        <div class="admin__page-section-item order-payment-method<?php if ($_order->getIsVirtual()): ?> order-payment-method-virtual<?php endif; ?>">
+            <?php /* Payment Method */ ?>
+            <div class="admin__page-section-item-title">
                 <span class="title"><?php echo __('Payment Information') ?></span>
             </div>
-            <div><?php echo $block->getPaymentHtml() ?></div>
-            <div class="order-payment-currency"><?php echo __('The order was placed using %1.', $_order->getOrderCurrencyCode()) ?></div>
-            <div class="order-payment-additional"><?php echo $block->getChildHtml('order_payment_additional'); ?></div>
+            <div class="admin__page-section-item-content">
+                <div><?php echo $block->getPaymentHtml() ?></div>
+                <div class="order-payment-currency"><?php echo __('The order was placed using %1.', $_order->getOrderCurrencyCode()) ?></div>
+                <div class="order-payment-additional"><?php echo $block->getChildHtml('order_payment_additional'); ?></div>
+            </div>
         </div>
+        <?php echo $block->getChildHtml('order_shipping_view') ?>
     </div>
-
-<?php if ($_order->getIsVirtual()): ?>
-</div><?php /* opening div is in app\code\Magento\Sales\view\adminhtml\order\view\info.phtml */ ?>
-<?php endif; ?>
-
-<?php echo $block->getChildHtml('order_shipping_view') ?>
-
-<?php if (!$_order->getIsVirtual()): ?>
-</div>
-<?php endif; ?>
+</section>
 
 <?php echo $block->getGiftOptionsHtml() ?>
 
-<div class="fieldset-wrapper">
-    <div class="fieldset-wrapper-title">
+<section class="admin__page-section">
+    <div class="admin__page-section-title">
         <span class="title"><?php echo __('Items Ordered') ?></span>
     </div>
     <?php echo $block->getItemsHtml() ?>
-</div>
+</section>
 
-<div class="clearfix">
-    <div class="order-comments-history">
-        <div class="fieldset-wrapper">
-            <div class="fieldset-wrapper-title">
-                <span class="title"><?php echo __('Comments History') ?></span>
+<section class="admin__page-section">
+    <div class="admin__page-section-title">
+        <span class="title"><?php echo __('Order Total') ?></span>
+    </div>
+    <div class="admin__page-section-content">
+        <div class="admin__page-section-item order-comments-history">
+            <div class="admin__page-section-item-title">
+                <span class="title"><?php echo __('Notes for this Order') ?></span>
             </div>
-            <fieldset><?php echo $block->getChildHtml('order_history') ?></fieldset>
+            <?php echo $block->getChildHtml('order_history') ?>
         </div>
-    </div>
 
-    <div class="order-totals">
-        <div class="fieldset-wrapper">
-            <div class="fieldset-wrapper-title">
+        <div class="admin__page-section-item order-totals">
+            <div class="admin__page-section-item-title">
                 <span class="title"><?php echo __('Order Totals') ?></span>
             </div>
             <?php echo $block->getChildHtml('order_totals') ?>
         </div>
     </div>
-</div>
+</section>
 
 <?php echo $block->getChildHtml('popup_window');?>
 
diff --git a/app/code/Magento/Sales/view/adminhtml/templates/transactions/detail.phtml b/app/code/Magento/Sales/view/adminhtml/templates/transactions/detail.phtml
index 701a7c73a192f9f068b04129bac001f4e001f551..26d231c994314ff2524fe898bebc05817341829a 100644
--- a/app/code/Magento/Sales/view/adminhtml/templates/transactions/detail.phtml
+++ b/app/code/Magento/Sales/view/adminhtml/templates/transactions/detail.phtml
@@ -8,12 +8,12 @@
 
 ?>
 <div data-mage-init='{"floatingHeader": {}}' class="page-actions"><?php echo $block->getButtonsHtml() ?></div>
-<div class="fieldset-wrapper">
-    <div class="fieldset-wrapper-title">
+<section class="admin__page-section">
+    <div class="admin__page-section-title">
         <span class="title"><?php echo __('Transaction Data'); ?></span>
     </div>
-    <div id="log_details_fieldset" class="log-details">
-        <table class="log-info data-table table-info">
+    <div id="log_details_fieldset" class="admin__page-section-content log-details">
+        <table class="log-info data-table admin__table-secondary">
             <tbody>
             <tr>
                 <th><?php echo __('Transaction ID'); ?></th>
@@ -54,22 +54,22 @@
             </tbody>
         </table>
     </div>
-</div>
+</section>
 
-<div class="fieldset-wrapper">
-    <div class="fieldset-wrapper-title">
+<section class="admin__page-section">
+    <div class="admin__page-section-title">
         <span class="title""><?php echo __('Child Transactions'); ?></span>
     </div>
-    <div class="log-details-grid">
+    <div class="admin__page-section-content log-details-grid">
         <?php echo $block->getChildHtml('child_grid') ?>
     </div>
-</div>
+</section>
 
-<div class="fieldset-wrapper">
-    <div class="fieldset-wrapper-title">
+<section class="admin__page-section">
+    <div class="admin__page-section-title">
         <span class="title"><?php echo __('Transaction Details'); ?></span>
     </div>
-    <div class="log-details-grid">
+    <div class="admin__page-section-content log-details-grid">
         <?php echo $block->getChildHtml('detail_grid') ?>
     </div>
-</div>
+</section>
diff --git a/app/code/Magento/SalesRule/composer.json b/app/code/Magento/SalesRule/composer.json
index a01267d5dcfa082ed44316f04ff51fc716a86bc8..1ef5ba09232d018b9987d406fc67f2ef65af6209 100644
--- a/app/code/Magento/SalesRule/composer.json
+++ b/app/code/Magento/SalesRule/composer.json
@@ -3,26 +3,26 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-rule": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-shipping": "0.74.0-beta5",
-        "magento/module-payment": "0.74.0-beta5",
-        "magento/module-reports": "0.74.0-beta5",
-        "magento/module-catalog-rule": "0.74.0-beta5",
-        "magento/module-widget": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-rule": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-shipping": "0.74.0-beta6",
+        "magento/module-payment": "0.74.0-beta6",
+        "magento/module-reports": "0.74.0-beta6",
+        "magento/module-catalog-rule": "0.74.0-beta6",
+        "magento/module-widget": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/SalesSequence/composer.json b/app/code/Magento/SalesSequence/composer.json
index d4e0cd0f663e87a51a345eca909b8b3b99ff28ce..f3c49c8f01143db554c75ed5abdcb14935ab4ef2 100644
--- a/app/code/Magento/SalesSequence/composer.json
+++ b/app/code/Magento/SalesSequence/composer.json
@@ -3,11 +3,11 @@
   "description": "N/A",
   "require": {
     "php": "~5.5.0|~5.6.0",
-    "magento/framework": "0.74.0-beta5",
+    "magento/framework": "0.74.0-beta6",
     "magento/magento-composer-installer": "*"
   },
   "type": "magento2-module",
-  "version": "0.74.0-beta5",
+  "version": "0.74.0-beta6",
   "license": [
     "OSL-3.0",
     "AFL-3.0"
diff --git a/app/code/Magento/Search/composer.json b/app/code/Magento/Search/composer.json
index 9a03d940d7f599dd5b2bfcfa922710ee340d696e..69bc52ccfec60bd0b606af29e9748896b6eefe32 100644
--- a/app/code/Magento/Search/composer.json
+++ b/app/code/Magento/Search/composer.json
@@ -3,15 +3,15 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/framework": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-catalog-search": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-reports": "0.74.0-beta5",
+        "magento/framework": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-catalog-search": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-reports": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Sendfriend/composer.json b/app/code/Magento/Sendfriend/composer.json
index 1ff658de4f55eada10dae594027a239584d8e37e..7acd6e8fa3cece61f1c20f06067106d0b5691ba5 100644
--- a/app/code/Magento/Sendfriend/composer.json
+++ b/app/code/Magento/Sendfriend/composer.json
@@ -3,15 +3,15 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-theme": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-theme": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Shipping/Block/Adminhtml/View/Form.php b/app/code/Magento/Shipping/Block/Adminhtml/View/Form.php
index 2f848e0a150c139f624847ddbdab1d9a89abd174..fa0d8aa70c9e118540e4532bb248db275bb2513c 100644
--- a/app/code/Magento/Shipping/Block/Adminhtml/View/Form.php
+++ b/app/code/Magento/Shipping/Block/Adminhtml/View/Form.php
@@ -79,7 +79,11 @@ class Form extends \Magento\Sales\Block\Adminhtml\Order\AbstractOrder
         return $this->getLayout()->createBlock(
             'Magento\Backend\Block\Widget\Button'
         )->setData(
-            ['label' => __('Create Shipping Label...'), 'onclick' => 'packaging.showWindow();']
+            [
+                'label' => __('Create Shipping Label...'),
+                'onclick' => 'packaging.showWindow();',
+                'class' => 'action-create-label'
+            ]
         )->toHtml();
     }
 
diff --git a/app/code/Magento/Shipping/composer.json b/app/code/Magento/Shipping/composer.json
index 0278d3840231577af281bc46f387828b37ea7a6b..54c613d4a0a95d2ab7d0a5eae1435dbfbffa9fff 100644
--- a/app/code/Magento/Shipping/composer.json
+++ b/app/code/Magento/Shipping/composer.json
@@ -3,27 +3,27 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-contact": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-payment": "0.74.0-beta5",
-        "magento/module-tax": "0.74.0-beta5",
-        "magento/module-catalog-inventory": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-contact": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-payment": "0.74.0-beta6",
+        "magento/module-tax": "0.74.0-beta6",
+        "magento/module-catalog-inventory": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "ext-gd": "*",
         "magento/magento-composer-installer": "*"
     },
     "suggest": {
-        "magento/module-fedex": "0.74.0-beta5",
-        "magento/module-ups": "0.74.0-beta5"
+        "magento/module-fedex": "0.74.0-beta6",
+        "magento/module-ups": "0.74.0-beta6"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Shipping/view/adminhtml/layout/adminhtml_order_shipment_new.xml b/app/code/Magento/Shipping/view/adminhtml/layout/adminhtml_order_shipment_new.xml
index 1c2aa23262486fb96b9eb05098cdb5e392596e24..de964564823074cc85563a2d677dd519eb1ff7f7 100644
--- a/app/code/Magento/Shipping/view/adminhtml/layout/adminhtml_order_shipment_new.xml
+++ b/app/code/Magento/Shipping/view/adminhtml/layout/adminhtml_order_shipment_new.xml
@@ -7,6 +7,7 @@
 -->
 <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
     <body>
+        <referenceContainer name="admin.scope.col.wrap" htmlClass="admin__old" /> <!-- ToDo UI: remove this wrapper with old styles removal. The class name "admin__old" is for tests only, we shouldn't use it in any way -->
         <referenceContainer name="content">
             <block class="Magento\Shipping\Block\Adminhtml\Create" name="sales_shipment_create">
                 <block class="Magento\Shipping\Block\Adminhtml\Create\Form" name="form" template="create/form.phtml">
diff --git a/app/code/Magento/Shipping/view/adminhtml/layout/adminhtml_order_shipment_view.xml b/app/code/Magento/Shipping/view/adminhtml/layout/adminhtml_order_shipment_view.xml
index 8cdc5f8be0c8b547dd0b606358fb9b8ccb6ac2da..049654bf03a97ff760d1b1f2b80ac9fd48a05512 100644
--- a/app/code/Magento/Shipping/view/adminhtml/layout/adminhtml_order_shipment_view.xml
+++ b/app/code/Magento/Shipping/view/adminhtml/layout/adminhtml_order_shipment_view.xml
@@ -7,6 +7,7 @@
 -->
 <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
     <body>
+        <referenceContainer name="admin.scope.col.wrap" htmlClass="admin__old" /> <!-- ToDo UI: remove this wrapper with old styles removal. The class name "admin__old" is for tests only, we shouldn't use it in any way -->
         <referenceContainer name="content">
             <block class="Magento\Shipping\Block\Adminhtml\View" name="sales_shipment_view">
                 <block class="Magento\Shipping\Block\Adminhtml\View\Form" name="form" template="view/form.phtml">
diff --git a/app/code/Magento/Shipping/view/adminhtml/templates/create/form.phtml b/app/code/Magento/Shipping/view/adminhtml/templates/create/form.phtml
index 28693ed0e0b947dccd7e43c878597d93d9ff29e0..46b4ab5ed56f691d3f7b0421d9e023ef3afaa9e0 100644
--- a/app/code/Magento/Shipping/view/adminhtml/templates/create/form.phtml
+++ b/app/code/Magento/Shipping/view/adminhtml/templates/create/form.phtml
@@ -11,24 +11,27 @@
     <?php echo $block->getBlockHtml('formkey')?>
     <?php  $_order = $block->getShipment()->getOrder() ?>
     <?php echo $block->getChildHtml('order_info') ?>
-    <div class="clearfix">
-        <div class="order-payment-method">
-            <!--Billing Address-->
-            <div class="fieldset-wrapper">
-                <div class="fieldset-wrapper-title">
+    <div class="admin__page-section">
+        <div class="admin__page-section-title">
+            <span class="title"><?php echo __('Payment &amp; Shipping Method') ?></span>
+        </div>
+        <div class="admin__page-section-content">
+            <div class="admin__page-section-item order-payment-method">
+                <?php /* Billing Address */ ?>
+                <div class="admin__page-section-item-title">
                     <span class="title"><?php echo __('Payment Information') ?></span>
                 </div>
-                <div><?php echo $block->getPaymentHtml() ?></div>
-                <div class="order-payment-currency"><?php echo __('The order was placed using %1.', $_order->getOrderCurrencyCode()) ?></div>
+                <div class="admin__page-section-item-content">
+                    <div><?php echo $block->getPaymentHtml() ?></div>
+                    <div class="order-payment-currency"><?php echo __('The order was placed using %1.', $_order->getOrderCurrencyCode()) ?></div>
+                </div>
             </div>
-        </div>
-        <div class="order-shipping-address">
-            <!--Shipping Address-->
-            <div class="fieldset-wrapper">
-                <div class="fieldset-wrapper-title">
+            <div class="admin__page-section-item order-shipping-address">
+                <?php /* Shipping Address */ ?>
+                <div class="admin__page-section-item-title">
                     <span class="title"><?php echo __('Shipping Information') ?></span>
                 </div>
-                <div class="shipping-description-wrapper">
+                <div class="admin__page-section-item-content shipping-description-wrapper">
                     <div class="shipping-description-title"><?php echo $block->escapeHtml($_order->getShippingDescription()) ?></div>
                     <div class="shipping-description-content">
                         <?php echo __('Total Shipping Charges'); ?>:
diff --git a/app/code/Magento/Shipping/view/adminhtml/templates/create/items.phtml b/app/code/Magento/Shipping/view/adminhtml/templates/create/items.phtml
index b1544ff93ea9a2d15080bbea545aca5896c4ffcf..b2001f9ac88a4b9e8b47ccaa7b53f6b02ea4e128 100644
--- a/app/code/Magento/Shipping/view/adminhtml/templates/create/items.phtml
+++ b/app/code/Magento/Shipping/view/adminhtml/templates/create/items.phtml
@@ -7,12 +7,13 @@
 // @codingStandardsIgnoreFile
 
 ?>
-<div class="fieldset-wrapper">
-    <div class="fieldset-wrapper-title">
+
+<section class="admin__page-section">
+    <div class="admin__page-section-title">
         <span class="title"><?php echo __('Items to Ship') ?></span>
     </div>
     <div class="grid">
-        <table cellspacing="0" class="data order-tables">
+        <table class="data-table admin__table-primary order-shipment-table">
             <thead>
                 <tr class="headings">
                     <th class="col-product"><span><?php echo __('Product') ?></span></th>
@@ -34,44 +35,75 @@
             <?php endforeach; ?>
         </table>
     </div>
-</div>
-<div class="clearfix">
-    <div class="order-comments-history">
-        <div class="fieldset-wrapper">
-            <div class="fieldset-wrapper-title"><span class="title"><?php echo __('Shipment Comments') ?></span></div>
-            <fieldset>
-                <div id="order-history_form">
-                    <label class="normal" for="shipment_comment_text"><?php echo __('Shipment Comments') ?></label>
-                    <textarea id="shipment_comment_text" name="shipment[comment_text]" rows="3" cols="5"><?php echo $block->getShipment()->getCommentText(); ?></textarea>
+</section>
+
+<section class="admin__page-section">
+    <div class="admin__page-section-title">
+        <span class="title"><?php echo __('Shipment Total') ?></span>
+    </div>
+    <div class="admin__page-section-content order-comments-history">
+        <div class="admin__page-section-item">
+            <div class="admin__page-section-item-title">
+                <span class="title"><?php echo __('Shipment Comments') ?></span>
+            </div>
+            <div class="admin__page-section-item-content">
+                <div id="order-history_form" class="admin__field">
+                    <label class="admin__field-label"
+                           for="shipment_comment_text">
+                        <span><?php echo __('Comment Text') ?></span></label>
+                    <textarea id="shipment_comment_text"
+                              class="admin__control-textarea"
+                              name="shipment[comment_text]"
+                              rows="3"
+                              cols="5"><?php echo $block->getShipment()->getCommentText(); ?></textarea>
                 </div>
-            </fieldset>
+            </div>
         </div>
     </div>
-    <div class="order-totals">
-        <div class="fieldset-wrapper">
-            <?php if ($block->canCreateShippingLabel()): ?>
-                <div class="field choice field-create">
-                    <input id="create_shipping_label" name="shipment[create_shipping_label]" value="1" type="checkbox"
-                           onclick="toggleCreateLabelCheckbox();"/>
-                    <label class="normal" for="create_shipping_label"><?php echo __('Create Shipping Label') ?></label>
-                </div>
-            <?php endif ?>
-            <div class="field choice field-append">
-                <input id="notify_customer" name="shipment[comment_customer_notify]" value="1" type="checkbox"/>
-                <label class="normal" for="notify_customer"><?php echo __('Append Comments') ?></label>
+    <div class="admin__page-section-item order-totals">
+        <?php if ($block->canCreateShippingLabel()): ?>
+            <div class="field choice admin__field admin__field-option field-create">
+                <input id="create_shipping_label"
+                       class="admin__control-checkbox"
+                       name="shipment[create_shipping_label]"
+                       value="1"
+                       type="checkbox"
+                       onclick="toggleCreateLabelCheckbox();"/>
+                <label class="admin__field-label"
+                       for="create_shipping_label">
+                    <span><?php echo __('Create Shipping Label') ?></span></label>
             </div>
-            <?php if ($block->canSendShipmentEmail()): ?>
-                <div class="field choice field-email">
-                    <input id="send_email" name="shipment[send_email]" value="1" type="checkbox"/>
-                    <label class="normal" for="send_email"><?php echo __('Email Copy of Shipment') ?></label>
-                </div>
-            <?php endif; ?>
-            <div class="actions">
-                <?php echo $block->getChildHtml('submit_button') ?>
+        <?php endif ?>
+
+        <div class="field choice admin__field admin__field-option field-append">
+            <input id="notify_customer"
+                   class="admin__control-checkbox"
+                   name="shipment[comment_customer_notify]"
+                   value="1"
+                   type="checkbox"/>
+            <label class="admin__field-label"
+                   for="notify_customer">
+                <span><?php echo __('Append Comments') ?></span></label>
+        </div>
+
+        <?php if ($block->canSendShipmentEmail()): ?>
+            <div class="field choice admin__field admin__field-option field-email">
+                <input id="send_email"
+                       class="admin__control-checkbox"
+                       name="shipment[send_email]"
+                       value="1"
+                       type="checkbox"/>
+                <label class="admin__field-label"
+                       for="send_email">
+                    <span><?php echo __('Email Copy of Shipment') ?></span></label>
             </div>
+        <?php endif; ?>
+
+        <div class="order-history-comments-actions actions">
+            <?php echo $block->getChildHtml('submit_button') ?>
         </div>
     </div>
-</div>
+</section>
 <script>
 require([
     "jquery",
diff --git a/app/code/Magento/Shipping/view/adminhtml/templates/create/items/renderer/default.phtml b/app/code/Magento/Shipping/view/adminhtml/templates/create/items/renderer/default.phtml
index 1acdd870909d1f38bb2f9783a6e5937e56d729c9..136612ef50ba971ede1a74e9123cc17845d02998 100644
--- a/app/code/Magento/Shipping/view/adminhtml/templates/create/items/renderer/default.phtml
+++ b/app/code/Magento/Shipping/view/adminhtml/templates/create/items/renderer/default.phtml
@@ -13,7 +13,10 @@
     <td class="col-ordered-qty"><?php echo $block->getColumnHtml($_item, 'qty') ?></td>
     <td class="col-qty <?php if ($block->isShipmentRegular()): ?>last<?php endif; ?>">
         <?php if ($block->canShipPartiallyItem()): ?>
-            <input type="text" class="input-text qty-item" name="shipment[items][<?php echo $_item->getOrderItemId() ?>]" value="<?php echo $_item->getQty()*1 ?>" />
+            <input type="text"
+                   class="input-text admin__control-text qty-item"
+                   name="shipment[items][<?php echo $_item->getOrderItemId() ?>]"
+                   value="<?php echo $_item->getQty()*1 ?>" />
         <?php else: ?>
             <?php echo $_item->getQty()*1 ?>
         <?php endif; ?>
diff --git a/app/code/Magento/Shipping/view/adminhtml/templates/order/Tracking/view.phtml b/app/code/Magento/Shipping/view/adminhtml/templates/order/Tracking/view.phtml
index 74a836156b05475a9b361d888800b3061f17e72a..1497b994f9acbc27c31272b23b45895a4f4a09cc 100644
--- a/app/code/Magento/Shipping/view/adminhtml/templates/order/Tracking/view.phtml
+++ b/app/code/Magento/Shipping/view/adminhtml/templates/order/Tracking/view.phtml
@@ -8,49 +8,66 @@
 
 ?>
 <?php /** @var $block Magento\Shipping\Block\Adminhtml\Order\Tracking\View */ ?>
-<table cellspacing="0" class="data-table" id="shipment_tracking_info">
-    <thead>
-        <tr class="headings">
-            <th class="col-carrier"><?php echo __('Carrier') ?></th>
-            <th class="col-title"><?php echo __('Title') ?></th>
-            <th class="col-number"><?php echo __('Number') ?></th>
-            <th class="col-delete last"><?php echo __('Action') ?></th>
-        </tr>
-    </thead>
-    <tfoot>
-        <tr>
-            <td class="col-carrier">
-                <select name="carrier" class="select" onchange="selectCarrier(this)">
-                    <?php foreach ($block->getCarriers() as $_code => $_name): ?>
-                    <option value="<?php echo $_code ?>"><?php echo $block->escapeHtml($_name) ?></option>
-                    <?php endforeach; ?>
-                </select>
-            </td>
-            <td class="col-title"><input class="input-text" type="text" id="tracking_title" name="title" value="" /></td>
-            <td class="col-number"><input class="input-text" type="text" id="tracking_number" name="number" value="" /></td>
-            <td class="col-delete last"><?php echo $block->getSaveButtonHtml() ?></td>
-        </tr>
-    </tfoot>
-<?php if ($_tracks = $block->getShipment()->getAllTracks()): ?>
-    <tbody>
-    <?php $i = 0; foreach ($_tracks as $_track):$i++ ?>
-        <tr class="<?php echo($i%2 == 0) ? 'even' : 'odd' ?>">
-            <td class="col-carrier"><?php echo $block->escapeHtml($block->getCarrierTitle($_track->getCarrierCode())) ?></td>
-            <td class="col-title"><?php echo $block->escapeHtml($_track->getTitle()) ?></td>
-            <td class="col-number">
-                <?php if ($_track->isCustom()): ?>
-                <?php echo $block->escapeHtml($_track->getNumber()) ?>
-                <?php else: ?>
-                <a href="#" onclick="popWin('<?php echo $this->helper('Magento\Shipping\Helper\Data')->getTrackingPopupUrlBySalesModel($_track) ?>','trackorder','width=800,height=600,resizable=yes,scrollbars=yes')"><?php echo $block->escapeHtml($_track->getNumber()) ?></a>
-                <div id="shipment_tracking_info_response_<?php echo $_track->getId() ?>"></div>
-                <?php endif; ?>
-            </td>
-            <td class="col-delete last"><a class="action- delete" href="#" onclick="deleteTrackingNumber('<?php echo $block->getRemoveUrl($_track) ?>'); return false;"><span><?php echo __('Delete') ?></span></a></td>
-        </tr>
-    <?php endforeach; ?>
-    </tbody>
-<?php endif; ?>
-</table>
+<div class="admin__control-table-wrapper">
+    <table class="data-table admin__control-table" id="shipment_tracking_info">
+        <thead>
+            <tr class="headings">
+                <th class="col-carrier"><?php echo __('Carrier') ?></th>
+                <th class="col-title"><?php echo __('Title') ?></th>
+                <th class="col-number"><?php echo __('Number') ?></th>
+                <th class="col-delete last"><?php echo __('Action') ?></th>
+            </tr>
+        </thead>
+        <tfoot>
+            <tr>
+                <td class="col-carrier">
+                    <select name="carrier"
+                            class="select admin__control-select"
+                            onchange="selectCarrier(this)">
+                        <?php foreach ($block->getCarriers() as $_code => $_name): ?>
+                        <option value="<?php echo $_code ?>"><?php echo $block->escapeHtml($_name) ?></option>
+                        <?php endforeach; ?>
+                    </select>
+                </td>
+                <td class="col-title">
+                    <input class="input-text admin__control-text"
+                           type="text"
+                           id="tracking_title"
+                           name="title"
+                           value="" />
+                </td>
+                <td class="col-number">
+                    <input class="input-text admin__control-text"
+                           type="text"
+                           id="tracking_number"
+                           name="number"
+                           value="" />
+                </td>
+                <td class="col-delete last"><?php echo $block->getSaveButtonHtml() ?></td>
+            </tr>
+        </tfoot>
+    <?php if ($_tracks = $block->getShipment()->getAllTracks()): ?>
+        <tbody>
+        <?php $i = 0; foreach ($_tracks as $_track):$i++ ?>
+            <tr class="<?php echo($i%2 == 0) ? 'even' : 'odd' ?>">
+                <td class="col-carrier"><?php echo $block->escapeHtml($block->getCarrierTitle($_track->getCarrierCode())) ?></td>
+                <td class="col-title"><?php echo $block->escapeHtml($_track->getTitle()) ?></td>
+                <td class="col-number">
+                    <?php if ($_track->isCustom()): ?>
+                    <?php echo $block->escapeHtml($_track->getNumber()) ?>
+                    <?php else: ?>
+                    <a href="#" onclick="popWin('<?php echo $this->helper('Magento\Shipping\Helper\Data')->getTrackingPopupUrlBySalesModel($_track) ?>','trackorder','width=800,height=600,resizable=yes,scrollbars=yes')"><?php echo $block->escapeHtml($_track->getNumber()) ?></a>
+                    <div id="shipment_tracking_info_response_<?php echo $_track->getId() ?>"></div>
+                    <?php endif; ?>
+                </td>
+                <td class="col-delete last"><a class="action-delete" href="#" onclick="deleteTrackingNumber('<?php echo $block->getRemoveUrl($_track) ?>'); return false;"><span><?php echo __('Delete') ?></span></a></td>
+            </tr>
+        <?php endforeach; ?>
+        </tbody>
+    <?php endif; ?>
+    </table>
+</div>
+
 <script>
 require(['prototype'], function(){
 
diff --git a/app/code/Magento/Shipping/view/adminhtml/templates/order/packaging/grid.phtml b/app/code/Magento/Shipping/view/adminhtml/templates/order/packaging/grid.phtml
index aa8645eb6238e23547dc15df5e96c2fc388c9dcf..f696adb536c16ca453fb8090930cf2fe5e67f27f 100644
--- a/app/code/Magento/Shipping/view/adminhtml/templates/order/packaging/grid.phtml
+++ b/app/code/Magento/Shipping/view/adminhtml/templates/order/packaging/grid.phtml
@@ -8,65 +8,88 @@
 
 ?>
 <div class="grid">
-    <table cellspacing="0" class="data-table">
-        <thead>
-        <tr>
-            <th class="col-product no-link"><?php echo __('Product Name') ?></th>
-            <th class="col-weight no-link"><?php echo __('Weight') ?></th>
-            <th class="col-custom no-link" <?php echo $block->displayCustomsValue() ? '' : 'style="display: none;"' ?>>
-                <?php echo __('Customs Value') ?>
-            </th>
-            <th class="col-select no-link">
-                <input type="checkbox" name="" onclick="packaging.checkAllItems(this);" class="checkbox" title="<?php echo __('Select All') ?>">
-            </th>
-            <th class="col-qty no-link"><?php echo __('Qty Ordered') ?></th>
-            <th class="col-qty-edit no-link last"><?php echo __('Qty') ?></th>
-        </tr>
-        </thead>
+    <div class="hor-scroll">
+        <table class="data-table admin__table-primary">
+            <thead>
+            <tr>
+                <th class="col-product no-link"><?php echo __('Product Name') ?></th>
+                <th class="col-weight no-link"><?php echo __('Weight') ?></th>
+                <th class="col-custom no-link" <?php echo $block->displayCustomsValue() ? '' : 'style="display: none;"' ?>>
+                    <?php echo __('Customs Value') ?>
+                </th>
+                <th class="col-select no-link">
+                    <div class="admin__field admin__field-option">
+                        <input type="checkbox"
+                               name=""
+                               onclick="packaging.checkAllItems(this);"
+                               class="checkbox admin__control-checkbox"
+                               title="<?php echo __('Select All') ?>">
+                        <label class="admin__field-label"></label>
+                    </div>
+                </th>
+                <th class="col-qty no-link"><?php echo __('Qty Ordered') ?></th>
+                <th class="col-qty-edit no-link last"><?php echo __('Qty') ?></th>
+            </tr>
+            </thead>
 
-        <tbody>
-        <?php foreach ($block->getCollection() as $item): ?>
-            <?php $_order = $block->getShipment()->getOrder() ?>
-            <?php $_orderItem = $_order->getItemById($item->getOrderItemId()); ?>
-            <?php if ($item->getIsVirtual()
-                || ($_orderItem->isShipSeparately() && !($_orderItem->getParentItemId() || $_orderItem->getParentItem()))
-                || (!$_orderItem->isShipSeparately() && ($_orderItem->getParentItemId() || $_orderItem->getParentItem()))): ?>
-                <?php continue; ?>
+            <tbody>
+            <?php foreach ($block->getCollection() as $item): ?>
+                <?php $_order = $block->getShipment()->getOrder() ?>
+                <?php $_orderItem = $_order->getItemById($item->getOrderItemId()); ?>
+                <?php if ($item->getIsVirtual()
+                    || ($_orderItem->isShipSeparately() && !($_orderItem->getParentItemId() || $_orderItem->getParentItem()))
+                    || (!$_orderItem->isShipSeparately() && ($_orderItem->getParentItemId() || $_orderItem->getParentItem()))): ?>
+                    <?php continue; ?>
                 <?php endif; ?>
-        <tr title="#" id="" class="">
-            <td class="col-product name">
-                <?php echo $item->getName(); ?>
-            </td>
-            <td class="col-weight weight ">
-                <?php echo $item->getWeight(); ?>
-            </td>
-            <?php
-            if ($block->displayCustomsValue()) {
-                $customsValueDisplay = '';
-                $customsValueValidation = ' validate-zero-or-greater ';
-            } else {
-                $customsValueDisplay = ' style="display: none;" ';
-                $customsValueValidation = '';
-            }
-            ?>
-            <td <?php echo $customsValueDisplay ?>>
-                <input type="text" name="customs_value" class="input-text <?php echo $customsValueValidation ?>" value="<?php echo $block->formatPrice($item->getPrice()); ?>" size="10" onblur="packaging.recalcContainerWeightAndCustomsValue(this);">
-            </td>
-            <td class="col-select">
-                <input type="checkbox" name="" value="<?php echo $item->getId() ? $item->getId() : $item->getOrderItemId(); ?>" class="checkbox">
-            </td>
-            <td class="col-qty">
-                <?php echo $item->getOrderItem()->getQtyOrdered()*1; ?>
-            </td>
-            <td class="col-qty-edit last">
-                <input type="hidden" name="price" value="<?php echo $item->getPrice(); ?>">
-                <input type="text" name="qty" value="<?php echo $item->getQty()*1; ?>" class="input-text qty<?php if ($item->getOrderItem()->getIsQtyDecimal()): ?> qty-decimal<?php endif ?>">&nbsp;
-                <button type="button" class="action- delete icon-btn" onclick="packaging.deleteItem(this);" style="display:none;">
-                    <span><?php echo __('Delete') ?></span>
-                </button>
-            </td>
-        </tr>
+                <tr title="#" id="" class="">
+                    <td class="col-product name">
+                        <?php echo $item->getName(); ?>
+                    </td>
+                    <td class="col-weight weight ">
+                        <?php echo $item->getWeight(); ?>
+                    </td>
+                    <?php
+                    if ($block->displayCustomsValue()) {
+                        $customsValueDisplay = '';
+                        $customsValueValidation = ' validate-zero-or-greater ';
+                    } else {
+                        $customsValueDisplay = ' style="display: none;" ';
+                        $customsValueValidation = '';
+                    }
+                    ?>
+                    <td <?php echo $customsValueDisplay ?>>
+                        <input type="text"
+                               name="customs_value"
+                               class="input-text admin__control-text <?php echo $customsValueValidation ?>"
+                               value="<?php echo $block->formatPrice($item->getPrice()); ?>"
+                               size="10"
+                               onblur="packaging.recalcContainerWeightAndCustomsValue(this);">
+                    </td>
+                    <td class="col-select">
+                        <div class="admin__field admin__field-option">
+                            <input type="checkbox"
+                                   name=""
+                                   value="<?php echo $item->getId() ? $item->getId() : $item->getOrderItemId(); ?>"
+                                   class="checkbox admin__control-checkbox">
+                            <label class="admin__field-label"></label>
+                        </div>
+                    </td>
+                    <td class="col-qty">
+                        <?php echo $item->getOrderItem()->getQtyOrdered()*1; ?>
+                    </td>
+                    <td class="col-qty-edit last">
+                        <input type="hidden" name="price" value="<?php echo $item->getPrice(); ?>">
+                        <input type="text"
+                               name="qty"
+                               value="<?php echo $item->getQty()*1; ?>"
+                               class="input-text admin__control-text qty<?php if ($item->getOrderItem()->getIsQtyDecimal()): ?> qty-decimal<?php endif ?>">&nbsp;
+                        <button type="button" class="action-delete delete icon-btn" onclick="packaging.deleteItem(this);" style="display:none;">
+                            <span><?php echo __('Delete') ?></span>
+                        </button>
+                    </td>
+                </tr>
             <?php endforeach; ?>
-        </tbody>
-    </table>
+            </tbody>
+        </table>
+    </div>
 </div>
diff --git a/app/code/Magento/Shipping/view/adminhtml/templates/order/packaging/popup.phtml b/app/code/Magento/Shipping/view/adminhtml/templates/order/packaging/popup.phtml
index 7876d0ae1b8754efad94938cd984a7e90169f560..359dde8e59b198aa5be1907d9839c31b64166d20 100644
--- a/app/code/Magento/Shipping/view/adminhtml/templates/order/packaging/popup.phtml
+++ b/app/code/Magento/Shipping/view/adminhtml/templates/order/packaging/popup.phtml
@@ -53,149 +53,186 @@ require([
     <div class="popup-window-wrapper">
         <div class="popup-window-title">
             <div class="actions">
-                <button type="button" class="action-add AddPackageBtn" onclick="packaging.newPackage();">
+                <button type="button" class="action-add action-secondary AddPackageBtn" onclick="packaging.newPackage();">
                     <span><?php echo __('Add Package') ?></span>
                 </button>
             </div>
             <span class="title"><?php echo __('Create Packages') ?></span>
         </div>
         <div class="packaging-content popup-window-content">
-            <div class="messages" style="display:none;"></div>
+            <div class="message message-warning" style="display: none"></div>
             <div id="package_template" style="display:none;">
                 <div class="package-number popup-fieldset-title">
-                    <div class="title"><?php echo __('Package') ?><span></span></div>
+                    <div class="title">
+                        <?php echo __('Package') ?>
+                        <span></span>
+                    </div>
+                </div>
+                <div class="admin__control-table-wrapper">
+                    <table class="data-table admin__control-table">
+                        <thead>
+                            <th class="col-type"><?php echo __('Type') ?></th>
+                            <?php if ($girthEnabled == 1): ?>
+                            <th class="col-size"><?php echo __('Size') ?></th>
+                            <th class="col-girth"><?php echo __('Girth') ?></th>
+                            <th>&nbsp;</th>
+                                <?php endif; ?>
+                            <th class="col-custom" <?php echo $block->displayCustomsValue() ? '' : 'style="display: none;"' ?>>
+                                <?php echo __('Customs Value') ?>
+                            </th>
+                            <th class="col-total-weight"><?php echo __('Total Weight') ?></th>
+                            <th class="col-length"><?php echo __('Length') ?></th>
+                            <th class="col-width"><?php echo __('Width') ?></th>
+                            <th class="col-height"><?php echo __('Height') ?></th>
+                            <th>&nbsp;</th>
+                            <?php if ($block->getDeliveryConfirmationTypes()): ?>
+                            <th class="col-signature"><?php echo __('Signature Confirmation') ?></th>
+                                <?php endif; ?>
+                            <th class="col-actions">&nbsp;</th>
+                        </thead>
+                        <tbody>
+                            <td class="col-type">
+                                <?php $containers = $block->getContainers(); ?>
+                                <select name="package_container"
+                                        onchange="packaging.changeContainerType(this);packaging.checkSizeAndGirthParameter(this, <?php echo  $girthEnabled ?>);"
+                                        <?php if (empty($containers)):?>
+                                            title="<?php echo __('USPS domestic shipments don\'t use package types.') ?>"
+                                            disabled=""
+                                            class="admin__control-select disabled"
+                                        <?php else: ?>
+                                            class="admin__control-select"
+                                        <?php endif; ?>>
+                                    <?php foreach ($block->getContainers() as $key => $value): ?>
+                                        <option value="<?php echo $key ?>" >
+                                            <?php echo $value ?>
+                                        </option>
+                                    <?php endforeach; ?>
+                                </select>
+                            </td>
+                            <?php if ($girthEnabled == 1 && !empty($sizeSource)): ?>
+                            <td>
+                                <select name="package_size"
+                                        class="admin__control-select"
+                                        onchange="packaging.checkSizeAndGirthParameter(this, <?php echo  $girthEnabled ?>);">
+                                    <?php foreach ($sizeSource as $key => $value): ?>
+                                    <option value="<?php echo $sizeSource[$key]['value'] ?>">
+                                        <?php echo $sizeSource[$key]['label'] ?>
+                                    </option>
+                                    <?php endforeach; ?>
+                                </select>
+                            </td>
+                            <td>
+                                <input type="text"
+                                       class="input-text admin__control-text validate-greater-than-zero"
+                                       name="container_girth" />
+                            </td>
+                            <td>
+                                <select name="container_girth_dimension_units"
+                                        class="options-units-dimensions measures admin__control-select"
+                                        onchange="packaging.changeMeasures(this);">
+                                    <option value="<?php echo Zend_Measure_Length::INCH ?>" selected="selected" ><?php echo __('in') ?></option>
+                                    <option value="<?php echo Zend_Measure_Length::CENTIMETER ?>" ><?php echo __('cm') ?></option>
+                                </select>
+                            </td>
+                                <?php endif; ?>
+                            <?php
+                            if ($block->displayCustomsValue()) {
+                                $customsValueDisplay = '';
+                                $customsValueValidation = ' validate-zero-or-greater ';
+                            } else {
+                                $customsValueDisplay = ' style="display: none;" ';
+                                $customsValueValidation = '';
+                            }
+                            ?>
+                            <td class="col-custom" <?php echo $customsValueDisplay ?>>
+                                <input type="text"
+                                       class="customs-value input-text admin__control-text <?php echo $customsValueValidation ?>"
+                                       name="package_customs_value" />
+                                <span class="customs-value-currency">[<?php echo $block->getCustomValueCurrencyCode(); ?>]</span>
+                            </td>
+                            <td class="col-total-weight">
+                                <input type="text"
+                                       class="options-weight input-text admin__control-text required-entry validate-greater-than-zero"
+                                       name="container_weight" />
+                                <select name="container_weight_units"
+                                        class="options-units-weight measures admin__control-select"
+                                        onchange="packaging.changeMeasures(this);">
+                                    <option value="<?php echo Zend_Measure_Weight::POUND ?>" selected="selected"  ><?php echo __('lb') ?></option>
+                                    <option value="<?php echo Zend_Measure_Weight::KILOGRAM ?>" ><?php echo __('kg') ?></option>
+                                </select>
+                            </td>
+                            <td class="col-length">
+                                <input type="text"
+                                       class="input-text admin__control-text validate-greater-than-zero"
+                                       name="container_length" />
+                            </td>
+                            <td class="col-width">
+                                <input type="text"
+                                       class="input-text admin__control-text validate-greater-than-zero"
+                                       name="container_width" />
+                            </td>
+                            <td class="col-height">
+                                <input type="text"
+                                       class="input-text admin__control-text validate-greater-than-zero"
+                                       name="container_height" />
+                            </td>
+                            <td class="col-measure">
+                                <select name="container_dimension_units"
+                                        class="options-units-dimensions measures admin__control-select"
+                                        onchange="packaging.changeMeasures(this);">
+                                    <option value="<?php echo Zend_Measure_Length::INCH ?>" selected="selected" ><?php echo __('in') ?></option>
+                                    <option value="<?php echo Zend_Measure_Length::CENTIMETER ?>" ><?php echo __('cm') ?></option>
+                                </select>
+                            </td>
+                            <?php if ($block->getDeliveryConfirmationTypes()): ?>
+                            <td>
+                                <select name="delivery_confirmation_types" class="admin__control-select">
+                                    <?php foreach ($block->getDeliveryConfirmationTypes() as $key => $value): ?>
+                                    <option value="<?php echo $key ?>" >
+                                        <?php echo $value ?>
+                                    </option>
+                                    <?php endforeach; ?>
+                                </select>
+                            </td>
+                                <?php endif; ?>
+                            <td class="col-actions">
+                                <button type="button" class="action-add AddItemsBtn" onclick="packaging.getItemsForPack(this);">
+                                    <span><?php echo __('Add') ?></span>
+                                </button>
+                                <button type="button" class="action-delete DeletePackageBtn" onclick="packaging.deletePackage(this);">
+                                    <span><?php echo __('Delete Package') ?></span>
+                                </button>
+                            </td>
+                        </tbody>
+                    </table>
                 </div>
-                <table class="data-table" cellspacing="0">
-                    <thead>
-                        <th class="col-type"><?php echo __('Type') ?></th>
-                        <?php if ($girthEnabled == 1): ?>
-                        <th class="col-size"><?php echo __('Size') ?></th>
-                        <th class="col-girth"><?php echo __('Girth') ?></th>
-                        <th>&nbsp;</th>
-                            <?php endif; ?>
-                        <th class="col-custom" <?php echo $block->displayCustomsValue() ? '' : 'style="display: none;"' ?>>
-                            <?php echo __('Customs Value') ?>
-                        </th>
-                        <th class="col-total-weight"><?php echo __('Total Weight') ?></th>
-                        <th class="col-length"><?php echo __('Length') ?></th>
-                        <th class="col-width"><?php echo __('Width') ?></th>
-                        <th class="col-height"><?php echo __('Height') ?></th>
-                        <th>&nbsp;</th>
-                        <?php if ($block->getDeliveryConfirmationTypes()): ?>
-                        <th class="col-signature"><?php echo __('Signature Confirmation') ?></th>
-                            <?php endif; ?>
-                        <th class="col-actions">&nbsp;</th>
-                    </thead>
-                    <tbody>
-                        <td class="col-type">
-                            <?php $containers = $block->getContainers(); ?>
-                            <select name="package_container" onchange="packaging.changeContainerType(this);packaging.checkSizeAndGirthParameter(this, <?php echo  $girthEnabled ?>);"<?php if (empty($containers)):?>
-                                    title="<?php echo __('USPS domestic shipments don\'t use package types.') ?>"
-                                    disabled="" class="disabled"
-                                <?php endif; ?>>
-                                <?php foreach ($block->getContainers() as $key => $value): ?>
-                                <option value="<?php echo $key ?>" >
-                                    <?php echo $value ?>
-                                </option>
-                                <?php endforeach; ?>
-                            </select>
-                        </td>
-                        <?php if ($girthEnabled == 1 && !empty($sizeSource)): ?>
-                        <td>
-                            <select name="package_size" onchange="packaging.checkSizeAndGirthParameter(this, <?php echo  $girthEnabled ?>);">
-                                <?php foreach ($sizeSource as $key => $value): ?>
-                                <option value="<?php echo $sizeSource[$key]['value'] ?>">
-                                    <?php echo $sizeSource[$key]['label'] ?>
-                                </option>
-                                <?php endforeach; ?>
-                            </select>
-                        </td>
-                        <td><input type="text" class="input-text validate-greater-than-zero" name="container_girth" /></td>
-                        <td>
-                            <select name="container_girth_dimension_units" class="options-units-dimensions measures" onchange="packaging.changeMeasures(this);">
-                                <option value="<?php echo Zend_Measure_Length::INCH ?>" selected="selected" ><?php echo __('in') ?></option>
-                                <option value="<?php echo Zend_Measure_Length::CENTIMETER ?>" ><?php echo __('cm') ?></option>
-                            </select>
-                        </td>
-                            <?php endif; ?>
-                        <?php
-                        if ($block->displayCustomsValue()) {
-                            $customsValueDisplay = '';
-                            $customsValueValidation = ' validate-zero-or-greater ';
-                        } else {
-                            $customsValueDisplay = ' style="display: none;" ';
-                            $customsValueValidation = '';
-                        }
-                        ?>
-                        <td class="col-custom" <?php echo $customsValueDisplay ?>>
-                            <input type="text" class="customs-value input-text <?php echo $customsValueValidation ?>" name="package_customs_value" />
-                            <span class="customs-value-currency">[<?php echo $block->getCustomValueCurrencyCode(); ?>]</span>
-                        </td>
-                        <td class="col-total-weight">
-                            <input type="text" class="options-weight input-text required-entry validate-greater-than-zero" name="container_weight" />
-                            <select name="container_weight_units" class="options-units-weight measures" onchange="packaging.changeMeasures(this);">
-                                <option value="<?php echo Zend_Measure_Weight::POUND ?>" selected="selected"  ><?php echo __('lb') ?></option>
-                                <option value="<?php echo Zend_Measure_Weight::KILOGRAM ?>" ><?php echo __('kg') ?></option>
-                            </select>
-                        </td>
-                        <td class="col-length">
-                            <input type="text" class="input-text validate-greater-than-zero" name="container_length" />
-                        </td>
-                        <td class="col-width">
-                            <input type="text" class="input-text validate-greater-than-zero" name="container_width" />
-                        </td>
-                        <td class="col-height">
-                            <input type="text" class="input-text validate-greater-than-zero" name="container_height" />
-                        </td>
-                        <td class="col-measure">
-                            <select name="container_dimension_units" class="options-units-dimensions measures" onchange="packaging.changeMeasures(this);">
-                                <option value="<?php echo Zend_Measure_Length::INCH ?>" selected="selected" ><?php echo __('in') ?></option>
-                                <option value="<?php echo Zend_Measure_Length::CENTIMETER ?>" ><?php echo __('cm') ?></option>
-                            </select>
-                        </td>
-                        <?php if ($block->getDeliveryConfirmationTypes()): ?>
-                        <td>
-                            <select name="delivery_confirmation_types">
-                                <?php foreach ($block->getDeliveryConfirmationTypes() as $key => $value): ?>
-                                <option value="<?php echo $key ?>" >
-                                    <?php echo $value ?>
-                                </option>
-                                <?php endforeach; ?>
-                            </select>
-                        </td>
-                            <?php endif; ?>
-                        <td class="col-actions">
-                            <button type="button" class="action-add AddItemsBtn" onclick="packaging.getItemsForPack(this);">
-                                <span><?php echo __('Add Products') ?></span>
-                            </button>
-                            <button type="button" class="action-delete DeletePackageBtn" onclick="packaging.deletePackage(this);">
-                                <span><?php echo __('Delete Package') ?></span>
-                            </button>
-                        </td>
-                    </tbody>
-                </table>
 
                 <?php if ($block->getContentTypes()): ?>
-                <table class="package-options package-options-contents data-table" cellspacing="0">
-                    <thead>
-                        <th><?php echo __('Contents') ?></th>
-                        <th><?php echo __('Explanation') ?></th>
-                    </thead>
-                    <tbody>
-                        <td>
-                            <select name="content_type" onchange="packaging.changeContentTypes(this);">
-                                <?php foreach ($block->getContentTypes() as $key => $value): ?>
-                                <option value="<?php echo $key ?>" >
-                                    <?php echo $value ?>
-                                </option>
-                                <?php endforeach; ?>
-                            </select>
-                        </td>
-                        <td>
-                            <input name="content_type_other" type="text" class="input-text options-content-type disabled" disabled="disabled" />
-                        </td>
-                    </tbody>
-                </table>
+                    <table class="package-options package-options-contents data-table" cellspacing="0">
+                        <thead>
+                            <th><?php echo __('Contents') ?></th>
+                            <th><?php echo __('Explanation') ?></th>
+                        </thead>
+                        <tbody>
+                            <td>
+                                <select name="content_type"
+                                        class="admin__control-select"
+                                        onchange="packaging.changeContentTypes(this);">
+                                    <?php foreach ($block->getContentTypes() as $key => $value): ?>
+                                    <option value="<?php echo $key ?>" >
+                                        <?php echo $value ?>
+                                    </option>
+                                    <?php endforeach; ?>
+                                </select>
+                            </td>
+                            <td>
+                                <input name="content_type_other"
+                                       type="text"
+                                       class="input-text admin__control-text options-content-type disabled"
+                                       disabled="disabled" />
+                            </td>
+                        </tbody>
+                    </table>
                 <?php endif; ?>
                 <div class="package-add-products">
                     <div class="package_prapare" style="display:none">
@@ -214,7 +251,11 @@ require([
             <div id="packages_content"></div>
         </div>
         <div class="popup-window-buttons-set">
-            <button type="button" class="action-ok disabled SavePackagesBtn" disabled="disabled" onclick="packaging.confirmPackaging();" title="<?php echo __('Products should be added to package(s)')?>">
+            <button type="button"
+                    class="action-save action-secondary disabled SavePackagesBtn"
+                    disabled="disabled"
+                    onclick="packaging.confirmPackaging();"
+                    title="<?php echo __('Products should be added to package(s)')?>">
                 <span><?php echo __('OK') ?></span>
             </button>
             <button type="button" class="action-close" onclick="packaging.cancelPackaging();">
diff --git a/app/code/Magento/Shipping/view/adminhtml/templates/order/tracking.phtml b/app/code/Magento/Shipping/view/adminhtml/templates/order/tracking.phtml
index bf0b417d2bd8adcde2c95cb38c2db26c8be01a5d..cb8d042a65f47a3d149ac8c99efc87c4ab6d1872 100644
--- a/app/code/Magento/Shipping/view/adminhtml/templates/order/tracking.phtml
+++ b/app/code/Magento/Shipping/view/adminhtml/templates/order/tracking.phtml
@@ -64,34 +64,40 @@ require(['prototype'], function(){
 <script id="track_row_template" type="text/x-magento-template">
     <tr>
         <td class="col-carrier">
-            <select name="tracking[<%- data.index %>][carrier_code]" id="trackingC<%- data.index %>" class="select carrier" disabled="disabled">
+            <select name="tracking[<%- data.index %>][carrier_code]"
+                    id="trackingC<%- data.index %>"
+                    class="select admin__control-select carrier"
+                    disabled="disabled">
                 <?php foreach ($block->getCarriers() as $_code => $_name): ?>
                     <option value="<?php echo $_code ?>"><?php echo $block->escapeHtml($_name) ?></option>
                 <?php endforeach; ?>
             </select>
         </td>
-        <td class="col-title"><input class="input-text number-title" type="text" name="tracking[<%- data.index %>][title]" id="trackingT<%- data.index %>" value="" disabled="disabled" /></td>
-        <td class="col-number"><input class="input-text required-entry" type="text" name="tracking[<%- data.index %>][number]" id="trackingN<%- data.index %>" value="" disabled="disabled" /></td>
-        <td class="col-delete last"><a href="#" class="action- delete" onclick="trackingControl.deleteRow(event);return false"><span><?php echo __('Delete') ?></span></a></td>
+        <td class="col-title"><input class="input-text admin__control-text number-title" type="text" name="tracking[<%- data.index %>][title]" id="trackingT<%- data.index %>" value="" disabled="disabled" /></td>
+        <td class="col-number"><input class="input-text admin__control-text required-entry" type="text" name="tracking[<%- data.index %>][number]" id="trackingN<%- data.index %>" value="" disabled="disabled" /></td>
+        <td class="col-delete"><a href="#" class="action-delete" onclick="trackingControl.deleteRow(event);return false"><span><?php echo __('Delete') ?></span></a></td>
     </tr>
 </script>
-<table cellspacing="0" class="data-table" id="tracking_numbers_table">
-    <thead>
-    <tr class="headings">
-        <th class="col-carrier"><?php echo __('Carrier') ?></th>
-        <th class="col-title"><?php echo __('Title') ?></th>
-        <th class="col-number"><?php echo __('Number') ?></th>
-        <th class="col-delete last"><?php echo __('Action') ?></th>
-    </tr>
-    </thead>
-    <tfoot>
-    <tr>
-        <td colspan="4" class="last col-actions-add"><?php echo $block->getChildHtml('add_button') ?></td>
-    </tr>
-    </tfoot>
-    <tbody id="track_row_container">
-    </tbody>
-</table>
+
+<div class="admin__control-table-wrapper">
+    <table class="data-table admin__control-table" id="tracking_numbers_table">
+        <thead>
+        <tr class="headings">
+            <th class="col-carrier"><?php echo __('Carrier') ?></th>
+            <th class="col-title"><?php echo __('Title') ?></th>
+            <th class="col-number"><?php echo __('Number') ?></th>
+            <th class="col-delete"><?php echo __('Action') ?></th>
+        </tr>
+        </thead>
+        <tfoot>
+        <tr>
+            <td colspan="4" class="col-actions-add"><?php echo $block->getChildHtml('add_button') ?></td>
+        </tr>
+        </tfoot>
+        <tbody id="track_row_container">
+        </tbody>
+    </table>
+</div>
 <script>
 require([
     'mage/template',
diff --git a/app/code/Magento/Shipping/view/adminhtml/templates/order/view/info.phtml b/app/code/Magento/Shipping/view/adminhtml/templates/order/view/info.phtml
index e527501f2e5414cfb1001445b8b43d9cfbe3f544..53ce09410322557fa80728cfe384be1d82f958ef 100644
--- a/app/code/Magento/Shipping/view/adminhtml/templates/order/view/info.phtml
+++ b/app/code/Magento/Shipping/view/adminhtml/templates/order/view/info.phtml
@@ -10,33 +10,32 @@
 <?php /** @var $block \Magento\Shipping\Block\Adminhtml\View */ ?>
 <?php $order = $block->getOrder() ?>
 <?php if ($order->getIsVirtual()) : return '';endif; ?>
-<div class="order-shipping-method">
-    <!--Shipping Method-->
-    <div class="fieldset-wrapper">
-        <div class="fieldset-wrapper-title">
-            <span class="title"><?php echo __('Shipping &amp; Handling Information') ?></span>
-        </div>
-        <div class="shipping-description-wrapper">
-            <?php  if ($order->getTracksCollection()->count()) : ?>
-                <p><a href="#" id="linkId" onclick="popWin('<?php echo $this->helper('Magento\Shipping\Helper\Data')->getTrackingPopupUrlBySalesModel($order) ?>','trackorder','width=800,height=600,resizable=yes,scrollbars=yes')" title="<?php echo __('Track Order') ?>"><?php echo __('Track Order') ?></a></p>
-            <?php endif; ?>
-            <?php if ($order->getShippingDescription()): ?>
-                <strong><?php echo $block->escapeHtml($order->getShippingDescription()) ?></strong>
 
-                <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingPriceIncludingTax()): ?>
-                    <?php $_excl = $block->displayShippingPriceInclTax($order); ?>
-                <?php else: ?>
-                    <?php $_excl = $block->displayPriceAttribute('shipping_amount', false, ' '); ?>
-                <?php endif; ?>
-                <?php $_incl = $block->displayShippingPriceInclTax($order); ?>
+<?php /* Shipping Method */ ?>
+<div class="admin__page-section-item order-shipping-method">
+    <div class="admin__page-section-item-title">
+        <span class="title"><?php echo __('Shipping &amp; Handling Information') ?></span>
+    </div>
+    <div class="admin__page-section-item-content">
+        <?php  if ($order->getTracksCollection()->count()) : ?>
+            <p><a href="#" id="linkId" onclick="popWin('<?php echo $this->helper('Magento\Shipping\Helper\Data')->getTrackingPopupUrlBySalesModel($order) ?>','trackorder','width=800,height=600,resizable=yes,scrollbars=yes')" title="<?php echo __('Track Order') ?>"><?php echo __('Track Order') ?></a></p>
+        <?php endif; ?>
+        <?php if ($order->getShippingDescription()): ?>
+            <strong><?php echo $block->escapeHtml($order->getShippingDescription()) ?></strong>
 
-                <?php echo $_excl; ?>
-                <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingBothPrices() && $_incl != $_excl): ?>
-                    (<?php echo __('Incl. Tax'); ?> <?php echo $_incl; ?>)
-                <?php endif; ?>
+            <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingPriceIncludingTax()): ?>
+                <?php $_excl = $block->displayShippingPriceInclTax($order); ?>
             <?php else: ?>
-                <?php echo __('No shipping information available'); ?>
+                <?php $_excl = $block->displayPriceAttribute('shipping_amount', false, ' '); ?>
+            <?php endif; ?>
+            <?php $_incl = $block->displayShippingPriceInclTax($order); ?>
+
+            <?php echo $_excl; ?>
+            <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingBothPrices() && $_incl != $_excl): ?>
+                (<?php echo __('Incl. Tax'); ?> <?php echo $_incl; ?>)
             <?php endif; ?>
-        </div>
+        <?php else: ?>
+            <?php echo __('No shipping information available'); ?>
+        <?php endif; ?>
     </div>
 </div>
diff --git a/app/code/Magento/Shipping/view/adminhtml/templates/view/form.phtml b/app/code/Magento/Shipping/view/adminhtml/templates/view/form.phtml
index 7a777c90d468a360a1279cdbccc9f333e8d4d4f4..16dc0556a52a2bdad4ad53a86293f6e842737f38 100644
--- a/app/code/Magento/Shipping/view/adminhtml/templates/view/form.phtml
+++ b/app/code/Magento/Shipping/view/adminhtml/templates/view/form.phtml
@@ -9,94 +9,110 @@
 ?>
 <?php  $_order = $block->getShipment()->getOrder() ?>
 <?php echo $block->getChildHtml('order_info') ?>
-<div class="clearfix">
-    <div class="order-payment-method">
+<section class="admin__page-section order-shipment-billing-shipping">
+    <div class="admin__page-section-title">
+        <span class="title"><?php echo __('Payment &amp; Shipping Method') ?></span>
+    </div>
+    <div class="admin__page-section-content">
+
         <?php /* Billing Address */ ?>
-        <div class="fieldset-wrapper">
-            <div class="fieldset-wrapper-title">
+        <div class="admin__page-section-item order-payment-method">
+            <div class="admin__page-section-item-title">
                 <span class="title"><?php echo __('Payment Information') ?></span>
             </div>
-            <div><?php echo $block->getChildHtml('order_payment') ?></div>
-            <div class="order-payment-currency"><?php echo __('The order was placed using %1.', $_order->getOrderCurrencyCode()) ?></div>
+            <div class="admin__page-section-item-content">
+                <div><?php echo $block->getChildHtml('order_payment') ?></div>
+                <div class="order-payment-currency"><?php echo __('The order was placed using %1.', $_order->getOrderCurrencyCode()) ?></div>
+            </div>
         </div>
-    </div>
-    <div class="order-shipping-address">
+
         <?php /* Shipping Address */ ?>
-        <div class="fieldset-wrapper">
-            <div class="fieldset-wrapper-title">
+        <div class="admin__page-section-item order-shipping-address">
+            <div class="admin__page-section-item-title">
                 <span class="title"><?php echo __('Shipping and Tracking Information') ?></span>
             </div>
-            <div class="shipping-description-wrapper">
-                <?php if ($block->getShipment()->getTracksCollection()->count()): ?>
-                <p>
-                    <a href="#" id="linkId" onclick="popWin('<?php echo $this->helper('Magento\Shipping\Helper\Data')->getTrackingPopupUrlBySalesModel($block->getShipment()) ?>','trackshipment','width=800,height=600,resizable=yes,scrollbars=yes')" title="<?php echo __('Track this shipment') ?>"><?php echo __('Track this shipment') ?></a>
-                </p>
-                <?php endif; ?>
-                <div class="shipping-description-title"><?php echo $block->escapeHtml($_order->getShippingDescription()) ?></div>
-                <?php echo __('Total Shipping Charges'); ?>:
+            <div class="admin__page-section-item-content">
+                <div class="shipping-description-wrapper">
+                    <?php if ($block->getShipment()->getTracksCollection()->count()): ?>
+                        <p>
+                            <a href="#" id="linkId" onclick="popWin('<?php echo $this->helper('Magento\Shipping\Helper\Data')->getTrackingPopupUrlBySalesModel($block->getShipment()) ?>','trackshipment','width=800,height=600,resizable=yes,scrollbars=yes')" title="<?php echo __('Track this shipment') ?>"><?php echo __('Track this shipment') ?></a>
+                        </p>
+                    <?php endif; ?>
+                    <div class="shipping-description-title">
+                        <?php echo $block->escapeHtml($_order->getShippingDescription()) ?>
+                    </div>
 
-                <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingPriceIncludingTax()): ?>
-                    <?php $_excl = $block->displayShippingPriceInclTax($_order); ?>
-                <?php else: ?>
-                    <?php $_excl = $block->displayPriceAttribute('shipping_amount', false, ' '); ?>
-                <?php endif; ?>
-                <?php $_incl = $block->displayShippingPriceInclTax($_order); ?>
+                    <?php echo __('Total Shipping Charges'); ?>:
 
-                <?php echo $_excl; ?>
-                <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingBothPrices() && $_incl != $_excl): ?>
-                    (<?php echo __('Incl. Tax'); ?> <?php echo $_incl; ?>)
-                <?php endif; ?>
-            </div>
-            <?php if ($block->canCreateShippingLabel()): ?>
-            <p>
-                <?php echo $block->getCreateLabelButton()?>
-                <?php if ($block->getShipment()->getShippingLabel()): ?>
-                    <?php echo $block->getPrintLabelButton() ?>
-                <?php endif ?>
-                <?php if ($block->getShipment()->getPackages()): ?>
-                    <?php echo $block->getShowPackagesButton() ?>
+                    <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingPriceIncludingTax()): ?>
+                        <?php $_excl = $block->displayShippingPriceInclTax($_order); ?>
+                    <?php else: ?>
+                        <?php $_excl = $block->displayPriceAttribute('shipping_amount', false, ' '); ?>
+                    <?php endif; ?>
+                    <?php $_incl = $block->displayShippingPriceInclTax($_order); ?>
+
+                    <?php echo $_excl; ?>
+                    <?php if ($this->helper('Magento\Tax\Helper\Data')->displayShippingBothPrices() && $_incl != $_excl): ?>
+                        (<?php echo __('Incl. Tax'); ?> <?php echo $_incl; ?>)
+                    <?php endif; ?>
+                </div>
+                <?php if ($block->canCreateShippingLabel()): ?>
+                <p>
+                    <?php echo $block->getCreateLabelButton()?>
+                    <?php if ($block->getShipment()->getShippingLabel()): ?>
+                        <?php echo $block->getPrintLabelButton() ?>
+                    <?php endif ?>
+                    <?php if ($block->getShipment()->getPackages()): ?>
+                        <?php echo $block->getShowPackagesButton() ?>
+                    <?php endif ?>
+                </p>
                 <?php endif ?>
-            </p>
-            <?php endif ?>
-            <div><?php echo $block->getChildHtml('shipment_tracking') ?></div>
-        <?php echo $block->getChildHtml('shipment_packaging') ?>
-        <script>
-require([
-    'prototype'
-], function(){
+                <?php echo $block->getChildHtml('shipment_tracking') ?>
 
-    setTimeout(function(){
-        packaging.setConfirmPackagingCallback(function(){
-            packaging.sendCreateLabelRequest();
-        });
-        packaging.setLabelCreatedCallback(function(response){
-            setLocation("<?php echo $block->getUrl(
-                'adminhtml/order_shipment/view',
-                ['shipment_id' => $block->getShipment()->getId()]
-            ); ?>");
-        });
-    }, 500);
+                <?php echo $block->getChildHtml('shipment_packaging') ?>
+<script>
+    require([
+        'prototype'
+    ], function () {
 
-});
+        setTimeout(function () {
+            packaging.setConfirmPackagingCallback(function () {
+                packaging.sendCreateLabelRequest();
+            });
+            packaging.setLabelCreatedCallback(function (response) {
+                setLocation("<?php echo $block->getUrl(
+'adminhtml/order_shipment/view',
+['shipment_id' => $block->getShipment()->getId()]
+); ?>");
+            });
+        }, 500);
+
+    });
 </script>
+            </div>
         </div>
     </div>
-</div>
+</section>
 
-<div class="fieldset-wrapper">
-    <div class="fieldset-wrapper-title">
+<section class="admin__page-section">
+    <div class="admin__page-section-title">
         <span class="title"><?php echo __('Items Shipped') ?></span>
     </div>
     <?php echo $block->getChildHtml('shipment_items') ?>
-</div>
+</section>
 
-<div class="clearfix">
-    <?php echo $block->getChildHtml('shipment_packed') ?>
+<section class="admin__page-section">
+    <div class="admin__page-section-title">
+        <span class="title"><?php echo __('Order Total') ?></span>
+    </div>
+    <div class="admin__page-section-content">
+        <?php echo $block->getChildHtml('shipment_packed') ?>
 
-    <div class="order-comments-history">
-        <div class="fieldset-wrapper">
-            <div class="fieldset-wrapper-title"><span class="title"><?php echo __('Shipment History') ?></span></div>
-            <fieldset><?php echo $block->getChildHtml('order_comments') ?></fieldset>
+        <div class="admin__page-section-item order-comments-history">
+            <div class="admin__page-section-item-title">
+                <span class="title"><?php echo __('Shipment History') ?></span>
+            </div>
+            <div class="admin__page-section-item-content"><?php echo $block->getChildHtml('order_comments') ?></div>
         </div>
     </div>
-</div>
+</section>
diff --git a/app/code/Magento/Shipping/view/adminhtml/templates/view/items.phtml b/app/code/Magento/Shipping/view/adminhtml/templates/view/items.phtml
index 4b1d0f39d52bc9a77a7d69ed882368aa6fcdc7dd..1ebeae21eb75e8c9201b4a1c91df6c3d5eb09d6c 100644
--- a/app/code/Magento/Shipping/view/adminhtml/templates/view/items.phtml
+++ b/app/code/Magento/Shipping/view/adminhtml/templates/view/items.phtml
@@ -8,7 +8,7 @@
 
 ?>
 <div class="grid">
-    <table cellspacing="0" class="data">
+    <table class="data-table admin__table-primary order-shipment-table">
         <thead>
             <tr class="headings">
                 <th class="col-product"><span><?php echo __('Product') ?></span></th>
diff --git a/app/code/Magento/Shipping/view/adminhtml/web/order/packaging.js b/app/code/Magento/Shipping/view/adminhtml/web/order/packaging.js
index 566b01dc6e894f41d5521a2c958e05e4b0356c41..fca9b0553afa7a9de06030524a0259bdc4bca504 100644
--- a/app/code/Magento/Shipping/view/adminhtml/web/order/packaging.js
+++ b/app/code/Magento/Shipping/view/adminhtml/web/order/packaging.js
@@ -18,7 +18,7 @@ Packaging.prototype = {
         this.errorQtyOverLimit = params.errorQtyOverLimit;
         this.titleDisabledSaveBtn = params.titleDisabledSaveBtn;
         this.window = $('packaging_window');
-        this.messages = this.window.select('.messages')[0];
+        this.messages = this.window.select('.message-warning')[0];
         this.packagesContent = $('packages_content');
         this.template = $('package_template');
         this.paramsCreateLabelRequest = {};
diff --git a/app/code/Magento/Sitemap/composer.json b/app/code/Magento/Sitemap/composer.json
index 46098d8633ade3567d9300bdaf9ee109efdcf733..1fa5a0e4091d5cbbe06a12b2229f626960b65e15 100644
--- a/app/code/Magento/Sitemap/composer.json
+++ b/app/code/Magento/Sitemap/composer.json
@@ -3,18 +3,18 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-cms": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-catalog-url-rewrite": "0.74.0-beta5",
-        "magento/module-media-storage": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-cms": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-catalog-url-rewrite": "0.74.0-beta6",
+        "magento/module-media-storage": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Store/composer.json b/app/code/Magento/Store/composer.json
index 051797de489a84446cf95e0913dd6eb5b0a53196..d2c3e97181c1e980a0406709dd6c35b74a84a344 100644
--- a/app/code/Magento/Store/composer.json
+++ b/app/code/Magento/Store/composer.json
@@ -3,15 +3,15 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-ui": "0.74.0-beta5",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-media-storage": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-ui": "0.74.0-beta6",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-media-storage": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate.php
index 7fce6e7e37d8f1d73045a7274b67efdd0e972d9a..21a165edf65bf48964f43da33811e285fcbdfffe 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate.php
@@ -6,6 +6,8 @@
 
 namespace Magento\Tax\Controller\Adminhtml;
 
+use Magento\Framework\Controller\ResultFactory;
+
 /**
  * Adminhtml tax rate controller
  *
@@ -76,21 +78,15 @@ class Rate extends \Magento\Backend\App\Action
     /**
      * Initialize action
      *
-     * @return \Magento\Backend\App\Action
+     * @return \Magento\Backend\Model\View\Result\Page
      */
-    protected function _initAction()
+    protected function initResultPage()
     {
-        $this->_view->loadLayout();
-        $this->_setActiveMenu(
-            'Magento_Tax::sales_tax_rates'
-        )->_addBreadcrumb(
-            __('Sales'),
-            __('Sales')
-        )->_addBreadcrumb(
-            __('Tax'),
-            __('Tax')
-        );
-        return $this;
+        $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
+        $resultPage->setActiveMenu('Magento_Tax::sales_tax_rates')
+            ->addBreadcrumb(__('Sales'), __('Sales'))
+            ->addBreadcrumb(__('Tax'), __('Tax'));
+        return $resultPage;
     }
 
     /**
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Add.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Add.php
index 6b90cbf270fdfed7a610a436104a2ef5d1e5c8e6..2fe8a5b1572e38dcf05676653a2fd8d633ca38ed 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Add.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Add.php
@@ -13,7 +13,7 @@ class Add extends \Magento\Tax\Controller\Adminhtml\Rate
     /**
      * Show Add Form
      *
-     * @return void
+     * @return \Magento\Backend\Model\View\Result\Page
      */
     public function execute()
     {
@@ -22,26 +22,18 @@ class Add extends \Magento\Tax\Controller\Adminhtml\Rate
             $this->_objectManager->get('Magento\Backend\Model\Session')->getFormData(true)
         );
 
-        $this->_initAction()->_addBreadcrumb(
-            __('Manage Tax Rates'),
-            __('Manage Tax Rates'),
-            $this->getUrl('tax/rate')
-        )->_addBreadcrumb(
-            __('New Tax Rate'),
-            __('New Tax Rate')
-        )->_addContent(
-            $this->_view->getLayout()->createBlock(
-                'Magento\Tax\Block\Adminhtml\Rate\Toolbar\Save'
-            )->assign(
-                'header',
-                __('Add New Tax Rate')
-            )->assign(
-                'form',
-                $this->_view->getLayout()->createBlock('Magento\Tax\Block\Adminhtml\Rate\Form', 'tax_rate_form')
-            )
-        );
-        $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Tax Zones and Rates'));
-        $this->_view->getPage()->getConfig()->getTitle()->prepend(__('New Tax Rate'));
-        $this->_view->renderLayout();
+        $resultPage = $this->initResultPage();
+        $layout = $resultPage->getLayout();
+        $toolbarSaveBlock = $layout->createBlock('Magento\Tax\Block\Adminhtml\Rate\Toolbar\Save')
+            ->assign('header', __('Add New Tax Rate'))
+            ->assign('form', $layout->createBlock('Magento\Tax\Block\Adminhtml\Rate\Form', 'tax_rate_form'));
+
+        $resultPage->addBreadcrumb(__('Manage Tax Rates'), __('Manage Tax Rates'), $this->getUrl('tax/rate'))
+            ->addBreadcrumb(__('New Tax Rate'), __('New Tax Rate'))
+            ->addContent($toolbarSaveBlock);
+
+        $resultPage->getConfig()->getTitle()->prepend(__('Tax Zones and Rates'));
+        $resultPage->getConfig()->getTitle()->prepend(__('New Tax Rate'));
+        return $resultPage;
     }
 }
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxDelete.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxDelete.php
index fd09d178fcd755d362a1e831257dfdba6e84e182..7d5e8285ebbe6792357da00fbf158182051e69fc 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxDelete.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxDelete.php
@@ -6,36 +6,33 @@
  */
 namespace Magento\Tax\Controller\Adminhtml\Rate;
 
+use Magento\Framework\Controller\ResultFactory;
+
 class AjaxDelete extends \Magento\Tax\Controller\Adminhtml\Rate
 {
     /**
      * Delete Tax Rate via AJAX
      *
-     * @return void
+     * @return \Magento\Framework\Controller\Result\Json
      */
     public function execute()
     {
         $rateId = (int)$this->getRequest()->getParam('tax_calculation_rate_id');
         try {
             $this->_taxRateRepository->deleteById($rateId);
-            $responseContent = $this->_objectManager->get(
-                'Magento\Framework\Json\Helper\Data'
-            )->jsonEncode(
-                ['success' => true, 'error_message' => '']
-            );
+            $responseContent = ['success' => true, 'error_message' => ''];
         } catch (\Magento\Framework\Exception\LocalizedException $e) {
-            $responseContent = $this->_objectManager->get(
-                'Magento\Framework\Json\Helper\Data'
-            )->jsonEncode(
-                ['success' => false, 'error_message' => $e->getMessage()]
-            );
+            $responseContent = ['success' => false, 'error_message' => $e->getMessage()];
         } catch (\Exception $e) {
-            $responseContent = $this->_objectManager->get(
-                'Magento\Framework\Json\Helper\Data'
-            )->jsonEncode(
-                ['success' => false, 'error_message' => __('An error occurred while deleting this tax rate.')]
-            );
+            $responseContent = [
+                'success' => false,
+                'error_message' => __('An error occurred while deleting this tax rate.')
+            ];
         }
-        $this->getResponse()->representJson($responseContent);
+
+        /** @var \Magento\Framework\Controller\Result\Json $resultJson */
+        $resultJson = $this->resultFactory->create(ResultFactory::TYPE_JSON);
+        $resultJson->setData($responseContent);
+        return $resultJson;
     }
 }
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxSave.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxSave.php
index e78dc538074af4c59adb3ba4f02abe273059b2da..fd5471314d2d7066ae4462d3276dfcf0c55bb193 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxSave.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/AjaxSave.php
@@ -6,54 +6,47 @@
  */
 namespace Magento\Tax\Controller\Adminhtml\Rate;
 
+use Magento\Framework\Controller\ResultFactory;
+
 class AjaxSave extends \Magento\Tax\Controller\Adminhtml\Rate
 {
     /**
      * Save Tax Rate via AJAX
      *
-     * @return void
+     * @return \Magento\Framework\Controller\Result\Json
      */
     public function execute()
     {
-        $responseContent = '';
         try {
             $rateData = $this->_processRateData($this->getRequest()->getPostValue());
             /** @var \Magento\Tax\Api\Data\TaxRateInterface  $taxRate */
             $taxRate = $this->populateTaxRateData($rateData);
             $this->_taxRateRepository->save($taxRate);
-            $responseContent = $this->_objectManager->get(
-                'Magento\Framework\Json\Helper\Data'
-            )->jsonEncode(
-                [
-                    'success' => true,
-                    'error_message' => '',
-                    'tax_calculation_rate_id' => $taxRate->getId(),
-                    'code' => $taxRate->getCode(),
-                ]
-            );
+            $responseContent = [
+                'success' => true,
+                'error_message' => '',
+                'tax_calculation_rate_id' => $taxRate->getId(),
+                'code' => $taxRate->getCode(),
+            ];
         } catch (\Magento\Framework\Exception\LocalizedException $e) {
-            $responseContent = $this->_objectManager->get(
-                'Magento\Framework\Json\Helper\Data'
-            )->jsonEncode(
-                [
-                    'success' => false,
-                    'error_message' => $e->getMessage(),
-                    'tax_calculation_rate_id' => '',
-                    'code' => '',
-                ]
-            );
+            $responseContent = [
+                'success' => false,
+                'error_message' => $e->getMessage(),
+                'tax_calculation_rate_id' => '',
+                'code' => '',
+            ];
         } catch (\Exception $e) {
-            $responseContent = $this->_objectManager->get(
-                'Magento\Framework\Json\Helper\Data'
-            )->jsonEncode(
-                [
-                    'success' => false,
-                    'error_message' => __('Something went wrong saving this rate.'),
-                    'tax_calculation_rate_id' => '',
-                    'code' => '',
-                ]
-            );
+            $responseContent = [
+                'success' => false,
+                'error_message' => __('Something went wrong saving this rate.'),
+                'tax_calculation_rate_id' => '',
+                'code' => '',
+            ];
         }
-        $this->getResponse()->representJson($responseContent);
+
+        /** @var \Magento\Framework\Controller\Result\Json $resultJson */
+        $resultJson = $this->resultFactory->create(ResultFactory::TYPE_JSON);
+        $resultJson->setData($responseContent);
+        return $resultJson;
     }
 }
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Delete.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Delete.php
index bcf14907b4eff3410da0d7a637f2fb7554a00f57..9ee9be000e87c91ed034f8158df818bd74fa1897 100755
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Delete.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Delete.php
@@ -7,6 +7,7 @@
 namespace Magento\Tax\Controller\Adminhtml\Rate;
 
 use Magento\Framework\Exception\NoSuchEntityException;
+use Magento\Framework\Controller\ResultFactory;
 
 class Delete extends \Magento\Tax\Controller\Adminhtml\Rate
 {
@@ -18,20 +19,19 @@ class Delete extends \Magento\Tax\Controller\Adminhtml\Rate
     public function execute()
     {
         if ($rateId = $this->getRequest()->getParam('rate')) {
+            /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
+            $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
             try {
                 $this->_taxRateRepository->deleteById($rateId);
 
                 $this->messageManager->addSuccess(__('The tax rate has been deleted.'));
-                $this->getResponse()->setRedirect($this->getUrl("*/*/"));
-                return;
+                return $resultRedirect->setPath("*/*/");
             } catch (NoSuchEntityException $e) {
                 $this->messageManager->addError(
                     __('Something went wrong deleting this rate because of an incorrect rate ID.')
                 );
-                $this->getResponse()->setRedirect($this->getUrl('tax/*/'));
-                return;
+                return $resultRedirect->setPath("tax/*/");
             }
-            return $this->getDefaultResult();
         }
     }
 
@@ -42,11 +42,11 @@ class Delete extends \Magento\Tax\Controller\Adminhtml\Rate
      */
     public function getDefaultResult()
     {
-        $resultRedirect = $this->resultRedirectFactory->create();
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
         if ($this->getRequest()->getServer('HTTP_REFERER')) {
             $resultRedirect->setRefererUrl();
         } else {
-            $resultRedirect->setUrl($this->getUrl("*/*/"));
+            $resultRedirect->setPath("*/*/");
         }
         return $resultRedirect;
     }
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Edit.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Edit.php
index 27d8003a4b22b760a015dd7aaaf1054217f3fd2c..e13ae2293e6c22bb6ec6e3493b0d6798864decd9 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Edit.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Edit.php
@@ -8,13 +8,14 @@ namespace Magento\Tax\Controller\Adminhtml\Rate;
 
 use Magento\Framework\Exception\NoSuchEntityException;
 use Magento\Tax\Controller\RegistryConstants;
+use Magento\Framework\Controller\ResultFactory;
 
 class Edit extends \Magento\Tax\Controller\Adminhtml\Rate
 {
     /**
      * Show Edit Form
      *
-     * @return void
+     * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Redirect
      */
     public function execute()
     {
@@ -23,35 +24,27 @@ class Edit extends \Magento\Tax\Controller\Adminhtml\Rate
         try {
             $taxRateDataObject = $this->_taxRateRepository->get($rateId);
         } catch (NoSuchEntityException $e) {
-            $this->getResponse()->setRedirect($this->getUrl("*/*/"));
-            return;
+            /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
+            $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
+            return $resultRedirect->setPath("*/*/");
         }
 
-        $this->_initAction()->_addBreadcrumb(
-            __('Manage Tax Rates'),
-            __('Manage Tax Rates'),
-            $this->getUrl('tax/rate')
-        )->_addBreadcrumb(
-            __('Edit Tax Rate'),
-            __('Edit Tax Rate')
-        )->_addContent(
-            $this->_view->getLayout()->createBlock(
-                'Magento\Tax\Block\Adminhtml\Rate\Toolbar\Save'
-            )->assign(
-                'header',
-                __('Edit Tax Rate')
-            )->assign(
+        $resultPage = $this->initResultPage();
+        $layout = $resultPage->getLayout();
+
+        $toolbarSaveBlock = $layout->createBlock('Magento\Tax\Block\Adminhtml\Rate\Toolbar\Save')
+            ->assign('header', __('Edit Tax Rate'))
+            ->assign(
                 'form',
-                $this->_view->getLayout()->createBlock(
-                    'Magento\Tax\Block\Adminhtml\Rate\Form',
-                    'tax_rate_form'
-                )->setShowLegend(
-                    true
-                )
-            )
-        );
-        $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Tax Zones and Rates'));
-        $this->_view->getPage()->getConfig()->getTitle()->prepend(sprintf("%s", $taxRateDataObject->getCode()));
-        $this->_view->renderLayout();
+                $layout->createBlock('Magento\Tax\Block\Adminhtml\Rate\Form', 'tax_rate_form')->setShowLegend(true)
+            );
+
+        $resultPage->addBreadcrumb(__('Manage Tax Rates'), __('Manage Tax Rates'), $this->getUrl('tax/rate'))
+            ->addBreadcrumb(__('Edit Tax Rate'), __('Edit Tax Rate'))
+            ->addContent($toolbarSaveBlock);
+
+        $resultPage->getConfig()->getTitle()->prepend(__('Tax Zones and Rates'));
+        $resultPage->getConfig()->getTitle()->prepend(sprintf("%s", $taxRateDataObject->getCode()));
+        return $resultPage;
     }
 }
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Index.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Index.php
index 17e1349e4f05aa59274a4c841e3c504c79d5dcd0..d38d6ddd9af1407a69f268cb085eafcf9d84ad77 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Index.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Index.php
@@ -11,12 +11,13 @@ class Index extends \Magento\Tax\Controller\Adminhtml\Rate
     /**
      * Show Main Grid
      *
-     * @return void
+     * @return \Magento\Backend\Model\View\Result\Page
      */
     public function execute()
     {
-        $this->_initAction()->_addBreadcrumb(__('Manage Tax Rates'), __('Manage Tax Rates'));
-        $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Tax Zones and Rates'));
-        $this->_view->renderLayout();
+        $resultPage = $this->initResultPage();
+        $resultPage->addBreadcrumb(__('Manage Tax Rates'), __('Manage Tax Rates'));
+        $resultPage->getConfig()->getTitle()->prepend(__('Tax Zones and Rates'));
+        return $resultPage;
     }
 }
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Save.php b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Save.php
index 8a7e1cba1c0c49b6c3c86117e2101c217b023258..e56a31a4d348942962cb96a04f4f598bbbdaf4f3 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rate/Save.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rate/Save.php
@@ -7,16 +7,19 @@
 namespace Magento\Tax\Controller\Adminhtml\Rate;
 
 use Magento\Framework\Exception\NoSuchEntityException;
+use Magento\Framework\Controller\ResultFactory;
 
 class Save extends \Magento\Tax\Controller\Adminhtml\Rate
 {
     /**
      * Save Rate and Data
      *
-     * @return void
+     * @return \Magento\Backend\Model\View\Result\Redirect
      */
     public function execute()
     {
+        /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
         $ratePost = $this->getRequest()->getPostValue();
         if ($ratePost) {
             $rateId = $this->getRequest()->getParam('tax_calculation_rate_id');
@@ -33,18 +36,15 @@ class Save extends \Magento\Tax\Controller\Adminhtml\Rate
                 $this->_taxRateRepository->save($taxData);
 
                 $this->messageManager->addSuccess(__('The tax rate has been saved.'));
-                $this->getResponse()->setRedirect($this->getUrl("*/*/"));
-                return;
+                return $resultRedirect->setPath('*/*/');
             } catch (\Magento\Framework\Exception\LocalizedException $e) {
                 $this->_objectManager->get('Magento\Backend\Model\Session')->setFormData($ratePost);
                 $this->messageManager->addError($e->getMessage());
             } catch (\Exception $e) {
                 $this->messageManager->addError($e->getMessage());
             }
-
-            $this->getResponse()->setRedirect($this->_redirect->getRedirectUrl($this->getUrl('*')));
-            return;
+            return $resultRedirect->setUrl($this->_redirect->getRedirectUrl($this->getUrl('*')));
         }
-        $this->getResponse()->setRedirect($this->getUrl('tax/rate'));
+        return $resultRedirect->setPath('tax/rate');
     }
 }
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rule.php b/app/code/Magento/Tax/Controller/Adminhtml/Rule.php
index 577babe2ae7a01a64ba730f0d44e344e48a02555..f4a88b5f036653086711718297624377d27bfd53 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rule.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rule.php
@@ -12,6 +12,7 @@
 namespace Magento\Tax\Controller\Adminhtml;
 
 use Magento\Backend\App\Action;
+use Magento\Framework\Controller\ResultFactory;
 
 class Rule extends \Magento\Backend\App\Action
 {
@@ -49,21 +50,15 @@ class Rule extends \Magento\Backend\App\Action
     /**
      * Initialize action
      *
-     * @return $this
+     * @return \Magento\Backend\Model\View\Result\Page
      */
-    protected function _initAction()
+    protected function initResultPage()
     {
-        $this->_view->loadLayout();
-        $this->_setActiveMenu(
-            'Magento_Tax::sales_tax_rules'
-        )->_addBreadcrumb(
-            __('Tax'),
-            __('Tax')
-        )->_addBreadcrumb(
-            __('Tax Rules'),
-            __('Tax Rules')
-        );
-        return $this;
+        $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
+        $resultPage->setActiveMenu('Magento_Tax::sales_tax_rules')
+            ->addBreadcrumb(__('Tax'), __('Tax'))
+            ->addBreadcrumb(__('Tax Rules'), __('Tax Rules'));
+        return $resultPage;
     }
 
     /**
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Delete.php b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Delete.php
index 4fff21c62f6352e4c1c4ac14b9504864755317bf..c0a26cbcecf15cefa89d893a60744dc653cc6c05 100755
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Delete.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Delete.php
@@ -6,25 +6,28 @@
  */
 namespace Magento\Tax\Controller\Adminhtml\Rule;
 
+use Magento\Framework\Controller\ResultFactory;
+
 class Delete extends \Magento\Tax\Controller\Adminhtml\Rule
 {
     /**
-     * @return \Magento\Backend\Model\View\Result\Redirect|void
+     *
+     * @throws \Exception
+     * @return \Magento\Backend\Model\View\Result\Redirect
      */
     public function execute()
     {
+        /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
         $ruleId = (int)$this->getRequest()->getParam('rule');
         try {
             $this->ruleService->deleteById($ruleId);
             $this->messageManager->addSuccess(__('The tax rule has been deleted.'));
-            $this->_redirect('tax/*/');
-            return;
+            return $resultRedirect->setPath('tax/*/');
         } catch (\Magento\Framework\Exception\NoSuchEntityException $e) {
             $this->messageManager->addError(__('This rule no longer exists.'));
-            $this->_redirect('tax/*/');
-            return;
+            return $resultRedirect->setPath('tax/*/');
         }
-        return $this->getDefaultResult();
     }
 
     /**
@@ -34,7 +37,8 @@ class Delete extends \Magento\Tax\Controller\Adminhtml\Rule
      */
     public function getDefaultResult()
     {
-        $resultRedirect = $this->resultRedirectFactory->create();
+        /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
         return $resultRedirect->setUrl($this->_redirect->getRedirectUrl($this->getUrl('*')));
     }
 }
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Edit.php b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Edit.php
index 86663f854fd90536784575fc2dff3b1fd501de68..ebbabcf833aed5f6eea84d58dfd91ffa35514a08 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Edit.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Edit.php
@@ -6,11 +6,12 @@
  */
 namespace Magento\Tax\Controller\Adminhtml\Rule;
 
+use Magento\Framework\Controller\ResultFactory;
 
 class Edit extends \Magento\Tax\Controller\Adminhtml\Rule
 {
     /**
-     * @return void
+     * @return \Magento\Backend\Model\View\Result\Page|\Magento\Backend\Model\View\Result\Redirect
      */
     public function execute()
     {
@@ -25,8 +26,9 @@ class Edit extends \Magento\Tax\Controller\Adminhtml\Rule
             } catch (\Magento\Framework\Exception\NoSuchEntityException $e) {
                 $backendSession->unsRuleData();
                 $this->messageManager->addError(__('This rule no longer exists.'));
-                $this->_redirect('tax/*/');
-                return;
+                /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
+                $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
+                return $resultRedirect->setPath('tax/*/');
             }
         } else {
             $pageTitle = __('New Tax Rule');
@@ -36,9 +38,10 @@ class Edit extends \Magento\Tax\Controller\Adminhtml\Rule
             $this->_coreRegistry->register('tax_rule_form_data', $data);
         }
         $breadcrumb = $taxRuleId ? __('Edit Rule') : __('New Rule');
-        $this->_initAction()->_addBreadcrumb($breadcrumb, $breadcrumb);
-        $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Tax Rules'));
-        $this->_view->getPage()->getConfig()->getTitle()->prepend($pageTitle);
-        $this->_view->renderLayout();
+        $resultPage = $this->initResultPage();
+        $resultPage->addBreadcrumb($breadcrumb, $breadcrumb);
+        $resultPage->getConfig()->getTitle()->prepend(__('Tax Rules'));
+        $resultPage->getConfig()->getTitle()->prepend($pageTitle);
+        return $resultPage;
     }
 }
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Index.php b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Index.php
index f64f5a2db19b11335a0f514c2c083a39367ac9a2..b3ea7586cf90bd507139b000ea52e8f3ac414735 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Index.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Index.php
@@ -10,12 +10,12 @@ namespace Magento\Tax\Controller\Adminhtml\Rule;
 class Index extends \Magento\Tax\Controller\Adminhtml\Rule
 {
     /**
-     * @return $this
+     * @return \Magento\Backend\Model\View\Result\Page
      */
     public function execute()
     {
-        $this->_initAction();
-        $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Tax Rules'));
-        $this->_view->renderLayout();
+        $resultPage = $this->initResultPage();
+        $resultPage->getConfig()->getTitle()->prepend(__('Tax Rules'));
+        return $resultPage;
     }
 }
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rule/NewAction.php b/app/code/Magento/Tax/Controller/Adminhtml/Rule/NewAction.php
index 94b15bc53b7eed8d741b5b202efd0e8167ad463f..79f4fa7d752e72dafcb21e342d5aa95dd3af57fd 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rule/NewAction.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rule/NewAction.php
@@ -6,14 +6,17 @@
  */
 namespace Magento\Tax\Controller\Adminhtml\Rule;
 
+use Magento\Framework\Controller\ResultFactory;
 
 class NewAction extends \Magento\Tax\Controller\Adminhtml\Rule
 {
     /**
-     * @return void
+     * @return \Magento\Backend\Model\View\Result\Forward
      */
     public function execute()
     {
-        $this->_forward('edit');
+        /** @var \Magento\Backend\Model\View\Result\Forward $resultForward */
+        $resultForward = $this->resultFactory->create(ResultFactory::TYPE_FORWARD);
+        return $resultForward->forward('edit');
     }
 }
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Save.php b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Save.php
index 155c2bb0b76e3cad9efc59090547a3098cba684e..fdcaa2f15c127540fc9f07713b2ec3dc17da8a1d 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Rule/Save.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Rule/Save.php
@@ -6,14 +6,17 @@
  */
 namespace Magento\Tax\Controller\Adminhtml\Rule;
 
+use Magento\Framework\Controller\ResultFactory;
 
 class Save extends \Magento\Tax\Controller\Adminhtml\Rule
 {
     /**
-     * @return void
+     * @return \Magento\Backend\Model\View\Result\Redirect
      */
     public function execute()
     {
+        /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
         $postData = $this->getRequest()->getPostValue();
         if ($postData) {
             $postData['calculate_subtotal'] = $this->getRequest()->getParam('calculate_subtotal', 0);
@@ -24,12 +27,9 @@ class Save extends \Magento\Tax\Controller\Adminhtml\Rule
                 $this->messageManager->addSuccess(__('The tax rule has been saved.'));
 
                 if ($this->getRequest()->getParam('back')) {
-                    $this->_redirect('tax/*/edit', ['rule' => $taxRule->getId()]);
-                    return;
+                    return $resultRedirect->setPath('tax/*/edit', ['rule' => $taxRule->getId()]);
                 }
-
-                $this->_redirect('tax/*/');
-                return;
+                return $resultRedirect->setPath('tax/*/');
             } catch (\Magento\Framework\Exception\LocalizedException $e) {
                 $this->messageManager->addError($e->getMessage());
             } catch (\Exception $e) {
@@ -37,9 +37,8 @@ class Save extends \Magento\Tax\Controller\Adminhtml\Rule
             }
 
             $this->_objectManager->get('Magento\Backend\Model\Session')->setRuleData($postData);
-            $this->getResponse()->setRedirect($this->_redirect->getRedirectUrl($this->getUrl('*')));
-            return;
+            return $resultRedirect->setUrl($this->_redirect->getRedirectUrl($this->getUrl('*')));
         }
-        $this->getResponse()->setRedirect($this->getUrl('tax/rule'));
+        return $resultRedirect->setPath('tax/rule');
     }
 }
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxDelete.php b/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxDelete.php
index d817e1134442fe0602b5eb583fa7f6293f4407a7..20e413ed5e78f886d9fbb4be3b8562c1249bc022 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxDelete.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxDelete.php
@@ -6,36 +6,32 @@
  */
 namespace Magento\Tax\Controller\Adminhtml\Tax;
 
+use Magento\Framework\Controller\ResultFactory;
+
 class AjaxDelete extends \Magento\Tax\Controller\Adminhtml\Tax
 {
     /**
      * Delete Tax Class via AJAX
      *
-     * @return void
+     * @return \Magento\Framework\Controller\Result\Json
      */
     public function execute()
     {
         $classId = (int)$this->getRequest()->getParam('class_id');
         try {
             $this->taxClassRepository->deleteById($classId);
-            $responseContent = $this->_objectManager->get(
-                'Magento\Framework\Json\Helper\Data'
-            )->jsonEncode(
-                ['success' => true, 'error_message' => '']
-            );
+            $responseContent = ['success' => true, 'error_message' => ''];
         } catch (\Magento\Framework\Exception\LocalizedException $e) {
-            $responseContent = $this->_objectManager->get(
-                'Magento\Framework\Json\Helper\Data'
-            )->jsonEncode(
-                ['success' => false, 'error_message' => $e->getMessage()]
-            );
+            $responseContent = ['success' => false, 'error_message' => $e->getMessage()];
         } catch (\Exception $e) {
-            $responseContent = $this->_objectManager->get(
-                'Magento\Framework\Json\Helper\Data'
-            )->jsonEncode(
-                ['success' => false, 'error_message' => __('Something went wrong deleting this tax class.')]
-            );
+            $responseContent = [
+                'success' => false,
+                'error_message' => __('Something went wrong deleting this tax class.')
+            ];
         }
-        $this->getResponse()->representJson($responseContent);
+        /** @var \Magento\Framework\Controller\Result\Json $resultJson */
+        $resultJson = $this->resultFactory->create(ResultFactory::TYPE_JSON);
+        $resultJson->setData($responseContent);
+        return $resultJson;
     }
 }
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxSave.php b/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxSave.php
index f338428b3ddb8dcfd77a1ffdf93f6de637b4cfa8..b8f72a7fa6d439e9849df9c4c81c57c2e8655931 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxSave.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Tax/AjaxSave.php
@@ -6,12 +6,14 @@
  */
 namespace Magento\Tax\Controller\Adminhtml\Tax;
 
+use Magento\Framework\Controller\ResultFactory;
+
 class AjaxSave extends \Magento\Tax\Controller\Adminhtml\Tax
 {
     /**
      * Save Tax Class via AJAX
      *
-     * @return void
+     * @return \Magento\Framework\Controller\Result\Json
      */
     public function execute()
     {
@@ -24,30 +26,30 @@ class AjaxSave extends \Magento\Tax\Controller\Adminhtml\Tax
                 ->setClassName($this->_processClassName((string)$this->getRequest()->getPost('class_name')));
             $taxClassId = $this->taxClassRepository->save($taxClass);
 
-            $responseContent = $this->_objectManager->get(
-                'Magento\Framework\Json\Helper\Data'
-            )->jsonEncode(
-                [
-                    'success' => true,
-                    'error_message' => '',
-                    'class_id' => $taxClassId,
-                    'class_name' => $taxClass->getClassName(),
-                ]
-            );
+            $responseContent = [
+                'success' => true,
+                'error_message' => '',
+                'class_id' => $taxClassId,
+                'class_name' => $taxClass->getClassName(),
+            ];
         } catch (\Magento\Framework\Exception\LocalizedException $e) {
-            $responseContent = $this->_objectManager->get('Magento\Framework\Json\Helper\Data')->jsonEncode(
-                ['success' => false, 'error_message' => $e->getMessage(), 'class_id' => '', 'class_name' => '']
-            );
+            $responseContent = [
+                'success' => false,
+                'error_message' => $e->getMessage(),
+                'class_id' => '',
+                'class_name' => ''
+            ];
         } catch (\Exception $e) {
-            $responseContent = $this->_objectManager->get('Magento\Framework\Json\Helper\Data')->jsonEncode(
-                [
-                    'success' => false,
-                    'error_message' => __('Something went wrong saving this tax class.'),
-                    'class_id' => '',
-                    'class_name' => '',
-                ]
-            );
+            $responseContent = [
+                'success' => false,
+                'error_message' => __('Something went wrong saving this tax class.'),
+                'class_id' => '',
+                'class_name' => '',
+            ];
         }
-        $this->getResponse()->representJson($responseContent);
+        /** @var \Magento\Framework\Controller\Result\Json $resultJson */
+        $resultJson = $this->resultFactory->create(ResultFactory::TYPE_JSON);
+        $resultJson->setData($responseContent);
+        return $resultJson;
     }
 }
diff --git a/app/code/Magento/Tax/Controller/Adminhtml/Tax/IgnoreTaxNotification.php b/app/code/Magento/Tax/Controller/Adminhtml/Tax/IgnoreTaxNotification.php
index 71db454cc337847c5f47dbef985ebf9e06360a82..d84a09825b08fb4391830a6ec8261b24d152557a 100644
--- a/app/code/Magento/Tax/Controller/Adminhtml/Tax/IgnoreTaxNotification.php
+++ b/app/code/Magento/Tax/Controller/Adminhtml/Tax/IgnoreTaxNotification.php
@@ -6,6 +6,8 @@
  */
 namespace Magento\Tax\Controller\Adminhtml\Tax;
 
+use Magento\Framework\Controller\ResultFactory;
+
 class IgnoreTaxNotification extends \Magento\Tax\Controller\Adminhtml\Tax
 {
     /**
@@ -32,7 +34,7 @@ class IgnoreTaxNotification extends \Magento\Tax\Controller\Adminhtml\Tax
     /**
      * Set tax ignore notification flag and redirect back
      *
-     * @return \Magento\Framework\App\ResponseInterface
+     * @return \Magento\Backend\Model\View\Result\Redirect
      */
     public function execute()
     {
@@ -51,6 +53,8 @@ class IgnoreTaxNotification extends \Magento\Tax\Controller\Adminhtml\Tax
         $this->_cacheTypeList->cleanType('block_html');
         $this->_eventManager->dispatch('adminhtml_cache_refresh_type', ['type' => 'block_html']);
 
-        $this->getResponse()->setRedirect($this->_redirect->getRefererUrl());
+        /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
+        return $resultRedirect->setRefererUrl();
     }
 }
diff --git a/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Tax/IgnoreTaxNotificationTest.php b/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Tax/IgnoreTaxNotificationTest.php
index 9a649f3d2d5b9ca772e5b3df44d0ed1e69e27757..2f2a823d5f64d3cb8c3b00a4c864a7108e181c32 100644
--- a/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Tax/IgnoreTaxNotificationTest.php
+++ b/app/code/Magento/Tax/Test/Unit/Controller/Adminhtml/Tax/IgnoreTaxNotificationTest.php
@@ -19,7 +19,7 @@ class IgnoreTaxNotificationTest extends \PHPUnit_Framework_TestCase
         $cacheTypeList->expects($this->once())
             ->method('cleanType')
             ->with('block_html')
-            ->will($this->returnValue(null));
+            ->willReturn(null);
 
         $request = $this->getMockBuilder('\Magento\Framework\App\Request\Http')
             ->disableOriginalConstructor()
@@ -27,12 +27,23 @@ class IgnoreTaxNotificationTest extends \PHPUnit_Framework_TestCase
             ->getMock();
         $request->expects($this->once())
             ->method('getParam')
-            ->will($this->returnValue('tax'));
+            ->willReturn('tax');
 
-        $response = $this->getMockBuilder('\Magento\Framework\App\Response\Http')
+        $resultRedirect = $this->getMockBuilder('Magento\Backend\Model\View\Result\Redirect')
             ->disableOriginalConstructor()
-            ->setMethods(['setRedirect'])
             ->getMock();
+        $resultRedirect->expects($this->once())
+            ->method('setRefererUrl')
+            ->willReturnSelf();
+
+        $resultFactory = $this->getMockBuilder('Magento\Framework\Controller\ResultFactory')
+            ->disableOriginalConstructor()
+            ->setMethods(['create'])
+            ->getMock();
+        $resultFactory->expects($this->once())
+            ->method('create')
+            ->with(\Magento\Framework\Controller\ResultFactory::TYPE_REDIRECT)
+            ->willReturn($resultRedirect);
 
         $config = $this->getMockBuilder('\Magento\Config\Model\Resource\Config')
             ->disableOriginalConstructor()
@@ -41,7 +52,7 @@ class IgnoreTaxNotificationTest extends \PHPUnit_Framework_TestCase
         $config->expects($this->once())
             ->method('saveConfig')
             ->with('tax/notification/ignore_tax', 1, \Magento\Framework\App\ScopeInterface::SCOPE_DEFAULT, 0)
-            ->will($this->returnValue(null));
+            ->willReturn(null);
 
         $manager = $this->getMockBuilder('\Magento\Framework\ObjectManagerInterface')
             ->disableOriginalConstructor()
@@ -49,7 +60,7 @@ class IgnoreTaxNotificationTest extends \PHPUnit_Framework_TestCase
             ->getMock();
         $manager->expects($this->any())
             ->method('get')
-            ->will($this->returnValue($config));
+            ->willReturn($config);
 
         $notification = $objectManager->getObject(
             'Magento\Tax\Controller\Adminhtml\Tax\IgnoreTaxNotification',
@@ -57,11 +68,11 @@ class IgnoreTaxNotificationTest extends \PHPUnit_Framework_TestCase
                 'objectManager' => $manager,
                 'cacheTypeList' => $cacheTypeList,
                 'request' => $request,
-                'response' => $response
+                'resultFactory' => $resultFactory
             ]
         );
 
         // No exception thrown
-        $notification->execute();
+        $this->assertSame($resultRedirect, $notification->execute());
     }
 }
diff --git a/app/code/Magento/Tax/composer.json b/app/code/Magento/Tax/composer.json
index 5ad7a3d5645b31c665a2392f223f961d4d13990f..27b9422635e75187471b290bb89d920fa9ccb1c5 100644
--- a/app/code/Magento/Tax/composer.json
+++ b/app/code/Magento/Tax/composer.json
@@ -3,23 +3,23 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-checkout": "0.74.0-beta5",
-        "magento/module-shipping": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-reports": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-checkout": "0.74.0-beta6",
+        "magento/module-shipping": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-reports": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportCsv.php b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportCsv.php
index c49fc0c8e92594c5db3669c027bf282053fd4293..9f6f1cb8e6beeb2f860b824759c3a019cb1612eb 100644
--- a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportCsv.php
+++ b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportCsv.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -8,6 +7,7 @@ namespace Magento\TaxImportExport\Controller\Adminhtml\Rate;
 
 use Magento\Framework\App\ResponseInterface;
 use Magento\Framework\App\Filesystem\DirectoryList;
+use Magento\Framework\Controller\ResultFactory;
 
 class ExportCsv extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
 {
@@ -18,8 +18,10 @@ class ExportCsv extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
      */
     public function execute()
     {
-        $this->_view->loadLayout(false);
-        $content = $this->_view->getLayout()->getChildBlock('adminhtml.tax.rate.grid', 'grid.export');
+        /** @var \Magento\Framework\View\Result\Layout $resultLayout */
+        $resultLayout = $this->resultFactory->create(ResultFactory::TYPE_LAYOUT);
+        $content = $resultLayout->getLayout()->getChildBlock('adminhtml.tax.rate.grid', 'grid.export');
+
         return $this->fileFactory->create(
             'rates.csv',
             $content->getCsvFile(),
diff --git a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportPost.php b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportPost.php
index f698f7cbe655353dda0a808d032fa58f9f7e5b2a..1d5685802882b5ed3703222f7318511712493605 100644
--- a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportPost.php
+++ b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportPost.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -12,7 +11,7 @@ use Magento\Framework\App\Filesystem\DirectoryList;
 class ExportPost extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
 {
     /**
-     * export action from import/export tax
+     * Export action from import/export tax
      *
      * @return ResponseInterface
      */
@@ -82,7 +81,6 @@ class ExportPost extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
 
             $content .= $rate->toString($template) . "\n";
         }
-        $this->_view->loadLayout();
         return $this->fileFactory->create('tax_rates.csv', $content, DirectoryList::VAR_DIR);
     }
 }
diff --git a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportXml.php b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportXml.php
index 0ec4688e5d52e2bff1b45e3263fd3b14b8e5e3f5..38fc277576cc673254f8a0fc2dfe8d47439fa7a6 100644
--- a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportXml.php
+++ b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ExportXml.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -8,6 +7,7 @@ namespace Magento\TaxImportExport\Controller\Adminhtml\Rate;
 
 use Magento\Framework\App\ResponseInterface;
 use Magento\Framework\App\Filesystem\DirectoryList;
+use Magento\Framework\Controller\ResultFactory;
 
 class ExportXml extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
 {
@@ -18,8 +18,10 @@ class ExportXml extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
      */
     public function execute()
     {
-        $this->_view->loadLayout(false);
-        $content = $this->_view->getLayout()->getChildBlock('adminhtml.tax.rate.grid', 'grid.export');
+        /** @var \Magento\Framework\View\Result\Layout $resultLayout */
+        $resultLayout = $this->resultFactory->create(ResultFactory::TYPE_LAYOUT);
+        $content = $resultLayout->getLayout()->getChildBlock('adminhtml.tax.rate.grid', 'grid.export');
+
         return $this->fileFactory->create(
             'rates.xml',
             $content->getExcelFile(),
diff --git a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportExport.php b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportExport.php
index ca34dd5197a7e941692bf263224bf094f08066ab..5ba0b3e87da0e7727e89aa3747d34916e2d0123a 100644
--- a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportExport.php
+++ b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportExport.php
@@ -1,30 +1,33 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 namespace Magento\TaxImportExport\Controller\Adminhtml\Rate;
 
+use Magento\Framework\Controller\ResultFactory;
+
 class ImportExport extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
 {
     /**
      * Import and export Page
      *
-     * @return void
+     * @return \Magento\Backend\Model\View\Result\Page
      */
     public function execute()
     {
-        $this->_view->loadLayout();
-        $this->_setActiveMenu(
-            'Magento_TaxImportExport::system_convert_tax'
-        )->_addContent(
-            $this->_view->getLayout()->createBlock('Magento\TaxImportExport\Block\Adminhtml\Rate\ImportExportHeader')
-        )->_addContent(
-            $this->_view->getLayout()->createBlock('Magento\TaxImportExport\Block\Adminhtml\Rate\ImportExport')
+        /** @var \Magento\Backend\Model\View\Result\Page $resultPage */
+        $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
+
+        $resultPage->setActiveMenu('Magento_TaxImportExport::system_convert_tax');
+        $resultPage->addContent(
+            $resultPage->getLayout()->createBlock('Magento\TaxImportExport\Block\Adminhtml\Rate\ImportExportHeader')
+        );
+        $resultPage->addContent(
+            $resultPage->getLayout()->createBlock('Magento\TaxImportExport\Block\Adminhtml\Rate\ImportExport')
         );
-        $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Tax Zones and Rates'));
-        $this->_view->getPage()->getConfig()->getTitle()->prepend(__('Import and Export Tax Rates'));
-        $this->_view->renderLayout();
+        $resultPage->getConfig()->getTitle()->prepend(__('Tax Zones and Rates'));
+        $resultPage->getConfig()->getTitle()->prepend(__('Import and Export Tax Rates'));
+        return $resultPage;
     }
 }
diff --git a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportPost.php b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportPost.php
index d072f6b82b28acb85e661f9b30776509601eaf92..663a0183b1e86cba8e888c9a9b194e24e99c9519 100644
--- a/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportPost.php
+++ b/app/code/Magento/TaxImportExport/Controller/Adminhtml/Rate/ImportPost.php
@@ -1,17 +1,18 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 namespace Magento\TaxImportExport\Controller\Adminhtml\Rate;
 
+use Magento\Framework\Controller\ResultFactory;
+
 class ImportPost extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
 {
     /**
      * import action from import/export tax
      *
-     * @return void
+     * @return \Magento\Backend\Model\View\Result\Redirect
      */
     public function execute()
     {
@@ -30,6 +31,9 @@ class ImportPost extends \Magento\TaxImportExport\Controller\Adminhtml\Rate
         } else {
             $this->messageManager->addError(__('Invalid file upload attempt'));
         }
-        $this->getResponse()->setRedirect($this->_redirect->getRedirectUrl($this->getUrl('*')));
+        /** @var \Magento\Backend\Model\View\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
+        $resultRedirect->setUrl($this->_redirect->getRedirectUrl());
+        return $resultRedirect;
     }
 }
diff --git a/app/code/Magento/TaxImportExport/composer.json b/app/code/Magento/TaxImportExport/composer.json
index 1948cd26ef6b3e105865d27f52a5f6a99f53b3b5..334b8652a6d74ed73e037f5d001b62026444bac6 100644
--- a/app/code/Magento/TaxImportExport/composer.json
+++ b/app/code/Magento/TaxImportExport/composer.json
@@ -3,15 +3,15 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-tax": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-tax": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Theme/composer.json b/app/code/Magento/Theme/composer.json
index 04ea19e36e946cb8925ad0b651f2b27bb4b80e2f..cb64d49d6d2dae6c61f64b767b8fa2f2a895544f 100644
--- a/app/code/Magento/Theme/composer.json
+++ b/app/code/Magento/Theme/composer.json
@@ -3,23 +3,23 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-cms": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-widget": "0.74.0-beta5",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/module-media-storage": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
-        "magento/module-require-js": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-cms": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-widget": "0.74.0-beta6",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/module-media-storage": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
+        "magento/module-require-js": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "suggest": {
-        "magento/module-translation": "0.74.0-beta5"
+        "magento/module-translation": "0.74.0-beta6"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Translation/composer.json b/app/code/Magento/Translation/composer.json
index 6e4f95813c4d7f71303486f41b8feafd8114627a..4b817066e92d7a9cccc5efbc1d2909409c383f0a 100644
--- a/app/code/Magento/Translation/composer.json
+++ b/app/code/Magento/Translation/composer.json
@@ -3,15 +3,15 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-developer": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-theme": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-developer": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-theme": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Ui/composer.json b/app/code/Magento/Ui/composer.json
index 3d083a9bfc18f9c82ae46c24d1f1b1a458efead4..ecf417cad0f81fd792b366b6d2f314848fbfcf7b 100644
--- a/app/code/Magento/Ui/composer.json
+++ b/app/code/Magento/Ui/composer.json
@@ -3,13 +3,13 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Ups/composer.json b/app/code/Magento/Ups/composer.json
index 30e04c61293fb11c1d7c05abf6b9bd5a60e6ca2b..3fed6bdce1e18410c2fc17a53d32f8a93d940f78 100644
--- a/app/code/Magento/Ups/composer.json
+++ b/app/code/Magento/Ups/composer.json
@@ -3,18 +3,18 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-shipping": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-catalog-inventory": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-shipping": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-catalog-inventory": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/UrlRewrite/composer.json b/app/code/Magento/UrlRewrite/composer.json
index 6361324e7bbe9032406b54fd4195e906778f0e40..1156b7cb79022a4f0caf8e293c1b752ecc4d0cef 100644
--- a/app/code/Magento/UrlRewrite/composer.json
+++ b/app/code/Magento/UrlRewrite/composer.json
@@ -3,17 +3,17 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-catalog-url-rewrite": "0.74.0-beta5",
-        "magento/module-cms": "0.74.0-beta5",
-        "magento/module-cms-url-rewrite": "0.74.0-beta5",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-catalog-url-rewrite": "0.74.0-beta6",
+        "magento/module-cms": "0.74.0-beta6",
+        "magento/module-cms-url-rewrite": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/User/composer.json b/app/code/Magento/User/composer.json
index adde1977addc39fecd13f8176d42f6b040298c39..1d387c17899055557bb811a7c3024d38b90ef587 100644
--- a/app/code/Magento/User/composer.json
+++ b/app/code/Magento/User/composer.json
@@ -3,15 +3,15 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-authorization": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-integration": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-authorization": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-integration": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Usps/composer.json b/app/code/Magento/Usps/composer.json
index d278fc22a7a3f54300f60fd08c12ace05d9a9fae..382961b5610b48750b1aa3e64d77e46433cae688 100644
--- a/app/code/Magento/Usps/composer.json
+++ b/app/code/Magento/Usps/composer.json
@@ -3,20 +3,20 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-shipping": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-catalog-inventory": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/module-config": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-shipping": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-catalog-inventory": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/module-config": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "lib-libxml": "*",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Variable/composer.json b/app/code/Magento/Variable/composer.json
index b958c720516ab41bf854769a8c45a707813d4d78..ececb67d0ec8b20c51576dfe0b271f50a9c98015 100644
--- a/app/code/Magento/Variable/composer.json
+++ b/app/code/Magento/Variable/composer.json
@@ -3,14 +3,14 @@
     "description": "N/A",
     "require": {
         "php": "~5.4.11|~5.5.0|~5.6.0",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-email": "0.74.0-beta5",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-email": "0.74.0-beta6",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Version/composer.json b/app/code/Magento/Version/composer.json
index 17742ada0339c7cf4e7a908d3eeb2f5d3dab03e7..7bb5e528673b62f88d0c668ab148cdae4dfbcd35 100644
--- a/app/code/Magento/Version/composer.json
+++ b/app/code/Magento/Version/composer.json
@@ -3,11 +3,11 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/framework": "0.74.0-beta5",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Webapi/Controller/Rest/ParamOverriderCustomerId.php b/app/code/Magento/Webapi/Controller/Rest/ParamOverriderCustomerId.php
new file mode 100644
index 0000000000000000000000000000000000000000..09a27569293993b92a68d8cdde5dab7d67e450e8
--- /dev/null
+++ b/app/code/Magento/Webapi/Controller/Rest/ParamOverriderCustomerId.php
@@ -0,0 +1,42 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Webapi\Controller\Rest;
+
+use Magento\Authorization\Model\UserContextInterface;
+use Magento\Framework\Webapi\Rest\Request\ParamOverriderInterface;
+
+/**
+ * Replaces a "%customer_id%" value with the real customer id
+ */
+class ParamOverriderCustomerId implements ParamOverriderInterface
+{
+    /**
+     * @var UserContextInterface
+     */
+    private $userContext;
+
+    /**
+     * Constructs an object to override the customer ID parameter on a request.
+     *
+     * @param UserContextInterface $userContext
+     */
+    public function __construct(UserContextInterface $userContext)
+    {
+        $this->userContext = $userContext;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function getOverriddenValue()
+    {
+        if ($this->userContext->getUserType() === UserContextInterface::USER_TYPE_CUSTOMER) {
+            return $this->userContext->getUserId();
+        }
+        return null;
+    }
+}
diff --git a/app/code/Magento/Webapi/Controller/Rest/ParamsOverrider.php b/app/code/Magento/Webapi/Controller/Rest/ParamsOverrider.php
index 140f7dcd6a3b37eb1ec921ec6c3dd0172a283738..f7b4f4605a7a62cdf3246fd6ad5fc1e8de279061 100644
--- a/app/code/Magento/Webapi/Controller/Rest/ParamsOverrider.php
+++ b/app/code/Magento/Webapi/Controller/Rest/ParamsOverrider.php
@@ -6,7 +6,7 @@
 
 namespace Magento\Webapi\Controller\Rest;
 
-use Magento\Authorization\Model\UserContextInterface;
+use Magento\Framework\Webapi\Rest\Request\ParamOverriderInterface;
 use Magento\Webapi\Model\Config\Converter;
 
 /**
@@ -15,18 +15,19 @@ use Magento\Webapi\Model\Config\Converter;
 class ParamsOverrider
 {
     /**
-     * @var \Magento\Authorization\Model\UserContextInterface
+     * @var ParamOverriderInterface[]
      */
-    protected $userContext;
+    private $paramOverriders;
 
     /**
      * Initialize dependencies
      *
-     * @param UserContextInterface $userContext
+     * @param ParamOverriderInterface[] $paramOverriders
      */
-    public function __construct(UserContextInterface $userContext)
-    {
-        $this->userContext = $userContext;
+    public function __construct(
+        array $paramOverriders = []
+    ) {
+        $this->paramOverriders = $paramOverriders;
     }
 
     /**
@@ -41,10 +42,9 @@ class ParamsOverrider
         foreach ($parameters as $name => $paramData) {
             $arrayKeys = explode('.', $name);
             if ($paramData[Converter::KEY_FORCE] || !$this->isNestedArrayValueSet($inputData, $arrayKeys)) {
-                if ($paramData[Converter::KEY_VALUE] == '%customer_id%'
-                    && $this->userContext->getUserType() === UserContextInterface::USER_TYPE_CUSTOMER
-                ) {
-                    $value = $this->userContext->getUserId();
+                $paramValue = $paramData[Converter::KEY_VALUE];
+                if (isset($this->paramOverriders[$paramValue])) {
+                    $value = $this->paramOverriders[$paramValue]->getOverriddenValue();
                 } else {
                     $value = $paramData[Converter::KEY_VALUE];
                 }
diff --git a/app/code/Magento/Webapi/Test/Unit/Controller/Rest/ParamOverriderCustomerIdTest.php b/app/code/Magento/Webapi/Test/Unit/Controller/Rest/ParamOverriderCustomerIdTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..bf0f152eddf5f123e36faa3207712a71f7c9b369
--- /dev/null
+++ b/app/code/Magento/Webapi/Test/Unit/Controller/Rest/ParamOverriderCustomerIdTest.php
@@ -0,0 +1,59 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Webapi\Test\Unit\Controller\Rest;
+
+use Magento\Authorization\Model\UserContextInterface;
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager;
+use Magento\Webapi\Controller\Rest\ParamOverriderCustomerId;
+
+class ParamOverriderCustomerIdTest extends \PHPUnit_Framework_TestCase
+{
+    /**
+     * @var ParamOverriderCustomerId
+     */
+    private $model;
+
+    /**
+     * @var UserContextInterface
+     */
+    private $userContext;
+
+    public function setUp()
+    {
+        $this->userContext = $this->getMockBuilder('Magento\Authorization\Model\UserContextInterface')
+            ->getMockForAbstractClass();
+        $this->model = (new ObjectManager($this))->getObject(
+            'Magento\Webapi\Controller\Rest\ParamOverriderCustomerId',
+            [
+                'userContext' => $this->userContext
+            ]
+        );
+    }
+    
+    public function testGetOverriddenValueIsCustomer()
+    {
+        $retValue = 'retValue';
+
+        $this->userContext->expects($this->once())
+            ->method('getUserType')
+            ->will($this->returnValue(UserContextInterface::USER_TYPE_CUSTOMER));
+        $this->userContext->expects($this->once())
+            ->method('getUserId')
+            ->will($this->returnValue($retValue));
+
+        $this->assertSame($retValue, $this->model->getOverriddenValue());
+    }
+
+    public function testGetOverriddenValueIsNotCustomer()
+    {
+        $this->userContext->expects($this->once())
+            ->method('getUserType')
+            ->will($this->returnValue(UserContextInterface::USER_TYPE_ADMIN));
+
+        $this->assertNull($this->model->getOverriddenValue());
+    }
+}
diff --git a/app/code/Magento/Webapi/Test/Unit/Controller/Rest/ParamsOverriderTest.php b/app/code/Magento/Webapi/Test/Unit/Controller/Rest/ParamsOverriderTest.php
index 2cfe94f7d07ceafa3929116b46a7d79923243270..f5aa363b8b9c2bdeb549d4ee87cc53da2db59bcd 100644
--- a/app/code/Magento/Webapi/Test/Unit/Controller/Rest/ParamsOverriderTest.php
+++ b/app/code/Magento/Webapi/Test/Unit/Controller/Rest/ParamsOverriderTest.php
@@ -31,10 +31,15 @@ class ParamsOverriderTest extends \PHPUnit_Framework_TestCase
         $userContextMock->expects($this->any())->method('getUserId')->will($this->returnValue($userId));
         $userContextMock->expects($this->any())->method('getUserType')->will($this->returnValue($userType));
 
+        $paramOverriderCustomerId = $objectManager->getObject(
+            'Magento\Webapi\Controller\Rest\ParamOverriderCustomerId',
+            ['userContext' => $userContextMock]
+        );
+
         /** @var \Magento\Webapi\Controller\Rest\ParamsOverrider $paramsOverrider */
         $paramsOverrider = $objectManager->getObject(
             'Magento\Webapi\Controller\Rest\ParamsOverrider',
-            ['userContext' => $userContextMock]
+            ['paramOverriders' => ['%customer_id%' => $paramOverriderCustomerId ]]
         );
 
         $this->assertEquals($expectedOverriddenParams, $paramsOverrider->override($requestData, $parameters));
@@ -84,7 +89,7 @@ class ParamsOverriderTest extends \PHPUnit_Framework_TestCase
             'force true, value present, override value is %customer_id%, not a customer' => [
                 ['Name1' => 'valueIn'],
                 ['Name1' => ['force' => true, 'value' => '%customer_id%']],
-                ['Name1' => '%customer_id%'],
+                ['Name1' => null],
                 1234,
                 UserContextInterface::USER_TYPE_INTEGRATION,
             ],
diff --git a/app/code/Magento/Webapi/composer.json b/app/code/Magento/Webapi/composer.json
index 412e76b0ddbb081d369312e00100d2d5828afcd1..c2e4ec4dacb4f073ed7c35ac5a1a557e8c27db70 100644
--- a/app/code/Magento/Webapi/composer.json
+++ b/app/code/Magento/Webapi/composer.json
@@ -3,18 +3,18 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-authorization": "0.74.0-beta5",
-        "magento/module-integration": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-authorization": "0.74.0-beta6",
+        "magento/module-integration": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "suggest": {
-        "magento/module-user": "0.74.0-beta5"
+        "magento/module-user": "0.74.0-beta6"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Webapi/etc/di.xml b/app/code/Magento/Webapi/etc/di.xml
index d9f47dfd67a79a139cd1f69f957c5f508d98c8a4..12b661f639c428c681b98b1df7c0f5a8131da632 100644
--- a/app/code/Magento/Webapi/etc/di.xml
+++ b/app/code/Magento/Webapi/etc/di.xml
@@ -30,4 +30,11 @@
     <type name="Magento\Integration\Model\ConfigBasedIntegrationManager">
         <plugin name="webapiSetup" type="Magento\Webapi\Model\Plugin\Manager" />
     </type>
+    <type name="Magento\Webapi\Controller\Rest\ParamsOverrider">
+        <arguments>
+            <argument name="paramOverriders" xsi:type="array">
+                <item name="%customer_id%" xsi:type="object">Magento\Webapi\Controller\Rest\ParamOverriderCustomerId</item>
+            </argument>
+        </arguments>
+    </type>
 </config>
diff --git a/app/code/Magento/Weee/composer.json b/app/code/Magento/Weee/composer.json
index d0de7a90f39df355a70183184a43a164c8a32013..9b11852f84fd425b09a62737597c797ddcdd31d8 100644
--- a/app/code/Magento/Weee/composer.json
+++ b/app/code/Magento/Weee/composer.json
@@ -3,20 +3,20 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-tax": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-directory": "0.74.0-beta5",
-        "magento/module-eav": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-quote": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-tax": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-directory": "0.74.0-beta6",
+        "magento/module-eav": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-quote": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Widget/composer.json b/app/code/Magento/Widget/composer.json
index cc21bd787ce28ed3da0fb60c10341948ced643b1..e1ebbafa7d489f3a823f28fee6e691289851c00b 100644
--- a/app/code/Magento/Widget/composer.json
+++ b/app/code/Magento/Widget/composer.json
@@ -3,17 +3,17 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-cms": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-theme": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
-        "magento/module-variable": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-cms": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-theme": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
+        "magento/module-variable": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Wishlist/Controller/Index/Add.php b/app/code/Magento/Wishlist/Controller/Index/Add.php
index 5adebd054bbefa21b0b84c0147be8988fd6a0ad9..3f307ad116dd84ad63d0befb0adde4a4919654a7 100755
--- a/app/code/Magento/Wishlist/Controller/Index/Add.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Add.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -11,6 +10,7 @@ use Magento\Framework\App\Action;
 use Magento\Framework\Exception\NotFoundException;
 use Magento\Framework\Exception\NoSuchEntityException;
 use Magento\Wishlist\Controller\IndexInterface;
+use Magento\Framework\Controller\ResultFactory;
 
 class Add extends Action\Action implements IndexInterface
 {
@@ -50,7 +50,7 @@ class Add extends Action\Action implements IndexInterface
     /**
      * Adding new item
      *
-     * @return void
+     * @return \Magento\Framework\Controller\Result\Redirect
      * @throws NotFoundException
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
@@ -73,10 +73,11 @@ class Add extends Action\Action implements IndexInterface
         }
 
         $productId = isset($requestParams['product']) ? (int)$requestParams['product'] : null;
-
+        /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
         if (!$productId) {
-            $this->_redirect('*/');
-            return;
+            $resultRedirect->setPath('*/');
+            return $resultRedirect;
         }
 
         try {
@@ -87,8 +88,8 @@ class Add extends Action\Action implements IndexInterface
 
         if (!$product || !$product->isVisibleInCatalog()) {
             $this->messageManager->addError(__('We can\'t specify a product.'));
-            $this->_redirect('*/');
-            return;
+            $resultRedirect->setPath('*/');
+            return $resultRedirect;
         }
 
         try {
@@ -112,9 +113,7 @@ class Add extends Action\Action implements IndexInterface
                 $referer = $this->_redirect->getRefererUrl();
             }
 
-
-            /** @var $helper \Magento\Wishlist\Helper\Data */
-            $helper = $this->_objectManager->get('Magento\Wishlist\Helper\Data')->calculate();
+            $this->_objectManager->get('Magento\Wishlist\Helper\Data')->calculate();
             $message = __(
                 '%1 has been added to your wishlist. Click <a href="%2">here</a> to continue shopping.',
                 $this->_objectManager->get('Magento\Framework\Escaper')->escapeHtml($product->getName()),
@@ -130,6 +129,7 @@ class Add extends Action\Action implements IndexInterface
             $this->_objectManager->get('Psr\Log\LoggerInterface')->critical($e);
         }
 
-        $this->_redirect('*', ['wishlist_id' => $wishlist->getId()]);
+        $resultRedirect->setPath('*', ['wishlist_id' => $wishlist->getId()]);
+        return $resultRedirect;
     }
 }
diff --git a/app/code/Magento/Wishlist/Controller/Index/Allcart.php b/app/code/Magento/Wishlist/Controller/Index/Allcart.php
index fa7720947034110bf0d80155aa23b7d08960498d..7cf5a187a5687bace697d03101e9ad7e78c8b8c3 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Allcart.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Allcart.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -12,6 +11,7 @@ use Magento\Framework\App\Action\Context;
 use Magento\Wishlist\Controller\IndexInterface;
 use Magento\Wishlist\Controller\WishlistProviderInterface;
 use Magento\Wishlist\Model\ItemCarrier;
+use Magento\Framework\Controller\ResultFactory;
 
 class Allcart extends Action\Action implements IndexInterface
 {
@@ -51,21 +51,26 @@ class Allcart extends Action\Action implements IndexInterface
     /**
      * Add all items from wishlist to shopping cart
      *
-     * @return void
+     * @return \Magento\Framework\Controller\ResultInterface
      */
     public function execute()
     {
+        /** @var \Magento\Framework\Controller\Result\Forward $resultForward */
+        $resultForward = $this->resultFactory->create(ResultFactory::TYPE_FORWARD);
         if (!$this->formKeyValidator->validate($this->getRequest())) {
-            $this->_forward('noroute');
-            return;
+            $resultForward->forward('noroute');
+            return $resultForward;
         }
 
         $wishlist = $this->wishlistProvider->getWishlist();
         if (!$wishlist) {
-            $this->_forward('noroute');
-            return;
+            $resultForward->forward('noroute');
+            return $resultForward;
         }
+        /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
         $redirectUrl = $this->itemCarrier->moveAllToCart($wishlist, $this->getRequest()->getParam('qty'));
-        $this->getResponse()->setRedirect($redirectUrl);
+        $resultRedirect->setUrl($redirectUrl);
+        return $resultRedirect;
     }
 }
diff --git a/app/code/Magento/Wishlist/Controller/Index/Cart.php b/app/code/Magento/Wishlist/Controller/Index/Cart.php
index ed155aa60585be883c005a3e2cb9f60ea4077016..5274e565c1b029777fdc7d6ec9d8753f5e7d64dc 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Cart.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Cart.php
@@ -1,15 +1,14 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 namespace Magento\Wishlist\Controller\Index;
 
 use Magento\Framework\App\Action;
-use Magento\Framework\App\ResponseInterface;
 use Magento\Wishlist\Controller\IndexInterface;
 use Magento\Catalog\Model\Product\Exception as ProductException;
+use Magento\Framework\Controller\ResultFactory;
 
 /**
  * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
@@ -36,6 +35,11 @@ class Cart extends Action\Action implements IndexInterface
      */
     protected $cart;
 
+    /**
+     * @var \Magento\Checkout\Helper\Cart
+     */
+    protected $cartHelper;
+
     /**
      * @var \Magento\Wishlist\Model\Item\OptionFactory
      */
@@ -66,6 +70,8 @@ class Cart extends Action\Action implements IndexInterface
      * @param \Magento\Catalog\Helper\Product $productHelper
      * @param \Magento\Framework\Escaper $escaper
      * @param \Magento\Wishlist\Helper\Data $helper
+     * @param \Magento\Checkout\Helper\Cart $cartHelper
+     * @SuppressWarnings(PHPMD.ExcessiveParameterList)
      */
     public function __construct(
         Action\Context $context,
@@ -76,7 +82,8 @@ class Cart extends Action\Action implements IndexInterface
         \Magento\Wishlist\Model\Item\OptionFactory $optionFactory,
         \Magento\Catalog\Helper\Product $productHelper,
         \Magento\Framework\Escaper $escaper,
-        \Magento\Wishlist\Helper\Data $helper
+        \Magento\Wishlist\Helper\Data $helper,
+        \Magento\Checkout\Helper\Cart $cartHelper
     ) {
         $this->wishlistProvider = $wishlistProvider;
         $this->quantityProcessor = $quantityProcessor;
@@ -86,6 +93,7 @@ class Cart extends Action\Action implements IndexInterface
         $this->productHelper = $productHelper;
         $this->escaper = $escaper;
         $this->helper = $helper;
+        $this->cartHelper = $cartHelper;
         parent::__construct($context);
     }
 
@@ -95,22 +103,25 @@ class Cart extends Action\Action implements IndexInterface
      * If Product has required options - item removed from wishlist and redirect
      * to product view page with message about needed defined required options
      *
-     * @return ResponseInterface
+     * @return \Magento\Framework\Controller\ResultInterface
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
     public function execute()
     {
         $itemId = (int)$this->getRequest()->getParam('item');
-
+        /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
         /* @var $item \Magento\Wishlist\Model\Item */
         $item = $this->itemFactory->create()->load($itemId);
         if (!$item->getId()) {
-            return $this->_redirect('*/*');
+            $resultRedirect->setPath('*/*');
+            return $resultRedirect;
         }
         $wishlist = $this->wishlistProvider->getWishlist($item->getWishlistId());
         if (!$wishlist) {
-            return $this->_redirect('*/*');
+            $resultRedirect->setPath('*/*');
+            return $resultRedirect;
         }
 
         // Set qty
@@ -159,8 +170,8 @@ class Cart extends Action\Action implements IndexInterface
                 $this->messageManager->addSuccess($message);
             }
 
-            if ($this->cart->getShouldRedirectToCart()) {
-                $redirectUrl = $this->cart->getCartUrl();
+            if ($this->cartHelper->getShouldRedirectToCart()) {
+                $redirectUrl = $this->cartHelper->getCartUrl();
             } else {
                 $refererUrl = $this->_redirect->getRefererUrl();
                 if ($refererUrl && $refererUrl != $configureUrl) {
@@ -178,6 +189,14 @@ class Cart extends Action\Action implements IndexInterface
 
         $this->helper->calculate();
 
-        return $this->getResponse()->setRedirect($redirectUrl);
+        if ($this->getRequest()->isAjax()) {
+            /** @var \Magento\Framework\Controller\Result\Json $resultJson */
+            $resultJson = $this->resultFactory->create(ResultFactory::TYPE_JSON);
+            $resultJson->setData(['backUrl' => $redirectUrl]);
+            return $resultJson;
+        }
+        
+        $resultRedirect->setUrl($redirectUrl);
+        return $resultRedirect;
     }
 }
diff --git a/app/code/Magento/Wishlist/Controller/Index/Configure.php b/app/code/Magento/Wishlist/Controller/Index/Configure.php
index 8172c895ed70e361cdeff01b31484bd69917a396..37522cd4cd0dac0bf1719106db853dbba4190744 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Configure.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Configure.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -9,6 +8,7 @@ namespace Magento\Wishlist\Controller\Index;
 use Magento\Framework\App\Action;
 use Magento\Framework\Exception\NotFoundException;
 use Magento\Wishlist\Controller\IndexInterface;
+use Magento\Framework\Controller\ResultFactory;
 
 class Configure extends Action\Action implements IndexInterface
 {
@@ -50,12 +50,14 @@ class Configure extends Action\Action implements IndexInterface
     /**
      * Action to reconfigure wishlist item
      *
-     * @return void
+     * @return \Magento\Framework\Controller\ResultInterface
      * @throws NotFoundException
      */
     public function execute()
     {
         $id = (int)$this->getRequest()->getParam('id');
+        /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
         try {
             /* @var $item \Magento\Wishlist\Model\Item */
             $item = $this->_objectManager->create('Magento\Wishlist\Model\Item');
@@ -83,7 +85,7 @@ class Configure extends Action\Action implements IndexInterface
             }
             $params->setBuyRequest($buyRequest);
             /** @var \Magento\Framework\View\Result\Page $resultPage */
-            $resultPage = $this->resultPageFactory->create();
+            $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
             $this->_objectManager->get(
                 'Magento\Catalog\Helper\Product\View'
             )->prepareAndRender(
@@ -96,13 +98,13 @@ class Configure extends Action\Action implements IndexInterface
             return $resultPage;
         } catch (\Magento\Framework\Exception\LocalizedException $e) {
             $this->messageManager->addError($e->getMessage());
-            $this->_redirect('*');
-            return;
+            $resultRedirect->setPath('*');
+            return $resultRedirect;
         } catch (\Exception $e) {
             $this->messageManager->addError(__('We can\'t configure the product.'));
             $this->_objectManager->get('Psr\Log\LoggerInterface')->critical($e);
-            $this->_redirect('*');
-            return;
+            $resultRedirect->setPath('*');
+            return $resultRedirect;
         }
     }
 }
diff --git a/app/code/Magento/Wishlist/Controller/Index/DownloadCustomOption.php b/app/code/Magento/Wishlist/Controller/Index/DownloadCustomOption.php
index 3c26bf8e64db6f7007b465927d10622f2e5a3816..1edd5e4426ee0343e25a9ab270674e72c74a4b79 100644
--- a/app/code/Magento/Wishlist/Controller/Index/DownloadCustomOption.php
+++ b/app/code/Magento/Wishlist/Controller/Index/DownloadCustomOption.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -9,6 +8,7 @@ namespace Magento\Wishlist\Controller\Index;
 use Magento\Framework\App\Action;
 use Magento\Framework\App\Filesystem\DirectoryList;
 use Magento\Wishlist\Controller\IndexInterface;
+use Magento\Framework\Controller\ResultFactory;
 
 class DownloadCustomOption extends Action\Action implements IndexInterface
 {
@@ -32,7 +32,7 @@ class DownloadCustomOption extends Action\Action implements IndexInterface
     /**
      * Custom options download action
      *
-     * @return void
+     * @return \Magento\Framework\Controller\Result\Forward
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.ExitExpression)
      */
@@ -43,9 +43,11 @@ class DownloadCustomOption extends Action\Action implements IndexInterface
         )->load(
             $this->getRequest()->getParam('id')
         );
-
+        /** @var \Magento\Framework\Controller\Result\Forward $resultForward */
+        $resultForward = $this->resultFactory->create(ResultFactory::TYPE_FORWARD);
         if (!$option->getId()) {
-            return $this->_forward('noroute');
+            $resultForward->forward('noroute');
+            return $resultForward;
         }
 
         $optionId = null;
@@ -56,7 +58,8 @@ class DownloadCustomOption extends Action\Action implements IndexInterface
                 $option->getCode()
             );
             if ((int)$optionId != $optionId) {
-                return $this->_forward('noroute');
+                $resultForward->forward('noroute');
+                return $resultForward;
             }
         }
         $productOption = $this->_objectManager->create('Magento\Catalog\Model\Product\Option')->load($optionId);
@@ -66,7 +69,8 @@ class DownloadCustomOption extends Action\Action implements IndexInterface
             $productOption->getProductId() != $option->getProductId() ||
             $productOption->getType() != 'file'
         ) {
-            return $this->_forward('noroute');
+            $resultForward->forward('noroute');
+            return $resultForward;
         }
 
         try {
@@ -81,8 +85,8 @@ class DownloadCustomOption extends Action\Action implements IndexInterface
                 );
             }
         } catch (\Exception $e) {
-            $this->_forward('noroute');
+            $resultForward->forward('noroute');
+            return $resultForward;
         }
-        exit(0);
     }
 }
diff --git a/app/code/Magento/Wishlist/Controller/Index/Fromcart.php b/app/code/Magento/Wishlist/Controller/Index/Fromcart.php
index 085cf426a0a37cacae5decf0bfa6e020e229b6fb..03c1db81044f7b1be83ea1d319a4614538f9395f 100755
--- a/app/code/Magento/Wishlist/Controller/Index/Fromcart.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Fromcart.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -9,6 +8,7 @@ namespace Magento\Wishlist\Controller\Index;
 use Magento\Framework\App\Action;
 use Magento\Framework\Exception\NotFoundException;
 use Magento\Wishlist\Controller\IndexInterface;
+use Magento\Framework\Controller\ResultFactory;
 
 class Fromcart extends Action\Action implements IndexInterface
 {
@@ -82,7 +82,8 @@ class Fromcart extends Action\Action implements IndexInterface
      */
     public function getDefaultResult()
     {
-        $resultRedirect = $this->resultRedirectFactory->create();
+        /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
         return $resultRedirect->setUrl($this->_objectManager->get('Magento\Checkout\Helper\Cart')->getCartUrl());
     }
 }
diff --git a/app/code/Magento/Wishlist/Controller/Index/Index.php b/app/code/Magento/Wishlist/Controller/Index/Index.php
index 9cb4bbe9fcdb089edab3d242f6a648b128c55890..53566774d2400ee6dd73f7468bd4fb1de3d10c49 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Index.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Index.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -9,6 +8,7 @@ namespace Magento\Wishlist\Controller\Index;
 use Magento\Framework\App\Action;
 use Magento\Framework\Exception\NotFoundException;
 use Magento\Wishlist\Controller\IndexInterface;
+use Magento\Framework\Controller\ResultFactory;
 
 class Index extends Action\Action implements IndexInterface
 {
@@ -32,7 +32,7 @@ class Index extends Action\Action implements IndexInterface
     /**
      * Display customer wishlist
      *
-     * @return void
+     * @return \Magento\Framework\View\Result\Page
      * @throws NotFoundException
      */
     public function execute()
@@ -40,8 +40,9 @@ class Index extends Action\Action implements IndexInterface
         if (!$this->wishlistProvider->getWishlist()) {
             throw new NotFoundException(__('Page not found.'));
         }
-        $this->_view->loadLayout();
-        $this->_view->getLayout()->initMessages();
-        $this->_view->renderLayout();
+        /** @var \Magento\Framework\View\Result\Page resultPage */
+        $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
+        $resultPage->getLayout()->initMessages();
+        return $resultPage;
     }
 }
diff --git a/app/code/Magento/Wishlist/Controller/Index/Remove.php b/app/code/Magento/Wishlist/Controller/Index/Remove.php
index 674d1118a614689e2c25958bb205c3eb5be668ae..6a07bcbc9e03b6634f6c7d08fd7563e1650493ea 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Remove.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Remove.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -9,6 +8,7 @@ namespace Magento\Wishlist\Controller\Index;
 use Magento\Framework\App\Action;
 use Magento\Framework\Exception\NotFoundException;
 use Magento\Wishlist\Controller\IndexInterface;
+use Magento\Framework\Controller\ResultFactory;
 
 class Remove extends Action\Action implements IndexInterface
 {
@@ -32,7 +32,7 @@ class Remove extends Action\Action implements IndexInterface
     /**
      * Remove item
      *
-     * @return void
+     * @return \Magento\Framework\Controller\Result\Redirect
      * @throws NotFoundException
      */
     public function execute()
@@ -69,6 +69,9 @@ class Remove extends Action\Action implements IndexInterface
         } else {
             $redirectUrl = $this->_redirect->getRedirectUrl($this->_url->getUrl('*/*'));
         }
-        $this->getResponse()->setRedirect($redirectUrl);
+        /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
+        $resultRedirect->setUrl($redirectUrl);
+        return $resultRedirect;
     }
 }
diff --git a/app/code/Magento/Wishlist/Controller/Index/Send.php b/app/code/Magento/Wishlist/Controller/Index/Send.php
index 6a54e1b7bf9f0ba2da61da6f0976f40f0ab81b9a..591da81b0aab9f36ebcd3654bf5290fa91b11242 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Send.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Send.php
@@ -8,8 +8,9 @@ namespace Magento\Wishlist\Controller\Index;
 
 use Magento\Framework\App\Action;
 use Magento\Framework\Exception\NotFoundException;
-use Magento\Framework\App\ResponseInterface;
 use Magento\Wishlist\Controller\IndexInterface;
+use Magento\Framework\Controller\ResultFactory;
+use Magento\Framework\View\Result\Layout as ResultLayout;
 
 /**
  * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
@@ -84,7 +85,7 @@ class Send extends Action\Action implements IndexInterface
     /**
      * Share wishlist
      *
-     * @return ResponseInterface|void
+     * @return \Magento\Framework\Controller\Result\Redirect
      * @throws NotFoundException
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
@@ -92,8 +93,11 @@ class Send extends Action\Action implements IndexInterface
      */
     public function execute()
     {
+        /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
         if (!$this->_formKeyValidator->validate($this->getRequest())) {
-            return $this->_redirect('*/*/');
+            $resultRedirect->setPath('*/*/');
+            return $resultRedirect;
         }
 
         $wishlist = $this->wishlistProvider->getWishlist();
@@ -136,11 +140,12 @@ class Send extends Action\Action implements IndexInterface
             )->setSharingForm(
                 $this->getRequest()->getPostValue()
             );
-            $this->_redirect('*/*/share');
-            return;
+            $resultRedirect->setPath('*/*/share');
+            return $resultRedirect;
         }
-
-        $this->addLayoutHandles();
+        /** @var \Magento\Framework\View\Result\Layout $resultLayout */
+        $resultLayout = $this->resultFactory->create(ResultFactory::TYPE_LAYOUT);
+        $this->addLayoutHandles($resultLayout);
         $this->inlineTranslation->suspend();
 
         $sent = 0;
@@ -149,7 +154,7 @@ class Send extends Action\Action implements IndexInterface
             $customer = $this->_customerSession->getCustomerDataObject();
             $customerName = $this->_customerHelperView->getCustomerName($customer);
 
-            $message .= $this->getRssLink($wishlist->getId());
+            $message .= $this->getRssLink($wishlist->getId(), $resultLayout);
             $emails = array_unique($emails);
             $sharingCode = $wishlist->getSharingCode();
 
@@ -172,7 +177,7 @@ class Send extends Action\Action implements IndexInterface
                             'customer' => $customer,
                             'customerName' => $customerName,
                             'salable' => $wishlist->isSalable() ? 'yes' : '',
-                            'items' => $this->getWishlistItems(),
+                            'items' => $this->getWishlistItems($resultLayout),
                             'addAllLink' => $this->_url->getUrl('*/shared/allcart', ['code' => $sharingCode]),
                             'viewOnSiteLink' => $this->_url->getUrl('*/shared/index', ['code' => $sharingCode]),
                             'message' => $message,
@@ -203,7 +208,8 @@ class Send extends Action\Action implements IndexInterface
 
             $this->_eventManager->dispatch('wishlist_share', ['wishlist' => $wishlist]);
             $this->messageManager->addSuccess(__('Your wish list has been shared.'));
-            $this->_redirect('*/*', ['wishlist_id' => $wishlist->getId()]);
+            $resultRedirect->setPath('*/*', ['wishlist_id' => $wishlist->getId()]);
+            return $resultRedirect;
         } catch (\Exception $e) {
             $this->inlineTranslation->resume();
             $this->messageManager->addError($e->getMessage());
@@ -212,7 +218,8 @@ class Send extends Action\Action implements IndexInterface
             )->setSharingForm(
                 $this->getRequest()->getPostValue()
             );
-            $this->_redirect('*/*/share');
+            $resultRedirect->setPath('*/*/share');
+            return $resultRedirect;
         }
     }
 
@@ -222,27 +229,28 @@ class Send extends Action\Action implements IndexInterface
      * Add 'wishlist_email_rss' layout handle.
      * Add 'wishlist_email_items' layout handle.
      *
+     * @param \Magento\Framework\View\Result\Layout $resultLayout
      * @return void
      */
-    protected function addLayoutHandles()
+    protected function addLayoutHandles(ResultLayout $resultLayout)
     {
         if ($this->getRequest()->getParam('rss_url')) {
-            $this->_view->getLayout()->getUpdate()->addHandle('wishlist_email_rss');
+            $resultLayout->addHandle('wishlist_email_rss');
         }
-        $this->_view->getLayout()->getUpdate()->addHandle('wishlist_email_items');
-        $this->_view->loadLayoutUpdates();
+        $resultLayout->addHandle('wishlist_email_items');
     }
 
     /**
      * Retrieve RSS link content (html)
      *
      * @param int $wishlistId
+     * @param \Magento\Framework\View\Result\Layout $resultLayout
      * @return mixed
      */
-    protected function getRssLink($wishlistId)
+    protected function getRssLink($wishlistId, ResultLayout $resultLayout)
     {
         if ($this->getRequest()->getParam('rss_url')) {
-            return $this->_view->getLayout()
+            return $resultLayout->getLayout()
                 ->getBlock('wishlist.email.rss')
                 ->setWishlistId($wishlistId)
                 ->toHtml();
@@ -252,11 +260,12 @@ class Send extends Action\Action implements IndexInterface
     /**
      * Retrieve wishlist items content (html)
      *
+     * @param \Magento\Framework\View\Result\Layout $resultLayout
      * @return string
      */
-    protected function getWishlistItems()
+    protected function getWishlistItems(ResultLayout $resultLayout)
     {
-        return $this->_view->getLayout()
+        return $resultLayout->getLayout()
             ->getBlock('wishlist.email.items')
             ->toHtml();
     }
diff --git a/app/code/Magento/Wishlist/Controller/Index/Share.php b/app/code/Magento/Wishlist/Controller/Index/Share.php
index b47a0027f7bdd793ebef983e69aaae1f8861c651..cfc8f8a7f8b2a51cfc3a2e8f120735c4c449ac5f 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Share.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Share.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -8,18 +7,20 @@ namespace Magento\Wishlist\Controller\Index;
 
 use Magento\Framework\App\Action;
 use Magento\Wishlist\Controller\IndexInterface;
+use Magento\Framework\Controller\ResultFactory;
 
 class Share extends Action\Action implements IndexInterface
 {
     /**
      * Prepare wishlist for share
      *
-     * @return void
+     * @return \Magento\Framework\View\Result\Page
      */
     public function execute()
     {
-        $this->_view->loadLayout();
-        $this->_view->getLayout()->initMessages();
-        $this->_view->renderLayout();
+        /** @var \Magento\Framework\View\Result\Page $resultPage */
+        $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
+        $resultPage->getLayout()->initMessages();
+        return $resultPage;
     }
 }
diff --git a/app/code/Magento/Wishlist/Controller/Index/Update.php b/app/code/Magento/Wishlist/Controller/Index/Update.php
index 731a80cd743570abb624ee89bee2fb5a2e5179eb..ab7c5efd3d88aaf958418273106c46d66cf1b0e6 100644
--- a/app/code/Magento/Wishlist/Controller/Index/Update.php
+++ b/app/code/Magento/Wishlist/Controller/Index/Update.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -8,8 +7,8 @@ namespace Magento\Wishlist\Controller\Index;
 
 use Magento\Framework\App\Action;
 use Magento\Framework\Exception\NotFoundException;
-use Magento\Framework\App\ResponseInterface;
 use Magento\Wishlist\Controller\IndexInterface;
+use Magento\Framework\Controller\ResultFactory;
 
 class Update extends Action\Action implements IndexInterface
 {
@@ -49,15 +48,18 @@ class Update extends Action\Action implements IndexInterface
     /**
      * Update wishlist item comments
      *
-     * @return ResponseInterface|void
+     * @return \Magento\Framework\Controller\Result\Redirect
      * @throws NotFoundException
      * @SuppressWarnings(PHPMD.CyclomaticComplexity)
      * @SuppressWarnings(PHPMD.NPathComplexity)
      */
     public function execute()
     {
+        /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
         if (!$this->_formKeyValidator->validate($this->getRequest())) {
-            return $this->_redirect('*/*/');
+            $resultRedirect->setPath('*/*/');
+            return $resultRedirect;
         }
         $wishlist = $this->wishlistProvider->getWishlist();
         if (!$wishlist) {
@@ -130,10 +132,11 @@ class Update extends Action\Action implements IndexInterface
             }
 
             if (isset($post['save_and_share'])) {
-                $this->_redirect('*/*/share', ['wishlist_id' => $wishlist->getId()]);
-                return;
+                $resultRedirect->setPath('*/*/share', ['wishlist_id' => $wishlist->getId()]);
+                return $resultRedirect;
             }
         }
-        $this->_redirect('*', ['wishlist_id' => $wishlist->getId()]);
+        $resultRedirect->setPath('*', ['wishlist_id' => $wishlist->getId()]);
+        return $resultRedirect;
     }
 }
diff --git a/app/code/Magento/Wishlist/Controller/Index/UpdateItemOptions.php b/app/code/Magento/Wishlist/Controller/Index/UpdateItemOptions.php
index 483d3793eddc7fb3b0b107a8978e3143a3ca2897..b9dee182873329586d901c6fd32ca9e18116fd95 100644
--- a/app/code/Magento/Wishlist/Controller/Index/UpdateItemOptions.php
+++ b/app/code/Magento/Wishlist/Controller/Index/UpdateItemOptions.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -10,6 +9,7 @@ use Magento\Catalog\Api\ProductRepositoryInterface;
 use Magento\Framework\App\Action;
 use Magento\Framework\Exception\NoSuchEntityException;
 use Magento\Wishlist\Controller\IndexInterface;
+use Magento\Framework\Controller\ResultFactory;
 
 class UpdateItemOptions extends Action\Action implements IndexInterface
 {
@@ -49,14 +49,16 @@ class UpdateItemOptions extends Action\Action implements IndexInterface
     /**
      * Action to accept new configuration for a wishlist item
      *
-     * @return void
+     * @return \Magento\Framework\Controller\Result\Redirect
      */
     public function execute()
     {
         $productId = (int)$this->getRequest()->getParam('product');
+        /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
         if (!$productId) {
-            $this->_redirect('*/');
-            return;
+            $resultRedirect->setPath('*/');
+            return $resultRedirect;
         }
 
         try {
@@ -67,8 +69,8 @@ class UpdateItemOptions extends Action\Action implements IndexInterface
 
         if (!$product || !$product->isVisibleInCatalog()) {
             $this->messageManager->addError(__('We can\'t specify a product.'));
-            $this->_redirect('*/');
-            return;
+            $resultRedirect->setPath('*/');
+            return $resultRedirect;
         }
 
         try {
@@ -78,8 +80,8 @@ class UpdateItemOptions extends Action\Action implements IndexInterface
             $item->load($id);
             $wishlist = $this->wishlistProvider->getWishlist($item->getWishlistId());
             if (!$wishlist) {
-                $this->_redirect('*/');
-                return;
+                $resultRedirect->setPath('*/');
+                return $resultRedirect;
             }
 
             $buyRequest = new \Magento\Framework\Object($this->getRequest()->getParams());
@@ -102,6 +104,7 @@ class UpdateItemOptions extends Action\Action implements IndexInterface
             $this->messageManager->addError(__('An error occurred while updating wish list.'));
             $this->_objectManager->get('Psr\Log\LoggerInterface')->critical($e);
         }
-        $this->_redirect('*/*', ['wishlist_id' => $wishlist->getId()]);
+        $resultRedirect->setPath('*/*', ['wishlist_id' => $wishlist->getId()]);
+        return $resultRedirect;
     }
 }
diff --git a/app/code/Magento/Wishlist/Controller/Shared/Allcart.php b/app/code/Magento/Wishlist/Controller/Shared/Allcart.php
index 27dc5d8fd5d94bb56e9060035a136c6d30a6c368..ffb6e34ea96390aedd403549f7294126bcd1b93c 100644
--- a/app/code/Magento/Wishlist/Controller/Shared/Allcart.php
+++ b/app/code/Magento/Wishlist/Controller/Shared/Allcart.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -8,6 +7,7 @@ namespace Magento\Wishlist\Controller\Shared;
 
 use Magento\Framework\App\Action\Context;
 use Magento\Wishlist\Model\ItemCarrier;
+use Magento\Framework\Controller\ResultFactory;
 
 class Allcart extends \Magento\Framework\App\Action\Action
 {
@@ -39,16 +39,21 @@ class Allcart extends \Magento\Framework\App\Action\Action
     /**
      * Add all items from wishlist to shopping cart
      *
-     * @return void
+     * @return \Magento\Framework\Controller\ResultInterface
      */
     public function execute()
     {
         $wishlist = $this->wishlistProvider->getWishlist();
         if (!$wishlist) {
-            $this->_forward('noroute');
-            return;
+            /** @var \Magento\Framework\Controller\Result\Forward $resultForward */
+            $resultForward = $this->resultFactory->create(ResultFactory::TYPE_FORWARD);
+            $resultForward->forward('noroute');
+            return $resultForward;
         }
         $redirectUrl = $this->itemCarrier->moveAllToCart($wishlist, $this->getRequest()->getParam('qty'));
-        $this->getResponse()->setRedirect($redirectUrl);
+        /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
+        $resultRedirect->setUrl($redirectUrl);
+        return $resultRedirect;
     }
 }
diff --git a/app/code/Magento/Wishlist/Controller/Shared/Cart.php b/app/code/Magento/Wishlist/Controller/Shared/Cart.php
index b14e996706ec4892296df08cad1b777c1166a41b..5c1efa80aec9ed522b32785b837805a0c05ab120 100644
--- a/app/code/Magento/Wishlist/Controller/Shared/Cart.php
+++ b/app/code/Magento/Wishlist/Controller/Shared/Cart.php
@@ -1,11 +1,12 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 namespace Magento\Wishlist\Controller\Shared;
 
+use Magento\Framework\Controller\ResultFactory;
+
 class Cart extends \Magento\Framework\App\Action\Action
 {
     /**
@@ -14,7 +15,7 @@ class Cart extends \Magento\Framework\App\Action\Action
      * If Product has required options - redirect
      * to product view page with message about needed defined required options
      *
-     * @return \Magento\Framework\App\Response\Http
+     * @return \Magento\Framework\Controller\Result\Redirect
      */
     public function execute()
     {
@@ -51,7 +52,9 @@ class Cart extends \Magento\Framework\App\Action\Action
         } catch (\Exception $e) {
             $this->messageManager->addException($e, __('Cannot add item to shopping cart'));
         }
-
-        return $this->getResponse()->setRedirect($redirectUrl);
+        /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
+        $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
+        $resultRedirect->setUrl($redirectUrl);
+        return $resultRedirect;
     }
 }
diff --git a/app/code/Magento/Wishlist/Controller/Shared/Index.php b/app/code/Magento/Wishlist/Controller/Shared/Index.php
index 39c564d62004792cff56a7c3a6f81e510cb4e3ba..20ccbf1b45bcf38e17a0df3b09849da725a3ec5e 100644
--- a/app/code/Magento/Wishlist/Controller/Shared/Index.php
+++ b/app/code/Magento/Wishlist/Controller/Shared/Index.php
@@ -1,6 +1,5 @@
 <?php
 /**
- *
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
@@ -8,8 +7,9 @@ namespace Magento\Wishlist\Controller\Shared;
 
 use Magento\Framework\App\Action\Action;
 use Magento\Framework\App\Action\Context;
+use Magento\Framework\Controller\ResultFactory;
 
-class Index extends \Magento\Framework\App\Action\Action
+class Index extends Action
 {
     /**
      * Core registry
@@ -49,7 +49,7 @@ class Index extends \Magento\Framework\App\Action\Action
     /**
      * Shared wishlist view page
      *
-     * @return void
+     * @return \Magento\Framework\Controller\ResultInterface
      */
     public function execute()
     {
@@ -57,16 +57,18 @@ class Index extends \Magento\Framework\App\Action\Action
         $customerId = $this->customerSession->getCustomerId();
 
         if ($wishlist && $wishlist->getCustomerId() && $wishlist->getCustomerId() == $customerId) {
-            $this->getResponse()->setRedirect(
+            /** @var \Magento\Framework\Controller\Result\Redirect $resultRedirect */
+            $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);
+            $resultRedirect->setUrl(
                 $this->_objectManager->get('Magento\Wishlist\Helper\Data')->getListUrl($wishlist->getId())
             );
-            return;
+            return $resultRedirect;
         }
 
         $this->registry->register('shared_wishlist', $wishlist);
-
-        $this->_view->loadLayout();
-        $this->_view->getLayout()->initMessages();
-        $this->_view->renderLayout();
+        /** @var \Magento\Framework\View\Result\Page $resultPage */
+        $resultPage = $this->resultFactory->create(ResultFactory::TYPE_PAGE);
+        $resultPage->getLayout()->initMessages();
+        return $resultPage;
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/AddTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/AddTest.php
index 98fbbc933f8a1da2f837a85079624e6ce180a314..54e91fb5f079aad57ac236a3ee64c9c87f675b4b 100755
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/AddTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/AddTest.php
@@ -3,9 +3,10 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-
 namespace Magento\Wishlist\Test\Unit\Controller\Index;
 
+use Magento\Framework\Controller\ResultFactory;
+
 class AddTest extends \PHPUnit_Framework_TestCase
 {
     /**
@@ -33,21 +34,21 @@ class AddTest extends \PHPUnit_Framework_TestCase
      */
     protected $controller;
 
+    /**
+     * @var \Magento\Framework\Controller\ResultFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $resultFactoryMock;
+
+    /**
+     * @var \Magento\Framework\Controller\Result\Redirect|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $resultRedirectMock;
+
     public function setUp()
     {
         $this->context = $this->getMock(
             'Magento\Framework\App\Action\Context',
-            [
-                'getRequest',
-                'getResponse',
-                'getObjectManager',
-                'getEventManager',
-                'getUrl',
-                'getActionFlag',
-                'getRedirect',
-                'getView',
-                'getMessageManager'
-            ],
+            [],
             [],
             '',
             false
@@ -79,6 +80,17 @@ class AddTest extends \PHPUnit_Framework_TestCase
             '',
             false
         );
+        $this->resultFactoryMock = $this->getMockBuilder('Magento\Framework\Controller\ResultFactory')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->resultRedirectMock = $this->getMockBuilder('Magento\Framework\Controller\Result\Redirect')
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $this->resultFactoryMock->expects($this->any())
+            ->method('create')
+            ->with(ResultFactory::TYPE_REDIRECT, [])
+            ->willReturn($this->resultRedirectMock);
     }
 
     /**
@@ -128,13 +140,6 @@ class AddTest extends \PHPUnit_Framework_TestCase
             '',
             false
         );
-        $redirect = $this->getMock(
-            '\Magento\Store\App\Response\Redirect',
-            null,
-            [],
-            '',
-            false
-        );
         $view = $this->getMock(
             'Magento\Framework\App\View',
             null,
@@ -174,10 +179,6 @@ class AddTest extends \PHPUnit_Framework_TestCase
             ->expects($this->any())
             ->method('getActionFlag')
             ->will($this->returnValue($actionFlag));
-        $this->context
-            ->expects($this->any())
-            ->method('getRedirect')
-            ->will($this->returnValue($redirect));
         $this->context
             ->expects($this->any())
             ->method('getView')
@@ -186,6 +187,9 @@ class AddTest extends \PHPUnit_Framework_TestCase
             ->expects($this->any())
             ->method('getMessageManager')
             ->will($this->returnValue($messageManager));
+        $this->context->expects($this->any())
+            ->method('getResultFactory')
+            ->willReturn($this->resultFactoryMock);
     }
 
     public function configureCustomerSession()
@@ -261,12 +265,10 @@ class AddTest extends \PHPUnit_Framework_TestCase
         $eventManager = $this->getMock('Magento\Framework\Event\Manager', null, [], '', false);
         $url = $this->getMock('Magento\Framework\Url', null, [], '', false);
         $actionFlag = $this->getMock('Magento\Framework\App\ActionFlag', null, [], '', false);
-        $redirect = $this->getMock('\Magento\Store\App\Response\Redirect', ['redirect'], [], '', false);
-        $redirect
-            ->expects($this->once())
-            ->method('redirect')
-            ->with($response, '*/', [])
-            ->will($this->returnValue(null));
+        $this->resultRedirectMock->expects($this->once())
+            ->method('setPath')
+            ->with('*/', [])
+            ->willReturnSelf();
         $view = $this->getMock('Magento\Framework\App\View', null, [], '', false);
         $messageManager = $this->getMock('Magento\Framework\Message\Manager', null, [], '', false);
 
@@ -294,10 +296,6 @@ class AddTest extends \PHPUnit_Framework_TestCase
             ->expects($this->any())
             ->method('getActionFlag')
             ->will($this->returnValue($actionFlag));
-        $this->context
-            ->expects($this->any())
-            ->method('getRedirect')
-            ->will($this->returnValue($redirect));
         $this->context
             ->expects($this->any())
             ->method('getView')
@@ -327,10 +325,13 @@ class AddTest extends \PHPUnit_Framework_TestCase
             ->expects($this->never())
             ->method('setBeforeWishlistUrl')
             ->will($this->returnValue(null));
+        $this->context->expects($this->any())
+            ->method('getResultFactory')
+            ->willReturn($this->resultFactoryMock);
 
         $this->createController();
 
-        $this->controller->execute();
+        $this->assertSame($this->resultRedirectMock, $this->controller->execute());
     }
 
     /**
@@ -344,7 +345,6 @@ class AddTest extends \PHPUnit_Framework_TestCase
             ->method('getWishlist')
             ->will($this->returnValue($wishlist));
 
-
         $request = $this->getMock('Magento\Framework\App\Request\Http', ['getParams'], [], '', false);
         $request
             ->expects($this->once())
@@ -356,12 +356,10 @@ class AddTest extends \PHPUnit_Framework_TestCase
         $eventManager = $this->getMock('Magento\Framework\Event\Manager', null, [], '', false);
         $url = $this->getMock('Magento\Framework\Url', null, [], '', false);
         $actionFlag = $this->getMock('Magento\Framework\App\ActionFlag', null, [], '', false);
-        $redirect = $this->getMock('\Magento\Store\App\Response\Redirect', ['redirect'], [], '', false);
-        $redirect
-            ->expects($this->once())
-            ->method('redirect')
-            ->with($response, '*/', [])
-            ->will($this->returnValue(null));
+        $this->resultRedirectMock->expects($this->once())
+            ->method('setPath')
+            ->with('*/', [])
+            ->willReturnSelf();
         $view = $this->getMock('Magento\Framework\App\View', null, [], '', false);
         $messageManager = $this->getMock('Magento\Framework\Message\Manager', ['addError'], [], '', false);
         $messageManager
@@ -394,10 +392,6 @@ class AddTest extends \PHPUnit_Framework_TestCase
             ->expects($this->any())
             ->method('getActionFlag')
             ->will($this->returnValue($actionFlag));
-        $this->context
-            ->expects($this->any())
-            ->method('getRedirect')
-            ->will($this->returnValue($redirect));
         $this->context
             ->expects($this->any())
             ->method('getView')
@@ -406,6 +400,9 @@ class AddTest extends \PHPUnit_Framework_TestCase
             ->expects($this->any())
             ->method('getMessageManager')
             ->will($this->returnValue($messageManager));
+        $this->context->expects($this->any())
+            ->method('getResultFactory')
+            ->willReturn($this->resultFactoryMock);
 
         $this->customerSession
             ->expects($this->exactly(1))
@@ -430,7 +427,7 @@ class AddTest extends \PHPUnit_Framework_TestCase
 
         $this->createController();
 
-        $this->controller->execute();
+        $this->assertSame($this->resultRedirectMock, $this->controller->execute());
     }
 
     /**
@@ -466,12 +463,10 @@ class AddTest extends \PHPUnit_Framework_TestCase
         $eventManager = $this->getMock('Magento\Framework\Event\Manager', null, [], '', false);
         $url = $this->getMock('Magento\Framework\Url', null, [], '', false);
         $actionFlag = $this->getMock('Magento\Framework\App\ActionFlag', null, [], '', false);
-        $redirect = $this->getMock('\Magento\Store\App\Response\Redirect', ['redirect'], [], '', false);
-        $redirect
-            ->expects($this->once())
-            ->method('redirect')
-            ->with($response, '*', ['wishlist_id' => 2])
-            ->will($this->returnValue(null));
+        $this->resultRedirectMock->expects($this->once())
+            ->method('setPath')
+            ->with('*', ['wishlist_id' => 2])
+            ->willReturnSelf();
 
         $view = $this->getMock('Magento\Framework\App\View', null, [], '', false);
         $messageManager = $this->getMock('Magento\Framework\Message\Manager', ['addError'], [], '', false);
@@ -505,10 +500,6 @@ class AddTest extends \PHPUnit_Framework_TestCase
             ->expects($this->any())
             ->method('getActionFlag')
             ->will($this->returnValue($actionFlag));
-        $this->context
-            ->expects($this->any())
-            ->method('getRedirect')
-            ->will($this->returnValue($redirect));
         $this->context
             ->expects($this->any())
             ->method('getView')
@@ -517,6 +508,9 @@ class AddTest extends \PHPUnit_Framework_TestCase
             ->expects($this->any())
             ->method('getMessageManager')
             ->will($this->returnValue($messageManager));
+        $this->context->expects($this->any())
+            ->method('getResultFactory')
+            ->willReturn($this->resultFactoryMock);
 
         $this->customerSession
             ->expects($this->exactly(1))
@@ -559,7 +553,7 @@ class AddTest extends \PHPUnit_Framework_TestCase
 
         $this->createController();
 
-        $this->controller->execute();
+        $this->assertSame($this->resultRedirectMock, $this->controller->execute());
     }
 
     /**
@@ -683,12 +677,10 @@ class AddTest extends \PHPUnit_Framework_TestCase
 
         $url = $this->getMock('Magento\Framework\Url', null, [], '', false);
         $actionFlag = $this->getMock('Magento\Framework\App\ActionFlag', null, [], '', false);
-        $redirect = $this->getMock('\Magento\Store\App\Response\Redirect', ['redirect'], [], '', false);
-        $redirect
-            ->expects($this->once())
-            ->method('redirect')
-            ->with($response, '*', ['wishlist_id' => 2])
-            ->will($this->returnValue(null));
+        $this->resultRedirectMock->expects($this->once())
+            ->method('setPath')
+            ->with('*', ['wishlist_id' => 2])
+            ->willReturnSelf();
 
         $view = $this->getMock('Magento\Framework\App\View', null, [], '', false);
 
@@ -733,10 +725,6 @@ class AddTest extends \PHPUnit_Framework_TestCase
             ->expects($this->any())
             ->method('getActionFlag')
             ->will($this->returnValue($actionFlag));
-        $this->context
-            ->expects($this->any())
-            ->method('getRedirect')
-            ->will($this->returnValue($redirect));
         $this->context
             ->expects($this->any())
             ->method('getView')
@@ -745,6 +733,9 @@ class AddTest extends \PHPUnit_Framework_TestCase
             ->expects($this->any())
             ->method('getMessageManager')
             ->will($this->returnValue($messageManager));
+        $this->context->expects($this->any())
+            ->method('getResultFactory')
+            ->willReturn($this->resultFactoryMock);
 
         $this->customerSession
             ->expects($this->exactly(1))
@@ -766,6 +757,6 @@ class AddTest extends \PHPUnit_Framework_TestCase
 
         $this->createController();
 
-        $this->controller->execute();
+        $this->assertSame($this->resultRedirectMock, $this->controller->execute());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/AllcartTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/AllcartTest.php
index b99b18f4b87eaa6f95bc93601e434b2ce8bbc417..8d58bf0be7592847c0f13f568d923ff6aeeceba7 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/AllcartTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/AllcartTest.php
@@ -3,9 +3,10 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-
 namespace Magento\Wishlist\Test\Unit\Controller\Index;
 
+use Magento\Framework\Controller\ResultFactory;
+
 class AllcartTest extends \PHPUnit_Framework_TestCase
 {
     /**
@@ -38,6 +39,21 @@ class AllcartTest extends \PHPUnit_Framework_TestCase
      */
     protected $response;
 
+    /**
+     * @var \Magento\Framework\Controller\ResultFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $resultFactoryMock;
+
+    /**
+     * @var \Magento\Framework\Controller\Result\Redirect|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $resultRedirectMock;
+
+    /**
+     * @var \Magento\Framework\Controller\Result\Forward|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $resultForwardMock;
+
     protected function setUp()
     {
         $this->context = $this->getMock('Magento\Framework\App\Action\Context', [], [], '', false);
@@ -46,6 +62,24 @@ class AllcartTest extends \PHPUnit_Framework_TestCase
         $this->formKeyValidator = $this->getMock('Magento\Framework\Data\Form\FormKey\Validator', [], [], '', false);
         $this->request = $this->getMock('Magento\Framework\App\Request\Http', [], [], '', false);
         $this->response = $this->getMock('Magento\Framework\App\Response\Http', [], [], '', false);
+        $this->resultFactoryMock = $this->getMockBuilder('Magento\Framework\Controller\ResultFactory')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->resultRedirectMock = $this->getMockBuilder('Magento\Framework\Controller\Result\Redirect')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->resultForwardMock = $this->getMockBuilder('Magento\Framework\Controller\Result\Forward')
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $this->resultFactoryMock->expects($this->any())
+            ->method('create')
+            ->willReturnMap(
+                [
+                    [ResultFactory::TYPE_REDIRECT, [], $this->resultRedirectMock],
+                    [ResultFactory::TYPE_FORWARD, [], $this->resultForwardMock]
+                ]
+            );
     }
 
     protected function prepareContext()
@@ -94,6 +128,9 @@ class AllcartTest extends \PHPUnit_Framework_TestCase
             ->expects($this->any())
             ->method('getMessageManager')
             ->will($this->returnValue($messageManager));
+        $this->context->expects($this->any())
+            ->method('getResultFactory')
+            ->willReturn($this->resultFactoryMock);
     }
 
     public function getController()
@@ -114,24 +151,13 @@ class AllcartTest extends \PHPUnit_Framework_TestCase
             ->method('validate')
             ->with($this->request)
             ->will($this->returnValue(false));
-
-        $this->request
-            ->expects($this->once())
-            ->method('initForward')
-            ->will($this->returnValue(true));
-        $this->request
-            ->expects($this->once())
-            ->method('setActionName')
+        $this->resultForwardMock->expects($this->once())
+            ->method('forward')
             ->with('noroute')
-            ->will($this->returnValue(true));
-        $this->request
-            ->expects($this->once())
-            ->method('setDispatched')
-            ->with(false)
-            ->will($this->returnValue(true));
+            ->willReturnSelf();
 
         $controller = $this->getController();
-        $controller->execute();
+        $this->assertSame($this->resultForwardMock, $controller->execute());
     }
 
     public function testExecuteWithoutWishlist()
@@ -141,63 +167,43 @@ class AllcartTest extends \PHPUnit_Framework_TestCase
             ->method('validate')
             ->with($this->request)
             ->will($this->returnValue(true));
-
-        $this->request
-            ->expects($this->once())
-            ->method('initForward')
-            ->will($this->returnValue(true));
-        $this->request
-            ->expects($this->once())
-            ->method('setActionName')
-            ->with('noroute')
-            ->will($this->returnValue(true));
-        $this->request
-            ->expects($this->once())
-            ->method('setDispatched')
-            ->with(false)
-            ->will($this->returnValue(true));
-
         $this->wishlistProvider
             ->expects($this->once())
             ->method('getWishlist')
             ->will($this->returnValue(null));
+        $this->resultForwardMock->expects($this->once())
+            ->method('forward')
+            ->with('noroute')
+            ->willReturnSelf();
 
-
-        $this->getController()->execute();
+        $this->assertSame($this->resultForwardMock, $this->getController()->execute());
     }
 
     public function testExecutePassed()
     {
+        $url = 'http://redirect-url.com';
         $wishlist = $this->getMock('Magento\Wishlist\Model\Wishlist', [], [], '', false);
         
-        $this->formKeyValidator
-            ->expects($this->once())
+        $this->formKeyValidator->expects($this->once())
             ->method('validate')
             ->with($this->request)
             ->will($this->returnValue(true));
-
-        $this->request
-            ->expects($this->once())
+        $this->request->expects($this->once())
             ->method('getParam')
             ->with('qty')
             ->will($this->returnValue(2));
-
-        $this->response
-            ->expects($this->once())
-            ->method('setRedirect')
-            ->will($this->returnValue('http://redirect-url.com'));
-
-        $this->wishlistProvider
-            ->expects($this->once())
+        $this->wishlistProvider->expects($this->once())
             ->method('getWishlist')
             ->will($this->returnValue($wishlist));
-        
-        $this->itemCarrier
-            ->expects($this->once())
+        $this->itemCarrier->expects($this->once())
             ->method('moveAllToCart')
             ->with($wishlist, 2)
-            ->will($this->returnValue('http://redirect-url.com'));
+            ->willReturn($url);
+        $this->resultRedirectMock->expects($this->once())
+            ->method('setUrl')
+            ->with($url)
+            ->willReturnSelf();
 
-        $this->getController()->execute();
+        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/CartTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/CartTest.php
index fd7c06e7336d0ef29f2ab95c9ece2c6804a6a010..c2074246b31fa3f197fe5ed5150551f76954526d 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/CartTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/CartTest.php
@@ -3,12 +3,11 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-
 namespace Magento\Wishlist\Test\Unit\Controller\Index;
 
-use \Magento\Wishlist\Controller\Index\Cart;
-
+use Magento\Wishlist\Controller\Index\Cart;
 use Magento\Catalog\Model\Product\Exception as ProductException;
+use Magento\Framework\Controller\ResultFactory;
 
 /**
  * @SuppressWarnings(PHPMD.TooManyFields)
@@ -71,11 +70,6 @@ class CartTest extends \PHPUnit_Framework_TestCase
      */
     protected $requestMock;
 
-    /**
-     * @var \Magento\Framework\App\ResponseInterface|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $responseMock;
-
     /**
      * @var \Magento\Framework\App\Response\RedirectInterface|\PHPUnit_Framework_MockObject_MockObject
      */
@@ -96,6 +90,26 @@ class CartTest extends \PHPUnit_Framework_TestCase
      */
     protected $urlMock;
 
+    /**
+     * @var \Magento\Checkout\Helper\Cart|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $cartHelperMock;
+
+    /**
+     * @var \Magento\Framework\Controller\ResultFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $resultFactoryMock;
+
+    /**
+     * @var \Magento\Framework\Controller\Result\Redirect|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $resultRedirectMock;
+
+    /**
+     * @var \Magento\Framework\Controller\Result\Json|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $resultJsonMock;
+
     /**
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
@@ -139,12 +153,7 @@ class CartTest extends \PHPUnit_Framework_TestCase
 
         $this->requestMock = $this->getMockBuilder('Magento\Framework\App\RequestInterface')
             ->disableOriginalConstructor()
-            ->setMethods(['getParams', 'getParam'])
-            ->getMockForAbstractClass();
-
-        $this->responseMock = $this->getMockBuilder('Magento\Framework\App\ResponseInterface')
-            ->disableOriginalConstructor()
-            ->setMethods(['setRedirect'])
+            ->setMethods(['getParams', 'getParam', 'isAjax'])
             ->getMockForAbstractClass();
 
         $this->redirectMock = $this->getMockBuilder('Magento\Framework\App\Response\RedirectInterface')
@@ -164,6 +173,18 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->disableOriginalConstructor()
             ->setMethods(['getUrl'])
             ->getMockForAbstractClass();
+        $this->cartHelperMock = $this->getMockBuilder('Magento\Checkout\Helper\Cart')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->resultFactoryMock = $this->getMockBuilder('Magento\Framework\Controller\ResultFactory')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->resultRedirectMock = $this->getMockBuilder('Magento\Framework\Controller\Result\Redirect')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->resultJsonMock = $this->getMockBuilder('Magento\Framework\Controller\Result\Json')
+            ->disableOriginalConstructor()
+            ->getMock();
 
         $this->contextMock = $this->getMockBuilder('Magento\Framework\App\Action\Context')
             ->disableOriginalConstructor()
@@ -171,9 +192,6 @@ class CartTest extends \PHPUnit_Framework_TestCase
         $this->contextMock->expects($this->any())
             ->method('getRequest')
             ->will($this->returnValue($this->requestMock));
-        $this->contextMock->expects($this->any())
-            ->method('getResponse')
-            ->will($this->returnValue($this->responseMock));
         $this->contextMock->expects($this->any())
             ->method('getRedirect')
             ->will($this->returnValue($this->redirectMock));
@@ -185,7 +203,19 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->will($this->returnValue($this->messageManagerMock));
         $this->contextMock->expects($this->any())
             ->method('getUrl')
-            ->will($this->returnValue($this->urlMock));
+            ->willReturn($this->urlMock);
+        $this->contextMock->expects($this->any())
+            ->method('getResultFactory')
+            ->willReturn($this->resultFactoryMock);
+        $this->resultFactoryMock->expects($this->any())
+            ->method('create')
+            ->willReturnMap(
+                [
+                    [ResultFactory::TYPE_REDIRECT, [], $this->resultRedirectMock],
+                    [ResultFactory::TYPE_JSON, [], $this->resultJsonMock]
+                ]
+            );
+
 
         $this->model = new Cart(
             $this->contextMock,
@@ -196,7 +226,8 @@ class CartTest extends \PHPUnit_Framework_TestCase
             $this->optionFactoryMock,
             $this->productHelperMock,
             $this->escaperMock,
-            $this->helperMock
+            $this->helperMock,
+            $this->cartHelperMock
         );
     }
 
@@ -223,13 +254,12 @@ class CartTest extends \PHPUnit_Framework_TestCase
         $itemMock->expects($this->once())
             ->method('getId')
             ->willReturn(null);
+        $this->resultRedirectMock->expects($this->once())
+            ->method('setPath')
+            ->with('*/*', [])
+            ->willReturnSelf();
 
-        $this->redirectMock->expects($this->once())
-            ->method('redirect')
-            ->with($this->responseMock, '*/*', [])
-            ->willReturn($this->responseMock);
-
-        $this->assertEquals($this->responseMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->execute());
     }
 
     public function testExecuteWithNoWishlist()
@@ -265,19 +295,44 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->method('getWishlist')
             ->with($wishlistId)
             ->willReturn(null);
+        $this->resultRedirectMock->expects($this->once())
+            ->method('setPath')
+            ->with('*/*', [])
+            ->willReturnSelf();
 
-        $this->redirectMock->expects($this->once())
-            ->method('redirect')
-            ->with($this->responseMock, '*/*', [])
-            ->willReturn($this->responseMock);
+        $this->assertSame($this->resultRedirectMock, $this->model->execute());
+    }
+
+    public function testExecuteWithQuantityArray()
+    {
+        $refererUrl = $this->prepareExecuteWithQuantityArray();
+        
+        $this->resultRedirectMock->expects($this->once())
+            ->method('setUrl')
+            ->with($refererUrl)
+            ->willReturnSelf();
 
-        $this->assertEquals($this->responseMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->execute());
+    }
+
+    public function testExecuteWithQuantityArrayAjax()
+    {
+        $refererUrl = $this->prepareExecuteWithQuantityArray(true);
+
+        $this->resultJsonMock->expects($this->once())
+            ->method('setData')
+            ->with(['backUrl' => $refererUrl])
+            ->willReturnSelf();
+
+        $this->assertSame($this->resultJsonMock, $this->model->execute());
     }
 
     /**
+     * @param bool $isAjax
+     * @return array
      * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
      */
-    public function testExecuteWithQuantityArray()
+    protected function prepareExecuteWithQuantityArray($isAjax = false)
     {
         $itemId = 2;
         $wishlistId = 1;
@@ -397,6 +452,9 @@ class CartTest extends \PHPUnit_Framework_TestCase
         $this->requestMock->expects($this->once())
             ->method('getParams')
             ->willReturn($params);
+        $this->requestMock->expects($this->once())
+            ->method('isAjax')
+            ->willReturn($isAjax);
 
         $buyRequestMock = $this->getMockBuilder('Magento\Framework\Object')
             ->disableOriginalConstructor()
@@ -467,7 +525,7 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->with('You added '  . $productName . ' to your shopping cart.', null)
             ->willReturnSelf();
 
-        $this->checkoutCartMock->expects($this->once())
+        $this->cartHelperMock->expects($this->once())
             ->method('getShouldRedirectToCart')
             ->willReturn(false);
 
@@ -478,13 +536,8 @@ class CartTest extends \PHPUnit_Framework_TestCase
         $this->helperMock->expects($this->once())
             ->method('calculate')
             ->willReturnSelf();
-
-        $this->responseMock->expects($this->once())
-            ->method('setRedirect')
-            ->with($refererUrl)
-            ->willReturn($this->responseMock);
-
-        $this->assertEquals($this->responseMock, $this->model->execute());
+        
+        return $refererUrl;
     }
 
     /**
@@ -640,12 +693,12 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->method('calculate')
             ->willReturnSelf();
 
-        $this->responseMock->expects($this->once())
-            ->method('setRedirect')
+        $this->resultRedirectMock->expects($this->once())
+            ->method('setUrl')
             ->with($indexUrl)
-            ->willReturn($this->responseMock);
+            ->willReturnSelf();
 
-        $this->assertEquals($this->responseMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->execute());
     }
 
     /**
@@ -801,11 +854,11 @@ class CartTest extends \PHPUnit_Framework_TestCase
             ->method('calculate')
             ->willReturnSelf();
 
-        $this->responseMock->expects($this->once())
-            ->method('setRedirect')
+        $this->resultRedirectMock->expects($this->once())
+            ->method('setUrl')
             ->with($configureUrl)
-            ->willReturn($this->responseMock);
+            ->willReturnSelf();
 
-        $this->assertEquals($this->responseMock, $this->model->execute());
+        $this->assertSame($this->resultRedirectMock, $this->model->execute());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/IndexTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/IndexTest.php
index 94888effcc121310c5f861654cf5638180e11860..12f3de81f386ccdb5d1fbbf041b254f40bb3d2ba 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/IndexTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/IndexTest.php
@@ -3,9 +3,10 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-
 namespace Magento\Wishlist\Test\Unit\Controller\Index;
 
+use Magento\Framework\Controller\ResultFactory;
+
 class IndexTest extends \PHPUnit_Framework_TestCase
 {
     /**
@@ -29,14 +30,24 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     protected $wishlistProvider;
 
     /**
-     * @var \Magento\Framework\App\View|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Store\App\Response\Redirect|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $view;
+    protected $redirect;
 
     /**
-     * @var \Magento\Store\App\Response\Redirect|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Framework\Controller\ResultFactory|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $redirect;
+    protected $resultFactoryMock;
+
+    /**
+     * @var \Magento\Framework\View\Result\Page|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $resultPageMock;
+
+    /**
+     * @var \Magento\Framework\View\Layout|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $layoutMock;
 
     protected function setUp()
     {
@@ -44,8 +55,24 @@ class IndexTest extends \PHPUnit_Framework_TestCase
         $this->request = $this->getMock('Magento\Framework\App\Request\Http', [], [], '', false);
         $this->response = $this->getMock('Magento\Framework\App\Response\Http', [], [], '', false);
         $this->wishlistProvider = $this->getMock('Magento\Wishlist\Controller\WishlistProvider', [], [], '', false);
-        $this->view = $this->getMock('Magento\Framework\App\View', [], [], '', false);
         $this->redirect = $this->getMock('\Magento\Store\App\Response\Redirect', [], [], '', false);
+        $this->resultFactoryMock = $this->getMockBuilder('Magento\Framework\Controller\ResultFactory')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->resultPageMock = $this->getMockBuilder('Magento\Framework\View\Result\Page')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->layoutMock = $this->getMockBuilder('Magento\Framework\View\Layout')
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $this->resultFactoryMock->expects($this->any())
+            ->method('create')
+            ->with(ResultFactory::TYPE_PAGE, [])
+            ->willReturn($this->resultPageMock);
+        $this->resultPageMock->expects($this->any())
+            ->method('getLayout')
+            ->willReturn($this->layoutMock);
     }
 
     protected function prepareContext()
@@ -84,14 +111,13 @@ class IndexTest extends \PHPUnit_Framework_TestCase
             ->expects($this->any())
             ->method('getRedirect')
             ->willReturn($this->redirect);
-        $this->context
-            ->expects($this->any())
-            ->method('getView')
-            ->willReturn($this->view);
         $this->context
             ->expects($this->any())
             ->method('getMessageManager')
             ->willReturn($messageManager);
+        $this->context->expects($this->any())
+            ->method('getResultFactory')
+            ->willReturn($this->resultFactoryMock);
     }
 
     public function getController()
@@ -120,30 +146,10 @@ class IndexTest extends \PHPUnit_Framework_TestCase
     {
         $wishlist = $this->getMock('Magento\Wishlist\Model\Wishlist', [], [], '', false);
 
-        $layout = $this->getMock('Magento\Framework\View\Layout', [], [], '', false);
-        $layout
-            ->expects($this->once())
-            ->method('initMessages')
-            ->willReturn(true);
-
-        $this->wishlistProvider
-            ->expects($this->once())
+        $this->wishlistProvider->expects($this->once())
             ->method('getWishlist')
             ->willReturn($wishlist);
 
-        $this->view
-            ->expects($this->once())
-            ->method('loadLayout')
-            ->willReturn(true);
-        $this->view
-            ->expects($this->once())
-            ->method('getLayout')
-            ->willReturn($layout);
-        $this->view
-            ->expects($this->once())
-            ->method('renderLayout')
-            ->willReturn(true);
-
-        $this->getController()->execute();
+        $this->assertSame($this->resultPageMock, $this->getController()->execute());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/RemoveTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/RemoveTest.php
index f2c2954f59d739e122c5e7b2b174136a1731cb9a..96381ac144f7ead0d860646c889ccb1bb30acb20 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/RemoveTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/RemoveTest.php
@@ -3,9 +3,10 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-
 namespace Magento\Wishlist\Test\Unit\Controller\Index;
 
+use Magento\Framework\Controller\ResultFactory;
+
 class RemoveTest extends \PHPUnit_Framework_TestCase
 {
     /**
@@ -23,16 +24,6 @@ class RemoveTest extends \PHPUnit_Framework_TestCase
      */
     protected $request;
 
-    /**
-     * @var \Magento\Framework\App\Response\Http|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $response;
-
-    /**
-     * @var \Magento\Framework\App\View|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $view;
-
     /**
      * @var \Magento\Store\App\Response\Redirect|\PHPUnit_Framework_MockObject_MockObject
      */
@@ -53,17 +44,36 @@ class RemoveTest extends \PHPUnit_Framework_TestCase
      */
     protected $url;
 
+    /**
+     * @var \Magento\Framework\Controller\ResultFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $resultFactoryMock;
+
+    /**
+     * @var \Magento\Framework\Controller\Result\Redirect|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $resultRedirectMock;
+
     protected function setUp()
     {
         $this->context = $this->getMock('Magento\Framework\App\Action\Context', [], [], '', false);
         $this->request = $this->getMock('Magento\Framework\App\Request\Http', [], [], '', false);
-        $this->response = $this->getMock('Magento\Framework\App\Response\Http', [], [], '', false);
         $this->wishlistProvider = $this->getMock('Magento\Wishlist\Controller\WishlistProvider', [], [], '', false);
-        $this->view = $this->getMock('Magento\Framework\App\View', [], [], '', false);
         $this->redirect = $this->getMock('\Magento\Store\App\Response\Redirect', [], [], '', false);
         $this->om = $this->getMock('Magento\Framework\App\ObjectManager', [], [], '', false);
         $this->messageManager = $this->getMock('Magento\Framework\Message\Manager', [], [], '', false);
         $this->url = $this->getMock('Magento\Framework\Url', [], [], '', false);
+        $this->resultFactoryMock = $this->getMockBuilder('Magento\Framework\Controller\ResultFactory')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->resultRedirectMock = $this->getMockBuilder('Magento\Framework\Controller\Result\Redirect')
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $this->resultFactoryMock->expects($this->any())
+            ->method('create')
+            ->with(ResultFactory::TYPE_REDIRECT, [])
+            ->willReturn($this->resultRedirectMock);
     }
 
     public function tearDown()
@@ -71,9 +81,7 @@ class RemoveTest extends \PHPUnit_Framework_TestCase
         unset(
             $this->context,
             $this->request,
-            $this->response,
             $this->wishlistProvider,
-            $this->view,
             $this->redirect,
             $this->om,
             $this->messageManager,
@@ -94,10 +102,6 @@ class RemoveTest extends \PHPUnit_Framework_TestCase
             ->expects($this->any())
             ->method('getRequest')
             ->willReturn($this->request);
-        $this->context
-            ->expects($this->any())
-            ->method('getResponse')
-            ->willReturn($this->response);
         $this->context
             ->expects($this->any())
             ->method('getEventManager')
@@ -114,14 +118,13 @@ class RemoveTest extends \PHPUnit_Framework_TestCase
             ->expects($this->any())
             ->method('getRedirect')
             ->willReturn($this->redirect);
-        $this->context
-            ->expects($this->any())
-            ->method('getView')
-            ->willReturn($this->view);
         $this->context
             ->expects($this->any())
             ->method('getMessageManager')
             ->willReturn($this->messageManager);
+        $this->context->expects($this->any())
+            ->method('getResultFactory')
+            ->willReturn($this->resultFactoryMock);
     }
 
     public function getController()
@@ -283,13 +286,12 @@ class RemoveTest extends \PHPUnit_Framework_TestCase
                 ]
             );
 
-        $this->response
-            ->expects($this->once())
-            ->method('setRedirect')
+        $this->resultRedirectMock->expects($this->once())
+            ->method('setUrl')
             ->with($referer)
-            ->willReturn(true);
+            ->willReturnSelf();
 
-        $this->getController()->execute();
+        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
     }
 
     public function testExecuteCanNotSaveWishlistAndWithRedirect()
@@ -373,19 +375,18 @@ class RemoveTest extends \PHPUnit_Framework_TestCase
             ->expects($this->once())
             ->method('getUrl')
             ->with('*/*')
-            ->willReturn('http:/test.com/frontname/module/controller/action');
+            ->willReturn('http://test.com/frontname/module/controller/action');
 
         $this->redirect
             ->expects($this->once())
             ->method('getRedirectUrl')
-            ->willReturn('http:/test.com/frontname/module/controller/action');
+            ->willReturn('http://test.com/frontname/module/controller/action');
 
-        $this->response
-            ->expects($this->once())
-            ->method('setRedirect')
-            ->with('http:/test.com/frontname/module/controller/action')
-            ->willReturn(true);
+        $this->resultRedirectMock->expects($this->once())
+            ->method('setUrl')
+            ->with('http://test.com/frontname/module/controller/action')
+            ->willReturnSelf();
 
-        $this->getController()->execute();
+        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/UpdateItemOptionsTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/UpdateItemOptionsTest.php
index 9fddb7383a3034e51fcf973eb797f4638189083a..cb1b05a9328a9203c38aa36d6c9034bfa04b1144 100755
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Index/UpdateItemOptionsTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Index/UpdateItemOptionsTest.php
@@ -3,9 +3,10 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-
 namespace Magento\Wishlist\Test\Unit\Controller\Index;
 
+use Magento\Framework\Controller\ResultFactory;
+
 /**
  * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  */
@@ -31,21 +32,6 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
      */
     protected $request;
 
-    /**
-     * @var \Magento\Framework\App\Response\Http|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $response;
-
-    /**
-     * @var \Magento\Framework\App\View|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $view;
-
-    /**
-     * @var \Magento\Store\App\Response\Redirect|\PHPUnit_Framework_MockObject_MockObject
-     */
-    protected $redirect;
-
     /**
      * @var \Magento\Framework\App\ObjectManager|\PHPUnit_Framework_MockObject_MockObject
      */
@@ -71,6 +57,16 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
      */
     protected $eventManager;
 
+    /**
+     * @var \Magento\Framework\Controller\ResultFactory|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $resultFactoryMock;
+
+    /**
+     * @var \Magento\Framework\Controller\Result\Redirect|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $resultRedirectMock;
+
     /**
      * SetUp method
      *
@@ -81,15 +77,23 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
         $this->productRepository = $this->getMock('Magento\Catalog\Model\ProductRepository', [], [], '', false);
         $this->context = $this->getMock('Magento\Framework\App\Action\Context', [], [], '', false);
         $this->request = $this->getMock('Magento\Framework\App\Request\Http', [], [], '', false);
-        $this->response = $this->getMock('Magento\Framework\App\Response\Http', [], [], '', false);
         $this->wishlistProvider = $this->getMock('Magento\Wishlist\Controller\WishlistProvider', [], [], '', false);
-        $this->view = $this->getMock('Magento\Framework\App\View', [], [], '', false);
-        $this->redirect = $this->getMock('\Magento\Store\App\Response\Redirect', [], [], '', false);
         $this->om = $this->getMock('Magento\Framework\App\ObjectManager', [], [], '', false);
         $this->messageManager = $this->getMock('Magento\Framework\Message\Manager', [], [], '', false);
         $this->url = $this->getMock('Magento\Framework\Url', [], [], '', false);
         $this->customerSession = $this->getMock('Magento\Customer\Model\Session', [], [], '', false);
         $this->eventManager = $this->getMock('Magento\Framework\Event\Manager', [], [], '', false);
+        $this->resultFactoryMock = $this->getMockBuilder('Magento\Framework\Controller\ResultFactory')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->resultRedirectMock = $this->getMockBuilder('Magento\Framework\Controller\Result\Redirect')
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $this->resultFactoryMock->expects($this->any())
+            ->method('create')
+            ->with(ResultFactory::TYPE_REDIRECT, [])
+            ->willReturn($this->resultRedirectMock);
     }
 
     /**
@@ -103,10 +107,7 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
             $this->productRepository,
             $this->context,
             $this->request,
-            $this->response,
             $this->wishlistProvider,
-            $this->view,
-            $this->redirect,
             $this->om,
             $this->messageManager,
             $this->url,
@@ -131,10 +132,6 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
             ->expects($this->any())
             ->method('getRequest')
             ->willReturn($this->request);
-        $this->context
-            ->expects($this->any())
-            ->method('getResponse')
-            ->willReturn($this->response);
         $this->context
             ->expects($this->any())
             ->method('getEventManager')
@@ -147,18 +144,13 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
             ->expects($this->any())
             ->method('getActionFlag')
             ->willReturn($actionFlag);
-        $this->context
-            ->expects($this->any())
-            ->method('getRedirect')
-            ->willReturn($this->redirect);
-        $this->context
-            ->expects($this->any())
-            ->method('getView')
-            ->willReturn($this->view);
         $this->context
             ->expects($this->any())
             ->method('getMessageManager')
             ->willReturn($this->messageManager);
+        $this->context->expects($this->any())
+            ->method('getResultFactory')
+            ->willReturn($this->resultFactoryMock);
     }
 
     /**
@@ -189,14 +181,12 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
             ->method('getParam')
             ->with('product')
             ->willReturn(null);
+        $this->resultRedirectMock->expects($this->once())
+            ->method('setPath')
+            ->with('*/', [])
+            ->willReturnSelf();
 
-        $this->redirect
-            ->expects($this->once())
-            ->method('redirect')
-            ->with($this->response, '*/', [])
-            ->willReturn(true);
-
-        $this->getController()->execute();
+        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
     }
 
     /**
@@ -223,14 +213,12 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with('We can\'t specify a product.')
             ->willReturn(true);
+        $this->resultRedirectMock->expects($this->once())
+            ->method('setPath')
+            ->with('*/', [])
+            ->willReturnSelf();
 
-        $this->redirect
-            ->expects($this->once())
-            ->method('redirect')
-            ->with($this->response, '*/', [])
-            ->willReturn(true);
-
-        $this->getController()->execute();
+        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
     }
 
     /**
@@ -293,14 +281,12 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
             ->method('create')
             ->with('Magento\Wishlist\Model\Item')
             ->willReturn($item);
+        $this->resultRedirectMock->expects($this->once())
+            ->method('setPath')
+            ->with('*/', [])
+            ->willReturnSelf();
 
-        $this->redirect
-            ->expects($this->once())
-            ->method('redirect')
-            ->with($this->response, '*/', [])
-            ->willReturn(true);
-
-        $this->getController()->execute();
+        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
     }
 
     /**
@@ -416,14 +402,12 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with('error-message', null)
             ->willReturn(true);
+        $this->resultRedirectMock->expects($this->once())
+            ->method('setPath')
+            ->with('*/*', ['wishlist_id' => 56])
+            ->willReturnSelf();
 
-        $this->redirect
-            ->expects($this->once())
-            ->method('redirect')
-            ->with($this->response, '*/*', ['wishlist_id' => 56])
-            ->willReturn(true);
-
-        $this->getController()->execute();
+        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
     }
     /**
      * Test execute add success critical exception
@@ -556,13 +540,11 @@ class UpdateItemOptionsTest extends \PHPUnit_Framework_TestCase
             ->method('addError')
             ->with('An error occurred while updating wish list.', null)
             ->willReturn(true);
+        $this->resultRedirectMock->expects($this->once())
+            ->method('setPath')
+            ->with('*/*', ['wishlist_id' => 56])
+            ->willReturnSelf();
 
-        $this->redirect
-            ->expects($this->once())
-            ->method('redirect')
-            ->with($this->response, '*/*', ['wishlist_id' => 56])
-            ->willReturn(true);
-
-        $this->getController()->execute();
+        $this->assertSame($this->resultRedirectMock, $this->getController()->execute());
     }
 }
diff --git a/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/AllcartTest.php b/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/AllcartTest.php
index fbd2ce5f641ac78949c061f63885d182daaad5c9..09ea2bb42c74aacbf7555c36fa41679d86822f43 100644
--- a/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/AllcartTest.php
+++ b/app/code/Magento/Wishlist/Test/Unit/Controller/Shared/AllcartTest.php
@@ -3,161 +3,148 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
-
 namespace Magento\Wishlist\Test\Unit\Controller\Shared;
 
+use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
+use Magento\Framework\Controller\ResultFactory;
+
 class AllcartTest extends \PHPUnit_Framework_TestCase
 {
+    /**
+     * @var \Magento\Wishlist\Controller\Shared\Allcart
+     */
+    protected $allcartController;
+
+    /**
+     * @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager
+     */
+    protected $objectManagerHelper;
+
+    /**
+     * @var \Magento\Framework\App\Action\Context
+     */
+    protected $context;
+
     /**
      * @var \Magento\Wishlist\Controller\Shared\WishlistProvider|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $wishlistProvider;
+    protected $wishlistProviderMock;
+
+    /**
+     * @var \Magento\Wishlist\Model\ItemCarrier|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $itemCarrierMock;
+
+    /**
+     * @var \Magento\Wishlist\Model\Wishlist|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $wishlistMock;
 
     /**
      * @var \Magento\Framework\App\Request\Http|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $request;
+    protected $requestMock;
 
     /**
-     * @var \Magento\Wishlist\Model\ItemCarrier|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Framework\Controller\ResultFactory|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $itemCarrier;
+    protected $resultFactoryMock;
 
     /**
-     * @var \Magento\Framework\App\Response\Http|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Framework\Controller\Result\Redirect|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $response;
+    protected $resultRedirectMock;
 
     /**
-     * @var \Magento\Framework\App\Action\Context|\PHPUnit_Framework_MockObject_MockObject
+     * @var \Magento\Framework\Controller\Result\Forward|\PHPUnit_Framework_MockObject_MockObject
      */
-    protected $context;
+    protected $resultForwardMock;
 
     protected function setUp()
     {
-        $this->wishlistProvider = $this->getMock(
-            '\Magento\Wishlist\Controller\Shared\WishlistProvider',
-            [],
-            [],
-            '',
-            false
+        $this->wishlistProviderMock = $this->getMockBuilder('Magento\Wishlist\Controller\Shared\WishlistProvider')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->itemCarrierMock = $this->getMockBuilder('Magento\Wishlist\Model\ItemCarrier')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->wishlistMock = $this->getMockBuilder('Magento\Wishlist\Model\Wishlist')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->requestMock = $this->getMockBuilder('Magento\Framework\App\Request\Http')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->resultFactoryMock = $this->getMockBuilder('Magento\Framework\Controller\ResultFactory')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->resultRedirectMock = $this->getMockBuilder('Magento\Framework\Controller\Result\Redirect')
+            ->disableOriginalConstructor()
+            ->getMock();
+        $this->resultForwardMock = $this->getMockBuilder('Magento\Framework\Controller\Result\Forward')
+            ->disableOriginalConstructor()
+            ->getMock();
+
+        $this->resultFactoryMock->expects($this->any())
+            ->method('create')
+            ->willReturnMap(
+                [
+                    [ResultFactory::TYPE_REDIRECT, [], $this->resultRedirectMock],
+                    [ResultFactory::TYPE_FORWARD, [], $this->resultForwardMock]
+                ]
+            );
+
+        $this->objectManagerHelper = new ObjectManagerHelper($this);
+        $this->context = $this->objectManagerHelper->getObject(
+            'Magento\Framework\App\Action\Context',
+            [
+                'request' => $this->requestMock,
+                'resultFactory' => $this->resultFactoryMock
+            ]
+        );
+        $this->allcartController = $this->objectManagerHelper->getObject(
+            'Magento\Wishlist\Controller\Shared\Allcart',
+            [
+                'context' => $this->context,
+                'wishlistProvider' => $this->wishlistProviderMock,
+                'itemCarrier' => $this->itemCarrierMock
+            ]
         );
-        $this->request = $this->getMock('Magento\Framework\App\Request\Http', [], [], '', false);
-        $this->itemCarrier = $this->getMock('Magento\Wishlist\Model\ItemCarrier', [], [], '', false);
-        $this->context = $this->getMock('Magento\Framework\App\Action\Context', [], [], '', false);
-        $this->response = $this->getMock('Magento\Framework\App\Response\Http', [], [], '', false);
     }
 
-    protected function prepareContext()
+    public function testExecuteWithWishlist()
     {
-        $om = $this->getMock('Magento\Framework\App\ObjectManager', [], [], '', false);
-        $eventManager = $this->getMock('Magento\Framework\Event\Manager', null, [], '', false);
-        $url = $this->getMock('Magento\Framework\Url', [], [], '', false);
-        $actionFlag = $this->getMock('Magento\Framework\App\ActionFlag', [], [], '', false);
-        $redirect = $this->getMock('\Magento\Store\App\Response\Redirect', [], [], '', false);
-        $view = $this->getMock('Magento\Framework\App\View', [], [], '', false);
-        $messageManager = $this->getMock('Magento\Framework\Message\Manager', [], [], '', false);
-
-        $this->context
-            ->expects($this->any())
-            ->method('getObjectManager')
-            ->will($this->returnValue($om));
-        $this->context
-            ->expects($this->any())
-            ->method('getRequest')
-            ->will($this->returnValue($this->request));
-        $this->context
-            ->expects($this->any())
-            ->method('getResponse')
-            ->will($this->returnValue($this->response));
-        $this->context
-            ->expects($this->any())
-            ->method('getEventManager')
-            ->will($this->returnValue($eventManager));
-        $this->context
-            ->expects($this->any())
-            ->method('getUrl')
-            ->will($this->returnValue($url));
-        $this->context
-            ->expects($this->any())
-            ->method('getActionFlag')
-            ->will($this->returnValue($actionFlag));
-        $this->context
-            ->expects($this->any())
-            ->method('getRedirect')
-            ->will($this->returnValue($redirect));
-        $this->context
-            ->expects($this->any())
-            ->method('getView')
-            ->will($this->returnValue($view));
-        $this->context
-            ->expects($this->any())
-            ->method('getMessageManager')
-            ->will($this->returnValue($messageManager));
-    }
+        $url = 'http://redirect-url.com';
+        $quantity = 2;
 
-    public function getController()
-    {
-        $this->prepareContext();
-        return new \Magento\Wishlist\Controller\Shared\Allcart(
-            $this->context,
-            $this->wishlistProvider,
-            $this->itemCarrier
-        );
+        $this->wishlistProviderMock->expects($this->once())
+            ->method('getWishlist')
+            ->willReturn($this->wishlistMock);
+        $this->requestMock->expects($this->any())
+            ->method('getParam')
+            ->with('qty')
+            ->willReturn($quantity);
+        $this->itemCarrierMock->expects($this->once())
+            ->method('moveAllToCart')
+            ->with($this->wishlistMock, 2)
+            ->willReturn($url);
+        $this->resultRedirectMock->expects($this->once())
+            ->method('setUrl')
+            ->with($url)
+            ->willReturnSelf();
+
+        $this->assertSame($this->resultRedirectMock, $this->allcartController->execute());
     }
 
     public function testExecuteWithNoWishlist()
     {
-        $this->wishlistProvider->expects($this->once())
+        $this->wishlistProviderMock->expects($this->once())
             ->method('getWishlist')
             ->willReturn(false);
-
-        $this->request
-            ->expects($this->once())
-            ->method('initForward')
-            ->will($this->returnValue(true));
-        $this->request
-            ->expects($this->once())
-            ->method('setActionName')
+        $this->resultForwardMock->expects($this->once())
+            ->method('forward')
             ->with('noroute')
-            ->will($this->returnValue(true));
-        $this->request
-            ->expects($this->once())
-            ->method('setDispatched')
-            ->with(false)
-            ->will($this->returnValue(true));
-
-        $controller = $this->getController();
-        $controller->execute();
-    }
-
-    public function testExecuteWithWishlist()
-    {
-        $wishlist = $this->getMockBuilder('Magento\Wishlist\Model\Wishlist')
-            ->disableOriginalConstructor()
-            ->getMock();
-        $this->wishlistProvider->expects($this->once())
-            ->method('getWishlist')
-            ->willReturn($wishlist);
-
-        $this->request
-            ->expects($this->once())
-            ->method('getParam')
-            ->with('qty')
-            ->will($this->returnValue(2));
-
-        $this->itemCarrier
-            ->expects($this->once())
-            ->method('moveAllToCart')
-            ->with($wishlist, 2)
-            ->will($this->returnValue('http://redirect-url.com'));
-
-        $this->response
-            ->expects($this->once())
-            ->method('setRedirect')
-            ->will($this->returnValue('http://redirect-url.com'));
+            ->willReturnSelf();
 
-        $controller = $this->getController();
-        $controller->execute();
+        $this->assertSame($this->resultForwardMock, $this->allcartController->execute());
     }
 }
diff --git a/app/code/Magento/Wishlist/composer.json b/app/code/Magento/Wishlist/composer.json
index efca25e972d86be90c6784c2669e96805f71142f..59eee0b1b1feb0c7ab6eccbe0a4563a729e34340 100644
--- a/app/code/Magento/Wishlist/composer.json
+++ b/app/code/Magento/Wishlist/composer.json
@@ -3,28 +3,28 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/module-store": "0.74.0-beta5",
-        "magento/module-customer": "0.74.0-beta5",
-        "magento/module-catalog": "0.74.0-beta5",
-        "magento/module-checkout": "0.74.0-beta5",
-        "magento/module-theme": "0.74.0-beta5",
-        "magento/module-catalog-inventory": "0.74.0-beta5",
-        "magento/module-rss": "0.74.0-beta5",
-        "magento/module-backend": "0.74.0-beta5",
-        "magento/module-sales": "0.74.0-beta5",
-        "magento/module-grouped-product": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
-        "magento/module-ui": "0.74.0-beta5",
+        "magento/module-store": "0.74.0-beta6",
+        "magento/module-customer": "0.74.0-beta6",
+        "magento/module-catalog": "0.74.0-beta6",
+        "magento/module-checkout": "0.74.0-beta6",
+        "magento/module-theme": "0.74.0-beta6",
+        "magento/module-catalog-inventory": "0.74.0-beta6",
+        "magento/module-rss": "0.74.0-beta6",
+        "magento/module-backend": "0.74.0-beta6",
+        "magento/module-sales": "0.74.0-beta6",
+        "magento/module-grouped-product": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
+        "magento/module-ui": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "suggest": {
-        "magento/module-configurable-product": "0.74.0-beta5",
-        "magento/module-downloadable": "0.74.0-beta5",
-        "magento/module-bundle": "0.74.0-beta5",
-        "magento/module-cookie": "0.74.0-beta5"
+        "magento/module-configurable-product": "0.74.0-beta6",
+        "magento/module-downloadable": "0.74.0-beta6",
+        "magento/module-bundle": "0.74.0-beta6",
+        "magento/module-cookie": "0.74.0-beta6"
     },
     "type": "magento2-module",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/code/Magento/Wishlist/view/frontend/templates/view.phtml b/app/code/Magento/Wishlist/view/frontend/templates/view.phtml
index 035364489f3caa8386c6d57bd34e6994b2d965ac..624a320f30a7e00e0722812837cab07b9d079a86 100644
--- a/app/code/Magento/Wishlist/view/frontend/templates/view.phtml
+++ b/app/code/Magento/Wishlist/view/frontend/templates/view.phtml
@@ -13,14 +13,6 @@
     <?php echo($block->getChildHtml('wishlist.rss.link'));?>
     <form class="form-wishlist-items" id="wishlist-view-form"
           data-mage-init='{"wishlist":{
-          "dataAttribute":"item-id",
-          "nameFormat":"qty[{0}]",
-          "btnRemoveSelector":".action.delete",
-          "qtySelector":".qty",
-          "addToCartSelector":".action.tocart",
-          "addAllToCartSelector":".primary > .action.tocart",
-          "commentInputType":"textarea",
-          "infoList":false,
           "addToCartUrl":"<?php echo $block->getItemAddToCartUrl("%item%");?>",
           "confirmRemoveMessage":"<?php echo __("Are you sure you want to remove this product from your wishlist?") ?>",
           "addAllToCartUrl":"<?php echo $block->getAddAllToCartUrl(); ?>",
diff --git a/app/code/Magento/Wishlist/view/frontend/web/wishlist.js b/app/code/Magento/Wishlist/view/frontend/web/wishlist.js
index ad01e333ef0cfd2a9b3b88a821fdaf665c3f390c..973cde4f0b4e90fddb1cf9990b8f726c70acd152 100644
--- a/app/code/Magento/Wishlist/view/frontend/web/wishlist.js
+++ b/app/code/Magento/Wishlist/view/frontend/web/wishlist.js
@@ -81,12 +81,11 @@ define([
                 var itemId = elem.data(this.options.dataAttribute),
                     url = this.options.addToCartUrl.replace('%item%', itemId),
                     inputName = $.validator.format(this.options.nameFormat, itemId),
-                    inputValue = elem.parent().find('[name="' + inputName + '"]').val(),
+                    inputValue = $('[name="' + inputName + '"]').val(),
                     separator = (url.indexOf('?') >= 0) ? '&' : '?';
                 url += separator + inputName + '=' + encodeURIComponent(inputValue);
                 this._validateAndRedirect(url);
             }
-
         },
 
         /**
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_menu.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_menu.less
index 0101fe2439257f2c88766365f6bdf0b407fd8c46..28387dfa85d71e68b74c0ccc508c7b9e03e63ab4 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_menu.less
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/_menu.less
@@ -73,16 +73,18 @@
         position: relative;
         text-align: center;
         z-index: @menu__z-index;
-        &:focus {
-            background-color: @menu-item__active__background-color;
-            box-shadow: none;
-            + .admin__menu {
-                .level-0 {
-                    &:first-child {
-                        > a {
-                            background-color: @menu__background-color;
-                            &:after {
-                                display: none;
+        ._keyfocus & {
+            &:focus {
+                background-color: @menu-item__active__background-color;
+                box-shadow: none;
+                + .admin__menu {
+                    .level-0 {
+                        &:first-child {
+                            > a {
+                                background-color: @menu__background-color;
+                                &:after {
+                                    display: none;
+                                }
                             }
                         }
                     }
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/main/_page-nav.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/main/_page-nav.less
index 09319136bec92e3efe47253d810c21eba1eacd4b..0071951108a8b8bd2be488be74e487b25762675d 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/main/_page-nav.less
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/main/_page-nav.less
@@ -23,7 +23,7 @@
 @admin__page-nav-item__hover__background-color: darken(@admin__page-nav__background-color, 5%);
 
 @admin__page-nav-link__color: @color-very-dark-gray-black;
-@admin__page-nav-link__padding: @indent__base 4rem @indent__base 1rem;
+@admin__page-nav-link__padding: @indent__base 4rem @indent__base @indent__s;
 @admin__page-nav-link__hover__color: @color-very-dark-gray-black;
 @admin__page-nav-link__changed__color: @color-very-dark-gray;
 
@@ -133,7 +133,7 @@
 .admin__page-nav-items {
     list-style-type: none;
     margin: 0;
-    padding: 0;
+    padding: @indent__s 0 @admin__page-nav-item__margin-vertical 0;
 }
 
 .admin__page-nav-item {
@@ -180,10 +180,6 @@
             display: inline-block;
         }
     }
-
-    &:last-child {
-        margin-bottom: @admin__page-nav-item__margin-vertical;
-    }
 }
 
 
@@ -276,7 +272,7 @@
         box-shadow: @admin__page-nav-tooltip__box-shadow;
         display: none;
         font-weight: @font-weight__regular;
-        left: -1rem;
+        left: -@indent__s;
         line-height: @line-height__base;
         padding: 2rem;
         position: absolute;
diff --git a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/pages/_dashboard.less b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/pages/_dashboard.less
index 8155f8e461eabf82cc8007f13c086edcbf402ebf..bb55d0e0722cdbb18b1b315f8ce82703ebeea40c 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/pages/_dashboard.less
+++ b/app/design/adminhtml/Magento/backend/Magento_Backend/web/css/source/module/pages/_dashboard.less
@@ -27,7 +27,7 @@
             padding-left: 0;
         }
     }
-    &.table-info {
+    &.admin__table-primary {
         th {
             border-top: 0;
         }
@@ -91,6 +91,9 @@
         background: @dashboard-tabs__background-color;
         font-size: @dashboard__font-size__base;
     }
+    .ui-tabs-panel {
+        border-top: 1px solid @color-gray68;
+    }
 }
 
 //
diff --git a/app/design/adminhtml/Magento/backend/Magento_Downloadable/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_Downloadable/web/css/source/_module.less
index af531ff02ac2067b0fc1d51bab40c460070df5a3..3411169b6c0028f8e28a2493f6d1ee1f07b13de0 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Downloadable/web/css/source/_module.less
+++ b/app/design/adminhtml/Magento/backend/Magento_Downloadable/web/css/source/_module.less
@@ -59,19 +59,6 @@
         }
 
     }
-    .action-remove {
-        .button-reset();
-        .icon-font(
-            @icon-delete__content,
-            @icons-admin__font-name,
-            @_icon-font-size: 1.8rem,
-            @_icon-font-line-height: 16px,
-            @_icon-font-text-hide: true,
-            @_icon-font-position: after,
-            @_icon-font-color: @color-brown-darkie
-        );
-        margin-top: .5rem;
-    }
 }
 
 @-moz-document url-prefix() { // Firefox fieldset overflow bug fix
diff --git a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/_module.less
index 910cec4be04dfc70580ab6632d24ba2627acb519..b27606f18db19606eebfad18a29e4792deee9b15 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/_module.less
+++ b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/_module.less
@@ -3,10 +3,5 @@
 //  * See COPYING.txt for license details.
 //  */
 
-//
-//  Pages
-//  _____________________________________________
-
-@import 'module/_order-create.less';
-@import 'module/_order-create-sidebar.less';
-@import 'module/_order-create-table.less';
+@import 'module/_order.less';
+@import 'module/_edit-order.less';
diff --git a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/_edit-order.less b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/_edit-order.less
new file mode 100644
index 0000000000000000000000000000000000000000..860f0f37660ee8ba416d59dd615c7ed5489561dd
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/_edit-order.less
@@ -0,0 +1,91 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Variables
+//  ---------------------------------------------
+
+@edit-order-comment-notes__border-color: @color-gray65;
+@edit-order-comment-notes__font-size: @font-size__s;
+
+//
+//  Table secondary for edit order
+//  ---------------------------------------------
+
+.abs-admin__table-secondary-edit-order {
+    th {
+        font-weight: @font-weight__regular;
+        text-align: left;
+        vertical-align: top;
+    }
+    td {
+        text-align: right;
+    }
+    tr {
+        &:last-child {
+            td {
+                border: none;
+            }
+        }
+    }
+}
+
+//
+//  Order information
+//  ---------------------------------------------
+
+.order-information-table {
+    &:extend(.abs-admin__table-secondary-edit-order all);
+}
+
+//
+//  Order account information
+//  ---------------------------------------------
+
+.order-account-information-table {
+    &:extend(.abs-admin__table-secondary-edit-order all);
+}
+
+//
+//  Edit order tables
+//  ---------------------------------------------
+
+.edit-order-table {
+    &:extend(.abs-order-tables all);
+    &:extend(.abs-order-tbody-border all);
+    margin-bottom: 5rem;
+    tfoot {
+        &._hide {
+            display: none;
+        }
+        td {
+            padding-top: @order-create-sidebar__margin__m;
+        }
+        .col-total {
+            text-align: right;
+        }
+    }
+    .edit-total-price-block {
+        padding-left: 3rem;
+    }
+}
+
+.order-subtotal-table {
+    tr {
+        td {
+            &:last-child {
+                text-align: right;
+            }
+        }
+    }
+}
+
+.order-history-block {
+    margin: 0 0 5rem;
+}
+
+.order-history-comments-actions {
+    margin-top: @order-create-sidebar__margin__reqular;
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/_order-create-table.less b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/_order-create-table.less
deleted file mode 100644
index a9594b130c1e82a0256b9a09f12e11ada61dfca9..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/_order-create-table.less
+++ /dev/null
@@ -1,174 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-//
-//  Variables
-//  ---------------------------------------------
-
-@order-create-table__border-color: @table-td__border-color;
-@order-create-sku__background: @admin__page-nav__background-color;
-@order-create-sku__padding: @indent__base;
-@order-create-sku-table__border-color: @color-white;
-
-//
-
-//
-//  Table
-//  ---------------------------------------------
-
-.order-tables {
-    margin: 0 0 @order-create-sidebar__margin-reqular;
-    width: 100%;
-    th {
-        border-top: 0;
-        font-size: 1.3rem;
-    }
-    td {
-        border-bottom: none;
-        padding-top: @order-create-sidebar__padding;
-    }
-    tbody {
-        tr {
-            &:last-child {
-                td {
-                    border-bottom: 1px solid @order-create-table__border-color;
-                }
-            }
-            &.border {
-                td {
-                    padding-top: 0;
-                }
-            }
-        }
-    }
-    .col-qty {
-        .admin__control-text {
-            &:extend(.abs-control-qty all);
-        }
-    }
-    .col-actions {
-        .admin__control-select {
-            width: 13rem;
-        }
-    }
-    .price {
-        display: inline-block;
-        margin: 0 0 @order-create-sidebar__margin-small;
-    }
-    .custom-price-block {
-        font-size: @order-create-sidebar__font-size-xs;
-        margin: 0 0 @order-create-sidebar__margin-small;
-        + .admin__control-text {
-            &:extend(.abs-control-price);
-        }
-    }
-    .discount-price-block {
-        font-size: @order-create-sidebar__font-size-xs;
-    }
-    .product-configure-block {
-        margin: 1rem 0 0;
-        .disabled {
-            display: none;
-        }
-    }
-}
-
-.order-search-items {
-    .grid {
-        .action-configure {
-            float: right;
-        }
-        .col-id,
-        .col-price,
-        .col-in_products {
-            width: 10rem;
-        }
-    }
-}
-
-//
-//  Add by SKU
-//  ---------------------------------------------
-
-.add-by-sku-wrapper {
-    .add-by-sku {
-        background: @order-create-sku__background;
-        clear: both;
-        margin: 0 0 @indent__base;
-        padding: @order-create-sku__padding;
-    }
-    .table-info {
-        color: @order-create-sidebar__color;
-    }
-    .admin__field-note {
-        margin: 1.4rem 0;
-    }
-    .table-info {
-        th {
-            border-top: none;
-        }
-        th,
-        td {
-            border-bottom-color: @order-create-sku-table__border-color;
-            &:first-child {
-                padding-left: 0;
-            }
-        }
-    }
-    .action-reset,
-    .action-delete {
-        &:extend(.abs-action-reset all);
-        &:extend(.abs-icon all);
-        display: inline-block;
-        font-size: @order-create-sidebar__font-size + 0.1rem;
-        margin-left: 1.2rem;
-        padding-top: @order-create-sidebar__margin-small + 0.2rem;
-        vertical-align: middle;
-        &:after {
-            color: @order-create-sidebar__color;
-            content: @order-create-icon-remove__content;
-        }
-        &:hover {
-            &:after {
-                color: @order-create-icon-plus__hover__color;
-            }
-        }
-        > span {
-            &:extend(.abs-visually-hidden all);
-        }
-    }
-    .action-reset {
-        margin-top: -.4rem;
-        opacity: .5;
-        padding-top: 0;
-        &:after {
-            content: @order-create-icon-reset__content;
-        }
-        &:hover {
-            opacity: 1;
-        }
-    }
-    .col-qty {
-        .admin__control-text {
-            &:extend(.abs-control-qty all);
-        }
-    }
-}
-
-//
-//  Product configure popup
-//  ---------------------------------------------
-
-.product-configure-popup {
-    .weee {
-        .price-wrapper {
-            display: block;
-            font-size: 1.3rem;
-            &:before {
-                content: attr(data-label) ": ";
-            }
-        }
-    }
-}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/_order-create.less b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/_order-create.less
deleted file mode 100644
index 5ff4e9228ffd85bce65c88fbb894378729b318db..0000000000000000000000000000000000000000
--- a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/_order-create.less
+++ /dev/null
@@ -1,416 +0,0 @@
-// /**
-//  * Copyright © 2015 Magento. All rights reserved.
-//  * See COPYING.txt for license details.
-//  */
-
-//
-//  Variables
-//  ---------------------------------------------
-
-@order-create-icon-refresh__font-size: 2rem;
-@order-create-icon-refresh__color: @color-gray83;
-@order-create-icon-refresh__hover__color: darken(@color-gray83, 10%);
-
-@order-create-icon-add__content: @icon-arrow-right__content;
-@order-create-icon-configure__content: @icon-systems__content;
-@order-create-icon-remove__content: @icon-delete__content;
-@order-create-icon-reset__content: @icon-remove-small__content;
-@order-create-icon-refresh__content: @icon-refresh__content;
-@order-create-icon-plus__content: @icon-plus__content;
-@order-create-icon-plus__hover__color: @color-very-dark-gray-black2;
-
-//
-
-//
-//  Layout
-//  ---------------------------------------------
-
-.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
-    .order-details {
-        float: right;
-        #mix-grid .width(9,12);
-        margin-left: 0;
-    }
-    .order-sidebar {
-        #mix-grid .column(3,12);
-        margin-left: 0;
-    }
-
-    .order-billing-address,
-    .order-billing-method,
-    .order-history {
-        float: left;
-        #mix-grid .width(6,12);
-    }
-
-    .order-shipping-address,
-    .order-shipping-method,
-    .order-totals {
-        float: right;
-        #mix-grid .width(6,12);
-    }
-}
-
-//
-//  Select Store Scope
-//  ---------------------------------------------
-
-.tree-store-scope {
-    max-width: 50rem;
-
-    .admin__field {
-        margin: 0 0 1rem;
-    }
-}
-
-//
-//  Order discounts
-//  ---------------------------------------------
-
-.order-discounts {
-    &:extend(.abs-clearfix all);
-    margin-top: @indent__base;
-    .action-secondary {
-        float: right;
-        margin-top: 2.1rem;
-    }
-    .order-coupons {
-        float: left;
-    }
-    .admin__field {
-        display: inline-block;
-        margin: 0 3.5rem 0 0;
-        vertical-align: top;
-
-        .admin__field-control {
-            padding-right: 32px;
-            position: relative;
-        }
-
-        .action-default {
-            &:extend(.abs-action-reset all);
-            top: 7px;
-            position: absolute;
-            right: 0;
-            > span {
-                .extend__visually-hidden();
-            }
-
-            &:before {
-                &:extend(.abs-icon all);
-                content: @order-create-icon-add__content;
-            }
-
-            &:hover {
-                color: @order-create-icon-plus__hover__color;
-            }
-        }
-        p {
-            margin: @indent__s 0 0;
-        }
-    }
-    .action-remove {
-        color: @color-brownie;
-        margin-left: @indent__xs;
-        &:hover {
-            color: @order-create-icon-plus__hover__color;
-            text-decoration: none;
-        }
-        > span {
-            .extend__visually-hidden();
-        }
-        &:before {
-            &:extend(.abs-icon all);
-            content: @order-create-icon-remove__content;
-        }
-    }
-}
-
-//
-//  Order Account Information
-//  ---------------------------------------------
-
-.order-account-information {
-    .admin__fieldset {
-        &:extend(.abs-clearfix all);
-    }
-    .admin__field {
-        margin-bottom: 0;
-    }
-    .field-group_id {
-        float: left;
-    }
-    .field-email {
-        margin-top: 0;
-        overflow: hidden;
-    }
-}
-
-//
-//  Order Address Information
-//  ---------------------------------------------
-
-.order-details {
-    .order-search-items {
-        .col-qty {
-            .admin__control-text {
-                &:extend(.abs-control-qty);
-            }
-        }
-    }
-
-    .admin__fieldset-wrapper:not(:last-child) {
-        margin-bottom: 5rem;
-    }
-
-    .admin__fieldset-wrapper-content {
-        &:extend(.abs-clearfix all);
-    }
-
-    .admin__fieldset-wrapper-title {
-        &:extend(.abs-clearfix all);
-        border-bottom: 1px solid @color-gray80;
-        margin-bottom: @order-create-sidebar__margin-reqular;
-        padding-bottom: @indent__xs;
-        .actions {
-            float: right;
-            margin-bottom: @order-create-sidebar__margin-reqular;
-            margin-top: -@indent__xs;
-        }
-        .action-secondary {
-            margin-left: @indent__base;
-        }
-        .title {
-            margin: 0;
-        }
-    }
-
-    .admin__legend {
-        &:extend(.abs-fieldset-legend all);
-    }
-
-    .admin__field {
-        &:extend(.abs-field-rows all);
-    }
-
-    .admin__field-option {
-        .admin__field-label {
-            display: block;
-            width: auto;
-        }
-    }
-}
-
-.field-vat-number {
-    .action-default {
-        &:extend(.action-tertiary all);
-        font-weight: @font-weight__regular;
-        margin-top: @indent__s;
-        padding: 0;
-    }
-}
-
-//
-//  Order Payment & Shipping Information
-//  ---------------------------------------------
-
-.order-methods {
-    .admin__field {
-        &:extend(.abs-field-rows all);
-    }
-    .admin__fieldset-wrapper-content {
-        .admin__fieldset-wrapper-title {
-            &:extend(.abs-fieldset-legend all);
-            border-bottom: 0;
-            margin-bottom: 1.5rem;
-            padding: 0;
-            strong {
-                font-weight: @font-weight__semibold;
-            }
-        }
-    }
-}
-
-.admin__payment-method-wapper {
-    margin: 0;
-    .admin__fieldset {
-        padding: 1.5rem 0 @indent__base @field-control-option-label__padding-left;
-    }
-    .admin__field {
-        &:last-child {
-            margin-bottom: 0;
-        }
-    }
-}
-
-.admin__order-shipment-methods-title {
-    font-weight: @font-weight__bold;
-    margin: 0 0 @indent__xs;
-}
-
-.admin__order-shipment-methods-options {
-    margin: 0 0 @indent__base;
-}
-
-.admin__order-shipment-methods-options-list {
-    list-style: none;
-    margin: 0;
-}
-
-.order-shipping-method-summary {
-    padding-top: @field-option__padding-top;
-}
-
-.order-shipping-method,
-.order-billing-method {
-    position: relative;
-}
-
-.order-shipping-method-summary,
-.order-shipping-method {
-    .action-default {
-        &:extend(.action-tertiary all);
-        font-weight: @font-weight__regular;
-        padding: 0;
-    }
-}
-
-.order-methods-overlay {
-    background: rgba(255, 255, 255, .5);
-    bottom: 0;
-    left: 0;
-    position: absolute;
-    right: 0;
-    top: 0;
-    span {
-        background: @color-white;
-        display: block;
-        font-weight: @font-weight__bold;
-        left: 0;
-        position: absolute;
-        top: 48px;
-    }
-    .order-shipping-address & {
-        span {
-            top: 27px;
-        }
-    }
-}
-
-//
-//  Order Errors
-//  ---------------------------------------------
-
-.order-errors {
-    .col-qty {
-        .admin__control-text {
-            &:extend(.abs-control-qty all);
-        }
-    }
-}
-
-//
-//  Gift options
-//  ---------------------------------------------
-
-.order-gift-options {
-    &:extend(.abs-clearfix all);
-    .card-price-box {
-        display: none;
-        &._active {
-            display: block;
-        }
-    }
-
-    .price-box {
-        .price {
-            font-weight: @font-weight__bold;
-        }
-    }
-
-    > .giftmessage-order-create {
-        float: left;
-        #mix-grid .width(6, 12);
-    }
-}
-
-.giftmessage-order-create {
-    .field-sender {
-        margin-top: 1.4rem;
-    }
-    .admin__field { // ToDo UI: remove when /app/code/Magento/Backend/view/adminhtml/templates/widget/form.phtml refactored (the wrapping div removed)
-        margin-bottom: 3rem;
-        position: relative;
-        + .admin__field {
-            margin-top: 1.5rem;
-        }
-    }
-}
-
-//
-//  Totals
-//  ---------------------------------------------
-
-.admin__table-secondary {
-    width: 100%;
-    td {
-        padding: .7rem @indent__s;
-    }
-    tr:nth-child(2n+1) td {
-        background-color: @color-white-fog2;
-    }
-    .admin__total-amount {
-        text-align: right;
-    }
-    tr:last-child td {
-        border-bottom: 1px solid @color-gray80;
-        padding-bottom: @indent__s;
-    }
-}
-
-.order-totals-actions {
-    margin-top: @indent__s;
-    .actions {
-        margin-top: @indent__l;
-        text-align: right;
-    }
-    .action-default {
-        &:extend(.abs-action-l all);
-    }
-}
-
-//  ToDo UI: review the collapsible block
-//.order-subtotal {
-//    .summary-collapse {
-//        cursor: pointer;
-//        display: inline-block;
-//        &:before {
-//            @iconsize: 16px;
-//
-//            background: #f2ebde;
-//            border: 1px solid #ada89e;
-//            border-radius: 2px;
-//            color: #816063;
-//            content: '+';
-//            display: inline-block;
-//            font-size: @iconsize;
-//            -webkit-font-smoothing: antialiased;
-//            font-style: normal;
-//            font-weight: normal;
-//            height: @iconsize;
-//            line-height: @iconsize;
-//            margin-right: 7px;
-//            overflow: hidden;
-//            speak: none;
-//            text-indent: 0;
-//            vertical-align: top;
-//            width: @iconsize;
-//        }
-//        &:hover:before {
-//            background: #cac3b4;
-//        }
-//    }
-//    &.show-details .summary-collapse:before {
-//        content: '\e03a';
-//    }
-//}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/_order.less b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/_order.less
new file mode 100644
index 0000000000000000000000000000000000000000..2b4e2e6093170ca6345db320f4240256e67fa8ac
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/_order.less
@@ -0,0 +1,267 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Page components
+//  ---------------------------------------------
+
+@import 'order/_address.less';
+@import 'order/_discounts.less';
+@import 'order/_gift-options.less';
+@import 'order/_items.less';
+@import 'order/_order-account.less';
+@import 'order/_payment-shipping.less';
+@import 'order/_sidebar.less';
+@import 'order/_sku.less';
+@import 'order/_total.less';
+@import 'order/_order-comments.less';
+
+//
+//  Variables
+//  ---------------------------------------------
+
+@order-create-icon-refresh__font-size: 2rem;
+@order-create-icon-refresh__color: @color-gray83;
+@order-create-icon-refresh__hover__color: darken(@color-gray83, 10%);
+
+@order-create-icon-add__content: @icon-arrow-right__content;
+@order-create-icon-configure__content: @icon-systems__content;
+@order-create-icon-remove__content: @icon-delete__content;
+@order-create-icon-reset__content: @icon-remove-small__content;
+@order-create-icon-refresh__content: @icon-refresh__content;
+@order-create-icon-plus__content: @icon-plus__content;
+@order-create-icon-plus__hover__color: @color-very-dark-gray-black2;
+
+//
+//  Crosspage components
+//  _____________________________________________
+
+//
+//  Layout
+//  ---------------------------------------------
+
+.media-width(@extremum, @break) when (@extremum = 'min') and (@break = @screen__m) {
+    .order-details {
+        float: right;
+        #mix-grid .width(9,12);
+        margin-left: 0;
+    }
+    .order-sidebar {
+        #mix-grid .column(3,12);
+        margin-left: 0;
+    }
+
+    .order-billing-address,
+    .order-billing-method,
+    .order-history,
+    .order-information,
+    .order-payment-method,
+    .order-comments-history {
+        float: left;
+        #mix-grid .width(6,12);
+    }
+
+    .order-shipping-address,
+    .order-shipping-method,
+    .order-totals,
+    .order-view-account-information .order-account-information {
+        float: right;
+        #mix-grid .width(6,12);
+    }
+}
+
+.order-view {
+    > .ui-tabs-panel {
+        border: 0;
+        margin: 0;
+        padding: 0;
+    }
+}
+
+//
+//  Page sections
+//  ---------------------------------------------
+
+.admin__page-section {
+    margin-bottom: 5rem;
+
+    .admin__legend {
+        &:extend(.abs-fieldset-legend all);
+    }
+
+    .admin__field {
+        &:extend(.abs-field-rows all);
+    }
+
+    .admin__control-table-wrapper {
+        margin-top: @indent__base;
+    }
+
+    address {
+        font-style: normal;
+    }
+
+    .admin__table-secondary {
+        .admin__control-text {
+            width: 5.4rem;
+        }
+    }
+}
+
+.admin__page-section-title {
+    &:extend(.abs-clearfix all);
+    border-bottom: 1px solid @color-gray80;
+    margin-bottom: 1.7rem;
+    padding: 1.4rem 0 .5rem;
+    strong,
+    .title {
+        &:extend(h2);
+        float: left;
+        margin: 0;
+    }
+    .actions {
+        display: inline-block;
+        margin-left: @indent__xs;
+    }
+}
+
+.admin__page-section-content {
+    &:extend(.abs-clearfix all);
+}
+
+.admin__page-section-item-title,
+.admin__page-section-content .admin__page-section-title {
+    border-bottom: 0;
+    margin-bottom: 1.5rem;
+    padding: 0;
+    .title {
+        &:extend(.abs-fieldset-legend all);
+        margin: 0;
+    }
+    .actions {
+        display: inline-block;
+        margin-left: @indent__xs;
+    }
+}
+
+//
+//  Select Customer
+//  ---------------------------------------------
+
+.order-customer-selector {
+    .admin__page-section-title {
+        .title {
+            margin: 0 0 2rem;
+        }
+        .actions {
+            float: right;
+            margin-top: -.5rem;
+        }
+    }
+}
+
+//
+//  Select Store Scope
+//  ---------------------------------------------
+
+.tree-store-scope {
+    max-width: 50rem;
+    .admin__field {
+        margin: 0 0 1rem;
+    }
+}
+
+//
+//  Order Errors
+//  ---------------------------------------------
+
+.order-errors {
+    .col-qty {
+        .admin__control-text {
+            &:extend(.abs-control-qty all);
+        }
+    }
+}
+
+//
+//  Order Invoice
+//  ---------------------------------------------
+
+.order-invoice-tables {
+    &:extend(.abs-order-tables all);
+    &:extend(.abs-order-tbody-border all);
+}
+
+.abs-qty-table {
+    th,
+    td {
+        border: none;
+        font-weight: @font-weight__regular;
+        padding: 0 @order-create-sidebar__margin__s @order-create-sidebar__margin__s 0;
+    }
+}
+
+.abs-order-tbody-border {
+    tbody {
+        border-bottom: 1px solid @table-td__border-color;
+        &:last-of-type {
+            border-bottom: none;
+        }
+    }
+}
+
+
+//
+//  Product configure popup
+//  ---------------------------------------------
+
+.product-configure-popup {
+    .weee {
+        .price-excluding-tax,
+        .price-including-tax {
+            display: block;
+            font-size: 1.3rem;
+            &:before {
+                content: attr(data-label) ": ";
+            }
+        }
+    }
+}
+
+//  ToDo UI: review the collapsible block
+//.order-subtotal {
+//    .summary-collapse {
+//        cursor: pointer;
+//        display: inline-block;
+//        &:before {
+//            @iconsize: 16px;
+//
+//            background: #f2ebde;
+//            border: 1px solid #ada89e;
+//            border-radius: 2px;
+//            color: #816063;
+//            content: '+';
+//            display: inline-block;
+//            font-size: @iconsize;
+//            -webkit-font-smoothing: antialiased;
+//            font-style: normal;
+//            font-weight: normal;
+//            height: @iconsize;
+//            line-height: @iconsize;
+//            margin-right: 7px;
+//            overflow: hidden;
+//            speak: none;
+//            text-indent: 0;
+//            vertical-align: top;
+//            width: @iconsize;
+//        }
+//        &:hover:before {
+//            background: #cac3b4;
+//        }
+//    }
+//    &.show-details .summary-collapse:before {
+//        content: '\e03a';
+//    }
+//}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_address.less b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_address.less
new file mode 100644
index 0000000000000000000000000000000000000000..0fdcfc2df388f9ca7c25a9d9ee78f1715a5dba1d
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_address.less
@@ -0,0 +1,49 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Order Address Information
+//  ---------------------------------------------
+
+.order-details {
+    .order-search-items {
+        .col-qty {
+            .admin__control-text {
+                &:extend(.abs-control-qty);
+            }
+        }
+    }
+
+    .order-items,
+    .order-search-items,
+    .order-additional-area {
+        .admin__page-section-title {
+            .actions {
+                float: right;
+                margin-bottom: @order-create-sidebar__margin__reqular;
+                margin-top: -.3rem;
+            }
+            .action-secondary {
+                margin-left: @indent__base;
+            }
+        }
+    }
+
+    .admin__field-option {
+        .admin__field-label {
+            display: block;
+            width: auto;
+        }
+    }
+}
+
+.field-vat-number {
+    .action-default {
+        &:extend(.action-tertiary all);
+        font-weight: @font-weight__regular;
+        margin-top: @indent__s;
+        padding: 0;
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_discounts.less b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_discounts.less
new file mode 100644
index 0000000000000000000000000000000000000000..64b80e77823dc8ce8ea8931cc8a587b4d88e5266
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_discounts.less
@@ -0,0 +1,67 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Order discounts
+//  ---------------------------------------------
+
+.order-discounts {
+    &:extend(.abs-clearfix all);
+    margin-top: @indent__base;
+    .action-secondary {
+        float: right;
+        margin-top: 2.1rem;
+    }
+    .order-coupons {
+        float: left;
+    }
+    .admin__field {
+        display: inline-block;
+        margin: 0 3.5rem 0 0;
+        vertical-align: top;
+
+        .admin__field-control {
+            padding-right: 32px;
+            position: relative;
+        }
+
+        .action-default {
+            &:extend(.abs-action-reset all);
+            position: absolute;
+            right: 0;
+            top: 7px;
+            > span {
+                .extend__visually-hidden();
+            }
+
+            &:before {
+                &:extend(.abs-icon all);
+                content: @order-create-icon-add__content;
+            }
+
+            &:hover {
+                color: @order-create-icon-plus__hover__color;
+            }
+        }
+        p {
+            margin: @indent__s 0 0;
+        }
+    }
+    .action-remove {
+        color: @color-brownie;
+        margin-left: @indent__xs;
+        &:hover {
+            color: @order-create-icon-plus__hover__color;
+            text-decoration: none;
+        }
+        > span {
+            .extend__visually-hidden();
+        }
+        &:before {
+            &:extend(.abs-icon all);
+            content: @order-create-icon-remove__content;
+        }
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_gift-options.less b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_gift-options.less
new file mode 100644
index 0000000000000000000000000000000000000000..4b88d1f0e57e1074965c264f8a80e69aa6c1ce23
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_gift-options.less
@@ -0,0 +1,58 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Gift options
+//  ---------------------------------------------
+
+.order-gift-options {
+    &:extend(.abs-clearfix all);
+    .card-price-box {
+        display: none;
+        &._active {
+            display: block;
+        }
+    }
+
+    .price-box {
+        .price {
+            font-weight: @font-weight__bold;
+        }
+    }
+
+    > .giftmessage-order-create {
+        float: left;
+        #mix-grid .width(6, 12);
+    }
+
+    .admin__field {
+        &._required[class] {
+            &:not(.admin__field-option) {
+                > .admin__field-label span {
+                    &:after {
+                        margin-left: 0;
+                    }
+                }
+            }
+        }
+    }
+}
+
+.giftmessage-order-create {
+    .field-sender {
+        margin-top: 1.4rem;
+    }
+    .admin__field { // ToDo UI: remove when /app/code/Magento/Backend/view/adminhtml/templates/widget/form.phtml refactored (the wrapping div removed)
+        margin-bottom: 3rem;
+        position: relative;
+        + .admin__field {
+            margin-top: 1.5rem;
+        }
+    }
+}
+
+.gift-options-tooltip {
+    &:extend(.abs-admin__field-tooltip-content all);
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_items.less b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_items.less
new file mode 100644
index 0000000000000000000000000000000000000000..0f621df99f43c72b37991106eaab7880ac6868a7
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_items.less
@@ -0,0 +1,124 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Variables
+//  ---------------------------------------------
+
+@order-create-table__border-color: @table-td__border-color;
+@order-create-sku__background: @admin__page-nav__background-color;
+@order-create-sku__padding: @indent__base;
+@order-create-sku-table__border-color: @color-white;
+
+//
+//  Table
+//  ---------------------------------------------
+
+.order-tables {
+    &:extend(.abs-order-tables all);
+    &:extend(.abs-order-tbody-border all);
+}
+
+.order-items {
+    > .admin__page-section-title {
+        margin: 0;
+    }
+    .actions-update {
+        margin: @indent__base 0;
+        text-align: right;
+    }
+}
+
+.order-search-items {
+    .grid {
+        .action-configure {
+            float: right;
+        }
+        .col-id,
+        .col-price,
+        .col-in_products {
+            width: 10rem;
+        }
+    }
+}
+
+.abs-order-tables {
+    margin: 0 0 @order-create-sidebar__margin__reqular;
+    width: 100%;
+    th {
+        border-top: 0;
+        font-size: 1.3rem;
+    }
+    td {
+        border-bottom: none;
+    }
+    tbody {
+        tr {
+            &.row-messages-error,
+            &.row-gift-options {
+                td {
+                    padding-top: 0;
+                }
+            }
+        }
+    }
+    tfoot {
+        td {
+            border-bottom: 1px solid @order-create-table__border-color;
+            border-top: none;
+        }
+    }
+    .col-qty,
+    .col-qty-invoice {
+        .admin__control-text {
+            &:extend(.abs-control-qty all);
+        }
+    }
+    .qty-table {
+        &:extend(.abs-qty-table all);
+    }
+    .col-actions {
+        .admin__control-select {
+            width: 13rem;
+        }
+    }
+    .price {
+        display: inline-block;
+        margin: 0 0 @order-create-sidebar__margin__s;
+    }
+    .item-options {
+        &:extend(.abs-clearfix all);
+        margin: @order-create-sidebar__margin__m 0 0;
+        dt {
+            clear: left;
+            float: left;
+            margin: 0 @order-create-sidebar__margin__s @order-create-sidebar__margin__s 0;
+        }
+        dd {
+            display: inline-block;
+            float: left;
+            margin: 0 0 @order-create-sidebar__margin__s;
+        }
+    }
+    .custom-price-block {
+        font-size: @order-create-sidebar__font-size__xs;
+        margin: 0 0 @order-create-sidebar__margin__s;
+        + .admin__control-text {
+            &:extend(.abs-control-price);
+        }
+    }
+    .discount-price-block {
+        font-size: @order-create-sidebar__font-size__xs;
+    }
+    .product-configure-block {
+        margin: @indent__s 0 0;
+        .disabled {
+            display: none;
+        }
+    }
+    .product-sku-block {
+        margin: @indent__s 0 0;
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_order-account.less b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_order-account.less
new file mode 100644
index 0000000000000000000000000000000000000000..a0cf2a04230c41c2028b05acffb070e3f6f3dd1e
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_order-account.less
@@ -0,0 +1,24 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Order Account Information
+//  ---------------------------------------------
+
+.order-account-information {
+    .admin__fieldset {
+        &:extend(.abs-clearfix all);
+    }
+    .admin__field {
+        margin-bottom: 0;
+    }
+    .field-group_id {
+        float: left;
+    }
+    .field-email {
+        margin-top: 0;
+        overflow: hidden;
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_order-comments.less b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_order-comments.less
new file mode 100644
index 0000000000000000000000000000000000000000..675a02272c8cf1199ab008e1e454ce58cfa3e144
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_order-comments.less
@@ -0,0 +1,58 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Edit Order comments
+//  ---------------------------------------------
+
+.edit-order-comments {
+    .note-list {
+        font-size: @edit-order-comment-notes__font-size;
+        list-style: none;
+        margin: 0 0 @order-create-sidebar__margin;
+    }
+    .note-list-item {
+        margin: 0 0 @order-create-sidebar__margin__s;
+    }
+    .note-list-date,
+    .note-list-time {
+        padding: 0 @order-create-sidebar__margin__m 0 0;
+    }
+    .note-list-status,
+    .note-list-customer {
+        border-left: 1px solid @edit-order-comment-notes__border-color;
+        padding: 0 @order-create-sidebar__margin__m;
+    }
+    .note-list-customer-notapplicable,
+    .note-list-customer-not-notified,
+    .note-list-customer-notified {
+        font-weight: @font-weight__bold;
+        padding: 0 @order-create-sidebar__margin__m 0 0;
+    }
+    .note-list-comment {
+        margin: 0 0 @order-create-sidebar__margin__reqular;
+    }
+    .comments-block-item {
+        margin: 0 0 @order-create-sidebar__margin;
+    }
+    .comments-block-item-comment {
+        margin: 0 0 @order-create-sidebar__margin__s;
+    }
+    .comments-block-item-date-time {
+        font-size: @font-size__tiny;
+    }
+}
+
+.edit-order-comments-block-title {
+    margin: 0 0 @order-create-sidebar__margin;
+    .typography(
+    @_font-size: 1.9rem,
+    @_color: @color-brown-darkie,
+    @_font-weight: @font-weight__semibold,
+    @_line-height: @line-height__s,
+    @_font-family: false,
+    @_font-style: false
+    );
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_payment-shipping.less b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_payment-shipping.less
new file mode 100644
index 0000000000000000000000000000000000000000..fe3ebac483461cb7bd0f7899d679e2808a5dfb5b
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_payment-shipping.less
@@ -0,0 +1,91 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Order Payment & Shipping Information
+//  ---------------------------------------------
+
+.admin__payment-method-wapper {
+    margin: 0;
+    .admin__field {
+        margin-left: -4rem;
+        &:first-child {
+            margin-top: 1.5rem;
+        }
+    }
+    .admin__payment-methods {
+        margin: 0;
+    }
+}
+
+.admin__order-shipment-methods-title {
+    font-weight: @font-weight__bold;
+    margin: 0 0 @indent__xs;
+}
+
+.admin__order-shipment-methods-options {
+    margin: 0 0 @indent__base;
+}
+
+.admin__order-shipment-methods-options-list {
+    list-style: none;
+    margin: 0;
+}
+
+.order-shipping-method-summary {
+    padding-top: @field-option__padding-top;
+}
+
+.order-shipping-method,
+.order-billing-method {
+    position: relative;
+}
+
+.order-shipping-method-summary,
+.order-shipping-method-info {
+    .action-default {
+        &:extend(.action-tertiary all);
+        font-weight: @font-weight__regular;
+        padding: 0;
+    }
+}
+
+.order-methods-overlay {
+    background-color: rgba(255, 255, 255, .5);
+    bottom: 0;
+    left: 0;
+    position: absolute;
+    right: 0;
+    top: 0;
+    span {
+        background-color: @color-white;
+        display: block;
+        font-weight: @font-weight__bold;
+        left: 0;
+        padding: @indent__xs 0;
+        position: absolute;
+        top: 43px;
+    }
+    .order-shipping-address & {
+        span {
+            top: 22px;
+        }
+    }
+}
+
+.shipping-description-wrapper {
+    .price {
+        font-weight: @font-weight__bold;
+    }
+}
+
+.order-payment-method-title,
+.shipping-description-title {
+    font-weight: @font-weight__bold;
+}
+
+.action-create-label {
+    margin: @indent__s 0;
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/_order-create-sidebar.less b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_sidebar.less
similarity index 88%
rename from app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/_order-create-sidebar.less
rename to app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_sidebar.less
index 6bdd17f7f4d18eae84eba64d3fe9e1b5cdbcfb20..8ef7ff03c7c529c3e4ad388073672207a1917107 100644
--- a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/_order-create-sidebar.less
+++ b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_sidebar.less
@@ -8,19 +8,17 @@
 //  ---------------------------------------------
 
 @order-create-sidebar__font-size: 1.5rem;
-@order-create-sidebar__font-size-xs: 1.1rem;
+@order-create-sidebar__font-size__xs: 1.1rem;
 @order-create-sidebar__color: @color-very-dark-gray;
 @order-create-sidebar__margin: 2.4rem;
 @order-create-sidebar__padding: @indent__base;
-@order-create-sidebar__margin-small: .5rem;
-@order-create-sidebar__margin-m: 1rem;
-@order-create-sidebar__margin-reqular: 1.7rem;
+@order-create-sidebar__margin__s: .5rem;
+@order-create-sidebar__margin__m: 1rem;
+@order-create-sidebar__margin__reqular: 1.7rem;
 @order-create-sidebar__border-color: @border__color;
 
 @order-create-sidebar-scroll__height: 24rem;
 
-//
-
 //
 //  Order Sidebar
 //  ---------------------------------------------
@@ -47,7 +45,7 @@
         padding: 0 0 @order-create-sidebar__margin;
     }
     .admin__control-select {
-        margin: 0 0 @order-create-sidebar__margin-small;
+        margin: 0 0 @order-create-sidebar__margin__s;
         width: 100%;
     }
     .order-sidebar-block {
@@ -55,7 +53,7 @@
         margin: 0 0 @order-create-sidebar__margin;
         padding: 0 0 @order-create-sidebar__margin;
     }
-    .table-info {
+    .admin__table-primary {
         color: @order-create-sidebar__color;
         width: 100%;
         th,
@@ -102,7 +100,7 @@
             text-align: right;
             .icon-configure,
             .icon-add {
-                margin-right: @order-create-sidebar__margin-m;
+                margin-right: @order-create-sidebar__margin__m;
             }
         }
     }
@@ -110,7 +108,7 @@
         &:extend(.abs-icon all);
         display: table-cell;
         font-size: @order-create-icon-refresh__font-size;
-        padding-right: @order-create-sidebar__margin-m;
+        padding-right: @order-create-sidebar__margin__m;
         vertical-align: middle;
         &:after {
             color: @order-create-icon-refresh__color;
@@ -127,16 +125,16 @@
         }
     }
     .create-order-sidebar-block {
-        .head {
+        .sidebar-title-block {
             margin: 0 0 @order-create-sidebar__margin;
         }
         .auto-scroll {
-            margin: 0 -@order-create-sidebar__padding @order-create-sidebar__margin-small;
+            margin: 0 -@order-create-sidebar__padding @order-create-sidebar__margin__s;
             max-height: @order-create-sidebar-scroll__height;
             overflow: auto;
             position: relative;
             + .action-default {
-                margin-top: @order-create-sidebar__margin-reqular;
+                margin-top: @order-create-sidebar__margin__reqular;
             }
             .no-items {
                 padding-left: @order-create-sidebar__padding;
@@ -153,7 +151,7 @@
         margin: 0;
         vertical-align: middle;
         + .admin__control-select {
-            margin-top: @order-create-sidebar__margin-reqular;
+            margin-top: @order-create-sidebar__margin__reqular;
         }
     }
     .actions {
diff --git a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_sku.less b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_sku.less
new file mode 100644
index 0000000000000000000000000000000000000000..68b25e5aa12ae0ad94526499174c2418ed3a5413
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_sku.less
@@ -0,0 +1,45 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Add by SKU
+//  ---------------------------------------------
+
+.add-by-sku-wrapper {
+    .add-by-sku {
+        margin: 0 0 @indent__base;
+    }
+    .admin__field-note {
+        margin: 1.4rem 0;
+    }
+    .action-reset {
+        &:extend(.abs-action-reset all);
+        &:extend(.abs-icon all);
+        display: inline-block;
+        font-size: 1.6rem;
+        margin: -.4rem 0 0;
+        opacity: .5;
+        vertical-align: middle;
+        &:after {
+            color: @order-create-icon-reset__content;
+            content: @order-create-icon-reset__content;
+        }
+        &:hover {
+            opacity: 1;
+            &:after {
+                color: @order-create-icon-plus__hover__color;
+            }
+        }
+        > span {
+            &:extend(.abs-visually-hidden all);
+        }
+    }
+    .col-qty {
+        width: 8rem;
+        .admin__control-text {
+            &:extend(.abs-control-qty all);
+        }
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_total.less b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_total.less
new file mode 100644
index 0000000000000000000000000000000000000000..699576bde84c70e2645fbe07475fbe915afca647
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Sales/web/css/source/module/order/_total.less
@@ -0,0 +1,19 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Totals
+//  ---------------------------------------------
+
+.order-totals-actions {
+    margin-top: @indent__s;
+    .actions {
+        margin-top: @indent__l;
+        text-align: right;
+    }
+    .action-default {
+        &:extend(.abs-action-l all);
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/Magento_Shipping/web/css/source/_module.less b/app/design/adminhtml/Magento/backend/Magento_Shipping/web/css/source/_module.less
new file mode 100644
index 0000000000000000000000000000000000000000..c1ff50783ee7816d1751695366462a40901c383a
--- /dev/null
+++ b/app/design/adminhtml/Magento/backend/Magento_Shipping/web/css/source/_module.less
@@ -0,0 +1,114 @@
+// /**
+//  * Copyright © 2015 Magento. All rights reserved.
+//  * See COPYING.txt for license details.
+//  */
+
+//
+//  Order Shipment
+//  ---------------------------------------------
+
+.order-shipment-table {
+    &:extend(.abs-order-tables all);
+    &:extend(.abs-order-tbody-border all);
+}
+
+//
+//  Packaging for Shipping Popup
+// --------------------------------------
+
+//  ToDo UI: refactor the popup to jQuery UI, edit the styles
+.packaging-window {
+    background: @color-white;
+    box-shadow: 0 3px 6px rgba(0, 0, 0, .4);
+    left: 50%;
+    margin: -20rem 0 0 -47rem;
+    position: fixed;
+    top: 50%;
+    width: 100rem;
+    z-index: 1000;
+    .message-warning {
+        margin: 0 0 @indent__s;
+    }
+    .admin__control-select {
+        width: 13rem;
+        &.measures {
+            width: 9rem;
+        }
+    }
+    .packaging-content {
+        height: auto !important;
+        max-height: 40rem;
+        overflow-x: hidden;
+        overflow: auto;
+        padding: @indent__base @indent__base 0;
+        position: relative;
+        .options-weight {
+            vertical-align: top;
+        }
+    }
+    .popup-window-title {
+        &:extend(.abs-clearfix all);
+        padding: @indent__base;
+        .title {
+            font-size: 1.9rem;
+            display: block;
+        }
+        .actions {
+            float: right;
+        }
+    }
+    .popup-fieldset-title {
+        &:extend(.abs-clearfix all);
+        .title {
+            display: block;
+            font-weight: 700;
+            padding-top: @indent__s;
+        }
+        .actions {
+            float: right;
+        }
+        margin: 0 0 @indent__base;
+    }
+    .popup-window-buttons-set {
+        padding: @indent__base;
+        text-align: right;
+    }
+    .package-add-products {
+        margin: @indent__base 0 0;
+        .grid {
+            padding: 0;
+            button {
+                vertical-align: middle;
+            }
+        }
+    }
+    .col-total-weight {
+        .admin__control-text {
+            margin: 0 0 .5rem;
+        }
+    }
+    .col-qty-edit {
+        .admin__control-text {
+            &:extend(.abs-control-qty all);
+        }
+    }
+    .col-actions {
+        width: 13rem;
+        .action-delete {
+            padding-top: 0;
+        }
+    }
+    .admin__table-primary {
+        .action-delete {
+            margin-top: -.7rem;
+            padding: 0;
+            &:extend(.abs-action-delete all);
+        }
+    }
+    .action-secondary {
+        float: right;
+    }
+    .action-close {
+        &:extend(.abs-action-tertiary all);
+    }
+}
diff --git a/app/design/adminhtml/Magento/backend/composer.json b/app/design/adminhtml/Magento/backend/composer.json
index 099609e696d4171594daaca42d3ff603da7de56b..8ae2687dac7e5d03b2248d8dff711c8d8fd8a1c9 100644
--- a/app/design/adminhtml/Magento/backend/composer.json
+++ b/app/design/adminhtml/Magento/backend/composer.json
@@ -3,11 +3,11 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/framework": "0.74.0-beta5",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-theme",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_actions.less b/app/design/adminhtml/Magento/backend/web/css/source/_actions.less
index 7a3f017a0a5b58b1841e07680b58341e1e00a9f6..e9b6e173f1df976ffec6b1317f9153200343edc7 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/_actions.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_actions.less
@@ -97,6 +97,29 @@
     padding-top: @button__padding-vertical__l;
 }
 
+.abs-action-delete {
+    &:extend(.abs-action-reset all);
+    &:extend(.abs-icon all);
+    display: inline-block;
+    font-size: 1.6rem;
+    margin-left: 1.2rem;
+    padding-top: .7rem;
+    text-decoration: none;
+    vertical-align: middle;
+    &:after {
+        color: @color-very-dark-gray;
+        content: @icon-delete__content;
+    }
+    &:hover {
+        &:after {
+            color: @color-very-dark-gray-black2;
+        }
+    }
+    > span {
+        &:extend(.abs-visually-hidden all);
+    }
+}
+
 .abs-action-default {
     .action-default();
 }
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_tables.less b/app/design/adminhtml/Magento/backend/web/css/source/_tables.less
index bf591fe9921f70066c979e51f23d908baf851669..c72dda688951972b6e6b5b74851f0c8355c12727 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/_tables.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_tables.less
@@ -16,29 +16,48 @@
 
 @table-tfoot__background-color: @color-white-fog;
 
-@table-info__font-size: 1.3rem;
-@table-info__padding-vertical: 1rem;
-@table-info__padding-horizontal: 1.5rem;
+@admin__table-primary__font-size: 1.3rem;
+@admin__table-primary__padding-vertical: 1rem;
+@admin__table-primary__padding-horizontal: 1.5rem;
+
+@admin__table-secondary__padding-vertical: @admin__table-primary__padding-vertical;
+@admin__table-secondary__padding-horizontal: 1rem;
+@admin__table-secondary-caption__font-size: 1.8rem;
+@admin__table-secondary-cell__odd__color: @color-white-fog2;
+@admin__table-secondary-th__color: @color-brownie-light;
 
 //
 //  Tables
 //  _____________________________________________
 
-//
-//  Utilities
-//  ---------------------------------------------
+table {
+    background-color: transparent;
+    color: @table__color;
+    > caption {
+        margin-bottom: .5em;
+    }
+}
+
+.admin__table-primary,
+.admin__table-secondary {
+    width: 100%;
+}
 
-.table-info {
-    font-size: @table-info__font-size;
+.admin__table-primary {
+    font-size: @admin__table-primary__font-size;
     th,
     td {
-        padding: @table-info__padding-vertical @table-info__padding-horizontal;
+        padding: @admin__table-primary__padding-vertical @admin__table-primary__padding-horizontal;
         text-align: left;
+        &:first-child {
+            padding-left: 0;
+        }
     }
     th {
         border-bottom: 1px solid @table-th__border-color;
         border-top: 1px solid @table-th__border-color;
         font-weight: @font-weight__bold;
+        vertical-align: bottom;
     }
     td {
         border-bottom: 1px solid @table-td__border-color;
@@ -55,15 +74,59 @@
     }
     tfoot {
         background: @table-tfoot__background-color;
+        font-weight: @font-weight__semibold;
+        th,
+        td {
+            &:first-child {
+                padding-left: @admin__table-primary__padding-horizontal;
+            }
+        }
     }
 }
 
-//
-
-table {
-    background-color: transparent;
-    color: @table__color;
-    > caption {
-        margin-bottom: .5em;
+.admin__table-secondary {
+    caption {
+        font-size: @admin__table-secondary-caption__font-size;
+        font-weight: @font-weight__bold;
+        margin-bottom: .75em;
+        text-align: left;
+    }
+    tbody {
+        th {
+            vertical-align: top;
+        }
+    }
+    tr {
+        &:nth-child(odd) {
+            th,
+            td {
+                background-color: @admin__table-secondary-cell__odd__color;
+            }
+        }
+    }
+    th,
+    td {
+        padding: @admin__table-secondary__padding-horizontal @admin__table-secondary__padding-vertical;
+        text-align: left;
+    }
+    th {
+        color: @admin__table-secondary-th__color;
+        font-weight: @font-weight__regular;
+    }
+    tfoot {
+        tr {
+            &:nth-child(odd) {
+                th,
+                td {
+                    background-color: @color-white;
+                }
+            }
+            &:first-child {
+                border-top: 1px solid @table-td__border-color;
+            }
+        }
+    }
+    .admin__total-amount {
+        text-align: right;
     }
 }
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/_tabs.less b/app/design/adminhtml/Magento/backend/web/css/source/_tabs.less
index fa113a59c52acb0e46b2968e09eab6d0c9f33f49..1728f1f08b5e655e4f61a43b9efd443f266c5c5e 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/_tabs.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/_tabs.less
@@ -57,7 +57,6 @@
 
 //  Tabs content
 .ui-tabs-panel {
-    border-top: 1px solid @color-gray68;
     margin-top: -1px;
     padding: 2rem;
 }
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_data-grid-temp.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_data-grid-temp.less
index 7098e076357d147d068e180c487cf75a98da5530..2dded4e6efea6ea68ca2f2f0b9474c187b94d7c0 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/components/_data-grid-temp.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_data-grid-temp.less
@@ -42,6 +42,9 @@
 //  ---------------------------------------------
 
 .grid {
+    .hor-scroll {
+        overflow-x: auto;
+    }
     table {
         &:not(.data-table) {
             border: none;
@@ -111,7 +114,7 @@
                 border: @data-grid-temp-cell__border-width @data-grid-temp-th__border-style @data-grid-temp-th__border-color;
                 color: @data-grid-temp-th__color;
                 font-weight: @font-weight__semibold;
-                padding: @data-grid-temp-cell__padding-vertical @data-grid-temp-cell__padding-horizontal;;
+                padding: @data-grid-temp-cell__padding-vertical @data-grid-temp-cell__padding-horizontal;
                 text-align: left;
                 &:first-child {
                     border-left-color: @data-grid-temp-th__border-color;
@@ -184,6 +187,9 @@
                             margin-left: .5rem;
                             width: 3.5rem;
                         }
+                        &:after {
+                            display: none;
+                        }
                     }
                 }
             }
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less b/app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less
index abac708dc0eb592a27fde7f4d2ca8e198ab276fa..918ce1cec2d1c6fd8c740c21eab8c342d573ba99 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/components/_popups.less
@@ -26,6 +26,8 @@
 
 @popup-overlay__background-color: rgba(0, 0, 0, .35);
 
+@popup-fieldset__margin-left: 34%;
+
 //
 //  Jquery UI popup window
 //  _____________________________________________
@@ -322,14 +324,13 @@
         > .admin__legend {
             float: none;
             font-size: 1.8rem;
-            margin: 0 0 2rem 34%;
+            margin: 0 0 @indent__base @popup-fieldset__margin-left;
             width: auto;
         }
-    }
-    .gift_options-popup {
-        .admin__fieldset {
-            > .admin__legend {
-                margin-left: 0;
+        .product-options {
+            margin-left: @popup-fieldset__margin-left;
+            .admin__field-control {
+                margin-bottom: @indent__base;
             }
         }
     }
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/forms/_control-table.less b/app/design/adminhtml/Magento/backend/web/css/source/forms/_control-table.less
index 0a5bda543853f0f2734bcf8fbb3934469ac02eb2..4d4875471506fe522edf4ccb64282899c82a240d 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/forms/_control-table.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/forms/_control-table.less
@@ -52,4 +52,7 @@
             }
         }
     }
+    .action-delete {
+        &:extend(.abs-action-delete all);
+    }
 }
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/forms/_tooltip.less b/app/design/adminhtml/Magento/backend/web/css/source/forms/_tooltip.less
index dbb52ffa5d3b74aec7574b566ef5ff1e3858536d..67fb5f3926aac1a7e8ee4790987f2a951641a250 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/forms/_tooltip.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/forms/_tooltip.less
@@ -44,24 +44,16 @@
         display: block;
     }
     .admin__field-tooltip-content {
-        @_shadow: 0 2px 8px 0 rgba(0, 0, 0, .3);
-        .css(box-shadow, @_shadow);
-        background: @field-tooltip-content__background-color;
-        border-radius: 1px;
-        border: 1px solid @field-tooltip-content__border-color;
+        &:extend(.abs-admin__field-tooltip-content all);
         bottom: 42px;
         display: none;
-        padding: 15px 25px;
-        position: absolute;
         right: -70px;
-        width: 320px;
-        z-index: 1;
         &:after,
         &:before {
             .arrow(
-                @_position: down,
-                @_size: 16px,
-                @_color: @field-tooltip-content__border-color
+            @_position: down,
+            @_size: 16px,
+            @_color: @field-tooltip-content__border-color
             );
             content: "";
             display: block;
@@ -77,3 +69,15 @@
         }
     }
 }
+
+.abs-admin__field-tooltip-content {
+    @_shadow: 0 2px 8px 0 rgba(0, 0, 0, .3);
+    .css(box-shadow, @_shadow);
+    background: @field-tooltip-content__background-color;
+    border-radius: 1px;
+    border: 1px solid @field-tooltip-content__border-color;
+    padding: 15px 25px;
+    position: absolute;
+    width: 320px;
+    z-index: 1;
+}
diff --git a/app/design/adminhtml/Magento/backend/web/css/source/variables/_typography.less b/app/design/adminhtml/Magento/backend/web/css/source/variables/_typography.less
index fa70769896ebb837737830e6ab90f4a4c4ada786..95422456d853c3239a80cf9bdbd14df5bdd0485e 100644
--- a/app/design/adminhtml/Magento/backend/web/css/source/variables/_typography.less
+++ b/app/design/adminhtml/Magento/backend/web/css/source/variables/_typography.less
@@ -17,6 +17,7 @@
 @font-size__l: 1.6rem;
 @font-size__base: 1.4rem;
 @font-size__s: 1.2rem;
+@font-size__tiny: 1.1rem;
 @font-size__xs: 1rem;
 
 @line-height__base: 1.4;
diff --git a/app/design/adminhtml/Magento/backend/web/css/styles-old.less b/app/design/adminhtml/Magento/backend/web/css/styles-old.less
index f6b0cff9e7c8de6cddad3de71d5e7484d8d2aa14..55ff2a07a82998541813d953643dbdbe4414b600 100644
--- a/app/design/adminhtml/Magento/backend/web/css/styles-old.less
+++ b/app/design/adminhtml/Magento/backend/web/css/styles-old.less
@@ -3167,8 +3167,7 @@ input.no-display,
         border-radius: 5px;
     }
 
-    .adminhtml-rma-new .order-totals,
-    .order-comments-history .order-comments-history {
+    .adminhtml-rma-new .order-totals {
         float: none;
         width: 100%;
     }
@@ -3312,40 +3311,6 @@ input.no-display,
         }
     }
 
-    //
-    //  Order view
-    // --------------------------------------
-
-    .order-comments-history fieldset {
-        border: 0;
-        margin: 0;
-        padding: 0;
-    }
-
-    .order-comments-history textarea,
-    .rma-history-form textarea {
-        height: 6em;
-        margin: 5px 0 10px;
-        resize: vertical;
-        width: 100%;
-    }
-
-    .order-comments-history input[type="checkbox"] {
-        margin-right: 5px;
-    }
-
-    .order-history-comments-options {
-        float: left;
-    }
-
-    .order-comments-history .actions {
-        float: right;
-    }
-
-    [class*="-order-"] .fieldset-wrapper address {
-        overflow: auto;
-    }
-
     //
     //  Orders comments
     //--------------------------------------
@@ -4077,6 +4042,12 @@ input.no-display,
         display: none;
     }
 
+    .section-config > .config {
+        &.collapseable {
+            display: none;
+        }
+    }
+
     .accordion > dt.open,
     .section-config.active > .collapseable,
     .accordion .collapseable.open {
@@ -4797,7 +4768,6 @@ input.no-display,
     .page-layout-admin-1column .page-columns,
     .catalog-product-edit,
     .catalog-product-new,
-    .sales-order-view,
     .catalog-category-edit {
         table.data {
             table-layout: fixed;
@@ -4822,7 +4792,6 @@ input.no-display,
     .custom-options .data-table,
     .ui-dialog .data,
     .page-layout-admin-1column .page-columns .data,
-    .sales-order-view .data,
     .catalog-category-edit .data {
         word-wrap: break-word;
         table-layout: fixed;
@@ -5074,8 +5043,6 @@ input.no-display,
     }
 }
 
-[class*="-order-"] .admin__scope-old .order-history,
-[class*="-order-"] .admin__scope-old .order-comments-history,
 [class*="-order-"] .admin__scope-old .order-information,
 [class*="-order-"] .admin__scope-old .order-billing-address,
 [class*="-order-"] .admin__scope-old .order-payment-method,
@@ -5302,19 +5269,6 @@ input.no-display,
     }
 }
 
-.sales-order-view {
-    .admin__scope-old {
-        .grid  {
-            .col-name {
-                &:extend(.col-150-max all);
-            }
-            .col-period {
-                &:extend(.col-70-max all);
-            }
-        }
-    }
-}
-
 .sales-order-index {
     .admin__scope-old {
         .grid .col-name {
@@ -5377,15 +5331,6 @@ input.no-display,
     }
 }
 
-//  Sales -> View order
-[class^=' sales-order-view'] {
-    .admin__scope-old {
-        .grid .col-customer_name {
-            &:extend(.col-110-max all);
-        }
-    }
-}
-
 //  Sales -> Return
 [class^=' adminhtml-rma-'] {
     .admin__scope-old {
diff --git a/app/design/adminhtml/Magento/backend/web/mui/styles/table.less b/app/design/adminhtml/Magento/backend/web/mui/styles/table.less
index 55d1128d73b7506a05226dcfbb6c9c5c44424bbc..22032decb2c9868ecfab36e87e49684a33dc0416 100644
--- a/app/design/adminhtml/Magento/backend/web/mui/styles/table.less
+++ b/app/design/adminhtml/Magento/backend/web/mui/styles/table.less
@@ -85,11 +85,9 @@ table {
 //    Table Filters
 //--------------------------------------
 .filter {
-    select {
-        width: 99%;
-    }
     input.input-text {
         width: 99%;
+        margin-right: 0;
         &::-webkit-input-placeholder {
             color: @grid-filters-placeholder-color !important;
             text-transform: lowercase;
diff --git a/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/module/_minicart.less b/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/module/_minicart.less
index d8d0b25cb90f10fa092cc096fec35d72c733fce6..486f1232621403da649c372f7f5237908cbd5e5a 100644
--- a/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/module/_minicart.less
+++ b/app/design/frontend/Magento/blank/Magento_Checkout/web/css/source/module/_minicart.less
@@ -197,9 +197,6 @@
         &:first-child {
             padding-top: 0;
         }
-        &:last-child {
-            padding-bottom: 0;
-        }
         > .product {
             &:extend(.abs-add-clearfix all);
         }
@@ -242,6 +239,9 @@
                 @_icon-font-margin: -3px 0 0 7px,
                 @_icon-font-position: after
             );
+            .details {
+                display: none;
+            }
         }
     }
     .details-qty,
diff --git a/app/design/frontend/Magento/blank/composer.json b/app/design/frontend/Magento/blank/composer.json
index 06b0de74a20117cdf9372ecbf1e5d1fafce4d487..2a04bfacb343d811febc36cc9be67b7254e3eb41 100644
--- a/app/design/frontend/Magento/blank/composer.json
+++ b/app/design/frontend/Magento/blank/composer.json
@@ -3,11 +3,11 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/framework": "0.74.0-beta5",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-theme",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_minicart.less b/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_minicart.less
index 3a65f3be3f3055aca8770b2ec9b94145206a63fc..365f03d8f28a56c51d26d921cb5168a0daa74983 100644
--- a/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_minicart.less
+++ b/app/design/frontend/Magento/luma/Magento_Checkout/web/css/source/module/_minicart.less
@@ -205,9 +205,6 @@
         &:first-child {
             padding-top: 0;
         }
-        &:last-child {
-            padding-bottom: 0;
-        }
         > .product {
             &:extend(.abs-add-clearfix all);
         }
@@ -273,6 +270,9 @@
                     @_icon-font-position: after
                 );
             }
+            .details {
+                display: none;
+            }
         }
     }
     .details-qty,
diff --git a/app/design/frontend/Magento/luma/composer.json b/app/design/frontend/Magento/luma/composer.json
index 65cee41130caa2f8c59fed9819f74ecd48b77082..8fa8ad3aa9e7c50206b59568b7faff068e12c61b 100644
--- a/app/design/frontend/Magento/luma/composer.json
+++ b/app/design/frontend/Magento/luma/composer.json
@@ -3,12 +3,12 @@
     "description": "N/A",
     "require": {
         "php": "~5.5.0|~5.6.0",
-        "magento/theme-frontend-blank": "0.74.0-beta5",
-        "magento/framework": "0.74.0-beta5",
+        "magento/theme-frontend-blank": "0.74.0-beta6",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-theme",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/app/i18n/magento/de_de/composer.json b/app/i18n/magento/de_de/composer.json
index dcb3119da17cb3d01996b2d6e5381d371f8c3de3..3348716f124bbb1283aca8365bee6dc1653f53b6 100644
--- a/app/i18n/magento/de_de/composer.json
+++ b/app/i18n/magento/de_de/composer.json
@@ -1,13 +1,13 @@
 {
     "name": "magento/language-de_de",
     "description": "German (Germany) language",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
     ],
     "require": {
-        "magento/framework": "0.74.0-beta5",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-language",
diff --git a/app/i18n/magento/en_us/composer.json b/app/i18n/magento/en_us/composer.json
index a6066570d9407c89c5458566a743cdb3dd324fb1..54427d660fa30d9bae85106145c1486e6e04189d 100644
--- a/app/i18n/magento/en_us/composer.json
+++ b/app/i18n/magento/en_us/composer.json
@@ -1,13 +1,13 @@
 {
     "name": "magento/language-en_us",
     "description": "English (United States) language",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
     ],
     "require": {
-        "magento/framework": "0.74.0-beta5",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-language",
diff --git a/app/i18n/magento/es_es/composer.json b/app/i18n/magento/es_es/composer.json
index 04c60c9a9d287558a54c1ece7d1cc567a7d9af2d..de93f29f35665cc28056a6bd9d273ac9a85cf89c 100644
--- a/app/i18n/magento/es_es/composer.json
+++ b/app/i18n/magento/es_es/composer.json
@@ -1,13 +1,13 @@
 {
     "name": "magento/language-es_es",
     "description": "Spanish (Spain) language",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
     ],
     "require": {
-        "magento/framework": "0.74.0-beta5",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-language",
diff --git a/app/i18n/magento/fr_fr/composer.json b/app/i18n/magento/fr_fr/composer.json
index 4fb658f1943122d8aa49b9f893baa7562b5320b6..57c2be2ed896269ff4140ad4c4970cb450ba2b67 100644
--- a/app/i18n/magento/fr_fr/composer.json
+++ b/app/i18n/magento/fr_fr/composer.json
@@ -1,13 +1,13 @@
 {
     "name": "magento/language-fr_fr",
     "description": "French (France) language",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
     ],
     "require": {
-        "magento/framework": "0.74.0-beta5",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-language",
diff --git a/app/i18n/magento/nl_nl/composer.json b/app/i18n/magento/nl_nl/composer.json
index d5a03c186958d03407f80deb84ded1bf53bf9d82..12c4f56f07432845832714823d15a4f34d8e4b10 100644
--- a/app/i18n/magento/nl_nl/composer.json
+++ b/app/i18n/magento/nl_nl/composer.json
@@ -1,13 +1,13 @@
 {
     "name": "magento/language-nl_nl",
     "description": "Dutch (Netherlands) language",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
     ],
     "require": {
-        "magento/framework": "0.74.0-beta5",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-language",
diff --git a/app/i18n/magento/pt_br/composer.json b/app/i18n/magento/pt_br/composer.json
index ee226ddb36f77ae4efe8e11340d38ba1a8b71cd7..cc1a364b3dde8fba1615b23368ee82f4041da639 100644
--- a/app/i18n/magento/pt_br/composer.json
+++ b/app/i18n/magento/pt_br/composer.json
@@ -1,13 +1,13 @@
 {
     "name": "magento/language-pt_br",
     "description": "Portuguese (Brazil) language",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
     ],
     "require": {
-        "magento/framework": "0.74.0-beta5",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-language",
diff --git a/app/i18n/magento/zh_cn/composer.json b/app/i18n/magento/zh_cn/composer.json
index ddc25d3462fe46f5d2c34400a51328611871b7b7..1088c0e650ce72ad7a50a07957c4571f156913f2 100644
--- a/app/i18n/magento/zh_cn/composer.json
+++ b/app/i18n/magento/zh_cn/composer.json
@@ -1,13 +1,13 @@
 {
     "name": "magento/language-zh_cn",
     "description": "Chinese (China) language",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
     ],
     "require": {
-        "magento/framework": "0.74.0-beta5",
+        "magento/framework": "0.74.0-beta6",
         "magento/magento-composer-installer": "*"
     },
     "type": "magento2-language",
diff --git a/composer.json b/composer.json
index 93c1f2b024685ab26c8bf8fc467f2aa3a71c868f..e99f901fde5affb0c5023710e7e9d788421aa9d0 100644
--- a/composer.json
+++ b/composer.json
@@ -2,7 +2,7 @@
     "name": "magento/magento2ce",
     "description": "Magento 2 (Community Edition)",
     "type": "project",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/composer.lock b/composer.lock
index 036da6915e82470dc348beffecb1a07f394215b4..a4498fe8e6dc972a67cd464639b3f4a7619783fd 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
         "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
         "This file is @generated automatically"
     ],
-    "hash": "986eef2b3ae742a365a8a886f0babdd6",
+    "hash": "ff2c069b557199903bafc88e8abe0cea",
     "packages": [
         {
             "name": "composer/composer",
@@ -2016,19 +2016,20 @@
         },
         {
             "name": "fabpot/php-cs-fixer",
-            "version": "v1.6.2",
+            "version": "v1.7",
             "source": {
                 "type": "git",
                 "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git",
-                "reference": "a574ba148953fea1f78428d4b7c6843e759711f3"
+                "reference": "6425aeb97ab921371182712a18c280d546e7769b"
             },
             "dist": {
                 "type": "zip",
-                "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/a574ba148953fea1f78428d4b7c6843e759711f3",
-                "reference": "a574ba148953fea1f78428d4b7c6843e759711f3",
+                "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/6425aeb97ab921371182712a18c280d546e7769b",
+                "reference": "6425aeb97ab921371182712a18c280d546e7769b",
                 "shasum": ""
             },
             "require": {
+                "ext-tokenizer": "*",
                 "php": ">=5.3.6",
                 "sebastian/diff": "~1.1",
                 "symfony/console": "~2.3",
@@ -2065,7 +2066,7 @@
                 }
             ],
             "description": "A script to automatically fix Symfony Coding Standard",
-            "time": "2015-04-13 21:33:33"
+            "time": "2015-04-16 07:21:30"
         },
         {
             "name": "league/climate",
diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/BillingAddressManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/BillingAddressManagementTest.php
index f78abc4a896adf0c4d64d5697b634b1031a3e17d..8d6c238db91f51b1afec55af59fc90d72899c6e9 100644
--- a/dev/tests/api-functional/testsuite/Magento/Quote/Api/BillingAddressManagementTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/BillingAddressManagementTest.php
@@ -132,4 +132,118 @@ class BillingAddressManagementTest extends WebapiAbstract
             $this->assertEquals($value, $savedData[$key]);
         }
     }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testGetMyAddress()
+    {
+        $this->_markTestAsRestOnly();
+
+        // get customer ID token
+        /** @var \Magento\Integration\Service\V1\CustomerTokenServiceInterface $customerTokenService */
+        $customerTokenService = $this->objectManager->create(
+            'Magento\Integration\Service\V1\CustomerTokenServiceInterface'
+        );
+        $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password');
+
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+
+        /** @var \Magento\Quote\Model\Quote\Address $address */
+        $address = $quote->getBillingAddress();
+
+        $data = [
+            AddressInterface::KEY_COUNTRY_ID => $address->getCountryId(),
+            AddressInterface::KEY_ID => (int)$address->getId(),
+            AddressInterface::KEY_CUSTOMER_ID => $address->getCustomerId(),
+            AddressInterface::KEY_REGION => $address->getRegion(),
+            AddressInterface::KEY_REGION_ID => $address->getRegionId(),
+            AddressInterface::KEY_REGION_CODE => $address->getRegionCode(),
+            AddressInterface::KEY_STREET => $address->getStreet(),
+            AddressInterface::KEY_COMPANY => $address->getCompany(),
+            AddressInterface::KEY_TELEPHONE => $address->getTelephone(),
+            AddressInterface::KEY_POSTCODE => $address->getPostcode(),
+            AddressInterface::KEY_CITY => $address->getCity(),
+            AddressInterface::KEY_FIRSTNAME => $address->getFirstname(),
+            AddressInterface::KEY_LASTNAME => $address->getLastname(),
+            AddressInterface::KEY_EMAIL => $address->getEmail()
+        ];
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . 'mine/billing-address',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+                'token' => $token
+            ],
+        ];
+
+        $this->assertEquals($data, $this->_webApiCall($serviceInfo));
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testSetMyAddress()
+    {
+        $this->_markTestAsRestOnly();
+
+        // get customer ID token
+        /** @var \Magento\Integration\Service\V1\CustomerTokenServiceInterface $customerTokenService */
+        $customerTokenService = $this->objectManager->create(
+            'Magento\Integration\Service\V1\CustomerTokenServiceInterface'
+        );
+        $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password');
+
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . 'mine/billing-address',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
+                'token' => $token
+            ],
+        ];
+
+        $addressData = [
+            'firstname' => 'John',
+            'lastname' => 'Smith',
+            'email' => 'cat@dog.com',
+            'company' => 'eBay Inc',
+            'street' => ['Typical Street', 'Tiny House 18'],
+            'city' => 'Big City',
+            'region_id' => 12,
+            'region' => 'California',
+            'region_code' => 'CA',
+            'postcode' => '0985432',
+            'country_id' => 'US',
+            'telephone' => '88776655',
+            'fax' => '44332255',
+        ];
+        $requestData = [
+            'address' => $addressData,
+        ];
+
+        $addressId = $this->_webApiCall($serviceInfo, $requestData);
+
+        //reset $quote to reload data
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+        $address = $quote->getBillingAddress();
+        $address->getRegionCode();
+        $savedData = $address->getData();
+        $this->assertEquals($addressId, $savedData['address_id']);
+        //custom checks for street, region and address_type
+        foreach ($addressData['street'] as $streetLine) {
+            $this->assertContains($streetLine, $quote->getBillingAddress()->getStreet());
+        }
+        unset($addressData['street']);
+        $this->assertEquals('billing', $savedData['address_type']);
+        //check the rest of fields
+        foreach ($addressData as $key => $value) {
+            $this->assertEquals($value, $savedData[$key]);
+        }
+    }
 }
diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/CartManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/CartManagementTest.php
index 1f977421884bb9bb8d300244fd3995986c30a6f5..b8ec4629f35812fd01c7e8a6b1cf03577d4e9529 100644
--- a/dev/tests/api-functional/testsuite/Magento/Quote/Api/CartManagementTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/CartManagementTest.php
@@ -13,6 +13,7 @@ class CartManagementTest extends WebapiAbstract
     const SERVICE_VERSION = 'V1';
     const SERVICE_NAME = 'quoteCartManagementV1';
     const RESOURCE_PATH = '/V1/carts/';
+    const RESOURCE_PATH_CUSTOMER_TOKEN = "/V1/integration/customer/token";
 
     protected $createdQuotes = [];
 
@@ -26,7 +27,17 @@ class CartManagementTest extends WebapiAbstract
         $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
     }
 
-    public function testCreate()
+    public function tearDown()
+    {
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        foreach ($this->createdQuotes as $quoteId) {
+            $quote->load($quoteId);
+            $quote->delete();
+        }
+    }
+
+    public function testCreateEmptyCartForGuest()
     {
         $serviceInfo = [
             'rest' => [
@@ -46,14 +57,71 @@ class CartManagementTest extends WebapiAbstract
         $this->createdQuotes[] = $quoteId;
     }
 
-    public function tearDown()
+    /**
+     * @magentoApiDataFixture Magento/Customer/_files/customer.php
+     */
+    public function testCreateEmptyCartForCustomer()
     {
-        /** @var \Magento\Quote\Model\Quote $quote */
-        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
-        foreach ($this->createdQuotes as $quoteId) {
-            $quote->load($quoteId);
-            $quote->delete();
-        }
+        /** @var $repository \Magento\Customer\Api\CustomerRepositoryInterface */
+        $repository = $this->objectManager->create('Magento\Customer\Api\CustomerRepositoryInterface');
+        /** @var $customer \Magento\Customer\Api\Data\CustomerInterface */
+        $customer = $repository->getById(1);
+        $customerId = $customer->getId();
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => '/V1/customers/' . $customerId . '/carts',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'CreateEmptyCartForCustomer',
+            ],
+        ];
+
+        $quoteId = $this->_webApiCall($serviceInfo, ['customerId' => $customerId]);
+        $this->assertGreaterThan(0, $quoteId);
+        $this->createdQuotes[] = $quoteId;
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Customer/_files/customer.php
+     */
+    public function testCreateEmptyCartAndGetCartForCustomer()
+    {
+        $this->_markTestAsRestOnly();
+
+        // get customer ID token
+        /** @var \Magento\Integration\Service\V1\CustomerTokenServiceInterface $customerTokenService */
+        $customerTokenService = $this->objectManager->create(
+            'Magento\Integration\Service\V1\CustomerTokenServiceInterface'
+        );
+        $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password');
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => '/V1/carts/mine',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
+                'token' => $token
+            ]
+        ];
+
+        $quoteId = $this->_webApiCall($serviceInfo, ['customerId' => 999]); // customerId 999 will get overridden
+        $this->assertGreaterThan(0, $quoteId);
+        $this->createdQuotes[] = $quoteId;
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => '/V1/carts/mine',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+                'token' => $token
+            ]
+        ];
+
+        /** @var \Magento\Quote\Api\Data\CartInterface $cart */
+        $cart = $this->_webApiCall($serviceInfo, ['customerId' => 999]); // customerId 999 will get overridden
+        $this->assertEquals($quoteId, $cart['id']);
     }
 
     /**
@@ -298,26 +366,67 @@ class CartManagementTest extends WebapiAbstract
         $items = $order->getAllItems();
         $this->assertCount(1, $items);
         $this->assertEquals('Simple Product', $items[0]->getName());
-        $quote->delete();
     }
 
     /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_check_payment.php
+     */
+    public function testPlaceOrderForMyCart()
+    {
+        $this->_markTestAsRestOnly();
+
+        // get customer ID token
+        /** @var \Magento\Integration\Service\V1\CustomerTokenServiceInterface $customerTokenService */
+        $customerTokenService = $this->objectManager->create(
+            'Magento\Integration\Service\V1\CustomerTokenServiceInterface'
+        );
+        $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password');
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => '/V1/carts/mine/order',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+                'token' => $token
+            ],
+        ];
+
+        $orderId = $this->_webApiCall($serviceInfo, []);
+
+        /** @var \Magento\Sales\Model\Order $order */
+        $order = $this->objectManager->create('Magento\Sales\Model\Order')->load($orderId);
+        $items = $order->getAllItems();
+        $this->assertCount(1, $items);
+        $this->assertEquals('Simple Product', $items[0]->getName());
+    }
+
+    /**
+     * Test to get my cart based on customer authentication token or session
+     *
      * @magentoApiDataFixture Magento/Sales/_files/quote_with_customer.php
      */
     public function testGetCartForCustomer()
     {
+        // get customer ID token
+        /** @var \Magento\Integration\Service\V1\CustomerTokenServiceInterface $customerTokenService */
+        $customerTokenService = $this->objectManager->create(
+            'Magento\Integration\Service\V1\CustomerTokenServiceInterface'
+        );
+        $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password');
+
         $cart = $this->getCart('test01');
         $customerId = $cart->getCustomer()->getId();
 
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => '/V1/customer/' . $customerId . '/cart',
+                'resourcePath' => '/V1/carts/mine',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+                'token' => $token
             ],
             'soap' => [
                 'service' => 'quoteCartManagementV1',
                 'serviceVersion' => 'V1',
                 'operation' => 'quoteCartManagementV1GetCartForCustomer',
+                'token' => $token
             ],
         ];
 
diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/CartTotalRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/CartTotalRepositoryTest.php
index 257cd01237d947ab653b0069b176da3b83036618..406b755d77dd133e839ab27c4396ef3ef2ddd8de 100644
--- a/dev/tests/api-functional/testsuite/Magento/Quote/Api/CartTotalRepositoryTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/CartTotalRepositoryTest.php
@@ -171,4 +171,64 @@ class CartTotalRepositoryTest extends WebapiAbstract
             ItemTotals::KEY_BASE_ROW_TOTAL_INCL_TAX => $item->getBaseRowTotalInclTax(),
         ];
     }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_shipping_method.php
+     */
+    public function testGetMyTotals()
+    {
+        $this->_markTestAsRestOnly();
+
+        // get customer ID token
+        /** @var \Magento\Integration\Service\V1\CustomerTokenServiceInterface $customerTokenService */
+        $customerTokenService = $this->objectManager->create(
+            'Magento\Integration\Service\V1\CustomerTokenServiceInterface'
+        );
+        $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password');
+
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => '/V1/carts/mine/totals',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+                'token' => $token
+            ],
+        ];
+
+        /** @var \Magento\Quote\Model\Quote\Address $shippingAddress */
+        $shippingAddress = $quote->getShippingAddress();
+
+        $data = [
+            Totals::KEY_BASE_GRAND_TOTAL => $quote->getBaseGrandTotal(),
+            Totals::KEY_GRAND_TOTAL => $quote->getGrandTotal(),
+            Totals::KEY_BASE_SUBTOTAL => $quote->getBaseSubtotal(),
+            Totals::KEY_SUBTOTAL => $quote->getSubtotal(),
+            Totals::KEY_BASE_SUBTOTAL_WITH_DISCOUNT => $quote->getBaseSubtotalWithDiscount(),
+            Totals::KEY_SUBTOTAL_WITH_DISCOUNT => $quote->getSubtotalWithDiscount(),
+            Totals::KEY_DISCOUNT_AMOUNT => $shippingAddress->getDiscountAmount(),
+            Totals::KEY_BASE_DISCOUNT_AMOUNT => $shippingAddress->getBaseDiscountAmount(),
+            Totals::KEY_SHIPPING_AMOUNT => $shippingAddress->getShippingAmount(),
+            Totals::KEY_BASE_SHIPPING_AMOUNT => $shippingAddress->getBaseShippingAmount(),
+            Totals::KEY_SHIPPING_DISCOUNT_AMOUNT => $shippingAddress->getShippingDiscountAmount(),
+            Totals::KEY_BASE_SHIPPING_DISCOUNT_AMOUNT => $shippingAddress->getBaseShippingDiscountAmount(),
+            Totals::KEY_TAX_AMOUNT => $shippingAddress->getTaxAmount(),
+            Totals::KEY_BASE_TAX_AMOUNT => $shippingAddress->getBaseTaxAmount(),
+            Totals::KEY_SHIPPING_TAX_AMOUNT => $shippingAddress->getShippingTaxAmount(),
+            Totals::KEY_BASE_SHIPPING_TAX_AMOUNT => $shippingAddress->getBaseShippingTaxAmount(),
+            Totals::KEY_SUBTOTAL_INCL_TAX => $shippingAddress->getSubtotalInclTax(),
+            Totals::KEY_BASE_SUBTOTAL_INCL_TAX => $shippingAddress->getBaseSubtotalTotalInclTax(),
+            Totals::KEY_SHIPPING_INCL_TAX => $shippingAddress->getShippingInclTax(),
+            Totals::KEY_BASE_SHIPPING_INCL_TAX => $shippingAddress->getBaseShippingInclTax(),
+            Totals::KEY_BASE_CURRENCY_CODE => $quote->getBaseCurrencyCode(),
+            Totals::KEY_QUOTE_CURRENCY_CODE => $quote->getQuoteCurrencyCode(),
+            Totals::KEY_ITEMS => [$this->getQuoteItemTotalsData($quote)],
+        ];
+
+        $data = $this->formatTotalsData($data);
+
+        $this->assertEquals($data, $this->_webApiCall($serviceInfo));
+    }
 }
diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/CouponManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/CouponManagementTest.php
index f6f2a4655c0bc4c94258d4a377b142a4b5ac1fbd..e6c8a97b918c488762656b2850a251cc4fec215d 100644
--- a/dev/tests/api-functional/testsuite/Magento/Quote/Api/CouponManagementTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/CouponManagementTest.php
@@ -148,4 +148,147 @@ class CouponManagementTest extends WebapiAbstract
 
         $this->assertEquals($quoteWithCoupon->getCouponCode(), $couponCode);
     }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_coupon_saved.php
+     */
+    public function testGetMyCoupon()
+    {
+        $this->_markTestAsRestOnly();
+
+        // get customer ID token
+        /** @var \Magento\Integration\Service\V1\CustomerTokenServiceInterface $customerTokenService */
+        $customerTokenService = $this->objectManager->create(
+            'Magento\Integration\Service\V1\CustomerTokenServiceInterface'
+        );
+        $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password');
+
+        /** @var \Magento\Quote\Model\Quote  $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+        $couponCode = $quote->getCouponCode();
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . 'mine/coupons' ,
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+                'token' => $token,
+            ],
+        ];
+
+        $requestData = [];
+        $this->assertEquals($couponCode, $this->_webApiCall($serviceInfo, $requestData));
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_coupon_saved.php
+     */
+    public function testDeleteMyCoupon()
+    {
+        $this->_markTestAsRestOnly();
+
+        // get customer ID token
+        /** @var \Magento\Integration\Service\V1\CustomerTokenServiceInterface $customerTokenService */
+        $customerTokenService = $this->objectManager->create(
+            'Magento\Integration\Service\V1\CustomerTokenServiceInterface'
+        );
+        $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password');
+
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . 'mine/coupons',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_DELETE,
+                'token' => $token,
+            ],
+        ];
+        $requestData = [];
+        $this->assertTrue($this->_webApiCall($serviceInfo, $requestData));
+        $quote->load('test_order_1', 'reserved_order_id');
+        $this->assertEquals('', $quote->getCouponCode());
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     * @expectedException \Exception
+     * @expectedExceptionMessage Coupon code is not valid
+     */
+    public function testSetMyCouponThrowsExceptionIfCouponDoesNotExist()
+    {
+        $this->_markTestAsRestOnly();
+
+        // get customer ID token
+        /** @var \Magento\Integration\Service\V1\CustomerTokenServiceInterface $customerTokenService */
+        $customerTokenService = $this->objectManager->create(
+            'Magento\Integration\Service\V1\CustomerTokenServiceInterface'
+        );
+        $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password');
+
+        $couponCode = 'invalid_coupon_code';
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . 'mine/coupons/' . $couponCode,
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+                'token' => $token,
+            ],
+        ];
+
+        $requestData = [
+            "couponCode" => $couponCode,
+        ];
+
+        $this->_webApiCall($serviceInfo, $requestData);
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Customer/_files/customer.php
+     * @magentoApiDataFixture Magento/Sales/_files/quote.php
+     * @magentoApiDataFixture Magento/Checkout/_files/discount_10percent_generalusers.php
+     */
+    public function testSetMyCouponSuccess()
+    {
+        $this->_markTestAsRestOnly();
+
+        // get customer ID token
+        /** @var \Magento\Integration\Service\V1\CustomerTokenServiceInterface $customerTokenService */
+        $customerTokenService = $this->objectManager->create(
+            'Magento\Integration\Service\V1\CustomerTokenServiceInterface'
+        );
+        $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password');
+
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test01', 'reserved_order_id');
+        $cartId = $quote->getId();
+        $salesRule = $this->objectManager->create('Magento\SalesRule\Model\Rule');
+        $salesRule->load('Test Coupon for General', 'name');
+        $couponCode = $salesRule->getCouponCode();
+
+        /* Since this isn't a full quote fixture, need to assign it to the right customer */
+        $cartManagementService = $this->objectManager->create(
+            'Magento\Quote\Api\CartManagementInterface'
+        );
+        $cartManagementService->assignCustomer($cartId, 1, 1);
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . 'mine/coupons/' . $couponCode,
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+                'token' => $token,
+            ],
+        ];
+
+        $requestData = [
+            "couponCode" => $couponCode,
+        ];
+
+        $this->assertTrue($this->_webApiCall($serviceInfo, $requestData));
+
+        $quoteWithCoupon = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quoteWithCoupon->load('test01', 'reserved_order_id');
+
+        $this->assertEquals($quoteWithCoupon->getCouponCode(), $couponCode);
+    }
 }
diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestBillingAddressManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestBillingAddressManagementTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..97838fe9f26393312c5a24c53f5ad85ab0f061e1
--- /dev/null
+++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestBillingAddressManagementTest.php
@@ -0,0 +1,145 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Quote\Api;
+
+use Magento\Quote\Api\Data\AddressInterface;
+use Magento\TestFramework\TestCase\WebapiAbstract;
+
+class GuestBillingAddressManagementTest extends WebapiAbstract
+{
+    const SERVICE_VERSION = 'V1';
+    const SERVICE_NAME = 'quoteGuestBillingAddressManagementV1';
+    const RESOURCE_PATH = '/V1/guest-carts/';
+
+    /**
+     * @var \Magento\TestFramework\ObjectManager
+     */
+    protected $objectManager;
+
+    protected function setUp()
+    {
+        $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
+    }
+
+    protected function getQuoteMaskedId($quoteId)
+    {
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = $this->objectManager->create('Magento\Quote\Model\QuoteIdMaskFactory')->create();
+        $quoteIdMask->load($quoteId);
+        return $quoteIdMask->getMaskedId();
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testGetAddress()
+    {
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+
+        /** @var \Magento\Quote\Model\Quote\Address $address */
+        $address = $quote->getBillingAddress();
+
+        $data = [
+            AddressInterface::KEY_COUNTRY_ID => $address->getCountryId(),
+            AddressInterface::KEY_ID => (int)$address->getId(),
+            AddressInterface::KEY_CUSTOMER_ID => $address->getCustomerId(),
+            AddressInterface::KEY_REGION => $address->getRegion(),
+            AddressInterface::KEY_REGION_ID => $address->getRegionId(),
+            AddressInterface::KEY_REGION_CODE => $address->getRegionCode(),
+            AddressInterface::KEY_STREET => $address->getStreet(),
+            AddressInterface::KEY_COMPANY => $address->getCompany(),
+            AddressInterface::KEY_TELEPHONE => $address->getTelephone(),
+            AddressInterface::KEY_POSTCODE => $address->getPostcode(),
+            AddressInterface::KEY_CITY => $address->getCity(),
+            AddressInterface::KEY_FIRSTNAME => $address->getFirstname(),
+            AddressInterface::KEY_LASTNAME => $address->getLastname(),
+            AddressInterface::KEY_EMAIL => $address->getEmail()
+        ];
+
+        $cartId = $this->getQuoteMaskedId($quote->getId());
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/billing-address',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'Get',
+            ],
+        ];
+
+        $requestData = ["cartId" => $cartId];
+        $this->assertEquals($data, $this->_webApiCall($serviceInfo, $requestData));
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testSetAddress()
+    {
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+
+        $cartId = $this->getQuoteMaskedId($quote->getId());
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/billing-address',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'Assign',
+            ],
+        ];
+
+        $addressData = [
+            'firstname' => 'John',
+            'lastname' => 'Smith',
+            'email' => 'cat@dog.com',
+            'company' => 'eBay Inc',
+            'street' => ['Typical Street', 'Tiny House 18'],
+            'city' => 'Big City',
+            'region_id' => 12,
+            'region' => 'California',
+            'region_code' => 'CA',
+            'postcode' => '0985432',
+            'country_id' => 'US',
+            'telephone' => '88776655',
+            'fax' => '44332255',
+        ];
+        $requestData = [
+            "cartId" => $cartId,
+            'address' => $addressData,
+        ];
+
+        $addressId = $this->_webApiCall($serviceInfo, $requestData);
+
+        //reset $quote to reload data
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+        $address = $quote->getBillingAddress();
+        $address->getRegionCode();
+        $savedData  = $address->getData();
+        $this->assertEquals($addressId, $savedData['address_id']);
+        //custom checks for street, region and address_type
+        foreach ($addressData['street'] as $streetLine) {
+            $this->assertContains($streetLine, $quote->getBillingAddress()->getStreet());
+        }
+        unset($addressData['street']);
+        $this->assertEquals('billing', $savedData['address_type']);
+        //check the rest of fields
+        foreach ($addressData as $key => $value) {
+            $this->assertEquals($value, $savedData[$key]);
+        }
+    }
+}
diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartItemRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartItemRepositoryTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..7287cd302008205adfafc6b6b96a7a65064e28c4
--- /dev/null
+++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartItemRepositoryTest.php
@@ -0,0 +1,226 @@
+<?php
+/**
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Api;
+
+use Magento\TestFramework\TestCase\WebapiAbstract;
+
+class GuestCartItemRepositoryTest extends WebapiAbstract
+{
+    const SERVICE_VERSION = 'V1';
+    const SERVICE_NAME = 'quoteGuestCartItemRepositoryV1';
+    const RESOURCE_PATH = '/V1/guest-carts/';
+
+    /**
+     * @var \Magento\TestFramework\ObjectManager
+     */
+    protected $objectManager;
+
+    protected function setUp()
+    {
+        $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_items_saved.php
+     */
+    public function testGetList()
+    {
+        /** @var \Magento\Quote\Model\Quote  $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_item_with_items', 'reserved_order_id');
+        $cartId = $quote->getId();
+
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+        //Use masked cart Id
+        $cartId = $quoteIdMask->getMaskedId();
+
+        $output = [];
+        /** @var  \Magento\Quote\Api\Data\CartItemInterface $item */
+        foreach ($quote->getAllItems() as $item) {
+            //Set masked Cart ID
+            $item->setQuoteId($cartId);
+            $data = [
+                'item_id' => $item->getItemId(),
+                'sku' => $item->getSku(),
+                'name' => $item->getName(),
+                'price' => $item->getPrice(),
+                'qty' => $item->getQty(),
+                'product_type' => $item->getProductType(),
+                'quote_id' => $item->getQuoteId()
+            ];
+
+            $output[] = $data;
+        }
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/items',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'GetList',
+            ],
+        ];
+
+        $requestData = ["cartId" => $cartId];
+        $this->assertEquals($output, $this->_webApiCall($serviceInfo, $requestData));
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     * @magentoApiDataFixture Magento/Catalog/_files/product_simple.php
+     */
+    public function testAddItem()
+    {
+        /** @var  \Magento\Catalog\Model\Product $product */
+        $product = $this->objectManager->create('Magento\Catalog\Model\Product')->load(2);
+        $productSku = $product->getSku();
+        /** @var \Magento\Quote\Model\Quote  $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+        $cartId = $quote->getId();
+
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+        //Use masked cart Id
+        $cartId = $quoteIdMask->getMaskedId();
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . 'items',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'Save',
+            ],
+        ];
+
+        $requestData = [
+            "cartItem" => [
+                "sku" => $productSku,
+                "qty" => 7,
+                "quote_id" => $cartId,
+            ],
+        ];
+        $this->_webApiCall($serviceInfo, $requestData);
+        $this->assertTrue($quote->hasProductId(2));
+        $this->assertEquals(7, $quote->getItemByProduct($product)->getQty());
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_items_saved.php
+     */
+    public function testRemoveItem()
+    {
+        /** @var \Magento\Quote\Model\Quote  $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_item_with_items', 'reserved_order_id');
+        $cartId = $quote->getId();
+
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+        //Use masked cart Id
+        $cartId = $quoteIdMask->getMaskedId();
+
+        $product = $this->objectManager->create('Magento\Catalog\Model\Product');
+        $productId = $product->getIdBySku('simple_one');
+        $product->load($productId);
+        $itemId = $quote->getItemByProduct($product)->getId();
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/items/' . $itemId,
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_DELETE,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'DeleteById',
+            ],
+        ];
+
+        $requestData = [
+            "cartId" => $cartId,
+            "itemId" => $itemId,
+        ];
+        $this->assertTrue($this->_webApiCall($serviceInfo, $requestData));
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_item_with_items', 'reserved_order_id');
+        $this->assertFalse($quote->hasProductId($productId));
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_items_saved.php
+     */
+    public function testUpdateItem()
+    {
+        /** @var \Magento\Quote\Model\Quote  $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_item_with_items', 'reserved_order_id');
+        $cartId = $quote->getId();
+
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+        //Use masked cart Id
+        $cartId = $quoteIdMask->getMaskedId();
+
+        $product = $this->objectManager->create('Magento\Catalog\Model\Product');
+        $productId = $product->getIdBySku('simple_one');
+        $product->load($productId);
+        $itemId = $quote->getItemByProduct($product)->getId();
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . 'items/' . $itemId,
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'Save',
+            ],
+        ];
+
+        if (TESTS_WEB_API_ADAPTER == self::ADAPTER_SOAP) {
+            $requestData = [
+                "cartItem" => [
+                    "qty" => 5,
+                    "quote_id" => $cartId,
+                    "itemId" => $itemId,
+                ],
+            ];
+        } else {
+            $requestData = [
+                "cartItem" => [
+                    "qty" => 5,
+                    "quote_id" => $cartId,
+                ],
+            ];
+        }
+        $this->_webApiCall($serviceInfo, $requestData);
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_item_with_items', 'reserved_order_id');
+        $this->assertTrue($quote->hasProductId(1));
+        $item = $quote->getItemByProduct($product);
+        $this->assertEquals(5, $item->getQty());
+        $this->assertEquals($itemId, $item->getItemId());
+    }
+}
diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartManagementTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..9058a930b196d518058f1db9693fe4a5091a0b45
--- /dev/null
+++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartManagementTest.php
@@ -0,0 +1,345 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Quote\Api;
+
+use Magento\TestFramework\TestCase\WebapiAbstract;
+
+class GuestCartManagementTest extends WebapiAbstract
+{
+    const SERVICE_VERSION = 'V1';
+    const SERVICE_NAME = 'quoteGuestCartManagementV1';
+    const RESOURCE_PATH = '/V1/guest-carts/';
+
+    protected $createdQuotes = [];
+
+    /**
+     * @var \Magento\TestFramework\ObjectManager
+     */
+    protected $objectManager;
+
+    protected function setUp()
+    {
+        $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
+    }
+
+    public function testCreate()
+    {
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH,
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'CreateEmptyCart',
+            ],
+        ];
+
+        $requestData = ['storeId' => 1];
+        $quoteId = $this->_webApiCall($serviceInfo, $requestData);
+        $this->assertTrue(strlen($quoteId) >= 32);
+        $this->createdQuotes[] = $quoteId;
+    }
+
+    public function tearDown()
+    {
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        foreach ($this->createdQuotes as $quoteId) {
+            $quote->load($quoteId);
+            $quote->delete();
+            /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+            $quoteIdMask = $this->objectManager->create('Magento\Quote\Model\QuoteIdMask');
+            $quoteIdMask->delete($quote->getId());
+        }
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Sales/_files/quote.php
+     * @magentoApiDataFixture Magento/Customer/_files/customer.php
+     */
+    public function testAssignCustomer()
+    {
+        /** @var $quote \Magento\Quote\Model\Quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote')->load('test01', 'reserved_order_id');
+        $cartId = $quote->getId();
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+        //Use masked cart Id
+        $cartId = $quoteIdMask->getMaskedId();
+
+        /** @var $repository \Magento\Customer\Api\CustomerRepositoryInterface */
+        $repository = $this->objectManager->create('Magento\Customer\Api\CustomerRepositoryInterface');
+        /** @var $customer \Magento\Customer\Api\Data\CustomerInterface */
+        $customer = $repository->getById(1);
+        $customerId = $customer->getId();
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => '/V1/guest-carts/' . $cartId,
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => 'V1',
+                'operation' => self::SERVICE_NAME . 'AssignCustomer',
+            ],
+        ];
+
+        $requestData = [
+            'cartId' => $cartId,
+            'customerId' => $customerId,
+            'storeId' => 1,
+        ];
+        // Cart must be anonymous (see fixture)
+        $this->assertEmpty($quote->getCustomerId());
+
+        $this->assertTrue($this->_webApiCall($serviceInfo, $requestData));
+        // Reload target quote
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote')->load('test01', 'reserved_order_id');
+        $this->assertEquals(0, $quote->getCustomerIsGuest());
+        $this->assertEquals($customer->getId(), $quote->getCustomerId());
+        $this->assertEquals($customer->getFirstname(), $quote->getCustomerFirstname());
+        $this->assertEquals($customer->getLastname(), $quote->getCustomerLastname());
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Sales/_files/quote.php
+     * @expectedException \Exception
+     */
+    public function testAssignCustomerThrowsExceptionIfThereIsNoCustomerWithGivenId()
+    {
+        /** @var $quote \Magento\Quote\Model\Quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote')->load('test01', 'reserved_order_id');
+        $cartId = $quote->getId();
+        $customerId = 9999;
+        $serviceInfo = [
+            'soap' => [
+                'serviceVersion' => 'V1',
+                'service' => self::SERVICE_NAME,
+                'operation' => self::SERVICE_NAME . 'AssignCustomer',
+            ],
+            'rest' => [
+                'resourcePath' => '/V1/guest-carts/' . $cartId,
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+            ],
+        ];
+        $requestData = [
+            'cartId' => $cartId,
+            'customerId' => $customerId,
+            'storeId' => 1,
+        ];
+
+        $this->_webApiCall($serviceInfo, $requestData);
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Customer/_files/customer.php
+     * @expectedException \Exception
+     */
+    public function testAssignCustomerThrowsExceptionIfThereIsNoCartWithGivenId()
+    {
+        $cartId = 9999;
+        $customerId = 1;
+        $serviceInfo = [
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => 'V1',
+                'operation' => self::SERVICE_NAME . 'AssignCustomer',
+            ],
+            'rest' => [
+                'resourcePath' => '/V1/guest-carts/' . $cartId,
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+            ],
+        ];
+        $requestData = [
+            'cartId' => $cartId,
+            'customerId' => $customerId,
+            'storeId' => 1,
+        ];
+
+        $this->_webApiCall($serviceInfo, $requestData);
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Sales/_files/quote_with_customer.php
+     * @expectedException \Exception
+     * @expectedExceptionMessage Cannot assign customer to the given cart. The cart is not anonymous.
+     */
+    public function testAssignCustomerThrowsExceptionIfTargetCartIsNotAnonymous()
+    {
+        /** @var $customer \Magento\Customer\Model\Customer */
+        $customer = $this->objectManager->create('Magento\Customer\Model\Customer')->load(1);
+        $customerId = $customer->getId();
+        /** @var $quote \Magento\Quote\Model\Quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote')->load('test01', 'reserved_order_id');
+        $cartId = $quote->getId();
+
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+        //Use masked cart Id
+        $cartId = $quoteIdMask->getMaskedId();
+
+        $serviceInfo = [
+            'rest' => [
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+                'resourcePath' => '/V1/guest-carts/' . $cartId,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => 'V1',
+                'operation' => self::SERVICE_NAME . 'AssignCustomer',
+            ],
+        ];
+
+        $requestData = [
+            'cartId' => $cartId,
+            'customerId' => $customerId,
+            'storeId' => 1,
+        ];
+        $this->_webApiCall($serviceInfo, $requestData);
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Sales/_files/quote.php
+     * @magentoApiDataFixture Magento/Customer/_files/customer_non_default_website_id.php
+     * @expectedException \Exception
+     * @expectedExceptionMessage Cannot assign customer to the given cart. The cart belongs to different store.
+     */
+    public function testAssignCustomerThrowsExceptionIfCartIsAssignedToDifferentStore()
+    {
+        $repository = $this->objectManager->create('Magento\Customer\Api\CustomerRepositoryInterface');
+        /** @var $customer \Magento\Customer\Api\Data\CustomerInterface */
+        $customer = $repository->getById(1);
+        /** @var $quote \Magento\Quote\Model\Quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote')->load('test01', 'reserved_order_id');
+
+        $customerId = $customer->getId();
+        $cartId = $quote->getId();
+
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+        //Use masked cart Id
+        $cartId = $quoteIdMask->getMaskedId();
+
+        $serviceInfo = [
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => 'V1',
+                'operation' => self::SERVICE_NAME . 'AssignCustomer',
+            ],
+            'rest' => [
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+                'resourcePath' => '/V1/guest-carts/' . $cartId,
+            ],
+        ];
+
+        $requestData = [
+            'cartId' => $cartId,
+            'customerId' => $customerId,
+            'storeId' => 1,
+        ];
+        $this->_webApiCall($serviceInfo, $requestData);
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     * @magentoApiDataFixture Magento/Sales/_files/quote.php
+     * @expectedException \Exception
+     * @expectedExceptionMessage Cannot assign customer to the given cart. Customer already has active cart.
+     */
+    public function testAssignCustomerThrowsExceptionIfCustomerAlreadyHasActiveCart()
+    {
+        /** @var $customer \Magento\Customer\Model\Customer */
+        $customer = $this->objectManager->create('Magento\Customer\Model\Customer')->load(1);
+        // Customer has a quote with reserved order ID test_order_1 (see fixture)
+        /** @var $customerQuote \Magento\Quote\Model\Quote */
+        $customerQuote = $this->objectManager->create('Magento\Quote\Model\Quote')
+            ->load('test_order_1', 'reserved_order_id');
+        $customerQuote->setIsActive(1)->save();
+        /** @var $quote \Magento\Quote\Model\Quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote')->load('test01', 'reserved_order_id');
+
+        $cartId = $quote->getId();
+
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+        //Use masked cart Id
+        $cartId = $quoteIdMask->getMaskedId();
+
+        $customerId = $customer->getId();
+
+        $serviceInfo = [
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'operation' => self::SERVICE_NAME . 'AssignCustomer',
+                'serviceVersion' => 'V1',
+            ],
+            'rest' => [
+                'resourcePath' => '/V1/guest-carts/' . $cartId,
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+            ],
+        ];
+
+        $requestData = [
+            'cartId' => $cartId,
+            'customerId' => $customerId,
+            'storeId' => 1,
+        ];
+        $this->_webApiCall($serviceInfo, $requestData);
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_check_payment.php
+     */
+    public function testPlaceOrder()
+    {
+        /** @var $quote \Magento\Quote\Model\Quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote')->load('test_order_1', 'reserved_order_id');
+        $cartId = $quote->getId();
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+        //Use masked cart Id
+        $cartId = $quoteIdMask->getMaskedId();
+
+        $serviceInfo = [
+            'soap' => [
+                'service' => 'quoteGuestCartManagementV1',
+                'operation' => 'quoteGuestCartManagementV1PlaceOrder',
+                'serviceVersion' => 'V1',
+            ],
+            'rest' => [
+                'resourcePath' => '/V1/guest-carts/' . $cartId . '/order',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+            ],
+        ];
+
+        $orderId = $this->_webApiCall($serviceInfo, ['cartId' => $cartId]);
+
+        /** @var \Magento\Sales\Model\Order $order */
+        $order = $this->objectManager->create('Magento\Sales\Model\Order')->load($orderId);
+        $items = $order->getAllItems();
+        $this->assertCount(1, $items);
+        $this->assertEquals('Simple Product', $items[0]->getName());
+    }
+}
diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartRepositoryTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..b3c8e3f024e70c12332a800999e68298bad7473c
--- /dev/null
+++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartRepositoryTest.php
@@ -0,0 +1,129 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Api;
+
+use Magento\TestFramework\ObjectManager;
+use Magento\TestFramework\TestCase\WebapiAbstract;
+
+class GuestCartRepositoryTest extends WebapiAbstract
+{
+    /**
+     * @var ObjectManager
+     */
+    private $objectManager;
+
+    protected function setUp()
+    {
+        $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
+    }
+
+    protected function tearDown()
+    {
+        try {
+            $cart = $this->getCart('test01');
+            $cart->delete();
+            /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+            $quoteIdMask = $this->objectManager->create('Magento\Quote\Model\QuoteIdMask');
+            $quoteIdMask->delete($cart->getId());
+        } catch (\InvalidArgumentException $e) {
+            // Do nothing if cart fixture was not used
+        }
+        parent::tearDown();
+    }
+
+    /**
+     * Retrieve quote by given reserved order ID
+     *
+     * @param string $reservedOrderId
+     * @return \Magento\Quote\Model\Quote
+     * @throws \InvalidArgumentException
+     */
+    protected function getCart($reservedOrderId)
+    {
+        /** @var $cart \Magento\Quote\Model\Quote */
+        $cart = $this->objectManager->get('Magento\Quote\Model\Quote');
+        $cart->load($reservedOrderId, 'reserved_order_id');
+        if (!$cart->getId()) {
+            throw new \InvalidArgumentException('There is no quote with provided reserved order ID.');
+        }
+        return $cart;
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Sales/_files/quote.php
+     */
+    public function testGetCart()
+    {
+        $cart = $this->getCart('test01');
+        $cartId = $cart->getId();
+
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => '/V1/guest-carts/' . $quoteIdMask->getMaskedId(),
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+            ],
+            'soap' => [
+                'service' => 'quoteGuestCartRepositoryV1',
+                'serviceVersion' => 'V1',
+                'operation' => 'quoteGuestCartRepositoryV1Get',
+            ],
+        ];
+
+        $requestData = ['cartId' => $quoteIdMask->getMaskedId()];
+        $cartData = $this->_webApiCall($serviceInfo, $requestData);
+        $this->assertEquals($cart->getId(), $cartData['id']);
+        $this->assertEquals($cart->getCreatedAt(), $cartData['created_at']);
+        $this->assertEquals($cart->getUpdatedAt(), $cartData['updated_at']);
+        $this->assertEquals($cart->getIsActive(), $cartData['is_active']);
+        $this->assertEquals($cart->getIsVirtual(), $cartData['is_virtual']);
+        $this->assertEquals($cart->getOrigOrderId(), $cartData['orig_order_id']);
+        $this->assertEquals($cart->getItemsCount(), $cartData['items_count']);
+        $this->assertEquals($cart->getItemsQty(), $cartData['items_qty']);
+        //following checks will be uncommented when all cart related services are ready
+        $this->assertContains('customer', $cartData);
+        $this->assertEquals(true, $cartData['customer_is_guest']);
+        $this->assertContains('currency', $cartData);
+        $this->assertEquals($cart->getGlobalCurrencyCode(), $cartData['currency']['global_currency_code']);
+        $this->assertEquals($cart->getBaseCurrencyCode(), $cartData['currency']['base_currency_code']);
+        $this->assertEquals($cart->getQuoteCurrencyCode(), $cartData['currency']['quote_currency_code']);
+        $this->assertEquals($cart->getStoreCurrencyCode(), $cartData['currency']['store_currency_code']);
+        $this->assertEquals($cart->getBaseToGlobalRate(), $cartData['currency']['base_to_global_rate']);
+        $this->assertEquals($cart->getBaseToQuoteRate(), $cartData['currency']['base_to_quote_rate']);
+        $this->assertEquals($cart->getStoreToBaseRate(), $cartData['currency']['store_to_base_rate']);
+        $this->assertEquals($cart->getStoreToQuoteRate(), $cartData['currency']['store_to_quote_rate']);
+    }
+
+    /**
+     * @expectedException \Exception
+     * @expectedExceptionMessage No such entity with
+     */
+    public function testGetCartThrowsExceptionIfThereIsNoCartWithProvidedId()
+    {
+        $cartId = 9999;
+
+        $serviceInfo = [
+            'soap' => [
+                'service' => 'quoteGuestCartRepositoryV1',
+                'serviceVersion' => 'V1',
+                'operation' => 'quoteGuestCartRepositoryV1Get',
+            ],
+            'rest' => [
+                'resourcePath' => '/V1/guest-carts/' . $cartId,
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+            ],
+        ];
+
+        $requestData = ['cartId' => $cartId];
+        $this->_webApiCall($serviceInfo, $requestData);
+    }
+}
diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartTotalRepositoryTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartTotalRepositoryTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..87cbbbdaaf40ec9f52f36a41bc5945c6fb69ddbe
--- /dev/null
+++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCartTotalRepositoryTest.php
@@ -0,0 +1,182 @@
+<?php
+/**
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Api;
+
+use Magento\Quote\Model\Cart\Totals;
+use Magento\Quote\Model\Cart\Totals\Item as ItemTotals;
+use Magento\Framework\Api\FilterBuilder;
+use Magento\Framework\Api\SearchCriteriaBuilder;
+use Magento\TestFramework\ObjectManager;
+use Magento\TestFramework\TestCase\WebapiAbstract;
+
+class GuestCartTotalRepositoryTest extends WebapiAbstract
+{
+    /**
+     * @var ObjectManager
+     */
+    private $objectManager;
+
+    /**
+     * @var SearchCriteriaBuilder
+     */
+    private $searchBuilder;
+
+    /**
+     * @var FilterBuilder
+     */
+    private $filterBuilder;
+
+    protected function setUp()
+    {
+        $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
+        $this->searchBuilder = $this->objectManager->create(
+            'Magento\Framework\Api\SearchCriteriaBuilder'
+        );
+        $this->filterBuilder = $this->objectManager->create(
+            'Magento\Framework\Api\FilterBuilder'
+        );
+    }
+
+    protected function getQuoteMaskedId($quoteId)
+    {
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = $this->objectManager->create('Magento\Quote\Model\QuoteIdMaskFactory')->create();
+        $quoteIdMask->load($quoteId);
+        return $quoteIdMask->getMaskedId();
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_shipping_method.php
+     */
+    public function testGetTotals()
+    {
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+        $cartId = $this->getQuoteMaskedId($quote->getId());
+
+        /** @var \Magento\Quote\Model\Quote\Address $shippingAddress */
+        $shippingAddress = $quote->getShippingAddress();
+
+        $data = [
+            Totals::KEY_BASE_GRAND_TOTAL => $quote->getBaseGrandTotal(),
+            Totals::KEY_GRAND_TOTAL => $quote->getGrandTotal(),
+            Totals::KEY_BASE_SUBTOTAL => $quote->getBaseSubtotal(),
+            Totals::KEY_SUBTOTAL => $quote->getSubtotal(),
+            Totals::KEY_BASE_SUBTOTAL_WITH_DISCOUNT => $quote->getBaseSubtotalWithDiscount(),
+            Totals::KEY_SUBTOTAL_WITH_DISCOUNT => $quote->getSubtotalWithDiscount(),
+            Totals::KEY_DISCOUNT_AMOUNT => $shippingAddress->getDiscountAmount(),
+            Totals::KEY_BASE_DISCOUNT_AMOUNT => $shippingAddress->getBaseDiscountAmount(),
+            Totals::KEY_SHIPPING_AMOUNT => $shippingAddress->getShippingAmount(),
+            Totals::KEY_BASE_SHIPPING_AMOUNT => $shippingAddress->getBaseShippingAmount(),
+            Totals::KEY_SHIPPING_DISCOUNT_AMOUNT => $shippingAddress->getShippingDiscountAmount(),
+            Totals::KEY_BASE_SHIPPING_DISCOUNT_AMOUNT => $shippingAddress->getBaseShippingDiscountAmount(),
+            Totals::KEY_TAX_AMOUNT => $shippingAddress->getTaxAmount(),
+            Totals::KEY_BASE_TAX_AMOUNT => $shippingAddress->getBaseTaxAmount(),
+            Totals::KEY_SHIPPING_TAX_AMOUNT => $shippingAddress->getShippingTaxAmount(),
+            Totals::KEY_BASE_SHIPPING_TAX_AMOUNT => $shippingAddress->getBaseShippingTaxAmount(),
+            Totals::KEY_SUBTOTAL_INCL_TAX => $shippingAddress->getSubtotalInclTax(),
+            Totals::KEY_BASE_SUBTOTAL_INCL_TAX => $shippingAddress->getBaseSubtotalTotalInclTax(),
+            Totals::KEY_SHIPPING_INCL_TAX => $shippingAddress->getShippingInclTax(),
+            Totals::KEY_BASE_SHIPPING_INCL_TAX => $shippingAddress->getBaseShippingInclTax(),
+            Totals::KEY_BASE_CURRENCY_CODE => $quote->getBaseCurrencyCode(),
+            Totals::KEY_QUOTE_CURRENCY_CODE => $quote->getQuoteCurrencyCode(),
+            Totals::KEY_ITEMS => [$this->getQuoteItemTotalsData($quote)],
+        ];
+
+        $requestData = ['cartId' => $cartId];
+
+        $data = $this->formatTotalsData($data);
+
+        $this->assertEquals($data, $this->_webApiCall($this->getServiceInfoForTotalsService($cartId), $requestData));
+    }
+
+    /**
+     * @expectedException \Exception
+     * @expectedExceptionMessage No such entity
+     */
+    public function testGetTotalsWithAbsentQuote()
+    {
+        $cartId = 'unknownCart';
+        $requestData = ['cartId' => $cartId];
+        $this->_webApiCall($this->getServiceInfoForTotalsService($cartId), $requestData);
+    }
+
+    /**
+     * Get service info for totals service
+     *
+     * @param string $cartId
+     * @return array
+     */
+    protected function getServiceInfoForTotalsService($cartId)
+    {
+        return [
+            'soap' => [
+                'service' => 'quoteGuestCartTotalRepositoryV1',
+                'serviceVersion' => 'V1',
+                'operation' => 'quoteGuestCartTotalRepositoryV1get',
+            ],
+            'rest' => [
+                'resourcePath' => '/V1/guest-carts/' . $cartId . '/totals',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+            ],
+        ];
+    }
+
+    /**
+     * Adjust response details for SOAP protocol
+     *
+     * @param array $data
+     * @return array
+     */
+    protected function formatTotalsData($data)
+    {
+        foreach ($data as $key => $field) {
+            if (is_numeric($field)) {
+                $data[$key] = round($field, 1);
+                if ($data[$key] === null) {
+                    $data[$key] = 0.0;
+                }
+            }
+        }
+
+        unset($data[Totals::KEY_BASE_SUBTOTAL_INCL_TAX]);
+
+        return $data;
+    }
+
+    /**
+     * Fetch quote item totals data from quote
+     *
+     * @param \Magento\Quote\Model\Quote $quote
+     * @return array
+     */
+    protected function getQuoteItemTotalsData(\Magento\Quote\Model\Quote $quote)
+    {
+        $items = $quote->getAllItems();
+        $item = array_shift($items);
+
+        return [
+            ItemTotals::KEY_PRICE => $item->getPrice(),
+            ItemTotals::KEY_BASE_PRICE => $item->getBasePrice(),
+            ItemTotals::KEY_QTY => $item->getQty(),
+            ItemTotals::KEY_ROW_TOTAL => $item->getRowTotal(),
+            ItemTotals::KEY_BASE_ROW_TOTAL => $item->getBaseRowTotal(),
+            ItemTotals::KEY_ROW_TOTAL_WITH_DISCOUNT => $item->getRowTotalWithDiscount(),
+            ItemTotals::KEY_TAX_AMOUNT => $item->getTaxAmount(),
+            ItemTotals::KEY_BASE_TAX_AMOUNT => $item->getBaseTaxAmount(),
+            ItemTotals::KEY_TAX_PERCENT => $item->getTaxPercent(),
+            ItemTotals::KEY_DISCOUNT_AMOUNT => $item->getDiscountAmount(),
+            ItemTotals::KEY_BASE_DISCOUNT_AMOUNT => $item->getBaseDiscountAmount(),
+            ItemTotals::KEY_DISCOUNT_PERCENT => $item->getDiscountPercent(),
+            ItemTotals::KEY_PRICE_INCL_TAX => $item->getPriceInclTax(),
+            ItemTotals::KEY_BASE_PRICE_INCL_TAX => $item->getBasePriceInclTax(),
+            ItemTotals::KEY_ROW_TOTAL_INCL_TAX => $item->getRowTotalInclTax(),
+            ItemTotals::KEY_BASE_ROW_TOTAL_INCL_TAX => $item->getBaseRowTotalInclTax(),
+        ];
+    }
+}
diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCouponManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCouponManagementTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..296d5d60767fb9f07477c7651c8a583a4d15939e
--- /dev/null
+++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestCouponManagementTest.php
@@ -0,0 +1,175 @@
+<?php
+/**
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Quote\Api;
+
+use Magento\TestFramework\TestCase\WebapiAbstract;
+
+class GuestCouponManagementTest extends WebapiAbstract
+{
+    const SERVICE_VERSION = 'V1';
+    const SERVICE_NAME = 'quoteGuestCouponManagementV1';
+    const RESOURCE_PATH = '/V1/guest-carts/';
+
+    /**
+     * @var \Magento\TestFramework\ObjectManager
+     */
+    protected $objectManager;
+
+    protected function setUp()
+    {
+        $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
+    }
+
+    public function tearDown()
+    {
+        $createdQuotes = ['test_order_1', 'test01'];
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        foreach ($createdQuotes as $quoteId) {
+            $quote->load($quoteId, 'reserved_order_id');
+            $quote->delete();
+            /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+            $quoteIdMask = $this->objectManager->create('Magento\Quote\Model\QuoteIdMask');
+            $quoteIdMask->delete($quote->getId());
+        }
+    }
+
+    protected function getQuoteMaskedId($quoteId)
+    {
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = $this->objectManager->create('Magento\Quote\Model\QuoteIdMaskFactory')->create();
+        $quoteIdMask->load($quoteId);
+        return $quoteIdMask->getMaskedId();
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_coupon_saved.php
+     */
+    public function testGet()
+    {
+        /** @var \Magento\Quote\Model\Quote  $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+
+        $cartId = $this->getQuoteMaskedId($quote->getId());
+
+        $couponCode = $quote->getCouponCode();
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/coupons/' ,
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'Get',
+            ],
+        ];
+
+        $requestData = ["cartId" => $cartId];
+        $this->assertEquals($couponCode, $this->_webApiCall($serviceInfo, $requestData));
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_coupon_saved.php
+     */
+    public function testDelete()
+    {
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+        $cartId = $this->getQuoteMaskedId($quote->getId());
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/coupons',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_DELETE,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'Remove',
+            ],
+        ];
+        $requestData = ["cartId" => $cartId];
+        $this->assertTrue($this->_webApiCall($serviceInfo, $requestData));
+        $quote->load('test_order_1', 'reserved_order_id');
+        $this->assertEquals('', $quote->getCouponCode());
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     * @expectedException \Exception
+     * @expectedExceptionMessage Coupon code is not valid
+     */
+    public function testSetCouponThrowsExceptionIfCouponDoesNotExist()
+    {
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+        $cartId = $this->getQuoteMaskedId($quote->getId());
+
+        $couponCode = 'invalid_coupon_code';
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/coupons/' . $couponCode,
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'Set',
+            ],
+        ];
+
+        $requestData = [
+            "cartId" => $cartId,
+            "couponCode" => $couponCode,
+        ];
+
+        $this->_webApiCall($serviceInfo, $requestData);
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Sales/_files/quote.php
+     * @magentoApiDataFixture Magento/Checkout/_files/discount_10percent.php
+     */
+    public function testSetCouponSuccess()
+    {
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test01', 'reserved_order_id');
+        $cartId = $this->getQuoteMaskedId($quote->getId());
+        $salesRule = $this->objectManager->create('Magento\SalesRule\Model\Rule');
+        $salesRule->load('Test Coupon', 'name');
+        $couponCode = $salesRule->getCouponCode();
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/coupons/' . $couponCode,
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'Set',
+            ],
+        ];
+
+        $requestData = [
+            "cartId" => $cartId,
+            "couponCode" => $couponCode,
+        ];
+
+        $this->assertTrue($this->_webApiCall($serviceInfo, $requestData));
+
+        $quoteWithCoupon = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quoteWithCoupon->load('test01', 'reserved_order_id');
+
+        $this->assertEquals($quoteWithCoupon->getCouponCode(), $couponCode);
+    }
+}
diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestPaymentMethodManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestPaymentMethodManagementTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..40579922f1896f761ef85e891a1e5f59daae39dd
--- /dev/null
+++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestPaymentMethodManagementTest.php
@@ -0,0 +1,333 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Api;
+
+class GuestPaymentMethodManagementTest extends \Magento\TestFramework\TestCase\WebapiAbstract
+{
+    const SERVICE_VERSION = 'V1';
+    const SERVICE_NAME = 'quoteGuestPaymentMethodManagementV1';
+    const RESOURCE_PATH = '/V1/guest-carts/';
+
+    /**
+     * @var \Magento\TestFramework\ObjectManager
+     */
+    protected $objectManager;
+
+    protected function setUp()
+    {
+        $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
+    }
+
+    protected function tearDown()
+    {
+        $this->deleteCart('test_order_1');
+        $this->deleteCart('test_order_1_with_payment');
+        $this->deleteCart('test_order_with_virtual_product');
+        $this->deleteCart('test_order_with_virtual_product_without_address');
+        parent::tearDown();
+    }
+
+    /**
+     * Delete quote by given reserved order ID
+     *
+     * @param string $reservedOrderId
+     * @return void
+     */
+    protected function deleteCart($reservedOrderId)
+    {
+        try {
+            /** @var $cart \Magento\Quote\Model\Quote */
+            $cart = $this->objectManager->get('Magento\Quote\Model\Quote');
+            $cart->load($reservedOrderId, 'reserved_order_id');
+            if (!$cart->getId()) {
+                throw new \InvalidArgumentException('There is no quote with provided reserved order ID.');
+            }
+            $cart->delete();
+            /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+            $quoteIdMask = $this->objectManager->create('Magento\Quote\Model\QuoteIdMask');
+            $quoteIdMask->delete($cart->getId());
+        } catch (\InvalidArgumentException $e) {
+            // Do nothing if cart fixture was not used
+        }
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_payment_saved.php
+     */
+    public function testReSetPayment()
+    {
+        /** @var \Magento\Quote\Model\Quote  $quote */
+        $quote = $this->objectManager->create('\Magento\Quote\Model\Quote');
+        $quote->load('test_order_1_with_payment', 'reserved_order_id');
+        $cartId = $this->getMaskedCartId($quote->getId());
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-method',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'set',
+            ],
+        ];
+
+        $requestData = [
+            "cartId" => $cartId,
+            "method" => [
+                'method' => 'checkmo',
+                'po_number' => null,
+                'cc_owner' => 'John',
+                'cc_type' => null,
+                'cc_exp_year' => null,
+                'cc_exp_month' => null,
+            ],
+        ];
+
+        $this->assertNotNull($this->_webApiCall($serviceInfo, $requestData));
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_and_address.php
+     */
+    public function testSetPaymentWithVirtualProduct()
+    {
+        /** @var \Magento\Quote\Model\Quote  $quote */
+        $quote = $this->objectManager->create('\Magento\Quote\Model\Quote');
+        $quote->load('test_order_with_virtual_product', 'reserved_order_id');
+        $cartId = $this->getMaskedCartId($quote->getId());
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-method',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'set',
+            ],
+        ];
+
+        $requestData = [
+            "cartId" => $cartId,
+            "method" => [
+                'method' => 'checkmo',
+                'po_number' => '200',
+                'cc_owner' => 'tester',
+                'cc_type' => 'test',
+                'cc_exp_year' => '2014',
+                'cc_exp_month' => '1',
+            ],
+        ];
+        $this->assertNotNull($this->_webApiCall($serviceInfo, $requestData));
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testSetPaymentWithSimpleProduct()
+    {
+        /** @var \Magento\Quote\Model\Quote  $quote */
+        $quote = $this->objectManager->create('\Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+        $cartId = $this->getMaskedCartId($quote->getId());
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-method',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'set',
+            ],
+        ];
+
+        $requestData = [
+            "cartId" => $cartId,
+            "method" => [
+                'method' => 'checkmo',
+                'po_number' => '200',
+                'cc_owner' => 'tester',
+                'cc_type' => 'test',
+                'cc_exp_year' => '2014',
+                'cc_exp_month' => '1',
+            ],
+        ];
+
+        $this->assertNotNull($this->_webApiCall($serviceInfo, $requestData));
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_saved.php
+     * @expectedException \Exception
+     * @expectedExceptionMessage Billing address is not set
+     */
+    public function testSetPaymentWithVirtualProductWithoutAddress()
+    {
+        /** @var \Magento\Quote\Model\Quote  $quote */
+        $quote = $this->objectManager->create('\Magento\Quote\Model\Quote');
+        $quote->load('test_order_with_virtual_product_without_address', 'reserved_order_id');
+        $cartId = $this->getMaskedCartId($quote->getId());
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-method',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'set',
+            ],
+        ];
+
+        $requestData = [
+            "cartId" => $cartId,
+            "method" => [
+                'method' => 'checkmo',
+                'po_number' => '200',
+                'cc_owner' => 'tester',
+                'cc_type' => 'test',
+                'cc_exp_year' => '2014',
+                'cc_exp_month' => '1',
+            ],
+        ];
+        $this->assertNotNull($this->_webApiCall($serviceInfo, $requestData));
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_simple_product_saved.php
+     * @expectedException \Exception
+     * @expectedExceptionMessage Shipping address is not set
+     */
+    public function testSetPaymentWithSimpleProductWithoutAddress()
+    {
+        /** @var \Magento\Quote\Model\Quote  $quote */
+        $quote = $this->objectManager->create('\Magento\Quote\Model\Quote');
+        $quote->load('test_order_with_simple_product_without_address', 'reserved_order_id');
+        $cartId = $this->getMaskedCartId($quote->getId());
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-method',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'set',
+            ],
+        ];
+
+        $requestData = [
+            "cartId" => $cartId,
+            "method" => [
+                'method' => 'checkmo',
+                'po_number' => '200',
+                'cc_owner' => 'tester',
+                'cc_type' => 'test',
+                'cc_exp_year' => '2014',
+                'cc_exp_month' => '1',
+            ],
+        ];
+        $this->assertNotNull($this->_webApiCall($serviceInfo, $requestData));
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testGetList()
+    {
+        /** @var \Magento\Quote\Model\Quote  $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+        $cartId = $this->getMaskedCartId($quote->getId());
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/payment-methods',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'getList',
+            ],
+        ];
+
+        $requestData = ["cartId" => $cartId];
+        $requestResponse = $this->_webApiCall($serviceInfo, $requestData);
+
+        $expectedResponse = [
+            'code' => 'checkmo',
+            'title' => 'Check / Money order',
+        ];
+
+        $this->assertGreaterThan(0, count($requestResponse));
+        $this->assertContains($expectedResponse, $requestResponse);
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_payment_saved.php
+     */
+    public function testGet()
+    {
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1_with_payment', 'reserved_order_id');
+        $cartId = $this->getMaskedCartId($quote->getId());
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-method',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'get',
+            ],
+        ];
+
+        $requestData = ["cartId" => $cartId];
+        $requestResponse = $this->_webApiCall($serviceInfo, $requestData);
+
+        foreach ($this->getPaymentMethodFieldsForAssert() as $field) {
+            $this->assertArrayHasKey($field, $requestResponse);
+            $this->assertNotNull($requestResponse[$field]);
+        }
+
+        $this->assertEquals('checkmo', $requestResponse['method']);
+    }
+
+    /**
+     * @return array
+     */
+    protected function getPaymentMethodFieldsForAssert()
+    {
+        return ['method', 'po_number', 'cc_owner', 'cc_type', 'cc_exp_year', 'cc_exp_month', 'additional_data'];
+    }
+
+    /**
+     * Retrieve masked cart ID for guest cart.
+     *
+     * @param string $cartId
+     * @return string
+     */
+    protected function getMaskedCartId($cartId)
+    {
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+        return $quoteIdMask->getMaskedId();
+    }
+}
diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestShippingAddressManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestShippingAddressManagementTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..a1c22bf0ee869fda4e3fec3d588101ed748dfb36
--- /dev/null
+++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestShippingAddressManagementTest.php
@@ -0,0 +1,235 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Quote\Api;
+
+use Magento\Quote\Api\Data\AddressInterface;
+use Magento\TestFramework\TestCase\WebapiAbstract;
+
+class GuestShippingAddressManagementTest extends WebapiAbstract
+{
+    const SERVICE_VERSION = 'V1';
+    const SERVICE_NAME = 'quoteGuestShippingAddressManagementV1';
+    const RESOURCE_PATH = '/V1/guest-carts/';
+
+    /**
+     * @var \Magento\TestFramework\ObjectManager
+     */
+    protected $objectManager;
+
+    protected function setUp()
+    {
+        $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
+    }
+
+    public function tearDown()
+    {
+        $createdQuotes = ['test_order_1', 'test_order_with_virtual_product'];
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        foreach ($createdQuotes as $quoteId) {
+            $quote->load($quoteId, 'reserved_order_id');
+            $quote->delete();
+            /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+            $quoteIdMask = $this->objectManager->create('Magento\Quote\Model\QuoteIdMask');
+            $quoteIdMask->delete($quote->getId());
+        }
+    }
+
+    protected function getQuoteMaskedId($quoteId)
+    {
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = $this->objectManager->create('Magento\Quote\Model\QuoteIdMaskFactory')->create();
+        $quoteIdMask->load($quoteId);
+        return $quoteIdMask->getMaskedId();
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testGetAddress()
+    {
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+
+        /** @var \Magento\Quote\Model\Quote\Address  $address */
+        $address = $quote->getShippingAddress();
+
+        $data = [
+            AddressInterface::KEY_COUNTRY_ID => $address->getCountryId(),
+            AddressInterface::KEY_ID => (int)$address->getId(),
+            AddressInterface::KEY_CUSTOMER_ID => $address->getCustomerId(),
+            AddressInterface::KEY_REGION => $address->getRegion(),
+            AddressInterface::KEY_REGION_ID => $address->getRegionId(),
+            AddressInterface::KEY_REGION_CODE => $address->getRegionCode(),
+            AddressInterface::KEY_STREET => $address->getStreet(),
+            AddressInterface::KEY_COMPANY => $address->getCompany(),
+            AddressInterface::KEY_TELEPHONE => $address->getTelephone(),
+            AddressInterface::KEY_POSTCODE => $address->getPostcode(),
+            AddressInterface::KEY_CITY => $address->getCity(),
+            AddressInterface::KEY_FIRSTNAME => $address->getFirstname(),
+            AddressInterface::KEY_LASTNAME => $address->getLastname(),
+            AddressInterface::KEY_EMAIL => $address->getEmail()
+        ];
+
+        $cartId = $this->getQuoteMaskedId($quote->getId());
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/shipping-address',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'Get',
+            ],
+        ];
+
+        $requestData = ["cartId" => $cartId];
+        $this->assertEquals($data, $this->_webApiCall($serviceInfo, $requestData));
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_and_address.php
+     *
+     * @expectedException \Exception
+     * @expectedExceptionMessage Cart contains virtual product(s) only. Shipping address is not applicable
+     */
+    public function testGetAddressOfQuoteWithVirtualProduct()
+    {
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_with_virtual_product', 'reserved_order_id');
+        $cartId = $this->getQuoteMaskedId($quote->getId());
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/shipping-address',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'Get',
+            ],
+        ];
+
+        $this->_webApiCall($serviceInfo, ["cartId" => $cartId]);
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testSetAddress()
+    {
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+        $cartId = $this->getQuoteMaskedId($quote->getId());
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/shipping-address',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'Assign',
+            ],
+        ];
+
+        $addressData = [
+            'firstname' => 'John',
+            'lastname' => 'Smith',
+            'email' => 'cat@dog.com',
+            'company' => 'eBay Inc',
+            'street' => ['Typical Street', 'Tiny House 18'],
+            'city' => 'Big City',
+            'region_id' => 12,
+            'region' => 'California',
+            'region_code' => 'CA',
+            'postcode' => '0985432',
+            'country_id' => 'US',
+            'telephone' => '88776655',
+            'fax' => '44332255',
+        ];
+        $requestData = [
+            "cartId" => $cartId,
+            'address' => $addressData,
+        ];
+
+        $addressId = $this->_webApiCall($serviceInfo, $requestData);
+
+        //reset $quote to reload data
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+        $address = $quote->getShippingAddress();
+        $address->getRegionCode();
+        $savedData  = $address->getData();
+        $this->assertEquals($addressId, $savedData['address_id'], 'Invalid address ID');
+        $this->assertEquals(0, $savedData['same_as_billing']);
+        //custom checks for street, region and address_type
+        $this->assertEquals($addressData['street'], $quote->getShippingAddress()->getStreet());
+        unset($addressData['street']);
+
+        $this->assertEquals('shipping', $savedData['address_type']);
+        //check the rest of fields
+        foreach ($addressData as $key => $value) {
+            $this->assertEquals($value, $savedData[$key], 'Invalid value for ' . $key);
+        }
+    }
+
+    /**
+     * Set address to quote with virtual products only
+     *
+     * @expectedException \Exception
+     * @expectedExceptionMessage Cart contains virtual product(s) only. Shipping address is not applicable
+     *
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_and_address.php
+     */
+    public function testSetAddressForVirtualQuote()
+    {
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_with_virtual_product', 'reserved_order_id');
+        $cartId = $this->getQuoteMaskedId($quote->getId());
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/shipping-address',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'Assign',
+            ],
+        ];
+
+        $addressData = [
+            'firstname' => 'John',
+            'lastname' => 'Smith',
+            'email' => 'cat@dog.com',
+            'company' => 'eBay Inc',
+            'street' => ['Typical Street', 'Tiny House 18'],
+            'city' => 'Big City',
+            'region_id' => 12,
+            'region' => 'California',
+            'region_code' => 'CA',
+            'postcode' => '0985432',
+            'country_id' => 'US',
+            'telephone' => '88776655',
+            'fax' => '44332255',
+        ];
+        $requestData = [
+            "cartId" => $cartId,
+            'address' => $addressData,
+        ];
+
+        $this->_webApiCall($serviceInfo, $requestData);
+    }
+}
diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestShippingMethodManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestShippingMethodManagementTest.php
new file mode 100644
index 0000000000000000000000000000000000000000..54b89387651643a72a5c7aac9a789898942dd28e
--- /dev/null
+++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/GuestShippingMethodManagementTest.php
@@ -0,0 +1,334 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+namespace Magento\Quote\Api;
+
+use Magento\Quote\Api\Data\ShippingMethodInterface;
+use Magento\TestFramework\ObjectManager;
+use Magento\TestFramework\TestCase\WebapiAbstract;
+
+class GuestShippingMethodManagementTest extends WebapiAbstract
+{
+    const SERVICE_VERSION = 'V1';
+    const SERVICE_NAME = 'quoteGuestShippingMethodManagementV1';
+    const RESOURCE_PATH = '/V1/guest-carts/';
+
+    /**
+     * @var ObjectManager
+     */
+    private $objectManager;
+
+    /**
+     * @var \Magento\Quote\Model\Quote
+     */
+    protected $quote;
+
+    protected function setUp()
+    {
+        $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
+        $this->quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+    }
+
+    protected function getServiceInfo()
+    {
+        return [
+            'rest' => [
+                'resourcePath' => '/V1/carts/' . $this->quote->getId() . '/selected-shipping-method',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'Set',
+            ],
+        ];
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testSetMethod()
+    {
+        $this->quote->load('test_order_1', 'reserved_order_id');
+        $serviceInfo = $this->getServiceInfo();
+
+        $cartId = $this->quote->getId();
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+        //Use masked cart Id
+        $cartId = $quoteIdMask->getMaskedId();
+
+        $requestData = [
+            'cartId' => $cartId,
+            'carrierCode' => 'flatrate',
+            'methodCode' => 'flatrate',
+        ];
+        $result = $this->_webApiCall($serviceInfo, $requestData);
+        $this->assertEquals(true, $result);
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testSetMethodWrongMethod()
+    {
+        $expectedMessage = 'Carrier with such method not found: %1, %2';
+        $this->quote->load('test_order_1', 'reserved_order_id');
+        $serviceInfo = $this->getServiceInfo();
+        $carrierCode = 'flatrate';
+        $methodCode = 'wrongMethod';
+
+        $cartId = $this->quote->getId();
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+        //Use masked cart Id
+        $cartId = $quoteIdMask->getMaskedId();
+
+        $requestData = [
+            'cartId' => $cartId,
+            'carrierCode' => $carrierCode,
+            'methodCode' => $methodCode,
+        ];
+        try {
+            $this->_webApiCall($serviceInfo, $requestData);
+        } catch (\SoapFault $e) {
+            $this->assertContains(
+                $expectedMessage,
+                $e->getMessage(),
+                'SoapFault does not contain expected message.'
+            );
+        } catch (\Exception $e) {
+            $errorObj = $this->processRestExceptionResult($e);
+            $this->assertEquals($expectedMessage, $errorObj['message']);
+            $this->assertEquals([$carrierCode, $methodCode], $errorObj['parameters']);
+        }
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_simple_product_saved.php
+     */
+    public function testSetMethodWithoutShippingAddress()
+    {
+        $this->quote->load('test_order_with_simple_product_without_address', 'reserved_order_id');
+        $serviceInfo = $this->getServiceInfo();
+
+        $cartId = $this->quote->getId();
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+        //Use masked cart Id
+        $cartId = $quoteIdMask->getMaskedId();
+
+        $requestData = [
+            'cartId' => $cartId,
+            'carrierCode' => 'flatrate',
+            'methodCode' => 'flatrate',
+        ];
+        try {
+            $this->_webApiCall($serviceInfo, $requestData);
+        } catch (\SoapFault $e) {
+            $message = $e->getMessage();
+        } catch (\Exception $e) {
+            $message = json_decode($e->getMessage())->message;
+        }
+        $this->assertEquals('Shipping address is not set', $message);
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_shipping_method.php
+     */
+    public function testGetMethod()
+    {
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+
+        $cartId = $quote->getId();
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+        //Use masked cart Id
+        $cartId = $quoteIdMask->getMaskedId();
+
+        $shippingAddress = $quote->getShippingAddress();
+        list($carrierCode, $methodCode) = explode('_', $shippingAddress->getShippingMethod());
+        list($carrierTitle, $methodTitle) = explode(' - ', $shippingAddress->getShippingDescription());
+        $data = [
+            ShippingMethodInterface::KEY_CARRIER_CODE => $carrierCode,
+            ShippingMethodInterface::KEY_METHOD_CODE => $methodCode,
+            ShippingMethodInterface::KEY_CARRIER_TITLE => $carrierTitle,
+            ShippingMethodInterface::KEY_METHOD_TITLE => $methodTitle,
+            ShippingMethodInterface::KEY_SHIPPING_AMOUNT => $shippingAddress->getShippingAmount(),
+            ShippingMethodInterface::KEY_BASE_SHIPPING_AMOUNT => $shippingAddress->getBaseShippingAmount(),
+            ShippingMethodInterface::KEY_AVAILABLE => true,
+        ];
+
+        $requestData = ["cartId" => $cartId];
+        $this->assertEquals($data, $this->_webApiCall($this->getSelectedMethodServiceInfo($cartId), $requestData));
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_and_address.php
+     */
+    public function testGetMethodOfVirtualCart()
+    {
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $cartId = $quote->load('test_order_with_virtual_product', 'reserved_order_id')->getId();
+
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+        //Use masked cart Id
+        $cartId = $quoteIdMask->getMaskedId();
+
+        $result = $this->_webApiCall($this->getSelectedMethodServiceInfo($cartId), ["cartId" => $cartId]);
+        $this->assertEquals([], $result);
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testGetMethodOfCartWithNoShippingMethod()
+    {
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $cartId = $quote->load('test_order_1', 'reserved_order_id')->getId();
+
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+        //Use masked cart Id
+        $cartId = $quoteIdMask->getMaskedId();
+
+        $result = $this->_webApiCall($this->getSelectedMethodServiceInfo($cartId), ["cartId" => $cartId]);
+        $this->assertEquals([], $result);
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_and_address.php
+     *
+     */
+    public function testGetListForVirtualCart()
+    {
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $cartId = $quote->load('test_order_with_virtual_product', 'reserved_order_id')->getId();
+
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+        //Use masked cart Id
+        $cartId = $quoteIdMask->getMaskedId();
+
+        $this->assertEquals([], $this->_webApiCall($this->getListServiceInfo($cartId), ["cartId" => $cartId]));
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testGetList()
+    {
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+        $cartId = $quote->getId();
+        if (!$cartId) {
+            $this->fail('quote fixture failed');
+        }
+
+        /** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+        $quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+            ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+            ->create();
+        $quoteIdMask->load($cartId);
+        //Use masked cart Id
+        $cartId = $quoteIdMask->getMaskedId();
+
+        $quote->getShippingAddress()->collectShippingRates();
+        $expectedRates = $quote->getShippingAddress()->getGroupedAllShippingRates();
+
+        $expectedData = $this->convertRates($expectedRates, $quote->getQuoteCurrencyCode());
+
+        $requestData = ["cartId" => $cartId];
+
+        $returnedRates = $this->_webApiCall($this->getListServiceInfo($cartId), $requestData);
+        $this->assertEquals($expectedData, $returnedRates);
+    }
+
+    /**
+     * @param string $cartId
+     * @return array
+     * @SuppressWarnings(PHPMD.UnusedLocalVariable)
+     */
+    protected function getSelectedMethodServiceInfo($cartId)
+    {
+        return $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-shipping-method',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'Get',
+            ],
+        ];
+    }
+
+    /**
+     * Service info
+     *
+     * @param int $cartId
+     * @return array
+     */
+    protected function getListServiceInfo($cartId)
+    {
+        return [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/shipping-methods',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+            ],
+            'soap' => [
+                'service' => self::SERVICE_NAME,
+                'serviceVersion' => self::SERVICE_VERSION,
+                'operation' => self::SERVICE_NAME . 'GetList',
+            ],
+        ];
+    }
+
+    /**
+     * Convert rate models array to data array
+     *
+     * @param string $currencyCode
+     * @param \Magento\Quote\Model\Quote\Address\Rate[] $groupedRates
+     * @return array
+     */
+    protected function convertRates($groupedRates, $currencyCode)
+    {
+        $result = [];
+        /** @var \Magento\Quote\Model\Cart\ShippingMethodConverter $converter */
+        $converter = $this->objectManager->create('\Magento\Quote\Model\Cart\ShippingMethodConverter');
+        foreach ($groupedRates as $carrierRates) {
+            foreach ($carrierRates as $rate) {
+                $result[] = $converter->modelToDataObject($rate, $currencyCode)->__toArray();
+            }
+        }
+        return $result;
+    }
+}
diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/PaymentMethodManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/PaymentMethodManagementTest.php
index 8288f1f9b5d874e3ca80bd323ee1777c8de751f3..b4aa67ab9fa7d3061541f02879d878e84a1e110f 100644
--- a/dev/tests/api-functional/testsuite/Magento/Quote/Api/PaymentMethodManagementTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/PaymentMethodManagementTest.php
@@ -33,7 +33,7 @@ class PaymentMethodManagementTest extends \Magento\TestFramework\TestCase\Webapi
 
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-methods',
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-method',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
             ],
             'soap' => [
@@ -70,7 +70,7 @@ class PaymentMethodManagementTest extends \Magento\TestFramework\TestCase\Webapi
 
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-methods',
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-method',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
             ],
             'soap' => [
@@ -106,7 +106,7 @@ class PaymentMethodManagementTest extends \Magento\TestFramework\TestCase\Webapi
 
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-methods',
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-method',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
             ],
             'soap' => [
@@ -145,7 +145,7 @@ class PaymentMethodManagementTest extends \Magento\TestFramework\TestCase\Webapi
 
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-methods',
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-method',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
             ],
             'soap' => [
@@ -183,7 +183,7 @@ class PaymentMethodManagementTest extends \Magento\TestFramework\TestCase\Webapi
 
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-methods',
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-method',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
             ],
             'soap' => [
@@ -253,7 +253,7 @@ class PaymentMethodManagementTest extends \Magento\TestFramework\TestCase\Webapi
 
         $serviceInfo = [
             'rest' => [
-                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-methods',
+                'resourcePath' => self::RESOURCE_PATH . $cartId . '/selected-payment-method',
                 'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
             ],
             'soap' => [
@@ -266,22 +266,126 @@ class PaymentMethodManagementTest extends \Magento\TestFramework\TestCase\Webapi
         $requestData = ["cartId" => $cartId];
         $requestResponse = $this->_webApiCall($serviceInfo, $requestData);
 
-        $this->assertArrayHasKey('method', $requestResponse);
-        $this->assertArrayHasKey('po_number', $requestResponse);
-        $this->assertArrayHasKey('cc_owner', $requestResponse);
-        $this->assertArrayHasKey('cc_type', $requestResponse);
-        $this->assertArrayHasKey('cc_exp_year', $requestResponse);
-        $this->assertArrayHasKey('cc_exp_month', $requestResponse);
-        $this->assertArrayHasKey('additional_data', $requestResponse);
-
-        $this->assertNotNull($requestResponse['method']);
-        $this->assertNotNull($requestResponse['po_number']);
-        $this->assertNotNull($requestResponse['cc_owner']);
-        $this->assertNotNull($requestResponse['cc_type']);
-        $this->assertNotNull($requestResponse['cc_exp_year']);
-        $this->assertNotNull($requestResponse['cc_exp_month']);
-        $this->assertNotNull($requestResponse['additional_data']);
+        foreach ($this->getPaymentMethodFieldsForAssert() as $field) {
+            $this->assertArrayHasKey($field, $requestResponse);
+            $this->assertNotNull($requestResponse[$field]);
+        }
 
         $this->assertEquals('checkmo', $requestResponse['method']);
     }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testGetListMine()
+    {
+        $this->_markTestAsRestOnly();
+
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . 'mine/payment-methods',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+                'token' => $this->getCustomerToken()
+            ]
+        ];
+
+        $requestResponse = $this->_webApiCall($serviceInfo);
+
+        $expectedResponse = [
+            'code' => 'checkmo',
+            'title' => 'Check / Money order',
+        ];
+
+        $this->assertGreaterThan(0, count($requestResponse));
+        $this->assertContains($expectedResponse, $requestResponse);
+    }
+
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_payment_saved.php
+     */
+    public function testGetMine()
+    {
+        $this->_markTestAsRestOnly();
+
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1_with_payment', 'reserved_order_id');
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . 'mine/selected-payment-method',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+                'token' => $this->getCustomerToken()
+            ]
+        ];
+
+        $requestResponse = $this->_webApiCall($serviceInfo);
+
+        foreach ($this->getPaymentMethodFieldsForAssert() as $field) {
+            $this->assertArrayHasKey($field, $requestResponse);
+            $this->assertNotNull($requestResponse[$field]);
+        }
+        $this->assertEquals('checkmo', $requestResponse['method']);
+    }
+
+    /**
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testSetPaymentWithSimpleProductMine()
+    {
+        $this->_markTestAsRestOnly();
+
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('\Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . 'mine/selected-payment-method',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+                'token' => $this->getCustomerToken()
+            ]
+        ];
+
+        $requestData = [
+            "method" => [
+                'method' => 'checkmo',
+                'po_number' => '200',
+                'cc_owner' => 'tester',
+                'cc_type' => 'test',
+                'cc_exp_year' => '2014',
+                'cc_exp_month' => '1',
+            ],
+        ];
+
+        $this->assertNotNull($this->_webApiCall($serviceInfo, $requestData));
+    }
+
+    /**
+     * @return array
+     */
+    protected function getPaymentMethodFieldsForAssert()
+    {
+        return ['method', 'po_number', 'cc_owner', 'cc_type', 'cc_exp_year', 'cc_exp_month', 'additional_data'];
+    }
+
+    /**
+     * Get customer ID token
+     *
+     * @return string
+     */
+    protected function getCustomerToken()
+    {
+        /** @var \Magento\Integration\Service\V1\CustomerTokenServiceInterface $customerTokenService */
+        $customerTokenService = $this->objectManager->create(
+            'Magento\Integration\Service\V1\CustomerTokenServiceInterface'
+        );
+        $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password');
+        return $token;
+    }
 }
diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/ShippingAddressManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/ShippingAddressManagementTest.php
index ff9c032601f880b6bac99622c94f2e5f6ba7915a..9a8db29b15a7abfe050ccf675c24b701eab51538 100644
--- a/dev/tests/api-functional/testsuite/Magento/Quote/Api/ShippingAddressManagementTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/ShippingAddressManagementTest.php
@@ -207,4 +207,124 @@ class ShippingAddressManagementTest extends WebapiAbstract
 
         $this->_webApiCall($serviceInfo, $requestData);
     }
+
+    /**
+     * Test getting shipping address based on the customer's authentication token.
+     *
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testGetMyAddress()
+    {
+        $this->_markTestAsRestOnly();
+
+        // get customer ID token
+        /** @var \Magento\Integration\Service\V1\CustomerTokenServiceInterface $customerTokenService */
+        $customerTokenService = $this->objectManager->create(
+            'Magento\Integration\Service\V1\CustomerTokenServiceInterface'
+        );
+        $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password');
+
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+
+        /** @var \Magento\Quote\Model\Quote\Address $address */
+        $address = $quote->getShippingAddress();
+
+        $addressData = [
+            AddressInterface::KEY_COUNTRY_ID => $address->getCountryId(),
+            AddressInterface::KEY_ID => (int)$address->getId(),
+            AddressInterface::KEY_CUSTOMER_ID => $address->getCustomerId(),
+            AddressInterface::KEY_REGION => $address->getRegion(),
+            AddressInterface::KEY_REGION_ID => $address->getRegionId(),
+            AddressInterface::KEY_REGION_CODE => $address->getRegionCode(),
+            AddressInterface::KEY_STREET => $address->getStreet(),
+            AddressInterface::KEY_COMPANY => $address->getCompany(),
+            AddressInterface::KEY_TELEPHONE => $address->getTelephone(),
+            AddressInterface::KEY_POSTCODE => $address->getPostcode(),
+            AddressInterface::KEY_CITY => $address->getCity(),
+            AddressInterface::KEY_FIRSTNAME => $address->getFirstname(),
+            AddressInterface::KEY_LASTNAME => $address->getLastname(),
+            AddressInterface::KEY_EMAIL => $address->getEmail()
+        ];
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . 'mine/shipping-address',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+                'token' => $token
+            ],
+        ];
+
+        $requestData = [];
+        $this->assertEquals($addressData, $this->_webApiCall($serviceInfo, $requestData));
+    }
+
+    /**
+     * Test setting shipping address based on the customer's authentication token.
+     *
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testSetMyAddress()
+    {
+        $this->_markTestAsRestOnly();
+
+        // get customer ID token
+        /** @var \Magento\Integration\Service\V1\CustomerTokenServiceInterface $customerTokenService */
+        $customerTokenService = $this->objectManager->create(
+            'Magento\Integration\Service\V1\CustomerTokenServiceInterface'
+        );
+        $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password');
+
+        /** @var \Magento\Quote\Model\Quote $quote */
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => self::RESOURCE_PATH . 'mine/shipping-address',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_POST,
+                'token' => $token
+            ],
+        ];
+
+        $addressData = [
+            'firstname' => 'John',
+            'lastname' => 'Smith',
+            'email' => 'cat@dog.com',
+            'company' => 'eBay Inc',
+            'street' => ['Typical Street', 'Tiny House 18'],
+            'city' => 'Big City',
+            'region_id' => 12,
+            'region' => 'California',
+            'region_code' => 'CA',
+            'postcode' => '0985432',
+            'country_id' => 'US',
+            'telephone' => '88776655',
+            'fax' => '44332255',
+        ];
+        $requestData = [
+            'address' => $addressData,
+        ];
+
+        $addressId = $this->_webApiCall($serviceInfo, $requestData);
+
+        //reset $quote to reload data
+        $quote = $this->objectManager->create('Magento\Quote\Model\Quote');
+        $quote->load('test_order_1', 'reserved_order_id');
+        $address = $quote->getShippingAddress();
+        $address->getRegionCode();
+        $savedData  = $address->getData();
+        $this->assertEquals($addressId, $savedData['address_id'], 'Invalid address ID');
+        $this->assertEquals(0, $savedData['same_as_billing']);
+        //custom checks for street, region and address_type
+        $this->assertEquals($addressData['street'], $quote->getShippingAddress()->getStreet());
+        unset($addressData['street']);
+
+        $this->assertEquals('shipping', $savedData['address_type']);
+        //check the rest of fields
+        foreach ($addressData as $key => $value) {
+            $this->assertEquals($value, $savedData[$key], 'Invalid value for ' . $key);
+        }
+    }
 }
diff --git a/dev/tests/api-functional/testsuite/Magento/Quote/Api/ShippingMethodManagementTest.php b/dev/tests/api-functional/testsuite/Magento/Quote/Api/ShippingMethodManagementTest.php
index 6217cc99b088f063669901fdc5e1d492794e1e2c..60865f081c99f6e7fdbdc93b6a901e95189e0509 100644
--- a/dev/tests/api-functional/testsuite/Magento/Quote/Api/ShippingMethodManagementTest.php
+++ b/dev/tests/api-functional/testsuite/Magento/Quote/Api/ShippingMethodManagementTest.php
@@ -117,6 +117,50 @@ class ShippingMethodManagementTest extends WebapiAbstract
         $this->assertEquals('Shipping address is not set', $message);
     }
 
+    /**
+     * @magentoApiDataFixture Magento/Customer/_files/customer.php
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testSetMethodForMyCart()
+    {
+        $this->_markTestAsRestOnly();
+
+        $this->quote->load('test_order_1', 'reserved_order_id');
+
+        /** @var \Magento\Integration\Service\V1\CustomerTokenServiceInterface $customerTokenService */
+        $customerTokenService = $this->objectManager->create(
+            'Magento\Integration\Service\V1\CustomerTokenServiceInterface'
+        );
+        $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password');
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => '/V1/carts/mine/selected-shipping-method',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_PUT,
+                'token' => $token
+            ]
+        ];
+
+        $requestData = [
+            'cartId' => 999,
+            'carrierCode' => 'flatrate',
+            'methodCode' => 'flatrate',
+        ]; // cartId 999 will be overridden
+
+        $result = $this->_webApiCall($serviceInfo, $requestData);
+        $this->assertEquals(true, $result);
+
+        /** @var \Magento\Quote\Api\ShippingMethodManagementInterface $shippingMethodManagementService */
+        $shippingMethodManagementService = $this->objectManager->create(
+            'Magento\Quote\Api\ShippingMethodManagementInterface'
+        );
+        $shippingMethod = $shippingMethodManagementService->get($this->quote->getId());
+
+        $this->assertNotNull($shippingMethod);
+        $this->assertEquals('flatrate', $shippingMethod->getCarrierCode());
+        $this->assertEquals('flatrate', $shippingMethod->getMethodCode());
+    }
+
     /**
      * @magentoApiDataFixture Magento/Checkout/_files/quote_with_shipping_method.php
      */
@@ -169,6 +213,41 @@ class ShippingMethodManagementTest extends WebapiAbstract
         $this->assertEquals([], $result);
     }
 
+    /**
+     * @magentoApiDataFixture Magento/Customer/_files/customer.php
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testGetMethodForMyCart()
+    {
+        $this->_markTestAsRestOnly();
+
+        $this->quote->load('test_order_1', 'reserved_order_id');
+
+        /** @var \Magento\Integration\Service\V1\CustomerTokenServiceInterface $customerTokenService */
+        $customerTokenService = $this->objectManager->create(
+            'Magento\Integration\Service\V1\CustomerTokenServiceInterface'
+        );
+        $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password');
+
+        /** @var \Magento\Quote\Api\ShippingMethodManagementInterface $shippingMethodManagementService */
+        $shippingMethodManagementService = $this->objectManager->create(
+            'Magento\Quote\Api\ShippingMethodManagementInterface'
+        );
+        $shippingMethodManagementService->set($this->quote->getId(), 'flatrate', 'flatrate');
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => '/V1/carts/mine/selected-shipping-method',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+                'token' => $token
+            ]
+        ];
+
+        $result = $this->_webApiCall($serviceInfo, []);
+        $this->assertEquals('flatrate', $result[ShippingMethodInterface::KEY_CARRIER_CODE]);
+        $this->assertEquals('flatrate', $result[ShippingMethodInterface::KEY_METHOD_CODE]);
+    }
+
     /**
      * @magentoApiDataFixture Magento/Checkout/_files/quote_with_virtual_product_and_address.php
      *
@@ -204,6 +283,54 @@ class ShippingMethodManagementTest extends WebapiAbstract
         $this->assertEquals($expectedData, $returnedRates);
     }
 
+    /**
+     * @magentoApiDataFixture Magento/Customer/_files/customer.php
+     * @magentoApiDataFixture Magento/Checkout/_files/quote_with_address_saved.php
+     */
+    public function testGetListForMyCart()
+    {
+        $this->_markTestAsRestOnly();
+
+        $this->quote->load('test_order_1', 'reserved_order_id');
+
+        /** @var \Magento\Integration\Service\V1\CustomerTokenServiceInterface $customerTokenService */
+        $customerTokenService = $this->objectManager->create(
+            'Magento\Integration\Service\V1\CustomerTokenServiceInterface'
+        );
+        $token = $customerTokenService->createCustomerAccessToken('customer@example.com', 'password');
+
+        /** @var \Magento\Quote\Api\ShippingMethodManagementInterface $shippingMethodManagementService */
+        $shippingMethodManagementService = $this->objectManager->create(
+            'Magento\Quote\Api\ShippingMethodManagementInterface'
+        );
+        $shippingMethodManagementService->set($this->quote->getId(), 'flatrate', 'flatrate');
+
+        $serviceInfo = [
+            'rest' => [
+                'resourcePath' => '/V1/carts/mine/shipping-methods',
+                'httpMethod' => \Magento\Framework\Webapi\Rest\Request::HTTP_METHOD_GET,
+                'token' => $token
+            ]
+        ];
+
+        $result = $this->_webApiCall($serviceInfo, []);
+        $this->assertNotEmpty($result);
+        $this->assertCount(1, $result);
+
+        $shippingMethod = $shippingMethodManagementService->get($this->quote->getId());
+        $expectedData = [
+            ShippingMethodInterface::KEY_CARRIER_CODE => $shippingMethod->getCarrierCode(),
+            ShippingMethodInterface::KEY_METHOD_CODE => $shippingMethod->getMethodCode(),
+            ShippingMethodInterface::KEY_CARRIER_TITLE => $shippingMethod->getCarrierTitle(),
+            ShippingMethodInterface::KEY_METHOD_TITLE => $shippingMethod->getMethodTitle(),
+            ShippingMethodInterface::KEY_SHIPPING_AMOUNT => $shippingMethod->getAmount(),
+            ShippingMethodInterface::KEY_BASE_SHIPPING_AMOUNT => $shippingMethod->getBaseAmount(),
+            ShippingMethodInterface::KEY_AVAILABLE => $shippingMethod->getAvailable(),
+        ];
+
+        $this->assertEquals($expectedData, $result[0]);
+    }
+
     /**
      * @param string $cartId
      * @return array
diff --git a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Fixture/GroupedProduct/Associated.php b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Fixture/GroupedProduct/Associated.php
index 00e3a4896a7fd2e3f979d9eefffd284b1839cda0..427bc6c11cd4edfd7ed82f34ccafe2b6229d88e2 100644
--- a/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Fixture/GroupedProduct/Associated.php
+++ b/dev/tests/functional/tests/app/Magento/GroupedProduct/Test/Fixture/GroupedProduct/Associated.php
@@ -198,19 +198,19 @@ class Associated implements FixtureInterface
                         'id' => '%id%',
                         'name' => '%item1_simple::getProductName%',
                         'position' => '%position%',
-                        'qty' => 17,
+                        'qty' => 3,
                     ],
                     [
                         'id' => '%id%',
                         'name' => '%item1_simple::getProductName%',
                         'position' => '%position%',
-                        'qty' => 36,
+                        'qty' => 1,
                     ],
                     [
                         'id' => '%id%',
                         'name' => '%item1_simple::getProductName%',
                         'position' => '%position%',
-                        'qty' => 20,
+                        'qty' => 2,
                     ],
                 ],
                 'products' => [
diff --git a/dev/tests/functional/tests/app/Magento/Ups/Test/Repository/ConfigData.xml b/dev/tests/functional/tests/app/Magento/Ups/Test/Repository/ConfigData.xml
index 5351224a4f52e4bc04b92617f30d0190b5963fb3..f6c7bd8341526c7fa4e6f48a79f020fb5830b2b8 100644
--- a/dev/tests/functional/tests/app/Magento/Ups/Test/Repository/ConfigData.xml
+++ b/dev/tests/functional/tests/app/Magento/Ups/Test/Repository/ConfigData.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0" ?>
 <!--
 /**
  * Copyright © 2015 Magento. All rights reserved.
diff --git a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest.xml b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest.xml
index 066996237682324629b01255adc02af4a05a67af..1cf13be71e2cd00324fbc5303d2a6bd31230fa33 100644
--- a/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest.xml
+++ b/dev/tests/functional/tests/app/Magento/Wishlist/Test/TestCase/AddProductsToCartFromCustomerWishlistOnFrontendTest.xml
@@ -33,28 +33,24 @@
             <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" />
         </variation>
         <variation name="AddProductsToCartFromCustomerWishlistOnFrontendTestVariation5">
-            <data name="issue" xsi:type="string">Bug: MAGETWO-36224</data>
             <data name="products" xsi:type="string">downloadableProduct::with_two_separately_links</data>
             <data name="qty" xsi:type="string">-</data>
             <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
             <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" />
         </variation>
         <variation name="AddProductsToCartFromCustomerWishlistOnFrontendTestVariation6">
-            <data name="issue" xsi:type="string">Bug: MAGETWO-36224</data>
             <data name="products" xsi:type="string">configurableProduct::default</data>
             <data name="qty" xsi:type="string">3</data>
             <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
             <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" />
         </variation>
         <variation name="AddProductsToCartFromCustomerWishlistOnFrontendTestVariation7">
-            <data name="issue" xsi:type="string">Bug: MAGETWO-36224</data>
             <data name="products" xsi:type="string">bundleProduct::bundle_dynamic_product</data>
             <data name="qty" xsi:type="string">2</data>
             <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
             <constraint name="Magento\Wishlist\Test\Constraint\AssertProductsIsAbsentInWishlist" />
         </variation>
         <variation name="AddProductsToCartFromCustomerWishlistOnFrontendTestVariation8">
-            <data name="issue" xsi:type="string">Bug: MAGETWO-36224</data>
             <data name="products" xsi:type="string">bundleProduct::bundle_fixed_product</data>
             <data name="qty" xsi:type="string">2</data>
             <constraint name="Magento\Checkout\Test\Constraint\AssertProductQtyInShoppingCart" />
diff --git a/dev/tests/integration/testsuite/Magento/Checkout/_files/discount_10percent_generalusers.php b/dev/tests/integration/testsuite/Magento/Checkout/_files/discount_10percent_generalusers.php
new file mode 100644
index 0000000000000000000000000000000000000000..c66670aa8719af2cc1a5575596f7b8c65661bf58
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Checkout/_files/discount_10percent_generalusers.php
@@ -0,0 +1,28 @@
+<?php
+/**
+ * SalesRule 10% discount coupon
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+/** @var \Magento\SalesRule\Model\Rule $salesRule */
+$salesRule = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\SalesRule\Model\Rule');
+
+$data = [
+    'name' => 'Test Coupon for General',
+    'is_active' => true,
+    'website_ids' => [
+        \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->get(
+            'Magento\Store\Model\StoreManagerInterface'
+        )->getStore()->getWebsiteId()
+    ],
+    'customer_group_ids' => [1],
+    'coupon_type' => \Magento\SalesRule\Model\Rule::COUPON_TYPE_SPECIFIC,
+    'coupon_code' => uniqid(),
+    'simple_action' => \Magento\SalesRule\Model\Rule::BY_PERCENT_ACTION,
+    'discount_amount' => 10,
+    'discount_step' => 1
+];
+
+$salesRule->loadPost($data)->setUseAutoGeneration(false)->save();
diff --git a/dev/tests/integration/testsuite/Magento/Checkout/_files/discount_10percent_generalusers_rollback.php b/dev/tests/integration/testsuite/Magento/Checkout/_files/discount_10percent_generalusers_rollback.php
new file mode 100644
index 0000000000000000000000000000000000000000..a6f462f767443532421f66b9e8d144335469233e
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Checkout/_files/discount_10percent_generalusers_rollback.php
@@ -0,0 +1,12 @@
+<?php
+/**
+ * SalesRule 10% discount coupon
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+/** @var \Magento\SalesRule\Model\Rule $salesRule */
+$salesRule = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\SalesRule\Model\Rule');
+$salesRule->load('Test Coupon for General', 'name');
+$salesRule->delete();
diff --git a/dev/tests/integration/testsuite/Magento/Checkout/_files/discount_10percent_rollback.php b/dev/tests/integration/testsuite/Magento/Checkout/_files/discount_10percent_rollback.php
new file mode 100644
index 0000000000000000000000000000000000000000..53c90ee1778f1eb0c67b16c1af81e4a87f9cb47f
--- /dev/null
+++ b/dev/tests/integration/testsuite/Magento/Checkout/_files/discount_10percent_rollback.php
@@ -0,0 +1,12 @@
+<?php
+/**
+ * SalesRule 10% discount coupon
+ *
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+/** @var \Magento\SalesRule\Model\Rule $salesRule */
+$salesRule = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\SalesRule\Model\Rule');
+$salesRule->load('Test Coupon', 'name');
+$salesRule->delete();
diff --git a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_address_saved.php b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_address_saved.php
index 65cdb896f134ccdc968d833ae6816ebf8a15ab70..c06216ed07d89f96f5e144815c68a97964e6300b 100644
--- a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_address_saved.php
+++ b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_address_saved.php
@@ -12,3 +12,11 @@
 require 'quote_with_address.php';
 
 $quote->collectTotals()->save();
+
+/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+$quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+    ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+    ->create();
+$quoteIdMask->setId($quote->getId());
+$quoteIdMask->setDataChanges(true);
+$quoteIdMask->save();
diff --git a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_address_saved_rollback.php b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_address_saved_rollback.php
index 9bc73ec6d964fc69c7bdc78fa6a8fa15b83a0583..098b8e746cd5b099605ed37fb437cd2ba8e82781 100644
--- a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_address_saved_rollback.php
+++ b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_address_saved_rollback.php
@@ -10,3 +10,7 @@
 $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
 $quote = $objectManager->create('Magento\Quote\Model\Quote');
 $quote->load('test_order_1', 'reserved_order_id')->delete();
+
+/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+$quoteIdMask = $objectManager->create('Magento\Quote\Model\QuoteIdMask');
+$quoteIdMask->delete($quote->getId());
diff --git a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_check_payment.php b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_check_payment.php
index 355706e20824a14eea670c5cc3678c2cdf2ee9d0..1f0a0a45197c70eec8b032eea8555dba723c18e9 100644
--- a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_check_payment.php
+++ b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_check_payment.php
@@ -19,3 +19,11 @@ $quote->getPayment()->setMethod('checkmo');
 $quote->collectTotals();
 $quote->save();
 $quote->getPayment()->setMethod('checkmo');
+
+/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+$quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+    ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+    ->create();
+$quoteIdMask->setId($quote->getId());
+$quoteIdMask->setDataChanges(true);
+$quoteIdMask->save();
diff --git a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_check_payment_rollback.php b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_check_payment_rollback.php
index 7d04f85c78907dae2949522fef4d0001086cdac0..e999e00ff14336961e2581ba9983960cd1e0e9fe 100644
--- a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_check_payment_rollback.php
+++ b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_check_payment_rollback.php
@@ -5,7 +5,10 @@
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
+require __DIR__ . '/../../Sales/_files/default_rollback.php';
 
 /** @var $objectManager \Magento\TestFramework\ObjectManager */
 $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
 $objectManager->get('Magento\Framework\Registry')->unregister('quote');
+$quote = $objectManager->create('Magento\Quote\Model\Quote');
+$quote->load('test_order_1', 'reserved_order_id')->delete();
diff --git a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_items_saved.php b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_items_saved.php
index d017de00edb5e8a0a476d4804a84903e70160489..dcf8ab45afc9802ac729f00210a68f59bfee159d 100644
--- a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_items_saved.php
+++ b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_items_saved.php
@@ -42,3 +42,11 @@ $quoteProduct = $product->load($product->getIdBySku('simple_one'));
 $quote->setReservedOrderId('test_order_item_with_items')
     ->addProduct($product->load($product->getIdBySku('simple_one')), 1);
 $quote->collectTotals()->save();
+
+/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+$quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+    ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+    ->create();
+$quoteIdMask->setId($quote->getId());
+$quoteIdMask->setDataChanges(true);
+$quoteIdMask->save();
diff --git a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_payment_saved.php b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_payment_saved.php
index d39da02e43d07343fa5d566c23e1016fa6f2bde2..e15c08b356f56ffc6677a1018b6613a1f4223a74 100644
--- a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_payment_saved.php
+++ b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_payment_saved.php
@@ -25,3 +25,11 @@ $quote->getPayment()
     ->setAdditionalData(serialize($paymentDetails));
 
 $quote->collectTotals()->save();
+
+/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+$quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+    ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+    ->create();
+$quoteIdMask->setId($quote->getId());
+$quoteIdMask->setDataChanges(true);
+$quoteIdMask->save();
diff --git a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_payment_saved_rollback.php b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_payment_saved_rollback.php
index c828e4acf0c793a28d33237f0c31a815ca3b8095..92d03e750c176358c6927bd9724022b80e40a565 100644
--- a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_payment_saved_rollback.php
+++ b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_payment_saved_rollback.php
@@ -10,3 +10,7 @@
 $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
 $quote = $objectManager->create('Magento\Quote\Model\Quote');
 $quote->load('test_order_1_with_payment', 'reserved_order_id')->delete();
+
+/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+$quoteIdMask = $objectManager->create('Magento\Quote\Model\QuoteIdMask');
+$quoteIdMask->delete($quote->getId());
diff --git a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_simple_product_saved.php b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_simple_product_saved.php
index 3d410ba47f558b83bcc8d91d93bed5221a22f37c..e917e5c33e8ddfcb09eafeb08420a2df028ef886 100644
--- a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_simple_product_saved.php
+++ b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_simple_product_saved.php
@@ -26,3 +26,11 @@ $quote->setStoreId(
     );
 
 $quote->collectTotals()->save();
+
+/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+$quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+    ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+    ->create();
+$quoteIdMask->setId($quote->getId());
+$quoteIdMask->setDataChanges(true);
+$quoteIdMask->save();
diff --git a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_simple_product_saved_rollback.php b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_simple_product_saved_rollback.php
index 60b8a06b2dcfe58c829b67db2fcde71798e88e1f..5639fc74d602ef9f26a9ebcaa5e50a23e03052e4 100644
--- a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_simple_product_saved_rollback.php
+++ b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_simple_product_saved_rollback.php
@@ -10,3 +10,7 @@
 $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
 $quote = $objectManager->create('Magento\Quote\Model\Quote');
 $quote->load('test_order_with_simple_product_without_address', 'reserved_order_id')->delete();
+
+/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+$quoteIdMask = $objectManager->create('Magento\Quote\Model\QuoteIdMask');
+$quoteIdMask->delete($quote->getId());
diff --git a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_virtual_product_and_address.php b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_virtual_product_and_address.php
index f892d8e7abade648085ddb2cb5b6f1cc44d79a48..56ae6b1a7643bd074ebd807ea00a77d60da41769 100644
--- a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_virtual_product_and_address.php
+++ b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_virtual_product_and_address.php
@@ -52,3 +52,11 @@ $quote->setStoreId(
     );
 
 $quote->collectTotals()->save();
+
+/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+$quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+    ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+    ->create();
+$quoteIdMask->setId($quote->getId());
+$quoteIdMask->setDataChanges(true);
+$quoteIdMask->save();
diff --git a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_virtual_product_and_address_rollback.php b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_virtual_product_and_address_rollback.php
index abd211dba8b7844b3644c2ae0e406b867da88c0b..c87f4d43a8ac58aab785cb180a22c241c9f6aba7 100644
--- a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_virtual_product_and_address_rollback.php
+++ b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_virtual_product_and_address_rollback.php
@@ -9,3 +9,7 @@
 $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
 $quote = $objectManager->create('Magento\Quote\Model\Quote');
 $quote->load('test_order_with_virtual_product', 'reserved_order_id')->delete();
+
+/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+$quoteIdMask = $objectManager->create('Magento\Quote\Model\QuoteIdMask');
+$quoteIdMask->delete($quote->getId());
diff --git a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_virtual_product_saved.php b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_virtual_product_saved.php
index d68124215662e455600af9d538dc7f2db59f7c51..1d19150c3a3a52f274c6301d4559e17245293717 100644
--- a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_virtual_product_saved.php
+++ b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_virtual_product_saved.php
@@ -19,3 +19,11 @@ $quote->setStoreId(1)
     );
 
 $quote->collectTotals()->save();
+
+/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+$quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+    ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+    ->create();
+$quoteIdMask->setId($quote->getId());
+$quoteIdMask->setDataChanges(true);
+$quoteIdMask->save();
diff --git a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_virtual_product_saved_rollback.php b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_virtual_product_saved_rollback.php
index 4447d3cf57862f35cded4b095ccc5d0285bd06e0..914ec199cfd3308429bb94bd660ca8f5c04da531 100644
--- a/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_virtual_product_saved_rollback.php
+++ b/dev/tests/integration/testsuite/Magento/Checkout/_files/quote_with_virtual_product_saved_rollback.php
@@ -10,3 +10,7 @@
 $objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
 $quote = $objectManager->create('Magento\Quote\Model\Quote');
 $quote->load('test_order_with_virtual_product_without_address', 'reserved_order_id')->delete();
+
+/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+$quoteIdMask = $objectManager->create('Magento\Quote\Model\QuoteIdMask');
+$quoteIdMask->delete($quote->getId());
diff --git a/dev/tests/integration/testsuite/Magento/Customer/Model/Resource/GroupRepositoryTest.php b/dev/tests/integration/testsuite/Magento/Customer/Model/Resource/GroupRepositoryTest.php
index f147db9a5a5cc26f376e77d0080e766967e7344e..905a5a9affc1d62dd9ba398a247cf40dbfc12780 100644
--- a/dev/tests/integration/testsuite/Magento/Customer/Model/Resource/GroupRepositoryTest.php
+++ b/dev/tests/integration/testsuite/Magento/Customer/Model/Resource/GroupRepositoryTest.php
@@ -7,6 +7,7 @@
 namespace Magento\Customer\Model\Resource;
 
 use Magento\Customer\Api\Data\GroupInterface;
+use Magento\Framework\Api\SearchCriteria;
 
 /**
  * Integration test for \Magento\Customer\Model\Resource\GroupRepository
@@ -28,12 +29,16 @@ class GroupRepositoryTest extends \PHPUnit_Framework_TestCase
     /** @var  \Magento\Framework\Api\SearchCriteriaBuilder */
     private $searchCriteriaBuilder;
 
+    /** @var  \Magento\Framework\Api\SortOrderBuilder */
+    private $sortOrderBuilder;
+
     protected function setUp()
     {
         $this->objectManager = \Magento\TestFramework\Helper\Bootstrap::getObjectManager();
         $this->groupRepository = $this->objectManager->create('Magento\Customer\Api\GroupRepositoryInterface');
         $this->groupFactory = $this->objectManager->create('Magento\Customer\Api\Data\GroupInterfaceFactory');
         $this->searchCriteriaBuilder = $this->objectManager->create('Magento\Framework\Api\SearchCriteriaBuilder');
+        $this->sortOrderBuilder = $this->objectManager->create('Magento\Framework\Api\SortOrderBuilder');
     }
 
     /**
@@ -249,6 +254,95 @@ class GroupRepositoryTest extends \PHPUnit_Framework_TestCase
                     3 => [GroupInterface::CODE => 'Retailer', GroupInterface::TAX_CLASS_ID => 3]
                 ],
             ],
+            'like_tax_name' => [
+                [
+                    $builder->setField(GroupInterface::TAX_CLASS_NAME)->setValue('Retail Customer')
+                        ->setConditionType('like')
+                        ->create(),
+                ],
+                [],
+                [
+                    0 => [GroupInterface::CODE => 'NOT LOGGED IN', GroupInterface::TAX_CLASS_ID => 3],
+                    1 => [GroupInterface::CODE => 'General', GroupInterface::TAX_CLASS_ID => 3],
+                    2 => [GroupInterface::CODE => 'Wholesale', GroupInterface::TAX_CLASS_ID => 3],
+                    3 => [GroupInterface::CODE => 'Retailer', GroupInterface::TAX_CLASS_ID => 3],
+                ],
+            ],
+        ];
+    }
+
+    /**
+     * @param string $field
+     * @param string, $direction
+     * @param string, $methodName
+     * @param array $expectedResult
+     *
+     * @dataProvider sortOrderDataProvider
+     */
+    public function testGetListSortOrder($field, $direction, $methodName, $expectedResult)
+    {
+        /** @var \Magento\Framework\Api\SortOrder $sortOrder */
+        /** @var string $direction */
+        $direction = ($direction == 'ASC') ? SearchCriteria::SORT_ASC : SearchCriteria::SORT_DESC;
+        $sortOrder = $this->sortOrderBuilder->setField($field)->setDirection($direction)->create();
+        $this->searchCriteriaBuilder->addSortOrder($sortOrder);
+
+        $searchResults = $this->groupRepository->getList($this->searchCriteriaBuilder->create());
+
+        /** @var \Magento\Customer\Api\Data\GroupInterface[] $resultItems */
+        $resultItems = $searchResults->getItems();
+        $this->assertTrue(count($resultItems) > 0);
+
+        $result = [];
+        foreach ($resultItems as $item) {
+            /** @var \Magento\Customer\Model\Data\Group $item */
+            $result[] = $item->$methodName();
+        }
+        $this->assertEquals($expectedResult, $result);
+    }
+
+    /**
+     * @return array
+     */
+    public function sortOrderDataProvider()
+    {
+        return [
+            [
+                GroupInterface::ID,
+                'ASC',
+                'getId',
+                [0, 1, 2, 3],
+            ],
+            [
+                GroupInterface::ID,
+                'DESC',
+                'getId',
+                [3, 2, 1, 0],
+            ],
+            [
+                GroupInterface::CODE,
+                'ASC',
+                'getCode',
+                ['General', 'NOT LOGGED IN', 'Retailer', 'Wholesale'],
+            ],
+            [
+                GroupInterface::CODE,
+                'DESC',
+                'getCode',
+                ['Wholesale', 'Retailer', 'NOT LOGGED IN', 'General'],
+            ],
+            [
+                GroupInterface::TAX_CLASS_NAME,
+                'ASC',
+                'getTaxClassName',
+                ['Retail Customer', 'Retail Customer', 'Retail Customer', 'Retail Customer']
+            ],
+            [
+                GroupInterface::TAX_CLASS_NAME,
+                'DESC',
+                'getTaxClassName',
+                ['Retail Customer', 'Retail Customer', 'Retail Customer', 'Retail Customer']
+            ],
         ];
     }
 }
diff --git a/dev/tests/integration/testsuite/Magento/Sales/_files/quote.php b/dev/tests/integration/testsuite/Magento/Sales/_files/quote.php
index 8bdafe16f41aa3263b3a75e208e2a8545efbaa5d..2fb7467a1c15bc58a2a6391dfb9eb8854c3c456e 100644
--- a/dev/tests/integration/testsuite/Magento/Sales/_files/quote.php
+++ b/dev/tests/integration/testsuite/Magento/Sales/_files/quote.php
@@ -65,3 +65,11 @@ $quote->getPayment()->setMethod('checkmo');
 $quote->setIsMultiShipping('1');
 $quote->collectTotals();
 $quote->save();
+
+/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+$quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+    ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+    ->create();
+$quoteIdMask->setId($quote->getId());
+$quoteIdMask->setDataChanges(true);
+$quoteIdMask->save();
diff --git a/dev/tests/integration/testsuite/Magento/Sales/_files/quote_with_customer.php b/dev/tests/integration/testsuite/Magento/Sales/_files/quote_with_customer.php
index 8d5992519026fd63f5669052fc465a5f932accff..40e14157ff895104bac231809bc61c6b81f98bfc 100644
--- a/dev/tests/integration/testsuite/Magento/Sales/_files/quote_with_customer.php
+++ b/dev/tests/integration/testsuite/Magento/Sales/_files/quote_with_customer.php
@@ -15,3 +15,11 @@ $customerRepository = \Magento\TestFramework\Helper\Bootstrap::getObjectManager(
     ->create('Magento\Customer\Api\CustomerRepositoryInterface');
 $customer = $customerRepository->getById(1);
 $quote->setCustomer($customer)->setCustomerIsGuest(false)->save();
+
+/** @var \Magento\Quote\Model\QuoteIdMask $quoteIdMask */
+$quoteIdMask = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()
+    ->create('Magento\Quote\Model\QuoteIdMaskFactory')
+    ->create();
+$quoteIdMask->setId($quote->getId());
+$quoteIdMask->setDataChanges(true);
+$quoteIdMask->save();
diff --git a/dev/tests/performance/benchmark.jmx b/dev/tests/performance/benchmark.jmx
index 34b8617830f417808bcc2e5086b8ecf6efe94c72..9ebd36053e18e2ae06bac1cbd26ad7d0381d9748 100644
--- a/dev/tests/performance/benchmark.jmx
+++ b/dev/tests/performance/benchmark.jmx
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<jmeterTestPlan version="1.2" properties="2.6" jmeter="2.11 r1554548">
+<jmeterTestPlan version="1.2" properties="2.7" jmeter="2.12 r1636949">
   <hashTree>
     <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Toolkit" enabled="true">
       <stringProp name="TestPlan.comments"></stringProp>
@@ -116,9 +116,10 @@
         <stringProp name="HTTPSampler.port"></stringProp>
         <stringProp name="HTTPSampler.connect_timeout"></stringProp>
         <stringProp name="HTTPSampler.response_timeout"></stringProp>
-        <stringProp name="HTTPSampler.protocol"></stringProp>
-        <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+        <stringProp name="HTTPSampler.protocol">http</stringProp>
+        <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
         <stringProp name="HTTPSampler.path"></stringProp>
+        <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
         <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
       </ConfigTestElement>
       <hashTree/>
@@ -196,15 +197,14 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}${admin_path}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -277,15 +277,14 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}${admin_path}</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -344,15 +343,14 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/cache/massDisable/</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -396,7 +394,7 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
@@ -404,7 +402,6 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -431,7 +428,7 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
@@ -439,7 +436,6 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -466,7 +462,7 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}${simple_product_url_key}${url_suffix}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
@@ -474,7 +470,6 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -489,7 +484,7 @@
             <intProp name="Assertion.test_type">2</intProp>
           </ResponseAssertion>
           <hashTree/>
-          <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="XPath Extractor: Extarct product id" enabled="true">
+          <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="XPath Extractor: Extract product id" enabled="true">
             <stringProp name="XPathExtractor.default"></stringProp>
             <stringProp name="XPathExtractor.refname">simple_product_id</stringProp>
             <stringProp name="XPathExtractor.xpathQuery">.//input[@type=&quot;hidden&quot; and @name=&quot;product&quot;]/@value</stringProp>
@@ -533,7 +528,7 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
@@ -541,7 +536,6 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -589,7 +583,7 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}${configurable_product_url_key}${url_suffix}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
@@ -597,7 +591,6 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -612,7 +605,7 @@
             <intProp name="Assertion.test_type">2</intProp>
           </ResponseAssertion>
           <hashTree/>
-          <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="XPath Extractor: Extarct product id" enabled="true">
+          <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="XPath Extractor: Extract product id" enabled="true">
             <stringProp name="XPathExtractor.default"></stringProp>
             <stringProp name="XPathExtractor.refname">configurable_product_id</stringProp>
             <stringProp name="XPathExtractor.xpathQuery">.//input[@type=&quot;hidden&quot; and @name=&quot;product&quot;]/@value</stringProp>
@@ -621,7 +614,7 @@
             <boolProp name="XPathExtractor.namespace">false</boolProp>
           </XPathExtractor>
           <hashTree/>
-          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extarct product attribute id" enabled="true">
+          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product attribute id" enabled="true">
             <stringProp name="RegexExtractor.useHeaders">false</stringProp>
             <stringProp name="RegexExtractor.refname">configurable_attribute_id</stringProp>
             <stringProp name="RegexExtractor.regex">&quot;spConfig&quot;:[\s]*\{&quot;attributes&quot;:\{&quot;(\d+)&quot;</stringProp>
@@ -630,7 +623,7 @@
             <stringProp name="RegexExtractor.match_number">1</stringProp>
           </RegexExtractor>
           <hashTree/>
-          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extarct product attribute option id" enabled="true">
+          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product attribute option id" enabled="true">
             <stringProp name="RegexExtractor.useHeaders">false</stringProp>
             <stringProp name="RegexExtractor.refname">configurable_option_id</stringProp>
             <stringProp name="RegexExtractor.regex">&quot;options&quot;:\[\{&quot;id&quot;:&quot;(\d+)&quot;</stringProp>
@@ -681,7 +674,7 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
@@ -689,7 +682,6 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -737,7 +729,7 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}checkout/onepage/</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
@@ -745,7 +737,6 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -830,15 +821,14 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -987,15 +977,14 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}checkout/onepage/saveBilling/</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1058,15 +1047,14 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}checkout/onepage/saveShippingMethod/</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1122,15 +1110,14 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}checkout/onepage/savePayment/</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1187,15 +1174,14 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}checkout/onepage/saveOrder/</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1222,7 +1208,7 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}checkout/onepage/success/</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
@@ -1230,7 +1216,6 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1258,15 +1243,14 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1344,6 +1328,9 @@
             <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
             <assertionsResultsToSave>0</assertionsResultsToSave>
             <bytes>true</bytes>
+            <hostname>true</hostname>
+            <threadCounts>true</threadCounts>
+            <sampleCount>true</sampleCount>
           </value>
         </objProp>
         <stringProp name="filename">${response_time_file_name}</stringProp>
diff --git a/dev/tests/performance/testsuite/_samples/_template.jmx b/dev/tests/performance/testsuite/_samples/_template.jmx
index 1effe714f7bbb3d7fa93632793245cdedad049d3..2602b87dade56c7b2bea8e561c2889da1141515b 100644
--- a/dev/tests/performance/testsuite/_samples/_template.jmx
+++ b/dev/tests/performance/testsuite/_samples/_template.jmx
@@ -1,13 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 /**
- * @category    Magento
- * @package     performance_tests
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 -->
-<jmeterTestPlan version="1.2" properties="2.1">
+<jmeterTestPlan version="1.2" properties="2.7" jmeter="2.12 r1636949">
   <hashTree>
     <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
       <stringProp name="TestPlan.comments"></stringProp>
@@ -64,8 +62,10 @@
         <stringProp name="HTTPSampler.connect_timeout"></stringProp>
         <stringProp name="HTTPSampler.response_timeout"></stringProp>
         <stringProp name="HTTPSampler.protocol">http</stringProp>
-        <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+        <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
         <stringProp name="HTTPSampler.path"></stringProp>
+        <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
+        <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
       </ConfigTestElement>
       <hashTree/>
       <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
@@ -101,6 +101,9 @@
             <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
             <assertionsResultsToSave>0</assertionsResultsToSave>
             <bytes>true</bytes>
+            <hostname>true</hostname>
+            <threadCounts>true</threadCounts>
+            <sampleCount>true</sampleCount>
           </value>
         </objProp>
         <stringProp name="filename"></stringProp>
diff --git a/dev/tests/performance/testsuite/add_to_cart.jmx b/dev/tests/performance/testsuite/add_to_cart.jmx
index b6a872202945507a5fa61f6792518172cea810dc..ec07b71db12101578fa518576a0652d00dd548d1 100644
--- a/dev/tests/performance/testsuite/add_to_cart.jmx
+++ b/dev/tests/performance/testsuite/add_to_cart.jmx
@@ -1,13 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 /**
- * @category    Magento
- * @package     performance_tests
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 -->
-<jmeterTestPlan version="1.2" properties="2.1">
+<jmeterTestPlan version="1.2" properties="2.7" jmeter="2.12 r1636949">
   <hashTree>
     <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
       <stringProp name="TestPlan.comments"></stringProp>
@@ -60,7 +58,7 @@
           </collectionProp>
         </Arguments>
         <hashTree/>
-        <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="Add to Cart - Product View" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add to Cart - Product View" enabled="true">
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
             <collectionProp name="Arguments.arguments"/>
           </elementProp>
@@ -68,7 +66,7 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}${product_url_key}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
@@ -78,7 +76,7 @@
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-        </HTTPSampler>
+        </HTTPSamplerProxy>
         <hashTree>
           <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract &quot;product_id&quot;" enabled="true">
             <stringProp name="RegexExtractor.useHeaders">false</stringProp>
@@ -121,7 +119,7 @@
           </ResponseAssertion>
           <hashTree/>
         </hashTree>
-        <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="Cart Add Product &amp; View Redirect" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Cart Add Product &amp; View Redirect" enabled="true">
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
             <collectionProp name="Arguments.arguments">
               <elementProp name="product" elementType="HTTPArgument">
@@ -151,8 +149,8 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/product/${product_id}/</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
@@ -161,7 +159,7 @@
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-        </HTTPSampler>
+        </HTTPSamplerProxy>
         <hashTree>
           <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
             <collectionProp name="Asserion.test_strings">
@@ -175,7 +173,7 @@
           <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
             <collectionProp name="Asserion.test_strings">
               <stringProp name="1554014413">&lt;a href=&quot;${base_uri}${product_url_key}&quot;&gt;${product_name}&lt;/a&gt;</stringProp>
-              <stringProp name="1472794794">You added ${product_name} to your shopping cart.</stringProp>
+              <stringProp name="-149996652">You added ${product_name} to your shopping cart.</stringProp>
             </collectionProp>
             <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
             <boolProp name="Assertion.assume_success">false</boolProp>
@@ -197,9 +195,11 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
           <stringProp name="HTTPSampler.path">${base_path}</stringProp>
+          <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
+          <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
         </ConfigTestElement>
         <hashTree/>
       </hashTree>
@@ -230,6 +230,9 @@
             <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
             <assertionsResultsToSave>0</assertionsResultsToSave>
             <bytes>true</bytes>
+            <hostname>true</hostname>
+            <threadCounts>true</threadCounts>
+            <sampleCount>true</sampleCount>
           </value>
         </objProp>
         <stringProp name="filename"></stringProp>
diff --git a/dev/tests/performance/testsuite/advanced_search.jmx b/dev/tests/performance/testsuite/advanced_search.jmx
index f0c4b5ea01fe28b23c71dcf980de62ac0d37af29..9b9679b2311b6bf69094920dfb2c42bc49b6ec5f 100644
--- a/dev/tests/performance/testsuite/advanced_search.jmx
+++ b/dev/tests/performance/testsuite/advanced_search.jmx
@@ -1,13 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 /**
- * @category    Magento
- * @package     performance_tests
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 -->
-<jmeterTestPlan version="1.2" properties="2.3">
+<jmeterTestPlan version="1.2" properties="2.7" jmeter="2.12 r1636949">
   <hashTree>
     <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Advanced Search" enabled="true">
       <stringProp name="TestPlan.comments"></stringProp>
@@ -69,7 +67,7 @@
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
             <collectionProp name="Arguments.arguments"/>
           </elementProp>
-          <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
+          <stringProp name="HTTPSampler.domain"></stringProp>
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
@@ -81,14 +79,13 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assertion: Header Presence" enabled="true">
             <collectionProp name="Asserion.test_strings">
-              <stringProp name="-462078532">Advanced Search</stringProp>
+              <stringProp name="-1680539802">Advanced Search</stringProp>
             </collectionProp>
             <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
             <boolProp name="Assertion.assume_success">false</boolProp>
@@ -143,19 +140,18 @@
               </elementProp>
             </collectionProp>
           </elementProp>
-          <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
+          <stringProp name="HTTPSampler.domain"></stringProp>
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${PATH}catalogsearch/advanced/result/</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -215,6 +211,9 @@
             <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
             <assertionsResultsToSave>0</assertionsResultsToSave>
             <bytes>true</bytes>
+            <hostname>true</hostname>
+            <threadCounts>true</threadCounts>
+            <sampleCount>true</sampleCount>
           </value>
         </objProp>
         <stringProp name="filename"></stringProp>
@@ -249,6 +248,21 @@
         </collectionProp>
       </HeaderManager>
       <hashTree/>
+      <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
+        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+          <collectionProp name="Arguments.arguments"/>
+        </elementProp>
+        <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
+        <stringProp name="HTTPSampler.port"></stringProp>
+        <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+        <stringProp name="HTTPSampler.response_timeout"></stringProp>
+        <stringProp name="HTTPSampler.protocol">http</stringProp>
+        <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
+        <stringProp name="HTTPSampler.path"></stringProp>
+        <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
+        <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
+      </ConfigTestElement>
+      <hashTree/>
     </hashTree>
   </hashTree>
 </jmeterTestPlan>
diff --git a/dev/tests/performance/testsuite/backend.jmx b/dev/tests/performance/testsuite/backend.jmx
index fbf480529e8084e7895f66a1541972d697f9e046..7108005cdfa54d60462f05c561aff65d064fec08 100644
--- a/dev/tests/performance/testsuite/backend.jmx
+++ b/dev/tests/performance/testsuite/backend.jmx
@@ -1,13 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 /**
- * @category    Magento
- * @package     performance_tests
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 -->
-<jmeterTestPlan version="1.2" properties="2.4" jmeter="2.9 r1437961">
+<jmeterTestPlan version="1.2" properties="2.7" jmeter="2.12 r1636949">
   <hashTree>
     <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Backend High Load Testing" enabled="true">
       <stringProp name="TestPlan.comments"></stringProp>
@@ -88,7 +86,7 @@
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
             <collectionProp name="Arguments.arguments"/>
           </elementProp>
-          <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
+          <stringProp name="HTTPSampler.domain"></stringProp>
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
@@ -100,14 +98,13 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Total Number of Products" enabled="true">
             <collectionProp name="Asserion.test_strings">
-              <stringProp name="-1786510475">&lt;h1 class=&quot;title&quot;&gt;Products&lt;/h1&gt;</stringProp>
+              <stringProp name="658046956">&lt;h1 class=&quot;title&quot;&gt;Products&lt;/h1&gt;</stringProp>
               <stringProp name="-1952867632">Total ${products_number} records found</stringProp>
             </collectionProp>
             <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
@@ -120,26 +117,25 @@
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
             <collectionProp name="Arguments.arguments"/>
           </elementProp>
-          <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
+          <stringProp name="HTTPSampler.domain"></stringProp>
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF8</stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${ADMIN_PATH}customer/</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Total Number of Customers" enabled="true">
             <collectionProp name="Asserion.test_strings">
-              <stringProp name="-5737002">&lt;h1 class=&quot;title&quot;&gt;Customers&lt;/h1&gt;</stringProp>
+              <stringProp name="-1533867969">&lt;h1 class=&quot;title&quot;&gt;Customers&lt;/h1&gt;</stringProp>
               <stringProp name="1843270971">Total ${customers_number} records found</stringProp>
             </collectionProp>
             <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
@@ -152,19 +148,18 @@
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
             <collectionProp name="Arguments.arguments"/>
           </elementProp>
-          <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
+          <stringProp name="HTTPSampler.domain"></stringProp>
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF8</stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${ADMIN_PATH}sales/order/</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -185,6 +180,21 @@
           <boolProp name="CookieManager.clearEachIteration">true</boolProp>
         </CookieManager>
         <hashTree/>
+        <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
+          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+            <collectionProp name="Arguments.arguments"/>
+          </elementProp>
+          <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
+          <stringProp name="HTTPSampler.port"></stringProp>
+          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+          <stringProp name="HTTPSampler.response_timeout"></stringProp>
+          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
+          <stringProp name="HTTPSampler.path"></stringProp>
+          <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
+          <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
+        </ConfigTestElement>
+        <hashTree/>
         <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="false">
           <boolProp name="ResultCollector.error_logging">false</boolProp>
           <objProp>
@@ -212,6 +222,9 @@
               <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
               <assertionsResultsToSave>0</assertionsResultsToSave>
               <bytes>true</bytes>
+              <hostname>true</hostname>
+              <threadCounts>true</threadCounts>
+              <sampleCount>true</sampleCount>
             </value>
           </objProp>
           <stringProp name="filename"></stringProp>
diff --git a/dev/tests/performance/testsuite/category_view.jmx b/dev/tests/performance/testsuite/category_view.jmx
index c5954e9be980fd0b3cb30a2db248413238bc2f6e..5697ace521dd272df24023823501f3378d6998e2 100644
--- a/dev/tests/performance/testsuite/category_view.jmx
+++ b/dev/tests/performance/testsuite/category_view.jmx
@@ -1,13 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 /**
- * @category    Magento
- * @package     performance_tests
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 -->
-<jmeterTestPlan version="1.2" properties="2.2">
+<jmeterTestPlan version="1.2" properties="2.7" jmeter="2.12 r1636949">
   <hashTree>
     <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Category View" enabled="true">
       <stringProp name="TestPlan.comments"></stringProp>
@@ -64,11 +62,11 @@
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
             <collectionProp name="Arguments.arguments"/>
           </elementProp>
-          <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
+          <stringProp name="HTTPSampler.domain"></stringProp>
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${PATH}${CATEGORY_URI}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
@@ -76,7 +74,6 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -105,7 +102,7 @@
           <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
             <collectionProp name="Asserion.test_strings">
               <stringProp name="-1004972625">Category 1</stringProp>
-              <stringProp name="952135968">Simple Product</stringProp>
+              <stringProp name="1413426305">Simple Product</stringProp>
             </collectionProp>
             <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
             <boolProp name="Assertion.assume_success">false</boolProp>
@@ -114,6 +111,21 @@
           <hashTree/>
         </hashTree>
       </hashTree>
+      <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
+        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+          <collectionProp name="Arguments.arguments"/>
+        </elementProp>
+        <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
+        <stringProp name="HTTPSampler.port"></stringProp>
+        <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+        <stringProp name="HTTPSampler.response_timeout"></stringProp>
+        <stringProp name="HTTPSampler.protocol">http</stringProp>
+        <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
+        <stringProp name="HTTPSampler.path"></stringProp>
+        <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
+        <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
+      </ConfigTestElement>
+      <hashTree/>
       <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="false">
         <boolProp name="ResultCollector.error_logging">false</boolProp>
         <objProp>
@@ -141,6 +153,9 @@
             <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
             <assertionsResultsToSave>0</assertionsResultsToSave>
             <bytes>true</bytes>
+            <hostname>true</hostname>
+            <threadCounts>true</threadCounts>
+            <sampleCount>true</sampleCount>
           </value>
         </objProp>
         <stringProp name="filename"></stringProp>
diff --git a/dev/tests/performance/testsuite/checkout.jmx b/dev/tests/performance/testsuite/checkout.jmx
index 5dda04cb25a9e0a66328da0833506d92c7f7a71a..aa9c58a401a7a44444d236e723da72d3951057e7 100644
--- a/dev/tests/performance/testsuite/checkout.jmx
+++ b/dev/tests/performance/testsuite/checkout.jmx
@@ -1,13 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 /**
- * @category    Magento
- * @package     performance_tests
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 -->
-<jmeterTestPlan version="1.2" properties="2.3">
+<jmeterTestPlan version="1.2" properties="2.7" jmeter="2.12 r1636949">
   <hashTree>
     <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="One Page Checkout" enabled="true">
       <stringProp name="TestPlan.comments"></stringProp>
@@ -74,7 +72,7 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${ADMIN_PATH}sales/order/</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
@@ -82,7 +80,6 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -172,7 +169,6 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -250,14 +246,13 @@
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${PATH}checkout/cart/add/product/${product_id}/</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -307,7 +302,6 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -339,14 +333,13 @@
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${PATH}checkout/onepage/saveMethod/</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -526,14 +519,13 @@
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${PATH}checkout/onepage/saveBilling/</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -586,14 +578,13 @@
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${PATH}checkout/onepage/getAdditional/</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -648,7 +639,6 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -692,14 +682,13 @@
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${PATH}checkout/onepage/saveShippingMethod/</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -752,14 +741,13 @@
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${PATH}checkout/onepage/progress/</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -799,14 +787,13 @@
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${PATH}checkout/onepage/savePayment/</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -859,14 +846,13 @@
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${PATH}checkout/onepage/progress/</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -914,14 +900,13 @@
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
           <stringProp name="HTTPSampler.protocol"></stringProp>
-          <stringProp name="HTTPSampler.contentEncoding">UTF-8</stringProp>
+          <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${PATH}checkout/onepage/saveOrder/</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -981,7 +966,6 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1067,6 +1051,9 @@ if (numAfter !== null) { // The asserion is called for every sampler, but we wan
             <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
             <assertionsResultsToSave>0</assertionsResultsToSave>
             <bytes>true</bytes>
+            <hostname>true</hostname>
+            <threadCounts>true</threadCounts>
+            <sampleCount>true</sampleCount>
           </value>
         </objProp>
         <stringProp name="filename"></stringProp>
@@ -1081,8 +1068,9 @@ if (numAfter !== null) { // The asserion is called for every sampler, but we wan
         <stringProp name="HTTPSampler.connect_timeout"></stringProp>
         <stringProp name="HTTPSampler.response_timeout"></stringProp>
         <stringProp name="HTTPSampler.protocol">http</stringProp>
-        <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+        <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
         <stringProp name="HTTPSampler.path"></stringProp>
+        <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
         <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
       </ConfigTestElement>
       <hashTree/>
diff --git a/dev/tests/performance/testsuite/home_page.jmx b/dev/tests/performance/testsuite/home_page.jmx
index 91f82ddcaecc43aa548b832ad6a83bdeb714ccea..b335bdceb5ac27c8275ba7791b7f0e423ff75c52 100644
--- a/dev/tests/performance/testsuite/home_page.jmx
+++ b/dev/tests/performance/testsuite/home_page.jmx
@@ -1,13 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 /**
- * @category    Magento
- * @package     performance_tests
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 -->
-<jmeterTestPlan version="1.2" properties="2.5" jmeter="2.10 r1533061">
+<jmeterTestPlan version="1.2" properties="2.7" jmeter="2.12 r1636949">
   <hashTree>
     <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true">
       <stringProp name="TestPlan.comments"></stringProp>
@@ -53,7 +51,7 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
@@ -61,7 +59,6 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -105,11 +102,29 @@
             <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
             <assertionsResultsToSave>0</assertionsResultsToSave>
             <bytes>true</bytes>
+            <hostname>true</hostname>
+            <threadCounts>true</threadCounts>
+            <sampleCount>true</sampleCount>
           </value>
         </objProp>
         <stringProp name="filename"></stringProp>
       </ResultCollector>
       <hashTree/>
+      <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
+        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+          <collectionProp name="Arguments.arguments"/>
+        </elementProp>
+        <stringProp name="HTTPSampler.domain"></stringProp>
+        <stringProp name="HTTPSampler.port"></stringProp>
+        <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+        <stringProp name="HTTPSampler.response_timeout"></stringProp>
+        <stringProp name="HTTPSampler.protocol">http</stringProp>
+        <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
+        <stringProp name="HTTPSampler.path"></stringProp>
+        <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
+        <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
+      </ConfigTestElement>
+      <hashTree/>
     </hashTree>
   </hashTree>
 </jmeterTestPlan>
diff --git a/dev/tests/performance/testsuite/product_edit.jmx b/dev/tests/performance/testsuite/product_edit.jmx
index 199c36235c16396d48dcfed93ed116ec14dd5b72..384381cac015b0f43400f9790a8539e25d95bee9 100644
--- a/dev/tests/performance/testsuite/product_edit.jmx
+++ b/dev/tests/performance/testsuite/product_edit.jmx
@@ -1,13 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 /**
- * @category    Magento
- * @package     performance_tests
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 -->
-<jmeterTestPlan version="1.2" properties="2.3">
+<jmeterTestPlan version="1.2" properties="2.7" jmeter="2.12 r1636949">
   <hashTree>
     <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Admin - Edit Product" enabled="true">
       <stringProp name="TestPlan.comments"></stringProp>
@@ -100,11 +98,11 @@
               </elementProp>
             </collectionProp>
           </elementProp>
-          <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
+          <stringProp name="HTTPSampler.domain"></stringProp>
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${ADMIN_PATH}catalog/product/grid/product_filter/${grid_product_filter}/</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
@@ -112,7 +110,6 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -163,11 +160,11 @@ vars.put(&quot;grid_product_filter&quot;, gridProductFilter);</stringProp>
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
             <collectionProp name="Arguments.arguments"/>
           </elementProp>
-          <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
+          <stringProp name="HTTPSampler.domain"></stringProp>
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${ADMIN_PATH}catalog/product/edit/id/${product_id}/</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
@@ -175,7 +172,6 @@ vars.put(&quot;grid_product_filter&quot;, gridProductFilter);</stringProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -193,6 +189,21 @@ vars.put(&quot;grid_product_filter&quot;, gridProductFilter);</stringProp>
           </ResponseAssertion>
           <hashTree/>
         </hashTree>
+        <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
+          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+            <collectionProp name="Arguments.arguments"/>
+          </elementProp>
+          <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
+          <stringProp name="HTTPSampler.port"></stringProp>
+          <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+          <stringProp name="HTTPSampler.response_timeout"></stringProp>
+          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
+          <stringProp name="HTTPSampler.path"></stringProp>
+          <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
+          <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
+        </ConfigTestElement>
+        <hashTree/>
         <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
           <collectionProp name="CookieManager.cookies"/>
           <boolProp name="CookieManager.clearEachIteration">true</boolProp>
@@ -226,6 +237,9 @@ vars.put(&quot;grid_product_filter&quot;, gridProductFilter);</stringProp>
             <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
             <assertionsResultsToSave>0</assertionsResultsToSave>
             <bytes>true</bytes>
+            <hostname>true</hostname>
+            <threadCounts>true</threadCounts>
+            <sampleCount>true</sampleCount>
           </value>
         </objProp>
         <stringProp name="filename"></stringProp>
diff --git a/dev/tests/performance/testsuite/product_view.jmx b/dev/tests/performance/testsuite/product_view.jmx
index 44598d85913f78269299018dd404c4a1d22c9a6a..218f3478b1101a1fba42b6fed7ee60cd770b7dac 100644
--- a/dev/tests/performance/testsuite/product_view.jmx
+++ b/dev/tests/performance/testsuite/product_view.jmx
@@ -1,13 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 /**
- * @category    Magento
- * @package     performance_tests
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 -->
-<jmeterTestPlan version="1.2" properties="2.1">
+<jmeterTestPlan version="1.2" properties="2.7" jmeter="2.12 r1636949">
   <hashTree>
     <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Product View" enabled="true">
       <stringProp name="TestPlan.comments"></stringProp>
@@ -55,15 +53,15 @@
         <stringProp name="ThreadGroup.delay"></stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="Product View" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product View" enabled="true">
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
             <collectionProp name="Arguments.arguments"/>
           </elementProp>
-          <stringProp name="HTTPSampler.domain">${base_host}</stringProp>
+          <stringProp name="HTTPSampler.domain"></stringProp>
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${base_path}${product_url_key}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
@@ -73,7 +71,7 @@
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-        </HTTPSampler>
+        </HTTPSamplerProxy>
         <hashTree>
           <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
             <collectionProp name="Asserion.test_strings">
@@ -86,6 +84,21 @@
           <hashTree/>
         </hashTree>
       </hashTree>
+      <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
+        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+          <collectionProp name="Arguments.arguments"/>
+        </elementProp>
+        <stringProp name="HTTPSampler.domain">${base_host}</stringProp>
+        <stringProp name="HTTPSampler.port"></stringProp>
+        <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+        <stringProp name="HTTPSampler.response_timeout"></stringProp>
+        <stringProp name="HTTPSampler.protocol">http</stringProp>
+        <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
+        <stringProp name="HTTPSampler.path"></stringProp>
+        <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
+        <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
+      </ConfigTestElement>
+      <hashTree/>
       <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="false">
         <boolProp name="ResultCollector.error_logging">false</boolProp>
         <objProp>
@@ -113,6 +126,9 @@
             <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
             <assertionsResultsToSave>0</assertionsResultsToSave>
             <bytes>true</bytes>
+            <hostname>true</hostname>
+            <threadCounts>true</threadCounts>
+            <sampleCount>true</sampleCount>
           </value>
         </objProp>
         <stringProp name="filename"></stringProp>
diff --git a/dev/tests/performance/testsuite/quick_search.jmx b/dev/tests/performance/testsuite/quick_search.jmx
index 8aaf25840e63788e5bd9e391352801222c55a4db..82ab754249e5b72acc767bdb30f25db1faf2b8da 100644
--- a/dev/tests/performance/testsuite/quick_search.jmx
+++ b/dev/tests/performance/testsuite/quick_search.jmx
@@ -1,13 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 /**
- * @category    Magento
- * @package     performance_tests
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 -->
-<jmeterTestPlan version="1.2" properties="2.1">
+<jmeterTestPlan version="1.2" properties="2.7" jmeter="2.12 r1636949">
   <hashTree>
     <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Quick Search" enabled="true">
       <stringProp name="TestPlan.comments"></stringProp>
@@ -60,7 +58,7 @@
         <stringProp name="ThreadGroup.delay"></stringProp>
       </ThreadGroup>
       <hashTree>
-        <HTTPSampler guiclass="HttpTestSampleGui" testclass="HTTPSampler" testname="Quick Search" enabled="true">
+        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Quick Search" enabled="true">
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
             <collectionProp name="Arguments.arguments">
               <elementProp name="q" elementType="HTTPArgument">
@@ -72,7 +70,7 @@
               </elementProp>
             </collectionProp>
           </elementProp>
-          <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
+          <stringProp name="HTTPSampler.domain"></stringProp>
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
@@ -86,7 +84,7 @@
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
-        </HTTPSampler>
+        </HTTPSamplerProxy>
         <hashTree>
           <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
             <collectionProp name="HeaderManager.headers">
@@ -119,7 +117,7 @@
           <hashTree/>
           <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
             <collectionProp name="Asserion.test_strings">
-              <stringProp name="-887183200">Search results for: &apos;${search_query}&apos;</stringProp>
+              <stringProp name="-382529492">Search results for: &apos;${search_query}&apos;</stringProp>
             </collectionProp>
             <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
             <boolProp name="Assertion.assume_success">false</boolProp>
@@ -128,6 +126,21 @@
           <hashTree/>
         </hashTree>
       </hashTree>
+      <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
+        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+          <collectionProp name="Arguments.arguments"/>
+        </elementProp>
+        <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
+        <stringProp name="HTTPSampler.port"></stringProp>
+        <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+        <stringProp name="HTTPSampler.response_timeout"></stringProp>
+        <stringProp name="HTTPSampler.protocol">http</stringProp>
+        <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
+        <stringProp name="HTTPSampler.path"></stringProp>
+        <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
+        <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
+      </ConfigTestElement>
+      <hashTree/>
       <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
         <collectionProp name="CookieManager.cookies"/>
         <boolProp name="CookieManager.clearEachIteration">true</boolProp>
diff --git a/dev/tests/performance/testsuite/reusable/admin_login.jmx b/dev/tests/performance/testsuite/reusable/admin_login.jmx
index 6d271217d8989d6d97eb0aaf52f9627c5ddcb9f8..57f291edb6a81a9f407a7e481a46e5b6781b3ba6 100644
--- a/dev/tests/performance/testsuite/reusable/admin_login.jmx
+++ b/dev/tests/performance/testsuite/reusable/admin_login.jmx
@@ -1,13 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
 /**
- * @category    Magento
- * @package     performance_tests
  * Copyright © 2015 Magento. All rights reserved.
  * See COPYING.txt for license details.
  */
 -->
-<jmeterTestPlan version="1.2" properties="2.4" jmeter="2.9 r1437961">
+<jmeterTestPlan version="1.2" properties="2.7" jmeter="2.12 r1636949">
   <hashTree>
     <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Admin - Login" enabled="true">
       <stringProp name="TestPlan.comments">Reusable scenario to log-in to admin backend. Needs: HOST, ADMIN_PATH, ADMIN_USER, ADMIN_PASSWORD, Http Cookie Manager</stringProp>
@@ -29,7 +27,7 @@
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${ADMIN_PATH}</stringProp>
           <stringProp name="HTTPSampler.method">GET</stringProp>
@@ -37,14 +35,13 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
             <collectionProp name="Asserion.test_strings">
-              <stringProp name="1661392365">Log into Magento Admin Page</stringProp>
+              <stringProp name="731356397">Log into Magento Admin Page</stringProp>
             </collectionProp>
             <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
             <boolProp name="Assertion.assume_success">false</boolProp>
@@ -91,11 +88,11 @@
               </elementProp>
             </collectionProp>
           </elementProp>
-          <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
+          <stringProp name="HTTPSampler.domain"></stringProp>
           <stringProp name="HTTPSampler.port"></stringProp>
           <stringProp name="HTTPSampler.connect_timeout"></stringProp>
           <stringProp name="HTTPSampler.response_timeout"></stringProp>
-          <stringProp name="HTTPSampler.protocol">http</stringProp>
+          <stringProp name="HTTPSampler.protocol"></stringProp>
           <stringProp name="HTTPSampler.contentEncoding"></stringProp>
           <stringProp name="HTTPSampler.path">${ADMIN_PATH}</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
@@ -103,14 +100,13 @@
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
         <hashTree>
           <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert logged-in" enabled="true">
             <collectionProp name="Asserion.test_strings">
-              <stringProp name="934841248">${ADMIN_USER}</stringProp>
+              <stringProp name="-348322869">${ADMIN_USER}</stringProp>
               <stringProp name="-989788387">Account Setting</stringProp>
               <stringProp name="374398571">Sign Out</stringProp>
             </collectionProp>
@@ -176,6 +172,21 @@
         </Arguments>
         <hashTree/>
       </hashTree>
+      <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
+        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
+          <collectionProp name="Arguments.arguments"/>
+        </elementProp>
+        <stringProp name="HTTPSampler.domain">${HOST}</stringProp>
+        <stringProp name="HTTPSampler.port"></stringProp>
+        <stringProp name="HTTPSampler.connect_timeout"></stringProp>
+        <stringProp name="HTTPSampler.response_timeout"></stringProp>
+        <stringProp name="HTTPSampler.protocol">http</stringProp>
+        <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
+        <stringProp name="HTTPSampler.path"></stringProp>
+        <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
+        <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
+      </ConfigTestElement>
+      <hashTree/>
       <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
         <boolProp name="ResultCollector.error_logging">false</boolProp>
         <objProp>
@@ -203,6 +214,9 @@
             <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
             <assertionsResultsToSave>0</assertionsResultsToSave>
             <bytes>true</bytes>
+            <hostname>true</hostname>
+            <threadCounts>true</threadCounts>
+            <sampleCount>true</sampleCount>
           </value>
         </objProp>
         <stringProp name="filename"></stringProp>
diff --git a/dev/tools/performance-toolkit/README.txt b/dev/tools/performance-toolkit/README.txt
index 24e2a3cafd0c7f2f6a6d22b1e47ee45d1d958ce3..7f09be4ad422af069d0705edfd48a9ed227234ad 100644
--- a/dev/tools/performance-toolkit/README.txt
+++ b/dev/tools/performance-toolkit/README.txt
@@ -85,22 +85,3 @@ Details http://jmeter.apache.org/usermanual/component_reference.html#View_Result
 
 About other types read on
 http://jmeter.apache.org/usermanual/component_reference.html
-
-
-Testing environment
------------
-
-jMeter: apache-jmeter-2.11
-OS (where jMeter is running): Windows 7 SP1
-Server (where Magento is hosted): Intel(R) Core(TM)2 Duo CPU T7700  @2.40GHz, memtotal 4gb.
-PHP:  5.4.19 (memory_limit 2Gb)
-MySQL: 5.5.29 MySQL Community Server
-Magento version:  ver. 2.0.0.0-dev70 (rev 16b68a0f8e0fad4375f33b7238e2f2964ac3aadc)
-Magento database (Small plan in Fixture Generation Tool):
-jMeter parameters (all default parameters):
-  users: 100
-  ramp_period: 300
-  view_product_add_to_cart_percent: 62
-  view_catalog_percent: 30
-  guest_checkout_percent: 4
-  customer_checkout_percent: 4
diff --git a/dev/tools/performance-toolkit/benchmark.jmx b/dev/tools/performance-toolkit/benchmark.jmx
index 7d3d7aef7fa0ab39b7dce61fa73f45e9972e59bd..dba0ec039cd9c0bfd757424f3be3cfb379918ec5 100644
--- a/dev/tools/performance-toolkit/benchmark.jmx
+++ b/dev/tools/performance-toolkit/benchmark.jmx
@@ -5,7 +5,7 @@
  * See COPYING.txt for license details.
  */
 -->
-<jmeterTestPlan version="1.2" properties="2.6" jmeter="2.11 r1554548">
+<jmeterTestPlan version="1.2" properties="2.7" jmeter="2.12 r1636949">
   <hashTree>
     <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Toolkit" enabled="true">
       <stringProp name="TestPlan.comments"></stringProp>
@@ -122,9 +122,10 @@
         <stringProp name="HTTPSampler.port"></stringProp>
         <stringProp name="HTTPSampler.connect_timeout"></stringProp>
         <stringProp name="HTTPSampler.response_timeout"></stringProp>
-        <stringProp name="HTTPSampler.protocol"></stringProp>
-        <stringProp name="HTTPSampler.contentEncoding"></stringProp>
+        <stringProp name="HTTPSampler.protocol">http</stringProp>
+        <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
         <stringProp name="HTTPSampler.path"></stringProp>
+        <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
         <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
       </ConfigTestElement>
       <hashTree/>
@@ -249,7 +250,6 @@ if (!slash.equals(path.substring(path.length() -1)) || !slash.equals(path.substr
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
           <stringProp name="TestPlan.comments">Site - Get Category 1</stringProp>
@@ -322,7 +322,6 @@ props.put(&quot;category_name&quot;, vars.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -340,7 +339,7 @@ props.put(&quot;category_name&quot;, vars.get(&quot;category_name&quot;));</stri
           <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
             <stringProp name="RegexExtractor.useHeaders">false</stringProp>
             <stringProp name="RegexExtractor.refname">simple_products_url_keys</stringProp>
-            <stringProp name="RegexExtractor.regex">&lt;a class=&quot;product-item-link&quot; href=&quot;http://${host}${base_path}(index.php/)?([^&apos;&quot;]+)${url_suffix}&quot;&gt;Simple</stringProp>
+            <stringProp name="RegexExtractor.regex">&lt;a class=&quot;product-item-link&quot;\s*href=&quot;http://${host}${base_path}(index.php/)?([^&apos;&quot;]+)${url_suffix}&quot;&gt;</stringProp>
             <stringProp name="RegexExtractor.template">$2$</stringProp>
             <stringProp name="RegexExtractor.default"></stringProp>
             <stringProp name="RegexExtractor.match_number">-1</stringProp>
@@ -369,7 +368,6 @@ props.put(&quot;category_name&quot;, vars.get(&quot;category_name&quot;));</stri
             <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
             <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
             <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-            <stringProp name="HTTPSampler.implementation">Java</stringProp>
             <boolProp name="HTTPSampler.monitor">false</boolProp>
             <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
           </HTTPSamplerProxy>
@@ -477,7 +475,6 @@ productList.add(productMap);                        </stringProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -495,7 +492,7 @@ productList.add(productMap);                        </stringProp>
           <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
             <stringProp name="RegexExtractor.useHeaders">false</stringProp>
             <stringProp name="RegexExtractor.refname">configurable_products_url_keys</stringProp>
-            <stringProp name="RegexExtractor.regex">&lt;a class=&quot;product-item-link&quot; href=&quot;http://${host}${base_path}(index.php/)?([^&apos;&quot;]+)${url_suffix}&quot;&gt;Configurable</stringProp>
+            <stringProp name="RegexExtractor.regex">&lt;a class=&quot;product-item-link&quot;\s*href=&quot;http://${host}${base_path}(index.php/)?([^&apos;&quot;]+)${url_suffix}&quot;&gt;\s*Configurable</stringProp>
             <stringProp name="RegexExtractor.template">$2$</stringProp>
             <stringProp name="RegexExtractor.default"></stringProp>
             <stringProp name="RegexExtractor.match_number">-1</stringProp>
@@ -524,7 +521,6 @@ productList.add(productMap);                        </stringProp>
             <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
             <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
             <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-            <stringProp name="HTTPSampler.implementation">Java</stringProp>
             <boolProp name="HTTPSampler.monitor">false</boolProp>
             <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
           </HTTPSamplerProxy>
@@ -674,7 +670,6 @@ productList.add(productMap);                 </stringProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -755,7 +750,6 @@ productList.add(productMap);                 </stringProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -786,7 +780,6 @@ productList.add(productMap);                 </stringProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -856,7 +849,6 @@ vars.put(&quot;searchData&quot;, new String(Base64Encoder.encode(searchData)));<
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -996,7 +988,6 @@ if (orders &gt; 0) {
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1074,7 +1065,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1110,7 +1100,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1146,7 +1135,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1183,7 +1171,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1220,7 +1207,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1314,7 +1300,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1350,7 +1335,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1386,7 +1370,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1404,7 +1387,7 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form action" enabled="true">
             <stringProp name="RegexExtractor.useHeaders">false</stringProp>
             <stringProp name="RegexExtractor.refname">simple_product_1_form_action</stringProp>
-            <stringProp name="RegexExtractor.regex">&lt;form action=&quot;([^&apos;&quot;]+)&quot; method=&quot;post&quot; id=&quot;product_addtocart_form&quot;&gt;</stringProp>
+            <stringProp name="RegexExtractor.regex">&lt;form action=&quot;([^&apos;&quot;]+)&quot;\s*method=&quot;post&quot;\s*id=&quot;product_addtocart_form&quot;&gt;</stringProp>
             <stringProp name="RegexExtractor.template">$1$</stringProp>
             <stringProp name="RegexExtractor.default"></stringProp>
             <stringProp name="RegexExtractor.match_number">1</stringProp>
@@ -1479,7 +1462,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1524,7 +1506,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1542,7 +1523,7 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form action" enabled="true">
             <stringProp name="RegexExtractor.useHeaders">false</stringProp>
             <stringProp name="RegexExtractor.refname">simple_product_2_form_action</stringProp>
-            <stringProp name="RegexExtractor.regex">&lt;form action=&quot;([^&apos;&quot;]+)&quot; method=&quot;post&quot; id=&quot;product_addtocart_form&quot;&gt;</stringProp>
+            <stringProp name="RegexExtractor.regex">&lt;form action=&quot;([^&apos;&quot;]+)&quot;\s*method=&quot;post&quot;\s*id=&quot;product_addtocart_form&quot;&gt;</stringProp>
             <stringProp name="RegexExtractor.template">$1$</stringProp>
             <stringProp name="RegexExtractor.default"></stringProp>
             <stringProp name="RegexExtractor.match_number">1</stringProp>
@@ -1617,7 +1598,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1662,7 +1642,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1680,7 +1659,7 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form action" enabled="true">
             <stringProp name="RegexExtractor.useHeaders">false</stringProp>
             <stringProp name="RegexExtractor.refname">configurable_product_form_action</stringProp>
-            <stringProp name="RegexExtractor.regex">&lt;form action=&quot;([^&apos;&quot;]+)&quot; method=&quot;post&quot; id=&quot;product_addtocart_form&quot;&gt;</stringProp>
+            <stringProp name="RegexExtractor.regex">&lt;form action=&quot;([^&apos;&quot;]+)&quot;\s*method=&quot;post&quot;\s*id=&quot;product_addtocart_form&quot;&gt;</stringProp>
             <stringProp name="RegexExtractor.template">$1$</stringProp>
             <stringProp name="RegexExtractor.default"></stringProp>
             <stringProp name="RegexExtractor.match_number">1</stringProp>
@@ -1762,7 +1741,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1864,7 +1842,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1900,7 +1877,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1936,7 +1912,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -1954,7 +1929,7 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form action" enabled="true">
             <stringProp name="RegexExtractor.useHeaders">false</stringProp>
             <stringProp name="RegexExtractor.refname">simple_product_1_form_action</stringProp>
-            <stringProp name="RegexExtractor.regex">&lt;form action=&quot;([^&apos;&quot;]+)&quot; method=&quot;post&quot; id=&quot;product_addtocart_form&quot;&gt;</stringProp>
+            <stringProp name="RegexExtractor.regex">&lt;form action=&quot;([^&apos;&quot;]+)&quot;\s*method=&quot;post&quot;\s*id=&quot;product_addtocart_form&quot;&gt;</stringProp>
             <stringProp name="RegexExtractor.template">$1$</stringProp>
             <stringProp name="RegexExtractor.default"></stringProp>
             <stringProp name="RegexExtractor.match_number">1</stringProp>
@@ -2029,7 +2004,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -2074,7 +2048,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -2092,7 +2065,7 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form action" enabled="true">
             <stringProp name="RegexExtractor.useHeaders">false</stringProp>
             <stringProp name="RegexExtractor.refname">simple_product_2_form_action</stringProp>
-            <stringProp name="RegexExtractor.regex">&lt;form action=&quot;([^&apos;&quot;]+)&quot; method=&quot;post&quot; id=&quot;product_addtocart_form&quot;&gt;</stringProp>
+            <stringProp name="RegexExtractor.regex">&lt;form action=&quot;([^&apos;&quot;]+)&quot;\s*method=&quot;post&quot;\s*id=&quot;product_addtocart_form&quot;&gt;</stringProp>
             <stringProp name="RegexExtractor.template">$1$</stringProp>
             <stringProp name="RegexExtractor.default"></stringProp>
             <stringProp name="RegexExtractor.match_number">1</stringProp>
@@ -2167,7 +2140,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -2212,7 +2184,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -2230,7 +2201,7 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form action" enabled="true">
             <stringProp name="RegexExtractor.useHeaders">false</stringProp>
             <stringProp name="RegexExtractor.refname">configurable_product_form_action</stringProp>
-            <stringProp name="RegexExtractor.regex">&lt;form action=&quot;([^&apos;&quot;]+)&quot; method=&quot;post&quot; id=&quot;product_addtocart_form&quot;&gt;</stringProp>
+            <stringProp name="RegexExtractor.regex">&lt;form action=&quot;([^&apos;&quot;]+)&quot;\s*method=&quot;post&quot;\s*id=&quot;product_addtocart_form&quot;&gt;</stringProp>
             <stringProp name="RegexExtractor.template">$1$</stringProp>
             <stringProp name="RegexExtractor.default"></stringProp>
             <stringProp name="RegexExtractor.match_number">1</stringProp>
@@ -2312,7 +2283,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -2357,7 +2327,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -2444,7 +2413,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -2630,7 +2598,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -2697,7 +2664,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -2771,7 +2737,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -2837,7 +2802,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -2873,7 +2837,6 @@ vars.put(&quot;category_name&quot;, props.get(&quot;category_name&quot;));</stri
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -2983,7 +2946,6 @@ if (emailsCount &lt; 1) {
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -3019,7 +2981,6 @@ if (emailsCount &lt; 1) {
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -3055,7 +3016,6 @@ if (emailsCount &lt; 1) {
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -3073,7 +3033,7 @@ if (emailsCount &lt; 1) {
           <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form action" enabled="true">
             <stringProp name="RegexExtractor.useHeaders">false</stringProp>
             <stringProp name="RegexExtractor.refname">simple_product_1_form_action</stringProp>
-            <stringProp name="RegexExtractor.regex">&lt;form action=&quot;([^&apos;&quot;]+)&quot; method=&quot;post&quot; id=&quot;product_addtocart_form&quot;&gt;</stringProp>
+            <stringProp name="RegexExtractor.regex">&lt;form action=&quot;([^&apos;&quot;]+)&quot;\s*method=&quot;post&quot;\s*id=&quot;product_addtocart_form&quot;&gt;</stringProp>
             <stringProp name="RegexExtractor.template">$1$</stringProp>
             <stringProp name="RegexExtractor.default"></stringProp>
             <stringProp name="RegexExtractor.match_number">1</stringProp>
@@ -3148,7 +3108,6 @@ if (emailsCount &lt; 1) {
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -3193,7 +3152,6 @@ if (emailsCount &lt; 1) {
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -3211,7 +3169,7 @@ if (emailsCount &lt; 1) {
           <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form action" enabled="true">
             <stringProp name="RegexExtractor.useHeaders">false</stringProp>
             <stringProp name="RegexExtractor.refname">simple_product_2_form_action</stringProp>
-            <stringProp name="RegexExtractor.regex">&lt;form action=&quot;([^&apos;&quot;]+)&quot; method=&quot;post&quot; id=&quot;product_addtocart_form&quot;&gt;</stringProp>
+            <stringProp name="RegexExtractor.regex">&lt;form action=&quot;([^&apos;&quot;]+)&quot;\s*method=&quot;post&quot;\s*id=&quot;product_addtocart_form&quot;&gt;</stringProp>
             <stringProp name="RegexExtractor.template">$1$</stringProp>
             <stringProp name="RegexExtractor.default"></stringProp>
             <stringProp name="RegexExtractor.match_number">1</stringProp>
@@ -3286,7 +3244,6 @@ if (emailsCount &lt; 1) {
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -3331,7 +3288,6 @@ if (emailsCount &lt; 1) {
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -3349,7 +3305,7 @@ if (emailsCount &lt; 1) {
           <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form action" enabled="true">
             <stringProp name="RegexExtractor.useHeaders">false</stringProp>
             <stringProp name="RegexExtractor.refname">configurable_product_form_action</stringProp>
-            <stringProp name="RegexExtractor.regex">&lt;form action=&quot;([^&apos;&quot;]+)&quot; method=&quot;post&quot; id=&quot;product_addtocart_form&quot;&gt;</stringProp>
+            <stringProp name="RegexExtractor.regex">&lt;form action=&quot;([^&apos;&quot;]+)&quot;\s*method=&quot;post&quot;\s*id=&quot;product_addtocart_form&quot;&gt;</stringProp>
             <stringProp name="RegexExtractor.template">$1$</stringProp>
             <stringProp name="RegexExtractor.default"></stringProp>
             <stringProp name="RegexExtractor.match_number">1</stringProp>
@@ -3431,7 +3387,6 @@ if (emailsCount &lt; 1) {
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -3476,7 +3431,6 @@ if (emailsCount &lt; 1) {
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -3570,7 +3524,6 @@ if (emailsCount &lt; 1) {
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -3728,7 +3681,6 @@ if (emailsCount &lt; 1) {
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -3800,7 +3752,6 @@ if (emailsCount &lt; 1) {
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -3865,7 +3816,6 @@ if (emailsCount &lt; 1) {
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -3931,7 +3881,6 @@ if (emailsCount &lt; 1) {
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -3967,7 +3916,6 @@ if (emailsCount &lt; 1) {
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
-          <stringProp name="HTTPSampler.implementation">Java</stringProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"></stringProp>
         </HTTPSamplerProxy>
@@ -4054,6 +4002,9 @@ props.remove(&quot;customer_emails_list&quot;);</stringProp>
             <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
             <assertionsResultsToSave>0</assertionsResultsToSave>
             <bytes>true</bytes>
+            <hostname>true</hostname>
+            <threadCounts>true</threadCounts>
+            <sampleCount>true</sampleCount>
           </value>
         </objProp>
         <stringProp name="filename">${report_save_path}/view-results-tree.log</stringProp>
@@ -4086,6 +4037,9 @@ props.remove(&quot;customer_emails_list&quot;);</stringProp>
             <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
             <assertionsResultsToSave>0</assertionsResultsToSave>
             <url>true</url>
+            <hostname>true</hostname>
+            <threadCounts>true</threadCounts>
+            <sampleCount>true</sampleCount>
           </value>
         </objProp>
         <stringProp name="filename">${report_save_path}/detailed-urls-report.log</stringProp>
@@ -4118,6 +4072,9 @@ props.remove(&quot;customer_emails_list&quot;);</stringProp>
             <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
             <assertionsResultsToSave>0</assertionsResultsToSave>
             <bytes>true</bytes>
+            <hostname>true</hostname>
+            <threadCounts>true</threadCounts>
+            <sampleCount>true</sampleCount>
           </value>
         </objProp>
         <stringProp name="filename">${report_save_path}/summary-report.log</stringProp>
diff --git a/lib/internal/Magento/Framework/App/Action/AbstractAction.php b/lib/internal/Magento/Framework/App/Action/AbstractAction.php
index b0027ca824ec085480664fcbfe0ce6d36e0c60bd..d6119f9fe876b972e7a7513050c4af994d95bf53 100644
--- a/lib/internal/Magento/Framework/App/Action/AbstractAction.php
+++ b/lib/internal/Magento/Framework/App/Action/AbstractAction.php
@@ -24,6 +24,11 @@ abstract class AbstractAction implements \Magento\Framework\App\ActionInterface
      */
     protected $resultRedirectFactory;
 
+    /**
+     * @var \Magento\Framework\Controller\ResultFactory
+     */
+    protected $resultFactory;
+
     /**
      * @param \Magento\Framework\App\Action\Context $context
      */
@@ -33,6 +38,7 @@ abstract class AbstractAction implements \Magento\Framework\App\ActionInterface
         $this->_request = $context->getRequest();
         $this->_response = $context->getResponse();
         $this->resultRedirectFactory = $context->getResultRedirectFactory();
+        $this->resultFactory = $context->getResultFactory();
     }
 
     /**
diff --git a/lib/internal/Magento/Framework/App/Action/Context.php b/lib/internal/Magento/Framework/App/Action/Context.php
index 22aef5cc083c9dd8278100b6afcd6fffc6858884..a812800bc059948ac5b0cdd85eb04f7891445379 100644
--- a/lib/internal/Magento/Framework/App/Action/Context.php
+++ b/lib/internal/Magento/Framework/App/Action/Context.php
@@ -5,6 +5,8 @@
  */
 namespace Magento\Framework\App\Action;
 
+use Magento\Framework\Controller\ResultFactory;
+
 class Context implements \Magento\Framework\ObjectManager\ContextInterface
 {
     /**
@@ -57,6 +59,11 @@ class Context implements \Magento\Framework\ObjectManager\ContextInterface
      */
     protected $resultRedirectFactory;
 
+    /**
+     * @var \Magento\Framework\Controller\ResultFactory
+     */
+    protected $resultFactory;
+
     /**
      * @param \Magento\Framework\App\RequestInterface $request
      * @param \Magento\Framework\App\ResponseInterface $response
@@ -68,6 +75,7 @@ class Context implements \Magento\Framework\ObjectManager\ContextInterface
      * @param \Magento\Framework\App\ViewInterface $view
      * @param \Magento\Framework\Message\ManagerInterface $messageManager
      * @param \Magento\Framework\Controller\Result\RedirectFactory $resultRedirectFactory
+     * @param \Magento\Framework\Controller\ResultFactory $resultFactory
      *
      * @SuppressWarnings(PHPMD.ExcessiveParameterList)
      */
@@ -81,7 +89,8 @@ class Context implements \Magento\Framework\ObjectManager\ContextInterface
         \Magento\Framework\App\ActionFlag $actionFlag,
         \Magento\Framework\App\ViewInterface $view,
         \Magento\Framework\Message\ManagerInterface $messageManager,
-        \Magento\Framework\Controller\Result\RedirectFactory $resultRedirectFactory
+        \Magento\Framework\Controller\Result\RedirectFactory $resultRedirectFactory,
+        ResultFactory $resultFactory
     ) {
         $this->_request = $request;
         $this->_response = $response;
@@ -93,6 +102,7 @@ class Context implements \Magento\Framework\ObjectManager\ContextInterface
         $this->_view = $view;
         $this->messageManager = $messageManager;
         $this->resultRedirectFactory = $resultRedirectFactory;
+        $this->resultFactory = $resultFactory;
     }
 
     /**
@@ -174,4 +184,12 @@ class Context implements \Magento\Framework\ObjectManager\ContextInterface
     {
         return $this->resultRedirectFactory;
     }
+
+    /**
+     * @return \Magento\Framework\Controller\ResultFactory
+     */
+    public function getResultFactory()
+    {
+        return $this->resultFactory;
+    }
 }
diff --git a/lib/internal/Magento/Framework/AppInterface.php b/lib/internal/Magento/Framework/AppInterface.php
index 67e77a1191cb06fcd64edd0a0283184976913921..7bf9c70ada1b61682217450ee8aa846de7e01943 100644
--- a/lib/internal/Magento/Framework/AppInterface.php
+++ b/lib/internal/Magento/Framework/AppInterface.php
@@ -17,7 +17,7 @@ interface AppInterface
     /**
      * Magento version
      */
-    const VERSION = '0.74.0-beta5';
+    const VERSION = '0.74.0-beta6';
 
     /**
      * Launch application
diff --git a/lib/internal/Magento/Framework/Phrase.php b/lib/internal/Magento/Framework/Phrase.php
index 992834a4816e1c14f8a56c488a739ed97c3d70f4..f4194f69b02d8c46e2907d43dc8574a2f503044f 100644
--- a/lib/internal/Magento/Framework/Phrase.php
+++ b/lib/internal/Magento/Framework/Phrase.php
@@ -9,7 +9,7 @@ namespace Magento\Framework;
 
 use Zend\Stdlib\JsonSerializable;
 use Magento\Framework\Phrase\RendererInterface;
-use Magento\Framework\Phrase\Renderer\Placeholder;
+use Magento\Framework\Phrase\Renderer\Placeholder as RendererPlaceholder;
 
 class Phrase implements JsonSerializable
 {
@@ -52,11 +52,10 @@ class Phrase implements JsonSerializable
      */
     public static function getRenderer()
     {
-        if (self::$renderer) {
-            return self::$renderer;
-        } else {
-            self::$renderer = new \Magento\Framework\Phrase\Renderer\Placeholder();
+        if (!self::$renderer) {
+            self::$renderer = new RendererPlaceholder();
         }
+        return self::$renderer;
     }
 
     /**
@@ -98,7 +97,11 @@ class Phrase implements JsonSerializable
      */
     public function render()
     {
-        return self::getRenderer() ? self::getRenderer()->render([$this->text], $this->arguments) : $this->text;
+        try {
+            return self::getRenderer()->render([$this->text], $this->getArguments());
+        } catch (\Exception $e) {
+            return $this->getText();
+        }
     }
 
     /**
diff --git a/lib/internal/Magento/Framework/Phrase/Renderer/Composite.php b/lib/internal/Magento/Framework/Phrase/Renderer/Composite.php
index 4b93aee4b42b041e4b09e75a7e1355258168a371..91d8f40139887d3323815a11570418482beb3750 100644
--- a/lib/internal/Magento/Framework/Phrase/Renderer/Composite.php
+++ b/lib/internal/Magento/Framework/Phrase/Renderer/Composite.php
@@ -17,7 +17,7 @@ class Composite implements RendererInterface
     protected $_renderers;
 
     /**
-     * @param RendererInterface[] $renderers
+     * @param \Magento\Framework\Phrase\RendererInterface[] $renderers
      * @throws \InvalidArgumentException
      */
     public function __construct(array $renderers)
diff --git a/lib/internal/Magento/Framework/Phrase/Renderer/Inline.php b/lib/internal/Magento/Framework/Phrase/Renderer/Inline.php
index 5d3f094d859909e5e105b3466afb1bf9335be1d0..0cb074943f9b7a352e7062fded30cd1d406e4280 100644
--- a/lib/internal/Magento/Framework/Phrase/Renderer/Inline.php
+++ b/lib/internal/Magento/Framework/Phrase/Renderer/Inline.php
@@ -7,7 +7,12 @@
  */
 namespace Magento\Framework\Phrase\Renderer;
 
-class Inline implements \Magento\Framework\Phrase\RendererInterface
+use Magento\Framework\Phrase\RendererInterface;
+use Magento\Framework\TranslateInterface;
+use Magento\Framework\Translate\Inline\ProviderInterface;
+use Psr\Log\LoggerInterface;
+
+class Inline implements RendererInterface
 {
     /**
      * @var \Magento\Framework\TranslateInterface
@@ -19,16 +24,24 @@ class Inline implements \Magento\Framework\Phrase\RendererInterface
      */
     protected $inlineProvider;
 
+    /**
+     * @var \Psr\Log\LoggerInterface
+     */
+    protected $logger;
+
     /**
      * @param \Magento\Framework\TranslateInterface $translator
      * @param \Magento\Framework\Translate\Inline\ProviderInterface $inlineProvider
+     * @param \Psr\Log\LoggerInterface $logger
      */
     public function __construct(
-        \Magento\Framework\TranslateInterface $translator,
-        \Magento\Framework\Translate\Inline\ProviderInterface $inlineProvider
+        TranslateInterface $translator,
+        ProviderInterface $inlineProvider,
+        LoggerInterface $logger
     ) {
         $this->translator = $translator;
         $this->inlineProvider = $inlineProvider;
+        $this->logger = $logger;
     }
 
     /**
@@ -37,22 +50,29 @@ class Inline implements \Magento\Framework\Phrase\RendererInterface
      * @param [] $source
      * @param [] $arguments
      * @return string
+     * @throws \Exception
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
     public function render(array $source, array $arguments)
     {
         $text = end($source);
 
-        if (!$this->inlineProvider->get()->isAllowed()) {
-            return $text;
-        }
+        try {
+            if (!$this->inlineProvider->get()->isAllowed()) {
+                return $text;
+            }
 
-        if (strpos($text, '{{{') === false
-            || strpos($text, '}}}') === false
-            || strpos($text, '}}{{') === false
-        ) {
-            $text = '{{{'
-                . implode('}}{{', array_reverse($source))
-                . '}}{{' . $this->translator->getTheme() . '}}}';
+            if (strpos($text, '{{{') === false
+                || strpos($text, '}}}') === false
+                || strpos($text, '}}{{') === false
+            ) {
+                $text = '{{{'
+                    . implode('}}{{', array_reverse($source))
+                    . '}}{{' . $this->translator->getTheme() . '}}}';
+            }
+        } catch (\Exception $e) {
+            $this->logger->critical($e->getMessage());
+            throw $e;
         }
 
         return $text;
diff --git a/lib/internal/Magento/Framework/Phrase/Renderer/Placeholder.php b/lib/internal/Magento/Framework/Phrase/Renderer/Placeholder.php
index a9e6ed62f35216dfef1549983e020221f5dc593b..db2551a0157465783a74bb8b17e0291a4c290a09 100644
--- a/lib/internal/Magento/Framework/Phrase/Renderer/Placeholder.php
+++ b/lib/internal/Magento/Framework/Phrase/Renderer/Placeholder.php
@@ -7,7 +7,9 @@
  */
 namespace Magento\Framework\Phrase\Renderer;
 
-class Placeholder implements \Magento\Framework\Phrase\RendererInterface
+use Magento\Framework\Phrase\RendererInterface;
+
+class Placeholder implements RendererInterface
 {
     /**
      * Render source text
@@ -23,7 +25,7 @@ class Placeholder implements \Magento\Framework\Phrase\RendererInterface
         if ($arguments) {
             $placeholders = [];
             foreach (array_keys($arguments) as $key) {
-                $placeholders[] = "%" . (is_int($key) ? strval($key + 1) : $key);
+                $placeholders[] = '%' . (is_int($key) ? strval($key + 1) : $key);
             }
             $text = str_replace($placeholders, $arguments, $text);
         }
diff --git a/lib/internal/Magento/Framework/Phrase/Renderer/Translate.php b/lib/internal/Magento/Framework/Phrase/Renderer/Translate.php
index 6f981a679377e57c5924b16230d24d0ac1393f47..449b34d61c094435b6b1eb448b5d1ff7c6f3260f 100644
--- a/lib/internal/Magento/Framework/Phrase/Renderer/Translate.php
+++ b/lib/internal/Magento/Framework/Phrase/Renderer/Translate.php
@@ -7,21 +7,34 @@
  */
 namespace Magento\Framework\Phrase\Renderer;
 
-class Translate implements \Magento\Framework\Phrase\RendererInterface
+use Magento\Framework\Phrase\RendererInterface;
+use Magento\Framework\TranslateInterface;
+use Psr\Log\LoggerInterface;
+
+class Translate implements RendererInterface
 {
     /**
      * @var \Magento\Framework\TranslateInterface
      */
     protected $translator;
 
+    /**
+     * @var \Psr\Log\LoggerInterface
+     */
+    protected $logger;
+
     /**
      * Renderer construct
      *
      * @param \Magento\Framework\TranslateInterface $translator
+     * @param \Psr\Log\LoggerInterface $logger
      */
-    public function __construct(\Magento\Framework\TranslateInterface $translator)
-    {
+    public function __construct(
+        TranslateInterface $translator,
+        LoggerInterface $logger
+    ) {
         $this->translator = $translator;
+        $this->logger = $logger;
     }
 
     /**
@@ -30,12 +43,19 @@ class Translate implements \Magento\Framework\Phrase\RendererInterface
      * @param [] $source
      * @param [] $arguments
      * @return string
+     * @throws \Exception
+     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
      */
     public function render(array $source, array $arguments)
     {
         $text = end($source);
 
-        $data = $this->translator->getData();
+        try {
+            $data = $this->translator->getData();
+        } catch (\Exception $e) {
+            $this->logger->critical($e->getMessage());
+            throw $e;
+        }
 
         return array_key_exists($text, $data) ? $data[$text] : $text;
     }
diff --git a/lib/internal/Magento/Framework/Phrase/Test/Unit/Renderer/CompositeTest.php b/lib/internal/Magento/Framework/Phrase/Test/Unit/Renderer/CompositeTest.php
index ebb58aeade6b561ed1216a06b92a3e7e3a9c635f..b3fccdee663776d2bebeb6622907a57c263bcb5f 100644
--- a/lib/internal/Magento/Framework/Phrase/Test/Unit/Renderer/CompositeTest.php
+++ b/lib/internal/Magento/Framework/Phrase/Test/Unit/Renderer/CompositeTest.php
@@ -77,4 +77,17 @@ class CompositeTest extends \PHPUnit_Framework_TestCase
 
         $this->assertEquals($resultAfterSecond, $this->object->render([$text], $arguments));
     }
+
+    public function testRenderException()
+    {
+        $message = 'something went wrong';
+        $exception = new \Exception($message);
+
+        $this->rendererOne->expects($this->once())
+            ->method('render')
+            ->willThrowException($exception);
+
+        $this->setExpectedException('Exception', $message);
+        $this->object->render(['text'], []);
+    }
 }
diff --git a/lib/internal/Magento/Framework/Phrase/Test/Unit/Renderer/InlineTest.php b/lib/internal/Magento/Framework/Phrase/Test/Unit/Renderer/InlineTest.php
index 59174a88a4e90dd8e97cce09d590eeab03eb6fce..68be45b7e99b7cb17065a5ed5208c3ece0a0cc38 100644
--- a/lib/internal/Magento/Framework/Phrase/Test/Unit/Renderer/InlineTest.php
+++ b/lib/internal/Magento/Framework/Phrase/Test/Unit/Renderer/InlineTest.php
@@ -8,28 +8,36 @@ namespace Magento\Framework\Phrase\Test\Unit\Renderer;
 class InlineTest extends \PHPUnit_Framework_TestCase
 {
     /**
-     * @var \Magento\Framework\TranslateInterface
+     * @var \Magento\Framework\TranslateInterface|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $translator;
 
     /**
      * @var \Magento\Framework\Phrase\Renderer\Translate
      */
-    protected $_renderer;
+    protected $renderer;
 
     /**
-     * @var \Magento\Framework\Translate\Inline\ProviderInterface
+     * @var \Magento\Framework\Translate\Inline\ProviderInterface|\PHPUnit_Framework_MockObject_MockObject
      */
     protected $provider;
 
+    /**
+     * @var \Psr\Log\LoggerInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $loggerMock;
+
     protected function setUp()
     {
         $this->translator = $this->getMock('Magento\Framework\TranslateInterface', [], [], '', false);
         $this->provider = $this->getMock('Magento\Framework\Translate\Inline\ProviderInterface', [], [], '', false);
+        $this->loggerMock = $this->getMockBuilder('Psr\Log\LoggerInterface')
+            ->getMock();
 
         $this->renderer = new \Magento\Framework\Phrase\Renderer\Inline(
             $this->translator,
-            $this->provider
+            $this->provider,
+            $this->loggerMock
         );
     }
 
@@ -70,4 +78,17 @@ class InlineTest extends \PHPUnit_Framework_TestCase
 
         $this->assertEquals($text, $this->renderer->render([$text], []));
     }
+
+    public function testRenderException()
+    {
+        $message = 'something went wrong';
+        $exception = new \Exception($message);
+
+        $this->provider->expects($this->once())
+            ->method('get')
+            ->willThrowException($exception);
+
+        $this->setExpectedException('Exception', $message);
+        $this->renderer->render(['text'], []);
+    }
 }
diff --git a/lib/internal/Magento/Framework/Phrase/Test/Unit/Renderer/TranslateTest.php b/lib/internal/Magento/Framework/Phrase/Test/Unit/Renderer/TranslateTest.php
index 61d541127514c236838f4cb0e7ad01f0c8491c1a..e6581ae4825ed7d39bc43d47f4761fa2fbb3e60d 100644
--- a/lib/internal/Magento/Framework/Phrase/Test/Unit/Renderer/TranslateTest.php
+++ b/lib/internal/Magento/Framework/Phrase/Test/Unit/Renderer/TranslateTest.php
@@ -17,14 +17,24 @@ class TranslateTest extends \PHPUnit_Framework_TestCase
      */
     protected $_renderer;
 
+    /**
+     * @var \Psr\Log\LoggerInterface|\PHPUnit_Framework_MockObject_MockObject
+     */
+    protected $loggerMock;
+
     protected function setUp()
     {
         $this->_translator = $this->getMock('Magento\Framework\TranslateInterface', [], [], '', false);
+        $this->loggerMock = $this->getMockBuilder('Psr\Log\LoggerInterface')
+            ->getMock();
 
         $objectManagerHelper = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
         $this->_renderer = $objectManagerHelper->getObject(
             'Magento\Framework\Phrase\Renderer\Translate',
-            ['translator' => $this->_translator]
+            [
+                'translator' => $this->_translator,
+                'logger' => $this->loggerMock
+            ]
         );
     }
 
@@ -41,4 +51,17 @@ class TranslateTest extends \PHPUnit_Framework_TestCase
         $this->assertEquals($translate, $this->_renderer->render([$translatedText], []));
         $this->assertEquals($text, $this->_renderer->render([$text], []));
     }
+
+    public function testRenderException()
+    {
+        $message = 'something went wrong';
+        $exception = new \Exception($message);
+
+        $this->_translator->expects($this->once())
+            ->method('getData')
+            ->willThrowException($exception);
+
+        $this->setExpectedException('Exception', $message);
+        $this->_renderer->render(['text'], []);
+    }
 }
diff --git a/lib/internal/Magento/Framework/Reflection/TypeProcessor.php b/lib/internal/Magento/Framework/Reflection/TypeProcessor.php
index f458d7bd8ece62465704e1d8ef22fd8980ec18a5..580be037ad2062b87fa247b6e5e23f89e75b9241 100644
--- a/lib/internal/Magento/Framework/Reflection/TypeProcessor.php
+++ b/lib/internal/Magento/Framework/Reflection/TypeProcessor.php
@@ -6,12 +6,14 @@
 namespace Magento\Framework\Reflection;
 
 use Magento\Framework\Exception\SerializationException;
+use Magento\Framework\Phrase;
 use Zend\Code\Reflection\ClassReflection;
 use Zend\Code\Reflection\ParameterReflection;
-use Magento\Framework\Phrase;
 
 /**
  * Type processor of config reader properties
+ *
+ * @SuppressWarnings(PHPMD.CouplingBetweenObjects)
  */
 class TypeProcessor
 {
@@ -108,6 +110,9 @@ class TypeProcessor
     public function register($type)
     {
         $typeName = $this->normalizeType($type);
+        if (null === $typeName) {
+            return null;
+        }
         if (!$this->isTypeSimple($typeName) && !$this->isTypeAny($typeName)) {
             $typeSimple = $this->getArrayItemType($type);
             if (!(class_exists($typeSimple) || interface_exists($typeSimple))) {
@@ -288,6 +293,9 @@ class TypeProcessor
      */
     public function normalizeType($type)
     {
+        if ($type == 'null') {
+            return null;
+        }
         $normalizationMap = [
             self::STRING_TYPE => self::NORMALIZED_STRING_TYPE,
             self::INT_TYPE => self::NORMALIZED_INT_TYPE,
diff --git a/lib/internal/Magento/Framework/Test/Unit/PhraseTest.php b/lib/internal/Magento/Framework/Test/Unit/PhraseTest.php
index f3e8c8d9e0195e9fd64d659d6a020d71c8f93f88..72bff033c0c7402e782aa7bd350afa041912e7fc 100755
--- a/lib/internal/Magento/Framework/Test/Unit/PhraseTest.php
+++ b/lib/internal/Magento/Framework/Test/Unit/PhraseTest.php
@@ -5,7 +5,7 @@
  */
 namespace Magento\Framework\Test\Unit;
 
-use \Magento\Framework\Phrase;
+use Magento\Framework\Phrase;
 
 class PhraseTest extends \PHPUnit_Framework_TestCase
 {
@@ -19,11 +19,6 @@ class PhraseTest extends \PHPUnit_Framework_TestCase
      */
     protected $rendererMock;
 
-    /**
-     * @var \Magento\Framework\TestFramework\Unit\Helper\ObjectManager
-     */
-    protected $objectManager;
-
     /**
      * SetUp method
      *
@@ -34,7 +29,6 @@ class PhraseTest extends \PHPUnit_Framework_TestCase
         $this->defaultRenderer = Phrase::getRenderer();
         $this->rendererMock = $this->getMockBuilder('Magento\Framework\Phrase\RendererInterface')
             ->getMock();
-        $this->objectManager = new \Magento\Framework\TestFramework\Unit\Helper\ObjectManager($this);
     }
 
     /**
@@ -57,10 +51,7 @@ class PhraseTest extends \PHPUnit_Framework_TestCase
         $text = 'some text';
         $arguments = ['arg1', 'arg2'];
         $result = 'rendered text';
-        $phrase = $this->objectManager->getObject('Magento\Framework\Phrase', [
-            'text' => $text,
-            'arguments' => $arguments,
-        ]);
+        $phrase = new Phrase($text, $arguments);
         Phrase::setRenderer($this->rendererMock);
 
         $this->rendererMock->expects($this->once())
@@ -81,9 +72,7 @@ class PhraseTest extends \PHPUnit_Framework_TestCase
         $this->rendererMock->expects($this->never())
             ->method('render');
 
-        $this->objectManager->getObject('Magento\Framework\Phrase', [
-            'text' => 'some text',
-        ]);
+        new Phrase('some text');
     }
 
     /**
@@ -96,10 +85,7 @@ class PhraseTest extends \PHPUnit_Framework_TestCase
         $text = 'some text';
         $arguments = ['arg1', 'arg2'];
         $result = 'rendered text';
-        $phrase = $this->objectManager->getObject('Magento\Framework\Phrase', [
-            'text' => $text,
-            'arguments' => $arguments,
-        ]);
+        $phrase = new Phrase($text, $arguments);
         Phrase::setRenderer($this->rendererMock);
 
         $this->rendererMock->expects($this->once())
@@ -119,9 +105,6 @@ class PhraseTest extends \PHPUnit_Framework_TestCase
     {
         $text = 'some text';
         $phrase = new Phrase($text);
-        $phrase = $this->objectManager->getObject('Magento\Framework\Phrase', [
-            'text' => $text,
-        ]);
 
         $this->assertEquals($text, $phrase->getText());
     }
@@ -135,36 +118,31 @@ class PhraseTest extends \PHPUnit_Framework_TestCase
     {
         $text = 'some text';
         $arguments = ['arg1', 'arg2'];
-        $phrase1 = $this->objectManager->getObject('Magento\Framework\Phrase', [
-            'text' => $text,
-        ]);
-        $phrase2 = $this->objectManager->getObject('Magento\Framework\Phrase', [
-            'text' => $text,
-            'arguments' => $arguments,
-        ]);
+        $phrase1 = new Phrase($text);
+        $phrase2 = new Phrase($text, $arguments);
 
         $this->assertEquals([], $phrase1->getArguments());
         $this->assertEquals($arguments, $phrase2->getArguments());
     }
 
+    public function testToStringWithExceptionOnRender()
+    {
+        $text = 'raw text';
+        $exception = new \Exception('something went wrong');
+        $phrase = new Phrase($text);
+
+        $this->rendererMock->expects($this->any())
+            ->method('render')
+            ->willThrowException($exception);
+
+        $this->assertEquals($text, (string)$phrase);
+    }
+
     /**
-     * Test default rendering
-     *
-     * @return void
+     * Test default renderer
      */
-    public function testDefaultRendering()
+    public function testDefaultRenderer()
     {
-        $text = 'parameter1 is replaced by %1 parameter2 is replaced by %2';
-        $arguments = ['arg1', 'arg2'];
-        $result = 'parameter1 is replaced by arg1 parameter2 is replaced by arg2';
-        $phrase = $this->objectManager->getObject('Magento\Framework\Phrase', [
-            'text' => $text,
-            'arguments' => $arguments,
-        ]);
-
-        $this->assertEquals($text, $phrase->getText());
-        $this->assertEquals($arguments, $phrase->getArguments());
-        $this->assertTrue($phrase->getRenderer() instanceof \Magento\Framework\Phrase\Renderer\Placeholder);
-        $this->assertEquals($result, $phrase->render());
+        $this->assertInstanceOf('Magento\Framework\Phrase\Renderer\Placeholder', Phrase::getRenderer());
     }
 }
diff --git a/lib/internal/Magento/Framework/Webapi/Rest/Request/ParamOverriderInterface.php b/lib/internal/Magento/Framework/Webapi/Rest/Request/ParamOverriderInterface.php
new file mode 100644
index 0000000000000000000000000000000000000000..92d748e923eb148cadd2b8a2af7a8628116f2630
--- /dev/null
+++ b/lib/internal/Magento/Framework/Webapi/Rest/Request/ParamOverriderInterface.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Copyright © 2015 Magento. All rights reserved.
+ * See COPYING.txt for license details.
+ */
+
+namespace Magento\Framework\Webapi\Rest\Request;
+
+/**
+ * Override parameter values
+ *
+ * Parameters in the webapi.xml can be forced. This ensures that on specific routes, a specific value is always used.
+ * For instance, if there is a ".../me/..." route, the route should use only user information specific to the
+ * currently logged in user. More specifically, if there was a "/customers/me/addresses" route, the service method
+ * invoked could have a signature of "getAddresses($customerId)", but in the webapi.xml, the $customerId parameter
+ * would be forced to be the customer id of the current authenticated user.
+ *
+ * The forced override parameter configuration is in the webapi.xml. 
+ *
+ * <data>
+ *   <parameter name="customer.id" force="true">%customer_id%</parameter>
+ * </data>
+ *
+ * Classes which implement ParamOverriderInterface would return the real value for the parameter, so a
+ * ParamOverriderCustomerId would return the current authenticated user's customer id. If you
+ * create new ParamOverriderInterface implementations, you can register new implementations by
+ * adding to the parameter list for ParamsOverrider's dependency injection configuration.
+ */
+interface ParamOverriderInterface
+{
+    /**
+     * Returns the overridden value to use.
+     *
+     * @return string|int|null
+     */
+    public function getOverriddenValue();
+}
diff --git a/lib/internal/Magento/Framework/composer.json b/lib/internal/Magento/Framework/composer.json
index 55a443c3ffaccff1df8157e147561ad3d84e0cb0..769a3a5d91d3f53dba9d6c08ee4fb4a25dbe4732 100644
--- a/lib/internal/Magento/Framework/composer.json
+++ b/lib/internal/Magento/Framework/composer.json
@@ -2,7 +2,7 @@
     "name": "magento/framework",
     "description": "N/A",
     "type": "magento2-library",
-    "version": "0.74.0-beta5",
+    "version": "0.74.0-beta6",
     "license": [
         "OSL-3.0",
         "AFL-3.0"
diff --git a/package.json b/package.json
index eaee4e18e2484b09731ec9a8e2a165eef83ae29c..69657eb7702c63f3d94d50a5d2f613ae6643f33e 100644
--- a/package.json
+++ b/package.json
@@ -21,7 +21,7 @@
     "grunt-contrib-watch": "^0.6.1",
     "grunt-exec": "^0.4.6",
     "grunt-styledocco": "^0.1.4",
-    "grunt-template-jasmine-requirejs": "^0.2.0",
+    "grunt-template-jasmine-requirejs": "^0.2.3",
     "grunt-text-replace": "^0.4.0",
     "imagemin-svgo": "^4.0.1",
     "load-grunt-config": "^0.16.0",