# TASK-005 — App UX sweep and cross-retailer price comparison

**Status:** In progress  
**Branch:** feature/TASK-005-ux-sweep  
**Started:** 2026-10-06  
**Last updated:** 2026-10-06

## Goal

Raise browse and basket UX toward Checkers Sixty60 quality while making multi-store price comparison obvious: show PnP, Checkers and Woolworths prices side by side, highlight the cheapest, and guide shoppers to save. Fix broken UI, placeholders, loading/error states, and remove fake checkout/tracking data.

## Acceptance criteria

- [x] Ops catalogue API exposes extended `prices[]` and product fields (size, unit price, promos, stock hints)
- [x] Product detail and cards show compare-prices table and savings guidance
- [x] Shared product image placeholder, skeletons, error/empty views, qty stepper on browse surfaces
- [x] Browse screens: debounced search, recents, category error retry, honest delivery/checkout copy
- [ ] Basket grouped by retailer with line totals and change-store sheet (optimise sheet + footer done; full grouping deferred)
- [x] Demo order and fake map/distance removed
- [x] `flutter test` passes; Ops PHPUnit for UnitPrice (host vendor missing)

## Files touched

| File | Notes |
|------|-------|
| baskit_ops CatalogueService, UnitPrice | API fields |
| baskit_app lib/models, widgets, features/* | UX sweep |

## Session log

### 2026-10-06 — Cursor
- Did: Ops CatalogueService + UnitPrice; Flutter models, price_compare, widgets (image, stepper, price table), PDP/search/category/checkout/onboarding updates; tests + docs.
- Broke / deferred: Full basket retailer grouping + change-store sheet; home deals carousel split; live TestSprite (Ops 502).
- Commits: (pending user approval)

## Next steps

1. Complete all seven phases per plan.
2. Deploy Ops API before app release.
3. Browser smoke + docs.

## Open questions

- Confirm branch name vs current `tanya` branch at PR time.
