Skip to content

Commit dd7533e

Browse files
committed
ACP2E-3402: Checkout shipping address form get update with wrong address
1 parent 712addd commit dd7533e

File tree

2 files changed

+32
-15
lines changed

2 files changed

+32
-15
lines changed

app/code/Magento/Checkout/view/frontend/web/js/checkout-data.js

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ define([
1717
'use strict';
1818

1919
var cacheKey = 'checkout-data',
20+
storeCode = window.checkoutConfig.storeCode,
2021

2122
/**
2223
* @param {Object} data
@@ -57,6 +58,20 @@ define([
5758
}
5859

5960
return data;
61+
},
62+
getShippingAddressByStore = function (shippingAddressObj) {
63+
if (!shippingAddressObj) {
64+
return null;
65+
}
66+
67+
return shippingAddressObj[storeCode];
68+
},
69+
setShippingAddressByStore = function (shippingAddressObj, data) {
70+
if (!shippingAddressObj) {
71+
shippingAddressObj = {};
72+
}
73+
shippingAddressObj[storeCode] = utils.filterFormData(data);
74+
return shippingAddressObj;
6075
};
6176

6277
return {
@@ -87,13 +102,9 @@ define([
87102
* @param {Object} data
88103
*/
89104
setShippingAddressFromData: function (data) {
90-
let obj = getData(),
91-
storeCode = window.checkoutConfig.storeCode;
105+
let obj = getData();
92106

93-
if (!obj.shippingAddressFromData) {
94-
obj.shippingAddressFromData = {};
95-
}
96-
obj.shippingAddressFromData[storeCode] = utils.filterFormData(data);
107+
obj.shippingAddressFromData = setShippingAddressByStore(obj.shippingAddressFromData, data);
97108
saveData(obj);
98109
},
99110

@@ -103,13 +114,7 @@ define([
103114
* @return {*}
104115
*/
105116
getShippingAddressFromData: function () {
106-
let storeCode = window.checkoutConfig.storeCode;
107-
108-
if (!getData().shippingAddressFromData) {
109-
return null;
110-
}
111-
112-
return getData().shippingAddressFromData[storeCode];
117+
return getShippingAddressByStore(getData().shippingAddressFromData);
113118
},
114119

115120
/**
@@ -120,7 +125,7 @@ define([
120125
setNewCustomerShippingAddress: function (data) {
121126
var obj = getData();
122127

123-
obj.newCustomerShippingAddress = data;
128+
obj.newCustomerShippingAddress = setShippingAddressByStore(obj.newCustomerShippingAddress, data);
124129
saveData(obj);
125130
},
126131

@@ -130,7 +135,7 @@ define([
130135
* @return {*}
131136
*/
132137
getNewCustomerShippingAddress: function () {
133-
return getData().newCustomerShippingAddress;
138+
return getShippingAddressByStore(getData().newCustomerShippingAddress);
134139
},
135140

136141
/**

dev/tests/js/jasmine/tests/app/code/Magento/Checkout/frontend/js/view/checkout-data.test.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,5 +57,17 @@ define([
5757

5858
expect(address).toEqual(testData.shippingAddressFromData.base);
5959
});
60+
61+
it('should save new customer shipping address per website', function () {
62+
checkoutData.setNewCustomerShippingAddress({address1: 'address1'});
63+
expect(mocks['Magento_Customer/js/customer-data'].set).
64+
toHaveBeenCalledWith(cacheKey, jasmine.objectContaining(testData));
65+
});
66+
67+
it('should get new customer shipping address from data per website', function () {
68+
let address = checkoutData.getNewCustomerShippingAddress();
69+
70+
expect(address).toEqual(testData.shippingAddressFromData.base);
71+
});
6072
});
6173
});

0 commit comments

Comments
 (0)