Skip to content

Commit 52b9333

Browse files
committed
Merge remote-tracking branch 'origin/MC-35026' into 2.4-develop-pr34
2 parents 76c9677 + aa68df5 commit 52b9333

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

app/code/Magento/Downloadable/Observer/SaveDownloadableOrderItemObserver.php

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6+
declare(strict_types=1);
7+
68
namespace Magento\Downloadable\Observer;
79

810
use Magento\Framework\Event\ObserverInterface;
@@ -81,12 +83,14 @@ public function __construct(
8183
*/
8284
public function execute(\Magento\Framework\Event\Observer $observer)
8385
{
86+
/** @var \Magento\Sales\Model\Order\Item $orderItem */
8487
$orderItem = $observer->getEvent()->getItem();
8588
if (!$orderItem->getId()) {
8689
//order not saved in the database
8790
return $this;
8891
}
89-
if ($orderItem->getProductType() != \Magento\Downloadable\Model\Product\Type::TYPE_DOWNLOADABLE) {
92+
$productType = $orderItem->getRealProductType() ?: $orderItem->getProductType();
93+
if ($productType !== \Magento\Downloadable\Model\Product\Type::TYPE_DOWNLOADABLE) {
9094
return $this;
9195
}
9296
$product = $orderItem->getProduct();
@@ -112,13 +116,13 @@ public function execute(\Magento\Framework\Event\Observer $observer)
112116
if ($linkIds = $orderItem->getProductOptionByCode('links')) {
113117
$linkPurchased = $this->_createPurchasedModel();
114118
$this->_objectCopyService->copyFieldsetToTarget(
115-
\downloadable_sales_copy_order::class,
119+
'downloadable_sales_copy_order',
116120
'to_downloadable',
117121
$orderItem->getOrder(),
118122
$linkPurchased
119123
);
120124
$this->_objectCopyService->copyFieldsetToTarget(
121-
\downloadable_sales_copy_order_item::class,
125+
'downloadable_sales_copy_order_item',
122126
'to_downloadable',
123127
$orderItem,
124128
$linkPurchased
@@ -131,14 +135,12 @@ public function execute(\Magento\Framework\Event\Observer $observer)
131135
ScopeInterface::SCOPE_STORE
132136
);
133137
$linkPurchased->setLinkSectionTitle($linkSectionTitle)->save();
134-
135138
$linkStatus = \Magento\Downloadable\Model\Link\Purchased\Item::LINK_STATUS_PENDING;
136139
if ($orderStatusToEnableItem == \Magento\Sales\Model\Order\Item::STATUS_PENDING
137140
|| $orderItem->getOrder()->getState() == \Magento\Sales\Model\Order::STATE_COMPLETE
138141
) {
139142
$linkStatus = \Magento\Downloadable\Model\Link\Purchased\Item::LINK_STATUS_AVAILABLE;
140143
}
141-
142144
foreach ($linkIds as $linkId) {
143145
if (isset($links[$linkId])) {
144146
$linkPurchasedItem = $this->_createPurchasedItemModel()->setPurchasedId(
@@ -148,7 +150,7 @@ public function execute(\Magento\Framework\Event\Observer $observer)
148150
);
149151

150152
$this->_objectCopyService->copyFieldsetToTarget(
151-
\downloadable_sales_copy_link::class,
153+
'downloadable_sales_copy_link',
152154
'to_purchased',
153155
$links[$linkId],
154156
$linkPurchasedItem

app/code/Magento/Downloadable/Test/Unit/Observer/SaveDownloadableOrderItemObserverTest.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,6 +176,9 @@ public function testSaveDownloadableOrderItem()
176176
$itemMock->expects($this->any())
177177
->method('getProductType')
178178
->willReturn(DownloadableProductType::TYPE_DOWNLOADABLE);
179+
$itemMock->expects($this->any())
180+
->method('getRealProductType')
181+
->willReturn(DownloadableProductType::TYPE_DOWNLOADABLE);
179182

180183
$this->orderMock->expects($this->once())
181184
->method('getStoreId')
@@ -311,6 +314,9 @@ public function testSaveDownloadableOrderItemSavedPurchasedLink()
311314
$itemMock->expects($this->any())
312315
->method('getProductType')
313316
->willReturn(DownloadableProductType::TYPE_DOWNLOADABLE);
317+
$itemMock->expects($this->any())
318+
->method('getRealProductType')
319+
->willReturn(DownloadableProductType::TYPE_DOWNLOADABLE);
314320

315321
$purchasedLink = $this->getMockBuilder(Purchased::class)
316322
->disableOriginalConstructor()

0 commit comments

Comments
 (0)