diff --git a/components/admin/AdminAnalytics.tsx b/components/admin/AdminAnalytics.tsx index 0fbf25b..dfa3a92 100644 --- a/components/admin/AdminAnalytics.tsx +++ b/components/admin/AdminAnalytics.tsx @@ -41,7 +41,7 @@ interface AnalyticsData { total?: number; today?: number; thisWeek?: number; - dailyRevenue?: { date: string; amount: number }[]; + dailyRevenue?: { date: string; amount: number; orders?: number; avgOrderValue?: number }[]; }; engagement?: { totalChats?: number; @@ -130,14 +130,17 @@ export default function AdminAnalytics() { }; // Helper to combine orders and revenue data for dual-axis chart - const combineOrdersAndRevenue = (orders: Array<{ date: string; count: number }>, revenue: Array<{ date: string; amount: number }>) => { + const combineOrdersAndRevenue = (orders: Array<{ date: string; count: number }>, revenue: Array<{ date: string; amount: number; orders?: number; avgOrderValue?: number }>) => { if (!orders || orders.length === 0) return []; - // Create a map of revenue by date for quick lookup - const revenueMap = new Map(); + // Create a map of revenue and AOV by date for quick lookup + const revenueMap = new Map(); if (revenue && revenue.length > 0) { revenue.forEach(r => { - revenueMap.set(r.date, r.amount || 0); + revenueMap.set(r.date, { + amount: r.amount || 0, + avgOrderValue: r.avgOrderValue || 0 + }); }); } @@ -152,11 +155,14 @@ export default function AdminAnalytics() { const dayOfWeek = date.toLocaleDateString('en-GB', { weekday: 'short' }); const monthDay = date.toLocaleDateString('en-GB', { month: 'short', day: 'numeric' }); + const revenueData = revenueMap.get(dateStr) || { amount: 0, avgOrderValue: 0 }; + return { date: dateStr, formattedDate: `${dayOfWeek}, ${monthDay}`, orders: order.count || 0, - revenue: revenueMap.get(dateStr) || 0 + revenue: revenueData.amount, + avgOrderValue: revenueData.avgOrderValue }; }); }; @@ -185,6 +191,11 @@ export default function AdminAnalytics() {

Revenue: {formatGBP(data.revenue)}

+ {data.avgOrderValue !== undefined && data.avgOrderValue > 0 && ( +

+ Avg Order Value: {formatGBP(data.avgOrderValue)} +

+ )} ) : (

@@ -601,11 +612,12 @@ export default function AdminAnalytics() { orientation="right" tick={{ fontSize: 12 }} tickFormatter={(value) => `£${(value / 1000).toFixed(0)}k`} - label={{ value: 'Revenue', angle: 90, position: 'insideRight' }} + label={{ value: 'Revenue / AOV', angle: 90, position: 'insideRight' }} /> } /> + diff --git a/public/git-info.json b/public/git-info.json index 17b8e70..bc28529 100644 --- a/public/git-info.json +++ b/public/git-info.json @@ -1,4 +1,4 @@ { - "commitHash": "4ef0fd1", - "buildTime": "2025-11-30T15:39:38.047Z" + "commitHash": "93214ce", + "buildTime": "2025-12-01T13:19:53.318Z" } \ No newline at end of file