Commit Graph
407 Commits
Author SHA1 Message Date
Christian Vidal Wolf 8be5f1a767 Optimize Weekly Sales performance and fix UI hang 2026-01-27 22:42:59 +01:00
Christian Vidal Wolf 747b73a9c2 Fix syntax error: undefined variable in ForecastView 2026-01-27 22:20:30 +01:00
Christian Vidal Wolf 6b4bef66ec Performance optimizations: lazy rendering, row memoization, and data processing loops 2026-01-27 21:43:25 +01:00
Christian Vidal Wolf f521dd2921 Fix UI overlap for Stock filter dropdown by adjusting z-indices 2026-01-27 21:17:38 +01:00
Christian Vidal Wolf db65509bab Fix Ads data mismatch, optimize Forecast performance, and add Excel-style in-column stock filtering 2026-01-27 21:12:27 +01:00
Christian Vidal Wolf cb9beecaec Fix application hang by ensuring filter state initialization and adding robustness guards 2026-01-27 20:22:58 +01:00
Christian Vidal Wolf ef5aeffca9 Cleanup temporary diagnostic files 2026-01-27 19:03:52 +01:00
Christian Vidal Wolf c4213acb3d Implement Excel-style stock filtering with Smart Filters and Range support 2026-01-27 19:03:42 +01:00
Christian Vidal Wolf 6541f6655a Refine StockBadge design to Top 50 style and move to title row across all views 2026-01-27 18:23:18 +01:00
Christian Vidal Wolf f0d920de84 fix: resolve syntax error in App.tsx (handleTrafficFetch) 2026-01-27 17:00:32 +01:00
Christian Vidal Wolf 0d1d2c77d4 Integrate stock availability data and StockBadge component across all views 2026-01-27 16:51:38 +01:00
Christian Vidal Wolf 219d050bf2 Refactor: Switched all exports to .xlsx and enhanced Weekly Grid export 2026-01-27 15:55:59 +01:00
Christian Vidal Wolf 7178b57073 Feature: Added Excel export to Ads and Forecast views 2026-01-27 15:34:06 +01:00
Christian Vidal Wolf 19fbd12e77 Auto-Sync and Manual Refresh: Ensured fresh data on reload and added Sync button 2026-01-27 15:02:18 +01:00
Christian Vidal Wolf 1438049c71 Fix: Forecast View now respects global filters (Product Line, ASIN, etc.) 2026-01-27 10:45:59 +01:00
Christian Vidal Wolf 5cac85c693 Fix: Ensure product metadata is built globally for Forecast View 2026-01-27 10:22:06 +01:00
Christian Vidal Wolf 770566ac9c Forecast View: Added Annual Forecast and Annual Fulfillment cards 2026-01-27 10:00:27 +01:00
Christian Vidal Wolf f8c6ecdf29 Forecast View: Hybrid UK/Pan-EU seasonality weighting for Jan-Aug 2026-01-27 09:49:35 +01:00
Christian Vidal Wolf d496073e88 Forecast View: Period-aware banners and labels 2026-01-27 09:43:28 +01:00
Christian Vidal Wolf 4e8b84bcd3 Refine Forecast View: Dynamic 'Actual Units Sales' based on customer filters 2026-01-27 09:37:58 +01:00
Christian Vidal Wolf 23d3e56edc Refine Forecast View: compact UI and dynamic UK data integration 2026-01-27 09:31:50 +01:00
Christian Vidal Wolf 7e2ed0955a feat: add Top 50 filter and sorting to Forecast View 2026-01-26 17:01:41 +01:00
Christian Vidal Wolf 6379d4a37d fix: resolve triplicated ASIN in Forecast View and improve metadata mapping 2026-01-26 16:50:46 +01:00
Christian Vidal Wolf 9b7b9e65db style: refine Product Info layout in Forecast View to match reference image 2026-01-26 16:35:16 +01:00
Christian Vidal Wolf ccdbcb2824 feat: enhance Forecast 2026 view with dynamic periods, top 50 badges and improved product details 2026-01-26 16:24:09 +01:00
Christian Vidal Wolf 83470042b4 style: clean header and refine Group By filter dropdown in Grid tab 2026-01-26 16:06:39 +01:00
Christian Vidal Wolf e213ef0d16 feat: implement Forecast 2026 (Fc 26) tab with seasonality logic and actual sales comparison 2026-01-26 15:47:36 +01:00
Christian Vidal Wolf 18c4ef375b feat: improve 'Group By' dropdown UI/UX in Grid tab (click-to-open and click-outside to close) 2026-01-26 15:16:28 +01:00
Christian Vidal Wolf 48f185e3bc fix: Weekly Sales Evolution chart now correctly supports CombinedKPIs data structure 2026-01-26 14:36:42 +01:00
Christian Vidal Wolf 1f1077edcd feat: auto-sort by ranking (1-50) when Top 50 filter is active in Ads tab 2026-01-26 10:54:50 +01:00
Christian Vidal Wolf 3de971801d feat: add Top 50 filter button and badges to Ads Performance tab 2026-01-26 10:51:30 +01:00
Christian Vidal Wolf 6880634134 feat: add GV (Glance Views) growth percentage indicators in Weekly Sales grid 2026-01-26 10:41:56 +01:00
Christian Vidal Wolf 28430820ce feat: add ad spend growth percentage indicators in Weekly Sales grid 2026-01-26 10:39:41 +01:00
Christian Vidal Wolf 9350ffd84d feat: increase visible weeks in Weekly Sales from 8 to 20 2026-01-26 10:29:50 +01:00
Christian Vidal Wolf 0fc6f2324d feat: separate Pan-EU and UK Top 50 results in Weekly Sales
- App.tsx: Always calculate both EU and UK Top 50 maps.
- WeeklyGrid.tsx: Added top50Mode state and EU/UK toggle.
- WeeklyGrid.tsx: Updated filtering and sorting to respect the selected Top 50 mode.
- WeeklyGrid.tsx: Enhanced product badges to show selected group rank.
2026-01-23 10:07:37 +01:00
Christian Vidal Wolf 60330cb2f5 feat: add Glance Views (GV) to Weekly Sales grid
- Updated WeeklyPivotRow interface and pivotWeeklySalesData to aggregate GV data per week.
- Modified WeeklyGrid.tsx to display GV next to Spend in total header and individual rows.
- Added GV sorting support in the Weekly Sales grid.
2026-01-23 09:35:04 +01:00
Christian Vidal Wolf 7a0375fca7 feat: auto-load Traffic data from Dropbox on app startup
- api/fetch-traffic.ts: New endpoint to fetch Traffic Weekly.xlsx from Dropbox
- App.tsx: Added handleTrafficFetch function and auto-fetch on initialization
2026-01-23 09:23:42 +01:00
Christian Vidal Wolf affae9e994 feat: integrate Glance Views (GV) from Traffic Weekly.xlsx
- types.ts: Added TrafficRecord interface and glanceViews field to CombinedKPIs
- dataProcessor.ts: Added processTrafficExcel parser for Traffic Weekly.xlsx
- dataProcessor.ts: Updated mergeSalesAndAdsData to accept and merge traffic data
- App.tsx: Added trafficData state and handleTrafficUpload handler
- FileUpload.tsx: Added Traffic file upload section for GV data
- AdsPerformance.tsx: Added GV and CVR(GV) summary cards
- AdsPerformance.tsx: Added GV column to product table
2026-01-23 09:07:38 +01:00
Christian Vidal Wolf 473174f7e6 feat: add Ad Spend and TACOS totals to Data Grid header
- DataGrid.tsx: Enhanced filteredTotalsByYear to aggregate advertising metrics
- DataGrid.tsx: Updated header row to include Ad Spend and TACOS cells per year
- DataGrid.tsx: Integrated YoY growth for Ad Spend
2026-01-22 15:40:56 +01:00
Christian Vidal Wolf aaca2ffe88 feat: move filtered totals to Data Grid table header
- DataGrid.tsx: Integrated aggregated totals into a new sticky header row
- DataGrid.tsx: Aligned Sell Out and Units totals directly above their respective columns
- DataGrid.tsx: Added YoY growth indicators to the header totals
- DataGrid.tsx: Improved performance with memoized total calculations
- DataGrid.tsx: Fixed syntax errors and TypeScript warnings
2026-01-22 15:26:04 +01:00
Christian Vidal Wolf 235928a588 fix: restore Top 50 button visibility in Weekly Sales tab
- WeeklyGrid.tsx: Corrected visibility condition for top50Ranking object structure
- WeeklyGrid.tsx: Verified and improved Top 50 filtering and sorting logic
2026-01-22 15:01:41 +01:00
Christian Vidal Wolf 183ca6b149 style: improve contrast and legibility for comparison figures
- AdsPerformance.tsx: Updated 'Prev:' labels and figures to indigo-300 for higher contrast
- AdsPerformance.tsx: Brightened secondary labels and product titles across the dashboard
- Ensures clear readability on dark backgrounds as requested by the user
2026-01-22 14:42:09 +01:00
Christian Vidal Wolf 9ebbdcf581 feat: show both current and previous values in Ads comparison view
- AdsPerformance.tsx: Update SummaryCard and TableCell to display 'Prev: [Value]' explicitly
- AdsPerformance.tsx: Standardized formatting using de-DE locale across all comparison metrics
- AdsPerformance.tsx: Improved growth calculation reliability in comparison mode
2026-01-22 14:33:10 +01:00
Christian Vidal Wolf 3ffcd9be44 style: update Ads tab number formatting to match Weekly Sales
- Use de-DE locale (dots for thousands, commas for decimals)
- Round Sales and Spend to integers
- Fix growth calculation to handle locale-specific formatting
2026-01-22 14:21:14 +01:00
Christian Vidal Wolf f774bb47a7 fix: ensure SKU filter applies to Ads data
- dataProcessor.ts: Update filterAdsData to correctly handle SKU filtering using global metadata
- Ensures that drill-down from Weekly Sales correctly isolates the target product in the Ads tab
2026-01-22 14:13:16 +01:00
Christian Vidal Wolf 8832ee0760 feat: enable SKU drill-down from Weekly Sales to Ads tab
- WeeklyGrid.tsx: Make SKU identifiers clickable with hover effects
- App.tsx: Implement handleSkuDrillDown to filter by SKU and switch to Ads view
2026-01-22 14:07:36 +01:00
Christian Vidal Wolf b23b2fba96 feat: allow drill-down from Weekly Sales to Ads tab via SKU
- WeeklyGrid.tsx: Add onDrillDown prop and make SKU identifiers clickable
- App.tsx: Implement handleSkuDrillDown to switch view and filter by SKU
2026-01-22 14:06:53 +01:00
Christian Vidal Wolf 25756ae763 feat: implement period-over-period comparison in Ads tab
- AdsPerformance.tsx: Automatically activate comparison view when 2 periods are selected
- AdsPerformance.tsx: Add growth percentages and trend indicators to table and summary
- AdsPerformance.tsx: Implement chronological sorting for previous vs current periods
- App.tsx: Pass filters to AdsPerformance component
2026-01-22 13:37:07 +01:00
Christian Vidal Wolf 18e003dd80 feat: implement Ads Performance tab
- types.ts: Add conversions field to CombinedKPIs
- dataProcessor.ts: Populate conversions in mergeSalesAndAdsData
- AdsPerformance.tsx: New component with aggregated advertising metrics and detailed product table
- App.tsx: Add Ads view to switcher and render AdsPerformance component
- Icons.tsx: Added icon support for the new Ads tab
2026-01-22 13:25:06 +01:00
Christian Vidal Wolf 9357aed662 fix: ensure Weekly Sales filters update totals and isolate products
- App.tsx: Add globalAsinMetadata to provide context for ad filtering
- dataProcessor.ts: Update filterAdsData to respect product line filters via metadata
- dataProcessor.ts: Update mergeSalesAndAdsData to use global metadata for ads-only records
- Ensures consistent calculation of totals and visibility when filtering by Line or ASIN
2026-01-22 13:07:43 +01:00