@@ -55,6 +55,7 @@ public function __construct(
55
55
56
56
/**
57
57
* @inheritDoc
58
+ *
58
59
* @throws InputException
59
60
*/
60
61
public function saveAddressInformation (
@@ -94,22 +95,7 @@ public function saveAddressInformation(
94
95
private function validateAddressAttributes (AddressInterface $ address , string $ addressType ): void
95
96
{
96
97
try {
97
- $ customerAddress = $ this ->addressFactory ->create ();
98
- $ customerAddress ->setData ([
99
- 'firstname ' => $ address ->getFirstname (),
100
- 'lastname ' => $ address ->getLastname (),
101
- 'street ' => $ address ->getStreet (),
102
- 'city ' => $ address ->getCity (),
103
- 'region ' => $ address ->getRegion (),
104
- 'region_id ' => $ address ->getRegionId (),
105
- 'region_code ' => $ address ->getRegionCode (),
106
- 'postcode ' => $ address ->getPostcode (),
107
- 'country_id ' => $ address ->getCountryId (),
108
- 'telephone ' => $ address ->getTelephone (),
109
- 'company ' => $ address ->getCompany (),
110
- 'email ' => $ address ->getEmail (),
111
- 'address_type ' => $ addressType
112
- ]);
98
+ $ customerAddress = $ this ->createCustomerAddressFromQuoteAddress ($ address , $ addressType );
113
99
$ extensionAttributes = $ address ->getExtensionAttributes ();
114
100
if ($ extensionAttributes ) {
115
101
$ extensionAttributesData = $ extensionAttributes ->__toArray ();
@@ -144,4 +130,36 @@ private function validateAddressAttributes(AddressInterface $address, string $ad
144
130
throw new InputException (__ ($ e ->getMessage ()));
145
131
}
146
132
}
133
+
134
+ /**
135
+ * Create customer address object from quote address
136
+ *
137
+ * @param AddressInterface $address
138
+ * @param string $addressType
139
+ * @return \Magento\Customer\Model\Address
140
+ */
141
+ private function createCustomerAddressFromQuoteAddress (
142
+ AddressInterface $ address ,
143
+ string $ addressType
144
+ ): \Magento \Customer \Model \Address
145
+ {
146
+ $ customerAddress = $ this ->addressFactory ->create ();
147
+ $ customerAddress ->setData ([
148
+ 'firstname ' => $ address ->getFirstname (),
149
+ 'lastname ' => $ address ->getLastname (),
150
+ 'street ' => $ address ->getStreet (),
151
+ 'city ' => $ address ->getCity (),
152
+ 'region ' => $ address ->getRegion (),
153
+ 'region_id ' => $ address ->getRegionId (),
154
+ 'region_code ' => $ address ->getRegionCode (),
155
+ 'postcode ' => $ address ->getPostcode (),
156
+ 'country_id ' => $ address ->getCountryId (),
157
+ 'telephone ' => $ address ->getTelephone (),
158
+ 'company ' => $ address ->getCompany (),
159
+ 'email ' => $ address ->getEmail (),
160
+ 'address_type ' => $ addressType
161
+ ]);
162
+
163
+ return $ customerAddress ;
164
+ }
147
165
}
0 commit comments