Commit Graph
100 Commits
Author SHA1 Message Date
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 fed39b18be fix: show all marketplaces (incl. Amazon UK) in experiment form
Use a hardcoded ALL_MARKETPLACES list instead of deriving from current
filtered data, so Amazon UK is always available even when viewing PAN-EU.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 11:12:30 +01:00
Christian Vidal WolfandClaude Opus 4.6 812425a1ef feat: add marketplace differentiation to Experiment Tracker
Each experiment now tracks which marketplace (Amazon DE, UK, etc.) it
applies to. The form defaults to the currently active marketplace filter,
and the delta % calculation filters by both product line and marketplace.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 11:07:34 +01:00
Christian Vidal WolfandClaude Opus 4.6 9a115ff5be feat: add Experiment Tracker to Weekly Sales tab
Log weekly actions (SEO, pricing, ads, etc.) per product line and visualize
their impact with a Recharts line chart showing experiment markers. Includes
a collapsible experiments panel with auto-computed delta % (3-week before vs
after comparison) and editable status tracking. Data persisted in localStorage.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 10:58:51 +01:00
Christian Vidal Wolf 557703c5ea feat: enable sorting and filtering by Revenue in Weekly Sales grid 2026-02-19 16:48:48 +01:00
Christian Vidal Wolf ab79f2ca6e feat: implement 1-to-1 metric swap (Units vs Revenue) in Weekly Sales 2026-02-19 16:36:05 +01:00
Christian Vidal Wolf 635850bc5a feat: restore ads spend visibility in Weekly Sales and refine layout 2026-02-19 16:26:47 +01:00
Christian Vidal Wolf 2b9399e7e0 fix: correct revenue metric mapping in Weekly Sales grid (pivot revenue vs ads cost) 2026-02-19 16:22:19 +01:00
Christian Vidal Wolf 079e4130f7 feat: add units/revenue toggle to Weekly Sales and improve traffic data parsing 2026-02-19 16:03:16 +01:00
Christian Vidal WolfandClaude Opus 4.6 31ad7fda21 fix: read all sheets in Traffic Weekly Excel for complete GV data
processTrafficExcel was only reading the first sheet, missing data from
year-based sheets (e.g., "2025", "2026"). Now iterates all sheets with
auto-detection of column layout, matching the processAdsExcel pattern.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 15:34:00 +01:00
Christian Vidal WolfandClaude Opus 4.6 a1dcb9b9fc chore: force Vercel redeploy with mobile responsive changes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 09:37:40 +01:00
Christian Vidal WolfandClaude Opus 4.6 a8626ae7a6 chore: trigger Vercel redeploy with mobile optimization
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 09:35:31 +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 fecc7264c8 chore: trigger Vercel redeploy with filter UI optimizations 2026-02-14 10:10:17 +01:00
Christian Vidal Wolf b515bd17b0 chore: add .env to gitignore to protect API keys 2026-02-10 15:39:33 +01:00
Christian Vidal Wolf 1bea36aa74 fix: move Gemini API calls server-side to fix API key issue on Vercel 2026-02-10 15:35:10 +01:00
Christian Vidal Wolf 5e2abfb1e2 fix: read API key from process.env for Vercel builds 2026-02-10 15:32:14 +01:00
Christian Vidal Wolf a259538ff4 fix: exhaustive API key lookup and injection for Vercel 2026-02-10 15:24:52 +01:00
Christian Vidal Wolf 01026da882 fix: support both API_KEY and GEMINI_API_KEY in vite config 2026-02-10 15:18:49 +01:00
Christian Vidal Wolf 3f6fdc8d72 feat: integrate Gemini Pro 1.5 with KAM persona for data analysis 2026-02-10 15:15:44 +01:00
Christian Vidal Wolf 96e9583fdb Refactor ExcelFilter popup UI for a more compact and data-dense experience 2026-02-09 12:16:46 +01:00
Christian Vidal Wolf ee608cd042 Optimize Grid header UI: reduce font sizes, padding, and improve alignment of metric columns 2026-02-09 12:13:51 +01:00
Christian Vidal Wolf 81c946b3e1 Enhance Excel-style filters with numeric operators and integrate into GRID metrics (Sell Out, Units) 2026-02-09 12:09:01 +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 ac791b5265 Implement Excel-style filters (SKU, ASIN, Title, Line) across GRID, WEEKLY SALES, and FC26 tabs 2026-02-09 12:00:39 +01:00
Christian Vidal Wolf 827135a517 fix: force ASIN column B and Reason column N for BB_DE 2026-02-06 10:57:03 +01:00
Christian Vidal Wolf bd8f86007c fix: force Column J for BB_UK reason column 2026-02-06 10:54:06 +01:00
Christian Vidal Wolf 76193fb9bf fix: force Column S for BB_FR reason column 2026-02-06 10:50:18 +01:00
Christian Vidal Wolf 86547bdf0d style: relocate search bar to top toolbar for better visibility 2026-02-06 10:31:37 +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 3a4410c3b5 Fix Buy Box warning detection for Spain (B0D3874WSD) and update Vite proxies 2026-02-05 10:48:37 +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 aeefd76496 feat: Make Buy Box sheet matching even more aggressive 2026-02-05 08:48:27 +01:00
Christian Vidal Wolf 4ead042534 debug: Expand logging for Buy Box parsing to see why Spain rows are skipped 2026-02-05 08:48:17 +01:00
Christian Vidal Wolf 299d2032bc feat: Improve Buy Box header detection and add Spanish aliases 2026-02-05 08:44:33 +01:00
Christian Vidal Wolf 9a042c6478 debug: Add diagnostics for Buy Box warning issue 2026-02-05 08:43:58 +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 ceb389cfb0 feat: Add YTD (Year-To-Date) cumulative lines to chart
- Calculate accumulated Sell Out and Units per week for each year
- Add toggle button to show/hide YTD lines (cyan color)
- YTD lines use thicker stroke with lower opacity for distinction
2026-02-02 11:38:26 +01:00
Christian Vidal Wolf dfe9a88ceb fix: Make expanded chart fill entire screen (vertical + horizontal)
- Updated ExpandableChartCard to use flex-1 + min-h-0 for proper height
- Added CSS selectors to make child divs fill available space
- Chart now expands to fullscreen in both dimensions
2026-02-02 11:31:26 +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 ab9ac4f47e fix: Correct stock column detection for PANEU-Stock.xlsx
- Prioritize 'Sellable On Hand Units' column (was selecting 'Net Received Units')
- Add 'Store code' recognition for marketplace detection
- Improved column search strategy with priority levels
2026-02-02 09:18:32 +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 74f6fa2278 fix: Improve Vendor Stock column detection to prioritize units over cost 2026-02-01 16:00:01 +01:00
christian.vidal f3e13769d7 fix: implement product line seasonality for forecast fallback 2026-02-01 15:47:33 +01:00
Christian Vidal Wolf 01e20eb073 Always show YoY comparison row in tooltips (displays 'No data' when unavailable) 2026-01-31 20:48:47 +01:00
Christian Vidal Wolf b8d589bca1 Enhance tooltips with YoY comparison and English labels 2026-01-31 17:42:59 +01:00
Christian Vidal Wolf 6a83109e1c Add metric tooltips showing comparison details (vs previous week) 2026-01-31 12:51:47 +01:00
Christian Vidal Wolf 3e334c1fde Add numeric column filters for Units, Spend and GV in Weekly Sales 2026-01-31 12:11:33 +01:00
christian.vidal 2a199d397e Implement Custom Numeric Filtering (>10, 5-10) for Stock/WOC columns in Weekly Sales 2026-01-30 19:28:53 +01:00
Christian Vidal Wolf c691d4e9ba fix: restrict actual units to forecast region scope in ForecastView 2026-01-30 09:23:07 +01:00
Christian Vidal Wolf a678880112 fix: improve forecast seasonality logic and catalog data integrity 2026-01-30 09:10:02 +01:00
Christian Vidal Wolf f26ea171ce feat: add Top 50 filter and sorting to DataGrid + fix BuyBox badge hover 2026-01-30 08:51: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 b1c3897cfd Implement Enter key support for quick filtering 2026-01-29 20:59:35 +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 2060f82348 Fix Forecast View discrepancy: Align Chart/Summary with Search Filters 2026-01-29 20:50:31 +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 55c91a7bfc Remove decimals from Dashboard and fix BuyBox badge layout 2026-01-29 20:19:13 +01:00
christian.vidal 0211124879 Set default Grid columns to SKU and Title only 2026-01-29 20:15:14 +01:00
christian.vidal fc941bbac7 Increase Title column width to 450px 2026-01-29 20:12:19 +01:00
christian.vidal 37fa2acf40 Optimize data processing performance with memoization 2026-01-29 20:09:28 +01:00
christian.vidal a856aaae4b Optimize Title column width and add tooltip 2026-01-29 20:00:54 +01:00
christian.vidal 5dce7992e1 Fix Week Coverage calculation in DataGrid 2026-01-29 18:56:31 +01:00
christian.vidal 815c9bc934 Fix Column selector visibility and z-index 2026-01-29 18:50:46 +01:00
christian.vidal 367440fa6b Rename Group By button to Columns in DataGrid 2026-01-29 18:44:35 +01:00
Christian Vidal Wolf b54f6f8030 Fix Buy Box badge visibility in Grid tab by preserving metadata in pivot; add row z-index 2026-01-29 15:43:18 +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 fa14f57855 Restore Buy Box badge positions to match original layout; fix row layering in all views 2026-01-29 13:41:09 +01:00
Christian Vidal Wolf c5db663454 Revert unintended changes in ForecastView and AdsPerformance; keep WeeklyGrid badge repositioning 2026-01-29 13:27:44 +01:00
Christian Vidal Wolf 355c64422c Reposition Buy Box warning badge next to SKU in WeeklyGrid 2026-01-29 13:23:04 +01:00
Christian Vidal Wolf 3e3df60bf2 Ignore Buy Box warnings with 'Fixed' status 2026-01-29 13:18:09 +01:00
Christian Vidal Wolf 3f50883bd2 Implement multi-ASIN/SKU search support in all main views 2026-01-29 13:14:28 +01:00
Christian Vidal Wolf 9736a8194f Fix Buy Box popup visibility: add row hover z-index and use bottom positioning 2026-01-29 10:52:41 +01:00
Christian Vidal Wolf 1dc06e8b3b Enhance Buy Box warning badge with styled hover popup showing reasons and flags 2026-01-29 10:08:44 +01:00
Christian Vidal Wolf 02aa95d39d Fix Buy Box parsing: only include ASINs with Issue Type/Reason specified 2026-01-29 09:51:34 +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 e4fbdb60b1 Revert Amazon icon to just the smile arrow as requested 2026-01-29 09:03:34 +01:00
Christian Vidal Wolf 541e772ede Update Amazon icons to match the full logo provided by the user 2026-01-29 09:00:07 +01:00
Christian Vidal Wolf 12ca24b9f6 Add custom icons to stock and coverage filters for better visibility 2026-01-29 08:51:36 +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 98e8bb3904 Add Annual Forecast column to Fc 26 tab and Excel export 2026-01-28 16:43:18 +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 0ea94aefd1 Implement Smart Seasonality blending for products with sparse history (fixes 0-forecast issue) 2026-01-28 15:17:58 +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 1b362d0660 Update FC 26 Achievement to use Annual Forecast as denominator 2026-01-28 15:00:48 +01:00
Christian Vidal Wolf 9d732eeba3 Restore ForecastView UI, Fix default YTD logic, and Refine Seasonality (Specific > Global fallback) 2026-01-28 14:55:35 +01:00
Christian Vidal Wolf cfff95bff2 Fix Global Weights: Fallback to flat distribution if reference data is sparse (<4 months) 2026-01-28 13:24:29 +01:00
Christian Vidal Wolf 894271b549 Fix Seasonality: Use Global Catalog curve as fallback for sparse ASIN history 2026-01-28 13:17:04 +01:00
Christian Vidal Wolf cfce00cd63 Fix seasonality bias: Default to flat weighting if history is sparse (<4 months) 2026-01-28 13:11:08 +01:00
Christian Vidal Wolf d1a522a446 Update ForecastView with v2.2 version tag and ensure correct import 2026-01-28 13:05:08 +01:00
Christian Vidal Wolf 974684ff97 Trigger Vercel deployment: Force refresh for Forecast View changes 2026-01-28 13:01:07 +01:00
Christian Vidal Wolf bbf32259a8 Update Forecast Period to YTD logic 2026-01-28 12:49:41 +01:00
Christian Vidal Wolf d5a76d5b97 Fix syntax error in ForecastView iteration logic 2026-01-28 12:39:37 +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 f7dd827258 Fix syntax error in ForecastView.tsx: Close td tag and remove nested structures 2026-01-28 12:20:55 +01:00
Christian Vidal Wolf 6c539693a8 Redesign ForecastView UI: Add Actuals, Achievement columns and Dark Theme 2026-01-28 12:16:41 +01:00
Christian Vidal Wolf b3b8c4f967 Revert week logic and add debug tooltip to VendorStockBadge 2026-01-28 11:50:59 +01:00