Skip to content

Commit 4c89e34

Browse files
MAGETWO-64544: When logged in customer edits a new shipping address during checkout they are unable to place the order #6488
1 parent 9990dd4 commit 4c89e34

File tree

2 files changed

+24
-9
lines changed

2 files changed

+24
-9
lines changed

app/code/Magento/Checkout/view/frontend/web/js/model/shipping-rates-validator.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ define([
1515
'./postcode-validator',
1616
'mage/translate',
1717
'uiRegistry',
18+
'Magento_Checkout/js/model/shipping-address/form-popup-state',
1819
'Magento_Checkout/js/model/quote'
1920
], function (
2021
$,
@@ -24,7 +25,8 @@ define([
2425
selectShippingAddress,
2526
postcodeValidator,
2627
$t,
27-
uiRegistry
28+
uiRegistry,
29+
formPopUpState
2830
) {
2931
'use strict';
3032

@@ -127,11 +129,13 @@ define([
127129
});
128130
} else {
129131
element.on('value', function () {
130-
clearTimeout(self.validateAddressTimeout);
131-
self.validateAddressTimeout = setTimeout(function () {
132-
self.postcodeValidation();
133-
self.validateFields();
134-
}, delay);
132+
if (!formPopUpState.isVisible()) {
133+
clearTimeout(self.validateAddressTimeout);
134+
self.validateAddressTimeout = setTimeout(function () {
135+
self.postcodeValidation();
136+
self.validateFields();
137+
}, delay);
138+
}
135139
});
136140
observedElements.push(element);
137141
}

app/code/Magento/Checkout/view/frontend/web/js/view/shipping.js

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,18 @@ define([
6060
template: 'Magento_Checkout/shipping',
6161
shippingFormTemplate: 'Magento_Checkout/shipping-address/form',
6262
shippingMethodListTemplate: 'Magento_Checkout/shipping-address/shipping-method-list',
63-
shippingMethodItemTemplate: 'Magento_Checkout/shipping-address/shipping-method-item'
63+
shippingMethodItemTemplate: 'Magento_Checkout/shipping-address/shipping-method-item',
64+
saveInAddressBook: 1,
65+
links: {
66+
saveInAddressBook: '${ $.provider }:shippingAddress.save_in_address_book'
67+
}
6468
},
6569
visible: ko.observable(!quote.isVirtual()),
6670
errorValidationMessage: ko.observable(false),
6771
isCustomerLoggedIn: customer.isLoggedIn,
6872
isFormPopUpVisible: formPopUpState.isVisible,
6973
isFormInline: addressList().length === 0,
7074
isNewAddressAdded: ko.observable(false),
71-
saveInAddressBook: 1,
7275
quoteIsVirtual: quote.isVirtual(),
7376

7477
/**
@@ -126,6 +129,14 @@ define([
126129
return this;
127130
},
128131

132+
/** @inheritdoc */
133+
initObservable: function () {
134+
this._super()
135+
.observe('saveInAddressBook');
136+
137+
return this;
138+
},
139+
129140
/**
130141
* Load data from server for shipping step
131142
*/
@@ -189,7 +200,7 @@ define([
189200
if (!this.source.get('params.invalid')) {
190201
addressData = this.source.get('shippingAddress');
191202
// if user clicked the checkbox, its value is true or false. Need to convert.
192-
addressData['save_in_address_book'] = this.saveInAddressBook ? 1 : 0;
203+
addressData['save_in_address_book'] = this.saveInAddressBook() ? 1 : 0;
193204

194205
// New address must be selected as a shipping address
195206
newShippingAddress = createShippingAddress(addressData);

0 commit comments

Comments
 (0)