commerce-8.x-2.8/modules/order/src/OrderTotalSummary.php
modules/order/src/OrderTotalSummary.php
<?php namespace Drupal\commerce_order; use Drupal\commerce_order\Entity\OrderInterface; class OrderTotalSummary implements OrderTotalSummaryInterface { /** * The adjustment transformer. * * @var \Drupal\commerce_order\AdjustmentTransformerInterface */ protected $adjustmentTransformer; /** * Constructs a new OrderTotalSummary object. * * @param \Drupal\commerce_order\AdjustmentTransformerInterface $adjustment_transformer * The adjustment transformer. */ public function __construct(AdjustmentTransformerInterface $adjustment_transformer) { $this->adjustmentTransformer = $adjustment_transformer; } /** * {@inheritdoc} */ public function buildTotals(OrderInterface $order) { $adjustments = $order->collectAdjustments(); $adjustments = $this->adjustmentTransformer->processAdjustments($adjustments); // 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(), ]; } }