Einkaufszettel und Checkly #10
Labels
No labels
status/blocked
status/claimed
status/entwurf
stufe/mvp-1
stufe/mvp-2
stufe/prio-b
stufe/spaeter
type/bug
type/feature
type/infra
type/tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
robert/rezeptbuch#10
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ziel
Aus dem Checkout entsteht ein zusammengefasster Einkaufszettel: Mengen
umgerechnet, gleiche Einkaufsnamen zusammengefasst, Grundvorrat weggelassen,
mit Herkunft je Gericht und Hinweisen bei Unverträglichkeiten. Nach einer
Vorschau wird er mit einem Klick an Checkly übertragen – oder als Text
geteilt.
Grundlage
PRD Kapitel 15 (Einkaufszettel), 12 (Checkout), 22 („Für wen“),
docs/fragen_einkaufszettel_schnittstelle.md, Checklydocs/api/recipe-integration.md, 19 (Punkt 6)Abhängig von
#3, #9
Akzeptanzkriterien
Mengen berechnen
bestätigte Menge umgerechnet. Das Rezept selbst ändert sich nicht.
Dosen“.
umgerechnet).
nicht umgerechnet und stehen nur in der Herkunft („Suppe: etwas“).
Zusammenfassen
„Knoblauch“ werden eins, „Zwiebel“ und „rote Zwiebel“ nicht.
Schreibweise wird exakt umgerechnet und addiert (500 g + 1 kg = 1,5 kg;
„EL“ und „Esslöffel“ zusammen).
nebeneinander geschrieben.
150 g ergibt: Name „Zwiebeln“, Menge „3,5 Stück + 150 g“, Herkunft „1,5
Stück für Suppe + 2 Stück für Salat + 150 g für Aufstrich“.
Grundvorrat
nicht in der Vorschau und werden nie übertragen. Ein dezenter Hinweis nennt
sie: „Nicht übertragen (Grundvorrat): Salz, Pfeffer, Öl …“.
(Einträge hinzufügen und entfernen).
Hinweise bei Unverträglichkeiten
bekommen seine Zutaten aus der Gruppe „verarbeitete Produkte“ einen
Hinweis, z. B. „Für Oma: bei verarbeiteten Zutaten auf Gluten achten“.
Er wird als
descriptionan Checkly übertragen.unverträgliche Allergen bei einer Zutat in der Spalte „Gibt es ohne“ des
Zutatenverzeichnisses (#3,
daten/startliste_einkaufsnamen.csv), wird derEinkaufsname mit Zusatz in Klammern übertragen: „(glutenfrei)“,
„(laktosefrei)“, „(ohne Ei)“, „(ohne Nüsse)“, „(ohne Erdnüsse)“; mehrere
durch Komma getrennt. Gibt es schon einen Einkaufsnamen mit dem Zusatz nach
Komma, wird dieser genommen. Prüfbeispiele: Räuchertofu für „Wir + Oma
(Gluten)“ → „Räuchertofu (glutenfrei)“; Gemüsebrühe → „Gemüsebrühe,
glutenfrei“; Pesto für jemanden mit Laktose- und Nuss-Unverträglichkeit →
„Pesto (laktosefrei, ohne Nüsse)“. Für Allergene, die so im Namen stehen,
entfällt der Hinweis aus AK-13. Braucht dieselbe Zutat in einem anderen
Rezept keinen Zusatz, entstehen zwei getrennte Zeilen (verschiedene
Produkte).
Vorschau
150 g Zwiebeln (1,5 Stück für Suppe + …)“.
(nicht übertragen und dauerhaft in den Grundvorrat). Alles andere wird
übertragen.
Übertragung an Checkly
API-Schlüssel und Nummer der Zielliste hinterlegt. Der Schlüssel wird nur
auf dem Server gespeichert, nie wieder angezeigt und gelangt nie in den
Browser.
transferIdund schickt immer genau eine Anfrage
WriteMissingIngredientsToShoppingListCommandmit allen Zutaten (Name,Menge, Herkunft, ggf. Hinweis). Jeder Einkaufsname kommt nur einmal vor.
100, Menge 100, Herkunft 200, Hinweis 500 Zeichen. Eine längere Menge wird
mit „…“ gekürzt; die vollständige Aufschlüsselung steht in der Herkunft.
zusammengefasste Einkaufszettel mehr als 200 Zeilen, wird nicht übertragen.
Die Vorschau sagt „Zu viele Zutaten auf einmal (n) – bitte in zwei
Checkouts aufteilen“; der Text-Ausweichweg (AK-24) bleibt möglich.
200(auch mitalreadyApplied: true): Rezepte werdenals „übertragen“ markiert, die Übertragung gespeichert.
400,401/403,404: nichts wird markiert; die Appsagt verständlich, was zu prüfen ist (Schlüssel, Listennummer, Eingaben).
429,5xx, Zeitüberschreitung, Netzwerkfehler: dieApp wiederholt mit derselben
transferId. Prüfung (automatisch):Checkly-Antwort beim ersten Versuch verlieren, Wiederholung → Checkly hat
die Zutaten genau einmal auf der Liste.
automatische Versuche in steigendem Abstand (etwa 2, 5 und 15 Sekunden);
währenddessen steht „Wird übertragen …“. Klappt keiner, erscheint
„Übertragung nicht bestätigt – erneut versuchen“; ein Tipp darauf versucht
es mit derselben
transferIderneut. Die Rezepte gelten erst als„übertragen“, wenn Checkly die Übernahme bestätigt hat.
und auf den Ausweichweg hingewiesen.
Ausweichweg
„Teilen“ weitergegeben werden, im Format der Vorschau – auch wenn Checkly
nicht erreichbar oder nicht eingerichtet ist.
werden sollen.
Nicht in dieser Stufe
Offene Fragen
Mehr als 200 Zutaten– entschieden 08.10.2026: kein automatischesAufteilen, sondern Hinweis „bitte in zwei Checkouts aufteilen“ (AK-19a).
Widerspruch Kapitel 15 ↔ 12– entschieden 08.10.2026: In MVP-1bietet der Checkout bei mehr Portionen an, nur die zusätzlichen
einzutragen; bei weniger Portionen gibt es nur einen Hinweis (#9, AK-20a
und AK-20b). Die zutatengenaue Differenz bei anderen Änderungen (z. B.
Variante) bleibt MVP-2. Kapitel 15 ist angepasst.
Wiederholungen (AK-22)– entschieden 08.10.2026: drei Versuche insteigendem Abstand, danach Hinweis mit „erneut versuchen“ (AK-22a).
Alle offenen Fragen sind geklärt; das Issue ist bereit zum Bau.
Entscheidung 08.10.2026 (Lena): Bei Zutaten, deren Allergene nur je nach Hersteller enthalten sind, steht auf dem Einkaufszettel ein Hinweis im Namen, z. B. „Räuchertofu (glutenfrei)“, wenn für das Rezept eine passende Unverträglichkeit gilt. Umsetzung: neue Spalte „Gibt es ohne“ in
daten/startliste_einkaufsnamen.csv(63 Einträge), Regel indaten/README.md. Siehe #3 (AK-1) und #10 (AK-13a).Entscheidung 08.10.2026 zu offener Frage 1: Bei mehr als 200 Zutaten wird nicht automatisch aufgeteilt; die Vorschau bittet, in zwei Checkouts aufzuteilen, der Text-Ausweichweg bleibt möglich (neues AK-19a).
Entscheidung 08.10.2026 zu offener Frage 2: Mehr Portionen nach einer Übertragung → Checkout bietet an, nur die zusätzlichen Portionen einzutragen; weniger Portionen → nur Hinweis „Bereits für x Portionen übertragen“, keine weitere Aktion. Umgesetzt als #9, AK-20a und AK-20b; zutatengenaue Differenz bleibt MVP-2. PRD Kapitel 12 und 15 angepasst.
Entscheidung 08.10.2026 zu offener Frage 3: höchstens drei automatische Versuche in steigendem Abstand, danach „Übertragung nicht bestätigt – erneut versuchen“ mit derselben transferId (neues AK-22a). Damit sind alle offenen Fragen geklärt; Lena hat die Kriterien durchgesehen, status/entwurf entfernt.