Roadmap Item: Release 0.3 — Smart Shopping¶
Status¶
PROPOSED
Date: 2026-02-07
Changelog¶
| Date | Revision | Description | Author |
|---|---|---|---|
| 2026-02-07 | 1.0 | Initial version | @souperk |
Context¶
Shopping lists are currently manual. Users must know what they need and add items one by one or use the add-recipe-items flow. This release introduces always-stock targets ("staples"), auto-generated shopping suggestions based on selected recipes and current inventory, and frequent-items derived from restock history for quick trip building.
Proposal¶
Overview¶
Always-stock targets, auto-generated shopping suggestions, and frequent items for frictionless trip creation.
Goals¶
- Staple items with target quantities ("always keep 2L milk, 6 eggs")
- "Generate shopping list" from selected recipes + staples minus current inventory
- Frequent items derived from restock history with quick-add to trips
- Suggested quantities based on consumption patterns
Non-Goals¶
- Retailer-specific routing or trip splitting (v0.4)
- Price optimization or cheapest-option selection (v0.6)
- Recommendation engine for what to cook (v0.7)
Technical Details¶
Approach¶
- New
Stapleentity linking ingredient to target quantity and unit- Shopping plan generation service combining recipe needs, staple gaps, and inventory
- Restock frequency analysis from
InventoryActivityhistory
Dependencies¶
- v0.2 must be complete
- Existing inventory and shopping trip infrastructure from v0.1
TDs¶
- TD-003: Smart Shopping (planned)
Backwards Compatibility¶
- New endpoints only; existing trip creation flow unchanged
- Generated lists create standard
ShoppingTrip+ShoppingTripItemrecords
Implementation Plan¶
Phase 1: Staple Items¶
Stapleentity + repository- CRUD endpoints for staple management
- Migration
Phase 2: Shopping Plan Generation¶
- Plan generation service (recipes + staples - inventory)
POST /trip/generateendpoint- Tests
Phase 3: Frequent Items¶
- Restock frequency analysis
GET /ingredient/frequentendpoint- Quick-add integration with trip items
Open Questions¶
- Should staples be per-user or per-household?
- How should the system handle partial unit matches (e.g., 500g target vs 1kg package)?
- Should generated lists be editable before creating a trip?
References¶
- TBD