public function OrderTotalSummary::buildTotals in Commerce Core 8.2
Builds the totals for the given order.
Parameters
\Drupal\commerce_order\Entity\OrderInterface $order: The order.
Return value
array An array of totals with the following elements:
- subtotal: The order subtotal price.
- adjustments: The adjustments:
- type: The adjustment type.
- label: The adjustment label.
- amount: The adjustment amount.
- percentage: The decimal adjustment percentage, when available.
- total: The order total price.
Overrides OrderTotalSummaryInterface::buildTotals
File
- modules/
order/ src/ OrderTotalSummary.php, line 29
Class
Namespace
Drupal\commerce_orderCode
public function buildTotals(OrderInterface $order) {
$adjustments = $order
->collectAdjustments();
$adjustments = $this->adjustmentTransformer
->processAdjustments($adjustments);
// Included adjustments are not displayed to the customer, they
// exist to allow the developer to know what the price is made of.
// The one exception is taxes, which need to be shown for legal reasons.
$adjustments = array_filter($adjustments, function (Adjustment $adjustment) {
return $adjustment
->getType() == 'tax' || !$adjustment
->isIncluded();
});
// Convert the adjustments to arrays.
$adjustments = array_map(function (Adjustment $adjustment) {
return $adjustment
->toArray();
}, $adjustments);
// Provide the "total" key for backwards compatibility reasons.
foreach ($adjustments as $index => $adjustment) {
$adjustments[$index]['total'] = $adjustments[$index]['amount'];
}
return [
'subtotal' => $order
->getSubtotalPrice(),
'adjustments' => $adjustments,
'total' => $order
->getTotalPrice(),
];
}