diff --git a/app/code/Magento/Downloadable/Observer/SaveDownloadableOrderItemObserver.php b/app/code/Magento/Downloadable/Observer/SaveDownloadableOrderItemObserver.php index 4f7939da478fa..1fed1626b260e 100644 --- a/app/code/Magento/Downloadable/Observer/SaveDownloadableOrderItemObserver.php +++ b/app/code/Magento/Downloadable/Observer/SaveDownloadableOrderItemObserver.php @@ -86,7 +86,9 @@ public function execute(\Magento\Framework\Event\Observer $observer) //order not saved in the database return $this; } - if ($orderItem->getProductType() != \Magento\Downloadable\Model\Product\Type::TYPE_DOWNLOADABLE) { + if ($orderItem->getProductType() !== \Magento\Downloadable\Model\Product\Type::TYPE_DOWNLOADABLE + && $orderItem->getRealProductType() !== \Magento\Downloadable\Model\Product\Type::TYPE_DOWNLOADABLE + ) { return $this; } $product = $orderItem->getProduct(); @@ -131,14 +133,12 @@ public function execute(\Magento\Framework\Event\Observer $observer) ScopeInterface::SCOPE_STORE ); $linkPurchased->setLinkSectionTitle($linkSectionTitle)->save(); - $linkStatus = \Magento\Downloadable\Model\Link\Purchased\Item::LINK_STATUS_PENDING; if ($orderStatusToEnableItem == \Magento\Sales\Model\Order\Item::STATUS_PENDING || $orderItem->getOrder()->getState() == \Magento\Sales\Model\Order::STATE_COMPLETE ) { $linkStatus = \Magento\Downloadable\Model\Link\Purchased\Item::LINK_STATUS_AVAILABLE; } - foreach ($linkIds as $linkId) { if (isset($links[$linkId])) { $linkPurchasedItem = $this->_createPurchasedItemModel()->setPurchasedId( @@ -146,7 +146,6 @@ public function execute(\Magento\Framework\Event\Observer $observer) )->setOrderItemId( $orderItem->getId() ); - $this->_objectCopyService->copyFieldsetToTarget( \downloadable_sales_copy_link::class, 'to_purchased',