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 ;
1819use Magento \Tax \Helper \Data as TaxHelper ;
1920
2021/**
@@ -240,6 +241,7 @@ private function getDiscountDetails(OrderInterface $associatedOrder, OrderItemIn
240241 } else {
241242 $ discounts [] = [
242243 'label ' => $ associatedOrder ->getDiscountDescription () ?? __ ('Discount ' ),
244+ 'applied_to ' => $ this ->getAppliedTo ($ associatedOrder ),
243245 'amount ' => [
244246 'value ' => abs ((float ) $ orderItem ->getDiscountAmount ()),
245247 'currency ' => $ associatedOrder ->getOrderCurrencyCode ()
@@ -248,4 +250,18 @@ private function getDiscountDetails(OrderInterface $associatedOrder, OrderItemIn
248250 }
249251 return $ discounts ;
250252 }
253+
254+ /**
255+ * Get entity type the discount is applied to
256+ *
257+ * @param OrderInterface $order
258+ * @return string
259+ */
260+ private function getAppliedTo ($ order )
261+ {
262+ if ((float ) $ order ->getShippingDiscountAmount () > 0 ) {
263+ return DiscountAppliedTo::APPLIED_TO_SHIPPING ;
264+ }
265+ return DiscountAppliedTo::APPLIED_TO_ITEM ;
266+ }
251267}
0 commit comments