Skip to content

Commit 0484c7a

Browse files
committed
Merge branch 'develop' into MAGETWO-52374
2 parents 0c0e8a6 + 870bdfb commit 0484c7a

File tree

8 files changed

+496
-43
lines changed

8 files changed

+496
-43
lines changed

app/code/Magento/Checkout/Model/ShippingInformationManagement.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,9 +197,12 @@ private function prepareShippingAssignment(CartInterface $quote, AddressInterfac
197197
if ($cartExtension === null) {
198198
$cartExtension = $this->getCartExtensionFactory()->create();
199199
}
200-
$shippingAssignment = $cartExtension->getShippingAssignments()[0];
201-
if ($cartExtension->getShippingAssignments() === null) {
200+
201+
$shippingAssignments = $cartExtension->getShippingAssignments();
202+
if (empty($shippingAssignments)) {
202203
$shippingAssignment = $this->getShippingAssignmentFactory()->create();
204+
} else {
205+
$shippingAssignment = $shippingAssignments[0];
203206
}
204207

205208
$shipping = $shippingAssignment->getShipping();

app/code/Magento/GiftMessage/Model/Plugin/OrderGet.php

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -47,19 +47,14 @@ public function __construct(
4747
* Get gift message
4848
*
4949
* @param \Magento\Sales\Api\OrderRepositoryInterface $subject
50-
* @param callable $proceed
51-
* @param int $orderId
50+
* @param \Magento\Sales\Api\Data\OrderInterface $resultOrder
5251
* @return \Magento\Sales\Api\Data\OrderInterface
5352
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
5453
*/
55-
public function aroundGet(
54+
public function afterGet(
5655
\Magento\Sales\Api\OrderRepositoryInterface $subject,
57-
\Closure $proceed,
58-
$orderId
56+
\Magento\Sales\Api\Data\OrderInterface $resultOrder
5957
) {
60-
/** @var \Magento\Sales\Api\Data\OrderInterface $resultOrder */
61-
$resultOrder = $proceed($orderId);
62-
6358
$resultOrder = $this->getOrderGiftMessage($resultOrder);
6459
$resultOrder = $this->getOrderItemGiftMessage($resultOrder);
6560

@@ -74,7 +69,8 @@ public function aroundGet(
7469
*/
7570
protected function getOrderGiftMessage(\Magento\Sales\Api\Data\OrderInterface $order)
7671
{
77-
if ($order->getExtensionAttributes() && $order->getExtensionAttributes()->getGiftMessage()) {
72+
$extensionAttributes = $order->getExtensionAttributes();
73+
if ($extensionAttributes && $extensionAttributes->getGiftMessage()) {
7874
return $order;
7975
}
8076

@@ -86,7 +82,7 @@ protected function getOrderGiftMessage(\Magento\Sales\Api\Data\OrderInterface $o
8682
}
8783

8884
/** @var \Magento\Sales\Api\Data\OrderExtension $orderExtension */
89-
$orderExtension = $this->orderExtensionFactory->create();
85+
$orderExtension = $extensionAttributes ? $extensionAttributes : $this->orderExtensionFactory->create();
9086
$orderExtension->setGiftMessage($giftMessage);
9187
$order->setExtensionAttributes($orderExtension);
9288

@@ -101,10 +97,12 @@ protected function getOrderGiftMessage(\Magento\Sales\Api\Data\OrderInterface $o
10197
*/
10298
protected function getOrderItemGiftMessage(\Magento\Sales\Api\Data\OrderInterface $order)
10399
{
104-
if (null !== $order->getItems()) {
100+
$orderItems = $order->getItems();
101+
if (null !== $orderItems) {
105102
/** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */
106-
foreach ($order->getItems() as $orderItem) {
107-
if ($orderItem->getExtensionAttributes() && $orderItem->getExtensionAttributes()->getGiftMessage()) {
103+
foreach ($orderItems as $orderItem) {
104+
$extensionAttributes = $orderItem->getExtensionAttributes();
105+
if ($extensionAttributes && $extensionAttributes->getGiftMessage()) {
108106
continue;
109107
}
110108

@@ -119,7 +117,9 @@ protected function getOrderItemGiftMessage(\Magento\Sales\Api\Data\OrderInterfac
119117
}
120118

121119
/** @var \Magento\Sales\Api\Data\OrderItemExtension $orderItemExtension */
122-
$orderItemExtension = $this->orderItemExtensionFactory->create();
120+
$orderItemExtension = $extensionAttributes
121+
? $extensionAttributes
122+
: $this->orderItemExtensionFactory->create();
123123
$orderItemExtension->setGiftMessage($giftMessage);
124124
$orderItem->setExtensionAttributes($orderItemExtension);
125125
}

app/code/Magento/GiftMessage/Model/Plugin/OrderSave.php

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -35,18 +35,16 @@ public function __construct(
3535
* Save gift message
3636
*
3737
* @param \Magento\Sales\Api\OrderRepositoryInterface $subject
38-
* @param callable $proceed
39-
* @param \Magento\Sales\Api\Data\OrderInterface $order
38+
* @param \Magento\Sales\Api\Data\OrderInterface $resultOrder
4039
* @return \Magento\Sales\Api\Data\OrderInterface
4140
* @SuppressWarnings(PHPMD.UnusedFormalParameter)
41+
* @throws CouldNotSaveException
4242
*/
43-
public function aroundSave(
43+
public function afterSave(
4444
\Magento\Sales\Api\OrderRepositoryInterface $subject,
45-
\Closure $proceed,
46-
\Magento\Sales\Api\Data\OrderInterface $order
45+
\Magento\Sales\Api\Data\OrderInterface $resultOrder
4746
) {
4847
/** @var \Magento\Sales\Api\Data\OrderInterface $resultOrder */
49-
$resultOrder = $proceed($order);
5048
$resultOrder = $this->saveOrderGiftMessage($resultOrder);
5149
$resultOrder = $this->saveOrderItemGiftMessage($resultOrder);
5250

@@ -58,24 +56,24 @@ public function aroundSave(
5856
*
5957
* @param \Magento\Sales\Api\Data\OrderInterface $order
6058
* @return \Magento\Sales\Api\Data\OrderInterface
59+
* @throws CouldNotSaveException
6160
*/
6261
protected function saveOrderGiftMessage(\Magento\Sales\Api\Data\OrderInterface $order)
6362
{
63+
$extensionAttributes = $order->getExtensionAttributes();
6464
if (
65-
null !== $order->getExtensionAttributes() &&
66-
null !== $order->getExtensionAttributes()->getGiftMessage()
65+
null !== $extensionAttributes &&
66+
null !== $extensionAttributes->getGiftMessage()
6767
) {
6868
/* @var \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage */
69-
$giftMessage = $order->getExtensionAttributes()->getGiftMessage();
70-
if (null !== $giftMessage) {
71-
try {
72-
$this->giftMessageOrderRepository->save($order->getEntityId(), $giftMessage);
73-
} catch (\Exception $e) {
74-
throw new CouldNotSaveException(
75-
__('Could not add gift message to order: "%1"', $e->getMessage()),
76-
$e
77-
);
78-
}
69+
$giftMessage = $extensionAttributes->getGiftMessage();
70+
try {
71+
$this->giftMessageOrderRepository->save($order->getEntityId(), $giftMessage);
72+
} catch (\Exception $e) {
73+
throw new CouldNotSaveException(
74+
__('Could not add gift message to order: "%1"', $e->getMessage()),
75+
$e
76+
);
7977
}
8078
}
8179
return $order;
@@ -86,18 +84,21 @@ protected function saveOrderGiftMessage(\Magento\Sales\Api\Data\OrderInterface $
8684
*
8785
* @param \Magento\Sales\Api\Data\OrderInterface $order
8886
* @return \Magento\Sales\Api\Data\OrderInterface
87+
* @throws CouldNotSaveException
8988
*/
9089
protected function saveOrderItemGiftMessage(\Magento\Sales\Api\Data\OrderInterface $order)
9190
{
92-
if (null !== $order->getItems()) {
91+
$items = $order->getItems();
92+
if (null !== $items) {
9393
/** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */
94-
foreach ($order->getItems() as $orderItem) {
94+
foreach ($items as $orderItem) {
95+
$extensionAttribute = $orderItem->getExtensionAttributes();
9596
if (
96-
null !== $orderItem->getExtensionAttributes() &&
97-
null !== $orderItem->getExtensionAttributes()->getGiftMessage()
97+
null !== $extensionAttribute &&
98+
null !== $extensionAttribute->getGiftMessage()
9899
) {
99100
/* @var \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage */
100-
$giftMessage = $orderItem->getExtensionAttributes()->getGiftMessage();
101+
$giftMessage = $extensionAttribute->getGiftMessage();
101102
try {
102103
$this->giftMessageOrderItemRepository->save(
103104
$order->getEntityId(),

0 commit comments

Comments
 (0)