diff --git a/app/code/Magento/Downloadable/Observer/SaveDownloadableOrderItemObserver.php b/app/code/Magento/Downloadable/Observer/SaveDownloadableOrderItemObserver.php index 7c1d2748a3e9c..4f7939da478fa 100644 --- a/app/code/Magento/Downloadable/Observer/SaveDownloadableOrderItemObserver.php +++ b/app/code/Magento/Downloadable/Observer/SaveDownloadableOrderItemObserver.php @@ -131,6 +131,14 @@ 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( @@ -158,9 +166,7 @@ public function execute(\Magento\Framework\Event\Observer $observer) )->setNumberOfDownloadsBought( $numberOfDownloads )->setStatus( - \Magento\Sales\Model\Order\Item::STATUS_PENDING == $orderStatusToEnableItem ? - \Magento\Downloadable\Model\Link\Purchased\Item::LINK_STATUS_AVAILABLE : - \Magento\Downloadable\Model\Link\Purchased\Item::LINK_STATUS_PENDING + $linkStatus )->setCreatedAt( $orderItem->getCreatedAt() )->setUpdatedAt( @@ -170,7 +176,6 @@ public function execute(\Magento\Framework\Event\Observer $observer) } } } - return $this; }