|
23 | 23 | use Magento\Framework\App\ObjectManager;
|
24 | 24 | use Magento\Framework\Math\Random;
|
25 | 25 | use Magento\Framework\Indexer\IndexerInterface;
|
| 26 | +use Magento\Framework\Data\Collection; |
26 | 27 |
|
27 | 28 | /**
|
28 | 29 | * Customer model
|
@@ -342,21 +343,25 @@ public function _construct()
|
342 | 343 | public function getDataModel()
|
343 | 344 | {
|
344 | 345 | $customerData = $this->getData();
|
345 |
| - $addressesData = []; |
| 346 | + $regularAddresses = $defaultAddresses = []; |
346 | 347 | /** @var \Magento\Customer\Model\Address $address */
|
347 | 348 | foreach ($this->getAddresses() as $address) {
|
348 | 349 | if (!isset($this->storedAddress[$address->getId()])) {
|
349 | 350 | $this->storedAddress[$address->getId()] = $address->getDataModel();
|
350 | 351 | }
|
351 |
| - $addressesData[] = $this->storedAddress[$address->getId()]; |
| 352 | + if ($this->storedAddress[$address->getId()]->isDefaultShipping()) { |
| 353 | + $defaultAddresses[] = $this->storedAddress[$address->getId()]; |
| 354 | + } else { |
| 355 | + $regularAddresses[] = $this->storedAddress[$address->getId()]; |
| 356 | + } |
352 | 357 | }
|
353 | 358 | $customerDataObject = $this->customerDataFactory->create();
|
354 | 359 | $this->dataObjectHelper->populateWithArray(
|
355 | 360 | $customerDataObject,
|
356 | 361 | $customerData,
|
357 | 362 | \Magento\Customer\Api\Data\CustomerInterface::class
|
358 | 363 | );
|
359 |
| - $customerDataObject->setAddresses($addressesData) |
| 364 | + $customerDataObject->setAddresses(array_merge($defaultAddresses, $regularAddresses)) |
360 | 365 | ->setId($this->getId());
|
361 | 366 | return $customerDataObject;
|
362 | 367 | }
|
@@ -547,7 +552,7 @@ public function getAddressesCollection()
|
547 | 552 | $this
|
548 | 553 | )->addAttributeToSelect(
|
549 | 554 | '*'
|
550 |
| - ); |
| 555 | + )->setOrder('default', Collection::SORT_ORDER_DESC); |
551 | 556 | foreach ($this->_addressesCollection as $address) {
|
552 | 557 | $address->setCustomer($this);
|
553 | 558 | }
|
|
0 commit comments