Skip to content

Commit a6f460d

Browse files
fixed refund issue for downloadable items
1 parent 8d90d12 commit a6f460d

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ public function execute(\Magento\Framework\Event\Observer $observer)
6161
'payment_pending' => \Magento\Downloadable\Model\Link\Purchased\Item::LINK_STATUS_PENDING_PAYMENT,
6262
'payment_review' => \Magento\Downloadable\Model\Link\Purchased\Item::LINK_STATUS_PAYMENT_REVIEW,
6363
];
64+
$expiredOrderItemIds = [];
6465

6566
$downloadableItemsStatuses = [];
6667
$orderItemStatusToEnable = $this->_scopeConfig->getValue(
@@ -114,6 +115,10 @@ public function execute(\Magento\Framework\Event\Observer $observer)
114115
if (in_array($item->getStatusId(), $availableStatuses)) {
115116
$downloadableItemsStatuses[$item->getId()] = $linkStatuses['avail'];
116117
}
118+
119+
if ($item->getQtyOrdered() - $item->getQtyRefunded() == 0) {
120+
$expiredOrderItemIds[] = $item->getId();
121+
}
117122
}
118123
}
119124
}
@@ -141,6 +146,16 @@ public function execute(\Magento\Framework\Event\Observer $observer)
141146
}
142147
}
143148

149+
if ($expiredOrderItemIds) {
150+
$linkPurchased = $this->_createItemsCollection()->addFieldToFilter(
151+
'order_item_id',
152+
['in' => $expiredOrderItemIds]
153+
);
154+
foreach ($linkPurchased as $link) {
155+
$link->setStatus(\Magento\Downloadable\Model\Link\Purchased\Item::LINK_STATUS_EXPIRED)->save();
156+
}
157+
}
158+
144159
return $this;
145160
}
146161

0 commit comments

Comments
 (0)