Skip to content

Commit 7145168

Browse files
author
Anna Bukatar
committed
ACP2E-651: Orders Api zero row total issue for order items with discounts
1 parent e71f154 commit 7145168

File tree

1 file changed

+21
-5
lines changed

1 file changed

+21
-5
lines changed

app/code/Magento/Sales/Model/Order/Webapi/ChangeOutputArray.php

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,15 +49,31 @@ public function execute(
4949
OrderItemInterface $dataObject,
5050
array $result
5151
): array {
52-
$result[OrderItemInterface::ROW_TOTAL] = $this->priceRenderer->getTotalAmount($dataObject);
53-
$result[OrderItemInterface::BASE_ROW_TOTAL] = $this->priceRenderer->getBaseTotalAmount($dataObject);
54-
$result[OrderItemInterface::ROW_TOTAL_INCL_TAX] = $this->defaultRenderer->getTotalAmount($dataObject);
55-
$result[OrderItemInterface::BASE_ROW_TOTAL_INCL_TAX] = $dataObject->getBaseRowTotal()
52+
$result[OrderItemInterface::ROW_TOTAL] = $this->round($this->priceRenderer->getTotalAmount($dataObject));
53+
$result[OrderItemInterface::BASE_ROW_TOTAL] = $this->round(
54+
$this->priceRenderer->getBaseTotalAmount($dataObject)
55+
);
56+
$result[OrderItemInterface::ROW_TOTAL_INCL_TAX] = $this->round(
57+
$this->defaultRenderer->getTotalAmount($dataObject)
58+
);
59+
$result[OrderItemInterface::BASE_ROW_TOTAL_INCL_TAX] = $this->round($dataObject->getBaseRowTotal()
5660
+ $dataObject->getBaseTaxAmount()
5761
+ $dataObject->getBaseDiscountTaxCompensationAmount()
5862
+ $dataObject->getBaseWeeeTaxAppliedAmount()
59-
- $dataObject->getBaseDiscountAmount();
63+
- $dataObject->getBaseDiscountAmount()
64+
);
6065

6166
return $result;
6267
}
68+
69+
/**
70+
* Remove negative values from row totals
71+
*
72+
* @param float $value
73+
* @return mixed
74+
*/
75+
private function round(float $value)
76+
{
77+
return max($value, 0);
78+
}
6379
}

0 commit comments

Comments
 (0)