# Grocery Optimizer Provider & Matching Learning v2 Notes

## Scope

Dieser Sprint fokussiert Produkt-Matching, Review und Lernen. Keine medizinische Analyse, keine automatische Bestellung, kein Login-Scraping und keine Massenscrapes.

## Provider-Status v2

- Coop: v1 Provider bleibt kontrolliert und explizit ausgelöst; Parser/Cache sind testbar. Für produktive breite Nutzung weiterhin nur Low-volume und cache-first.
- Migros: v1 Provider bleibt kontrolliert und explizit ausgelöst. Der Migros-Bon ist Quelle für Originalprodukte; Live-Migros-Produktseiten sind nicht zwingend für Savings-Mapping.
- Denner: in v2 nicht aggressiv ausgebaut. Manuelle Zuordnung ist der sichere Pfad, bis öffentliche Such-/Produktseiten stabil und AGB-sicher bewertet sind.
- Aldi Suisse: Skeleton bleibt; kein aggressives Scraping.
- Lidl Schweiz: Skeleton bleibt; kein aggressives Scraping.
- Otto's: Skeleton bleibt; kein aggressives Scraping.

## Matching-Learning Entscheidung

Akzeptierte Matches werden in `grocery_product_mappings` gespeichert und beim nächsten Bon bevorzugt. Abgelehnte Matches werden ebenfalls dauerhaft gespeichert und blockieren erneute Vorschläge, außer ein späterer Reset-/Archiv-Flow wird explizit gebaut.

## Preis-Policy

- Preise dürfen nicht erfunden werden.
- Sichere Ersparnis nur mit CHF-Preis und Quelle/Timestamp.
- Fehlender oder veralteter Preis bleibt review-/refresh-pflichtig.
- Websuche bleibt expliziter Button-Klick.
