3
3
* Copyright © Magento, Inc. All rights reserved.
4
4
* See COPYING.txt for license details.
5
5
*/
6
+ declare (strict_types=1 );
7
+
6
8
namespace Magento \Downloadable \Observer ;
7
9
8
10
use Magento \Framework \Event \ObserverInterface ;
@@ -81,12 +83,14 @@ public function __construct(
81
83
*/
82
84
public function execute (\Magento \Framework \Event \Observer $ observer )
83
85
{
86
+ /** @var \Magento\Sales\Model\Order\Item $orderItem */
84
87
$ orderItem = $ observer ->getEvent ()->getItem ();
85
88
if (!$ orderItem ->getId ()) {
86
89
//order not saved in the database
87
90
return $ this ;
88
91
}
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 ) {
90
94
return $ this ;
91
95
}
92
96
$ product = $ orderItem ->getProduct ();
@@ -112,13 +116,13 @@ public function execute(\Magento\Framework\Event\Observer $observer)
112
116
if ($ linkIds = $ orderItem ->getProductOptionByCode ('links ' )) {
113
117
$ linkPurchased = $ this ->_createPurchasedModel ();
114
118
$ this ->_objectCopyService ->copyFieldsetToTarget (
115
- \ downloadable_sales_copy_order::class ,
119
+ ' downloadable_sales_copy_order ' ,
116
120
'to_downloadable ' ,
117
121
$ orderItem ->getOrder (),
118
122
$ linkPurchased
119
123
);
120
124
$ this ->_objectCopyService ->copyFieldsetToTarget (
121
- \ downloadable_sales_copy_order_item::class ,
125
+ ' downloadable_sales_copy_order_item ' ,
122
126
'to_downloadable ' ,
123
127
$ orderItem ,
124
128
$ linkPurchased
@@ -131,14 +135,12 @@ public function execute(\Magento\Framework\Event\Observer $observer)
131
135
ScopeInterface::SCOPE_STORE
132
136
);
133
137
$ linkPurchased ->setLinkSectionTitle ($ linkSectionTitle )->save ();
134
-
135
138
$ linkStatus = \Magento \Downloadable \Model \Link \Purchased \Item::LINK_STATUS_PENDING ;
136
139
if ($ orderStatusToEnableItem == \Magento \Sales \Model \Order \Item::STATUS_PENDING
137
140
|| $ orderItem ->getOrder ()->getState () == \Magento \Sales \Model \Order::STATE_COMPLETE
138
141
) {
139
142
$ linkStatus = \Magento \Downloadable \Model \Link \Purchased \Item::LINK_STATUS_AVAILABLE ;
140
143
}
141
-
142
144
foreach ($ linkIds as $ linkId ) {
143
145
if (isset ($ links [$ linkId ])) {
144
146
$ linkPurchasedItem = $ this ->_createPurchasedItemModel ()->setPurchasedId (
@@ -148,7 +150,7 @@ public function execute(\Magento\Framework\Event\Observer $observer)
148
150
);
149
151
150
152
$ this ->_objectCopyService ->copyFieldsetToTarget (
151
- \ downloadable_sales_copy_link::class ,
153
+ ' downloadable_sales_copy_link ' ,
152
154
'to_purchased ' ,
153
155
$ links [$ linkId ],
154
156
$ linkPurchasedItem
0 commit comments