Commit Graph
77 Commits
Author SHA1 Message Date
Christian Vidal Wolf d78a88afe1 feat: complete experiments tab analytics optimization with modular kpis and sparklines 2026-02-21 15:31:02 +01:00
Christian Vidal WolfandQwen-Coder d535004a29 Optimize app loading and fix product lines in experiments
Performance improvements:
- Fetch traffic, stock, vendor stock, buybox, and experiments data in parallel using Promise.all
- Reduces initial loading time significantly
- Non-blocking background fetches after sales data loads

Bug fixes:
- Pass availableLines from App.tsx to ExperimentForm as prop
- Remove localStorage dependency for product lines
- Product lines now correctly populated from rawData

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-21 09:25:15 +01:00
Christian Vidal WolfandQwen-Coder 46d87127c8 Add product line targeting for experiments
- Add option to target entire product line instead of specific ASINs
- Support pasting multiple ASINs separated by spaces OR commas
- Add ASIN format validation (9-10 alphanumeric characters)
- Load available product lines from cached sales data
- Add handleCreateExperimentForLine function in App.tsx
- Update ExperimentForm with target type selector (ASIN vs Line)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-21 00:40:30 +01:00
Christian Vidal WolfandQwen-Coder a21c0d532c Fix TypeScript errors in experiments feature
- Add experimentMap/onOpenExperiment props to WeeklyRow component
- Export VendorDailyRow type from supabase.ts
- Fix type errors in experiments.ts (unknown[] to string[])
- Add type annotation for allAsins in App.tsx

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-20 19:39:56 +01:00
Christian Vidal WolfandQwen-Coder f93d92da0b Add complete Experiments tracking system
New Features:
- Experiments tab with full CRUD operations
- Create experiments by ASIN or product line groups
- Track pricing, advertising, content, and promotion experiments
- Performance analytics with baseline vs experiment comparison
- Visual experiment badges in Weekly Sales grid
- Experiment detail view with metrics and learnings

Technical Changes:
- Add Supabase experiments table migration
- New services/experiments.ts for CRUD + calculations
- New components: ExperimentsView, ExperimentDetail, ExperimentForm, ExperimentBadge
- Integrate experiment indicators in WeeklyGrid
- Add navigation tab (desktop + mobile)
- Type definitions in types.ts

Usage:
1. Run SQL migration in Supabase
2. Navigate to Experiments tab
3. Create experiments with ASINs, dates, hypothesis
4. View performance lift after completion
5. See active experiments marked in Weekly Sales

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-02-20 19:31:44 +01:00
Christian Vidal Wolf 85c789bf52 fix: resolve vendor data upload error by implementing client-side parsing and sequential batching 2026-02-20 13:32:26 +01:00
Christian Vidal WolfandClaude Opus 4.6 a8258398f7 fix: add Upload button to header to open data source modal
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 13:26:39 +01:00
Christian Vidal WolfandClaude Opus 4.6 2bce0a839b feat: add Supabase vendor data integration (BSR, ratings, buy box)
- Create vendor_daily_data table schema and Supabase client service
- Add upload API route for Vendor Central CSV parsing and upsert
- Add VendorDataView with BSR trend, ratings, and buy box charts
- Integrate new Vendor tab into app navigation (desktop + mobile)
- Add vendor CSV upload card to FileUpload modal

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 13:19:25 +01:00
Christian Vidal WolfandClaude Opus 4.6 9895545910 feat: full mobile responsive optimization for Android/iPhone
- Add bottom navigation bar (6 tabs) for mobile, hidden on desktop
- Compact header with smaller logo and reduced padding on mobile
- Collapsible filter bar with active filter count badge on mobile
- Bottom-sheet style dropdowns with overlay and larger touch targets
- Fullscreen AI chat on mobile, floating window on desktop
- Responsive dashboard cards with always-visible expand button
- Smaller table text and touch-friendly scroll on all data grids
- iPhone safe-area support and thinner scrollbars on mobile

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 09:27:46 +01:00
Christian Vidal Wolf d5bcbeda1a Fix GRID tab empty table regression by correcting filter logic and prop passing 2026-02-09 12:05:03 +01:00
Christian Vidal Wolf 62d4903566 feat: implement bulk search for ASINs/SKUs in DataGrid 2026-02-06 09:22:24 +01:00
Christian Vidal Wolf 9f9556af2a debug: Add Spain-specific sheet fallbacks and expose Buy Box data to window.debugBuyBox 2026-02-05 08:52:49 +01:00
Christian Vidal Wolf 09e06bad16 feat: Automate Buy Box tracker sync from Dropbox and improve parsing robustness 2026-02-05 08:39:39 +01:00
Christian Vidal Wolf c4ad999619 Update stock fetch to use Dropbox URL for Item Availability 2026-02-03 08:55:45 +01:00
Christian Vidal Wolf e1e6f127be feat: Add UK inventory sync from Dropbox
- Create new API endpoint api/fetch-uk-inventory.ts
- Add processUKInventoryExcel function in dataProcessor.ts
- Update handleVendorStockFetch to load PANEU + UK in parallel
- Configure Vite proxy for UK inventory endpoint
- UK stock correctly populates 'uk' field in vendorStockMap
2026-02-02 09:24:49 +01:00
Christian Vidal Wolf 7e58e8aba4 feat: Sync PANEU inventory from Dropbox
- Add new API endpoint for PANEU stock from Dropbox
- Update handleVendorStockFetch to use new endpoint
- Configure Vite proxy for local development
2026-02-02 09:13:20 +01:00
christian.vidal efbdfc41e5 Refine YTD Logic: Allow full historical data when Month/Week filters are active 2026-01-29 21:11:29 +01:00
christian.vidal 9200c554e1 Fix Forecast Seasonality: Process weights using global data even when filtered 2026-01-29 20:56:19 +01:00
christian.vidal db2c67060b Implement Dashboard-specific YTD filtering 2026-01-29 20:31:44 +01:00
christian.vidal 7a2b47af21 Fix syntax error in App.tsx: Restore missing useMemo declaration 2026-01-29 20:29:18 +01:00
christian.vidal 2c6b9c9f5a Implement Grid-specific YTD filtering and default sorting 2026-01-29 20:27:19 +01:00
christian.vidal 5dce7992e1 Fix Week Coverage calculation in DataGrid 2026-01-29 18:56:31 +01:00
Christian Vidal Wolf fcc8096b01 Integrate Buy Box warnings in Grid tab; fix prop regression in App.tsx 2026-01-29 13:45:41 +01:00
Christian Vidal Wolf 04b208969d Add Buy Box Lost detection feature with visual warning badges 2026-01-29 09:42:39 +01:00
Christian Vidal Wolf d19f0cddac Optimize Forecast View performance and implement WOC filter across views 2026-01-29 08:47:03 +01:00
Christian Vidal Wolf bc6ec6dff8 Fix Forecast Period discrepancy by excluding month filter from seasonality data 2026-01-28 16:38:06 +01:00
Christian Vidal Wolf d40740fce7 Optimize performance (persistent tabs, pagination) and add sortable columns + stock badges to ForecastView 2026-01-28 15:11:47 +01:00
Christian Vidal Wolf 1886554a31 Fix Weekly Grid WOC and Restore Forecast View Graph/UI 2026-01-28 12:35:40 +01:00
Christian Vidal Wolf 2affd868db Fix ReferenceError crash: Move velocityMap calculation to top of App component 2026-01-28 11:39:17 +01:00
Christian Vidal Wolf 57f1d66622 Fix Weeks of Coverage: use unfiltered velocity map for robust calculation 2026-01-28 11:01:05 +01:00
Christian Vidal Wolf 5915bb4c0e Implement Vendor Stock Filtering across Weekly Sales, Ads, and Forecast views 2026-01-28 10:18:08 +01:00
Christian Vidal Wolf 97071c7b62 feat: integrate Amazon Vendor Stock data across all views and fix local data loading 2026-01-28 09:46:59 +01:00
Christian Vidal Wolf 6c788d335f Refactor: Unified Top 50 Badge logic and shared component integration 2026-01-28 08:55:09 +01:00
Christian Vidal Wolf 87e097224b Refine Top 50 badge visibility based on customer filters 2026-01-28 08:31:52 +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 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 c4213acb3d Implement Excel-style stock filtering with Smart Filters and Range support 2026-01-27 19:03:42 +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 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 5cac85c693 Fix: Ensure product metadata is built globally for Forecast View 2026-01-27 10:22:06 +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 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 6379d4a37d fix: resolve triplicated ASIN in Forecast View and improve metadata mapping 2026-01-26 16:50:46 +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 3de971801d feat: add Top 50 filter button and badges to Ads Performance tab 2026-01-26 10:51:30 +01:00