- Problem
- Merchandisers decided each season what to keep, sell out, mark down or drop — but the inputs were assembled by hand and by a brittle Apps Script. Four sales columns carried end dates from four different days, status grouping was a hard-coded list that broke whenever someone typed a new wording, and two engine inputs were placeholders rather than real data.
- Built
- A Next.js app that runs a seven-stage sync — read the sheet, load Shopify products and orders, match style and colour, aggregate two rolling windows, run the engine, write back — streaming progress over Server-Sent Events.
- Role
- Sole developer. Both integrations, the decision engine, the test suite, and a 1,032-line README written for the operator as much as the developer.
- Changed
- The same decision, now sourced from live Shopify data, reproducible, and structurally unable to overwrite a formula, a header, or a colleague's edit.