Skip to content

Commit c1b7c35

Browse files
committed
MAGETWO-52079: [GITHUB] Order Repository GetList Method always returns the same shipping address for all orders #4019
1 parent 11baefd commit c1b7c35

File tree

2 files changed

+24
-10
lines changed

2 files changed

+24
-10
lines changed

app/code/Magento/Sales/Model/OrderRepository.php

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
use Magento\Framework\Exception\NoSuchEntityException;
1717
use Magento\Framework\Exception\InputException;
1818
use Magento\Framework\Api\SortOrder;
19-
use Magento\Framework\App\ObjectManager;
2019

2120
/**
2221
* Repository class for @see OrderInterface
@@ -34,6 +33,16 @@ class OrderRepository implements \Magento\Sales\Api\OrderRepositoryInterface
3433
*/
3534
protected $searchResultFactory = null;
3635

36+
/**
37+
* @var OrderExtension
38+
*/
39+
private $orderExtension;
40+
41+
/**
42+
* @var ShippingAssignmentBuilder
43+
*/
44+
private $shippingAssignmentBuilder;
45+
3746
/**
3847
* OrderInterface[]
3948
*
@@ -164,7 +173,7 @@ private function setShippingAssignments(OrderInterface $order)
164173
$extensionAttributes = $order->getExtensionAttributes();
165174

166175
if ($extensionAttributes === null) {
167-
$extensionAttributes = $this->getOrderExtensionDependency();
176+
$extensionAttributes = $this->getOrderExtensionDependency()->create();
168177
} elseif ($extensionAttributes->getShippingAssignments() !== null) {
169178
return;
170179
}
@@ -182,10 +191,12 @@ private function setShippingAssignments(OrderInterface $order)
182191
*/
183192
private function getOrderExtensionDependency()
184193
{
185-
186-
return ObjectManager::getInstance()->create(
187-
'\Magento\Sales\Api\Data\OrderExtension'
188-
);
194+
if (!$this->orderExtension instanceof OrderExtension) {
195+
$this->orderExtension = \Magento\Framework\App\ObjectManager::getInstance()->get(
196+
'\Magento\Sales\Api\Data\OrderExtensionFactory'
197+
);
198+
}
199+
return $this->orderExtension;
189200
}
190201

191202
/**
@@ -196,9 +207,12 @@ private function getOrderExtensionDependency()
196207
*/
197208
private function getShippingAssignmentBuilderDependency()
198209
{
199-
return ObjectManager::getInstance()->create(
200-
'\Magento\Sales\Model\Order\ShippingAssignmentBuilder'
201-
);
210+
if (!$this->shippingAssignmentBuilder instanceof ShippingAssignmentBuilder) {
211+
$this->shippingAssignmentBuilder = \Magento\Framework\App\ObjectManager::getInstance()->get(
212+
'\Magento\Sales\Model\Order\ShippingAssignmentBuilder'
213+
);
214+
}
215+
return $this->shippingAssignmentBuilder;
202216
}
203217

204218
/**

app/code/Magento/Sales/Test/Unit/Model/OrderRepositoryTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public function testGetList()
7575

7676
$extensionAttributes = $this->getMock(
7777
'\Magento\Sales\Api\Data\OrderExtension',
78-
['getShippingAssignments'],
78+
[],
7979
[],
8080
'',
8181
false

0 commit comments

Comments
 (0)