1010use Magento \Catalog \Api \Data \ProductInterface ;
1111use Magento \Catalog \Api \ProductRepositoryInterface ;
1212use Magento \Framework \Api \SearchCriteriaBuilder ;
13+ use Magento \Framework \App \ObjectManager ;
1314use Magento \Sales \Api \Data \OrderInterface ;
1415use Magento \Sales \Api \Data \OrderItemInterface ;
1516use Magento \Sales \Api \OrderItemRepositoryInterface ;
1617use Magento \Sales \Api \OrderRepositoryInterface ;
17- use Magento \Framework \App \ObjectManager ;
18+ use Magento \SalesRule \Api \Data \DiscountAppliedToInterface as DiscountAppliedTo ;
19+
1820use Magento \Tax \Helper \Data as TaxHelper ;
1921
2022/**
@@ -240,6 +242,7 @@ private function getDiscountDetails(OrderInterface $associatedOrder, OrderItemIn
240242 } else {
241243 $ discounts [] = [
242244 'label ' => $ associatedOrder ->getDiscountDescription () ?? __ ('Discount ' ),
245+ 'applied_to ' => $ this ->getAppliedTo ($ associatedOrder ),
243246 'amount ' => [
244247 'value ' => abs ((float ) $ orderItem ->getDiscountAmount ()),
245248 'currency ' => $ associatedOrder ->getOrderCurrencyCode ()
@@ -248,4 +251,18 @@ private function getDiscountDetails(OrderInterface $associatedOrder, OrderItemIn
248251 }
249252 return $ discounts ;
250253 }
254+
255+ /**
256+ * Get entity type the discount is applied to
257+ *
258+ * @param OrderInterface $order
259+ * @return string
260+ */
261+ public function getAppliedTo ($ order )
262+ {
263+ if ((float ) $ order ->getShippingDiscountAmount () > 0 ) {
264+ return DiscountAppliedTo::APPLIED_TO_SHIPPING ;
265+ }
266+ return DiscountAppliedTo::APPLIED_TO_ITEM ;
267+ }
251268}
0 commit comments