@for (range of ranges; track range) { {{ range }}d }
{{ 'adminAnalytics.print' | translate }} {{ 'adminOrders.export' | translate }}
@for (tab of tabs; track tab) { }
@if (activeTab() === 'overview') {
@if (facade.loading()) {
@for (i of [1,2,3,4,5,6]; track i) { } {{ 'common.loading' | translate }}
} @else if (facade.summary(); as summary) {
{{ 'adminAnalytics.revenue' | translate }}{{ summary.revenueTotal }} {{ summary.currency }}
{{ 'adminAnalytics.orders' | translate }}{{ summary.ordersCount }}
{{ 'adminAnalytics.customers' | translate }}{{ summary.customersCount }}
{{ 'adminAnalytics.avgOrderValue' | translate }}{{ summary.avgOrderValue }} {{ summary.currency }}
{{ 'adminAnalytics.conversion' | translate }}{{ 'adminAnalytics.unknown' | translate }}
{{ 'adminAnalytics.completionPercent' | translate }}{{ facade.healthCompletionPercent() }}%
}

{{ 'adminAnalytics.salesChart' | translate }}

@for (point of facade.salesSeries(); track point.date) {
}

{{ 'adminAnalytics.topProducts' | translate }}

@if (facade.loading()) {
@for (i of [1,2,3]; track i) { } {{ 'common.loading' | translate }}
} @else if (facade.topProducts().length === 0) { } @else { {{ 'adminProducts.name' | translate }}{{ 'adminAnalytics.quantitySold' | translate }}{{ 'adminAnalytics.revenue' | translate }} @for (product of facade.topProducts(); track product.productId) { {{ product.name }}{{ product.quantity }}{{ product.revenue }} } }

{{ 'adminAnalytics.lowStock' | translate }}

@if (facade.lowStockProducts().length === 0) { } @else { {{ 'adminProducts.name' | translate }}{{ 'adminAnalytics.quantity' | translate }}{{ 'adminAnalytics.status' | translate }} @for (product of facade.lowStockProducts(); track product.productId) { {{ product.name }} {{ product.quantity }} {{ ('adminProducts.' + (product.stockStatus === 'out_of_stock' ? 'outOfStock' : 'lowStock')) | translate }} } }

{{ 'adminAnalytics.recentActivity' | translate }}

@if (facade.recentActivity().length === 0) { } @else {
    @for (entry of facade.recentActivity(); track entry.id) {
  • {{ entry.labelKey | translate }} {{ entry.timestamp | date:'short' }}
  • }
}

{{ 'adminAnalytics.warnings' | translate }}

@if (facade.warnings().length === 0) { } @else {
    @for (card of facade.warnings(); track card.id) {
  • {{ card.labelKey | translate }}
  • }
}
} @if (activeTab() === 'health') {

{{ 'adminMarketplaceHealth.title' | translate }}

{{ 'adminOrders.export' | translate }}

{{ facade.healthCompletionPercent() }}% {{ 'adminMarketplaceHealth.complete' | translate }}

    @for (check of facade.marketplaceHealth(); track check.code) {
  • {{ check.status === 'unknown' ? ('adminAnalytics.unknown' | translate) : (check.displayValue ?? check.status) }} {{ check.labelKey | translate }}
  • }
} @if (activeTab() === 'products') {
@if (facade.productAnalytics(); as pa) {
{{ 'adminAnalytics.topViewed' | translate }}{{ 'adminAnalytics.unknown' | translate }}
{{ 'adminAnalytics.hiddenProducts' | translate }}{{ pa.hiddenCount }}
{{ 'adminAnalytics.archivedProducts' | translate }}{{ pa.archivedCount }}

{{ 'adminAnalytics.mostReviewed' | translate }}

@if (pa.mostReviewed.length === 0) { } @else { {{ 'adminProducts.name' | translate }}{{ 'adminAnalytics.reviewCount' | translate }} @for (row of pa.mostReviewed; track row.productId) { {{ row.name }}{{ row.value }} } }

{{ 'adminAnalytics.worstRated' | translate }}

@if (pa.worstRated.length === 0) { } @else { {{ 'adminProducts.name' | translate }}{{ 'adminAnalytics.avgRating' | translate }} @for (row of pa.worstRated; track row.productId) { {{ row.name }}{{ row.value }} } }
}
} @if (activeTab() === 'customers') {
@if (facade.customerAnalytics(); as ca) {
{{ 'adminAnalytics.newCustomers' | translate }}{{ ca.newCustomers }}
{{ 'adminAnalytics.returningCustomers' | translate }}{{ ca.returningCustomers }}
{{ 'adminAnalytics.averageSpend' | translate }}{{ ca.averageSpend }} {{ ca.currency }}
{{ 'adminAnalytics.retention' | translate }} @if (ca.retentionPercent === null) { {{ 'adminAnalytics.unknown' | translate }} } @else { {{ ca.retentionPercent }}% }
}
} @if (activeTab() === 'search') { } @if (activeTab() === 'traffic') {

{{ 'adminAnalytics.trafficAnalytics' | translate }}

{{ 'adminAnalytics.unknown' | translate }} {{ 'adminAnalytics.availableAfterBackend' | translate }}

} @if (activeTab() === 'recommendations') {

{{ 'adminMarketplaceHealth.recommendationsTitle' | translate }}

@if (facade.recommendations().length === 0) { } @else {
    @for (card of facade.recommendations(); track card.id) {
  • {{ 'adminMarketplaceHealth.severity.' + card.severity | translate }} {{ card.labelKey | translate }} @if (card.descriptionKey) { {{ card.descriptionKey | translate }} }
  • }
}
}