session->getCustomer()->getName()); } public function getPoints(): int { $account = $this->balances->getAccount( (int)$this->session->getCustomerId(), (int)$this->_storeManager->getWebsite()->getId() ); return (int)($account['balance'] ?? 0); } public function getCounts(): array { $counts = $this->orders->getStatusCounts((int)$this->session->getCustomerId()); $counts['awaiting_review'] = $this->awaitingReviews->getCount((int)$this->session->getCustomerId()); return $counts; } public function getLatestPending(): ?\Magento\Sales\Model\Order { return $this->orders->getLatestPending((int)$this->session->getCustomerId()); } public function getAvailableCoupons(): array { $items = $this->coupons->getForCustomer( (int)$this->session->getCustomerId(), (int)$this->_storeManager->getWebsite()->getId(), (int)$this->session->getCustomerGroupId() ); return array_slice(array_values(array_filter($items, static fn(array $item): bool => $item['status'] === 'available')), 0, 2); } public function getWishlistItems(): array { $collection = $this->wishlist->getWishlistItemCollection(); $collection->setPageSize(4)->setCurPage(1); return array_values($collection->getItems()); } public function getProductImageUrl(\Magento\Catalog\Model\Product $product): string { return $this->imageHelper->init($product, 'wishlist_thumbnail')->getUrl(); } public function getOrderItemImageUrl(\Magento\Sales\Model\Order\Item $item): string { $product = $item->getProduct(); return $product ? $this->getProductImageUrl($product) : $this->imageHelper->getDefaultPlaceholderUrl('thumbnail'); } }