diff --git a/vendor/magento/module-company/view/frontend/requirejs-config.js b/vendor/magento/module-company/view/frontend/requirejs-config.js index c21b828b850b..dcd43242252d 100644 --- a/vendor/magento/module-company/view/frontend/requirejs-config.js +++ b/vendor/magento/module-company/view/frontend/requirejs-config.js @@ -18,6 +18,9 @@ var config = { }, 'Magento_NegotiableQuote/js/view/negotiable-quote': { 'Magento_Company/js/view/negotiable-quote-mixin': true + }, + 'Magento_Checkout/js/model/checkout-data-resolver': { + 'Magento_NegotiableQuote/js/model/checkout-data-resolver-mixin': true } } } diff --git a/vendor/magento/module-negotiable-quote/view/frontend/web/js/model/checkout-data-resolver-mixin.js b/vendor/magento/module-negotiable-quote/view/frontend/web/js/model/checkout-data-resolver-mixin.js new file mode 100644 index 000000000000..f66a1840962f --- /dev/null +++ b/vendor/magento/module-negotiable-quote/view/frontend/web/js/model/checkout-data-resolver-mixin.js @@ -0,0 +1,45 @@ +/** + * Copyright © Magento, Inc. All rights reserved. + * See COPYING.txt for license details. + */ + +define([ + 'mage/utils/wrapper', + 'Magento_Checkout/js/action/select-shipping-address', + 'Magento_Customer/js/model/address-list', + 'underscore' +], function ( + wrapper, + selectShippingAddress, + addressList, + _ +) { + 'use strict'; + + return function (checkoutDataResolver) { + checkoutDataResolver.resolveShippingAddress = wrapper.wrapSuper( + checkoutDataResolver.resolveShippingAddress, + function () { + var shippingAddress, + checkoutConfig = window.checkoutConfig; + + if (checkoutConfig.selectedShippingKey && + checkoutConfig.isAddressSelected && + checkoutConfig.isNegotiableQuote + ) { + shippingAddress = _.find( + addressList(), + function (address) { + return checkoutConfig.selectedShippingKey === address.getKey(); + } + ); + if (shippingAddress) { + selectShippingAddress(shippingAddress); + } + } + this._super(); + }); + + return checkoutDataResolver; + }; +});