add_items
Record purchased items from a receipt into your household inventory. Uses idempotent keys to avoid duplicates and returns counts of inserted, ignored, or rejected items.
Instructions
Record a purchase (one receipt). Idempotent per (source_ref, line_no).
Each item: {name, quantity, unit, price?, category?, line_no}. source: 'email' (purchased_at required — the receipt has a date) or 'manual' (purchased_at defaults to today). source_ref: retailer ORDER ID where extractable, else email Message-ID; manual fallback 'manual:::' (+':2' suffix on collision — a nonzero 'ignored' count on a fresh receipt signals one). Call get_stock() first and reuse existing item names exactly. Returns {inserted, ignored, rejected: [{line_no, reason}]}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| source | Yes | ||
| location | No | ||
| source_ref | Yes | ||
| purchased_at | No |