service = $service; $this->order_id = $order_id; parent::__construct($config); } public function getSum(OrderProduct $product): float { return $product->variant->price * $product->count; } public function getTotal(array $products): float { $sum = 0; foreach ($products as $product) { $sum += $this->getSum($product); } $bonus = $this->service->getBonus($this->order_id); return $sum - $bonus; } }