diff --git a/app/code/Magento/Bundle/Model/Plugin/QuoteItem.php b/app/code/Magento/Bundle/Model/Plugin/QuoteItem.php index 0ed1f9390ce3db6548fd52874fd16254023d17bd..2b75f6081ea37c968f74866dadf1021ca7058b5e 100644 --- a/app/code/Magento/Bundle/Model/Plugin/QuoteItem.php +++ b/app/code/Magento/Bundle/Model/Plugin/QuoteItem.php @@ -23,7 +23,7 @@ class QuoteItem \Magento\Quote\Model\Quote\Item\ToOrderItem $subject, Closure $proceed, \Magento\Quote\Model\Quote\Item\AbstractItem $item, - $additional + $additional = [] ) { /** @var $orderItem \Magento\Sales\Model\Order\Item */ $orderItem = $proceed($item, $additional); diff --git a/app/code/Magento/Catalog/view/frontend/templates/product/view/addtocart.phtml b/app/code/Magento/Catalog/view/frontend/templates/product/view/addtocart.phtml index d886aa4075423e5db4d1d22bb3eb70936cedb56f..c87b5550505d3cb4a8db06bbb3dda2a0cd2fd8b9 100644 --- a/app/code/Magento/Catalog/view/frontend/templates/product/view/addtocart.phtml +++ b/app/code/Magento/Catalog/view/frontend/templates/product/view/addtocart.phtml @@ -45,7 +45,8 @@ <script> require([ "jquery", - "mage/mage" + "mage/mage", + "Magento_Catalog/product/view/validation" ], function($){ $('#product_addtocart_form').mage('validation', { radioCheckboxClosest: '.nested' diff --git a/app/code/Magento/Checkout/view/frontend/web/js/opc-order-review.js b/app/code/Magento/Checkout/view/frontend/web/js/opc-order-review.js index c3c6b12819d96358cc13b4e61ceb3a1bb0dbab53..cda76773ef3c4ebe4f6b654886833425f5630486 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/opc-order-review.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/opc-order-review.js @@ -37,8 +37,7 @@ define([ var isAgreementValid = true; agreementFormsGroup.find('form').each( function(){ - $(this).validation(); - isAgreementValid = isAgreementValid && $(this).validation && $(this).validation('isValid'); + isAgreementValid = $(this).validation() && $(this).validation('isValid') && isAgreementValid; } ); diff --git a/app/code/Magento/Checkout/view/frontend/web/js/overview.js b/app/code/Magento/Checkout/view/frontend/web/js/overview.js index 4ce29e190e4e2b5211de126dd5c0bf36e5111a77..94f918b73e64335f4d1d624959083620151f9afe 100644 --- a/app/code/Magento/Checkout/view/frontend/web/js/overview.js +++ b/app/code/Magento/Checkout/view/frontend/web/js/overview.js @@ -11,13 +11,12 @@ define([ "mage/translate" ], function($){ "use strict"; - + $.widget('mage.orderOverview', { options: { opacity: 0.5, // CSS opacity for the 'Place Order' button when it's clicked and then disabled. pleaseWaitLoader: 'span.please-wait', // 'Submitting order information...' Ajax loader. - placeOrderSubmit: 'button[type="submit"]', // The 'Place Order' button. - agreements: '#checkout-agreements' // Container for all of the checkout agreements and terms/conditions + placeOrderSubmit: 'button[type="submit"]' // The 'Place Order' button. }, /** @@ -29,14 +28,12 @@ define([ }, /** - * Verify that all agreements and terms/conditions are checked. Show the Ajax loader. Disable - * the submit button (i.e. Place Order). + * Show the Ajax loader. Disable the submit button (i.e. Place Order). * @return {Boolean} * @private */ _showLoader: function() { - if ($(this.options.agreements).find('input[type="checkbox"]:not(:checked)').length > 0) { - alert($.mage.__('Please agree to all Terms and Conditions before placing the orders.')); + if (!this.element.validation('isValid')) { return false; } this.element.find(this.options.pleaseWaitLoader).show().end() @@ -44,6 +41,6 @@ define([ return true; } }); - + return $.mage.orderOverview; }); \ No newline at end of file diff --git a/app/code/Magento/Multishipping/Model/Checkout/Type/Multishipping.php b/app/code/Magento/Multishipping/Model/Checkout/Type/Multishipping.php index 50d342810398444f459099af8981fcd8dd34886b..88428925113461785c135c7a63fb0b08e670736c 100644 --- a/app/code/Magento/Multishipping/Model/Checkout/Type/Multishipping.php +++ b/app/code/Magento/Multishipping/Model/Checkout/Type/Multishipping.php @@ -604,10 +604,10 @@ class Multishipping extends \Magento\Framework\Object if ($address->getAddressType() == 'billing') { $order->setIsVirtual(1); } else { - $order->setShippingAddress($this->quoteAddressToOrderAddress->addressToOrderAddress($address)); + $order->setShippingAddress($this->quoteAddressToOrderAddress->convert($address)); } - $order->setPayment($this->quotePaymentToOrderPayment->paymentToOrderPayment($quote->getPayment())); + $order->setPayment($this->quotePaymentToOrderPayment->convert($quote->getPayment())); if ($this->priceCurrency->round($address->getGrandTotal()) == 0) { $order->getPayment()->setMethod('free'); } @@ -622,7 +622,7 @@ class Multishipping extends \Magento\Framework\Object )->setProductOptions( $_quoteItem->getProduct()->getTypeInstance()->getOrderOptions($_quoteItem->getProduct()) ); - $orderItem = $this->quoteItemToOrderItem->itemToOrderItem($item); + $orderItem = $this->quoteItemToOrderItem->convert($_quoteItem); if ($item->getParentItem()) { $orderItem->setParentItem($order->getItemByQuoteItemId($item->getParentItem()->getId())); } diff --git a/app/code/Magento/Multishipping/view/frontend/templates/checkout/overview.phtml b/app/code/Magento/Multishipping/view/frontend/templates/checkout/overview.phtml index 79b0fb5b282c3333b8a6d08b934a28dd2c9dd9a5..2fe3cff1efe414ffe1c30721f2620ee3f1c85d30 100644 --- a/app/code/Magento/Multishipping/view/frontend/templates/checkout/overview.phtml +++ b/app/code/Magento/Multishipping/view/frontend/templates/checkout/overview.phtml @@ -4,7 +4,7 @@ * See COPYING.txt for license details. */ ?> -<form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="review-order-form" data-mage-init='{"orderOverview": {}}' class="form multicheckout order-review"> +<form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="review-order-form" data-mage-init='{"orderOverview": {}, "validation":{}}' class="form multicheckout order-review"> <?php echo $this->getBlockHtml('formkey'); ?> <div class="block block-billing"> <div class="block-title"><strong><?php echo __('Billing Information') ?></strong></div> diff --git a/app/code/Magento/Tax/Model/Quote/ToOrderConverter.php b/app/code/Magento/Tax/Model/Quote/ToOrderConverter.php index 5db47dec6ea8fefee047dd95d3508c231f6f0db7..3bd9d085df8a3bf687e828f3c0d6a8cfb86eda32 100644 --- a/app/code/Magento/Tax/Model/Quote/ToOrderConverter.php +++ b/app/code/Magento/Tax/Model/Quote/ToOrderConverter.php @@ -22,7 +22,7 @@ class ToOrderConverter * @param array $additional * @return array */ - public function beforeConvert(QuoteAddressToOrder $subject, QuoteAddress $address, $additional) + public function beforeConvert(QuoteAddressToOrder $subject, QuoteAddress $address, $additional = []) { $this->quoteAddress = $address; return [$address, $additional]; diff --git a/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/CustomerInjectable.php b/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/CustomerInjectable.php index 8154cf0f2186fa1755228078d7b1a21458e99e5e..1e369f4420ab02afef8680ab4a8d67ff18dd3a5c 100644 --- a/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/CustomerInjectable.php +++ b/dev/tests/functional/tests/app/Magento/Customer/Test/Repository/CustomerInjectable.php @@ -19,6 +19,7 @@ class CustomerInjectable extends AbstractRepository * @param array $defaultData * * @SuppressWarnings(PHPMD.UnusedFormalParameter) + * @SuppressWarnings(PHPMD.ExcessiveMethodLength) */ public function __construct(array $defaultConfig = [], array $defaultData = []) { @@ -116,5 +117,15 @@ class CustomerInjectable extends AbstractRepository 'password_confirmation' => '123123q', 'address' => ['presets' => 'US_address_TX'], ]; + + $this->_data['johndoe_with_multiple_addresses'] = [ + 'firstname' => 'John', + 'lastname' => 'Doe', + 'group_id' => ['dataSet' => 'General'], + 'email' => 'JohnDoe_%isolation%@example.com', + 'password' => '123123q', + 'password_confirmation' => '123123q', + 'address' => ['presets' => 'US_address_NY, US_address'], + ]; } }