# Next Session: Cremeitalia Cart Permalink Ordering

## What

Implement Annie's ability to order from cremeitalia.com (Shopify store) by building a cart permalink and sending it via Telegram. Rajesh clicks the link, reviews the cart, and pays online. No Playwright, no login, no browser automation needed.

## Context

- **cremeitalia.com is Shopify** — all 51 products accessible via `/products.json` (no auth)
- **Cart permalinks**: `https://cremeitalia.com/cart/{variant_id}:{qty},{variant_id}:{qty}` — pre-fills cart, anonymous, no login
- **Bocconcini variant ID**: `44271569436953`, ₹230
- **Plan**: `~/.claude/plans/concurrent-drifting-minsky.md` — full implementation plan with adversarial review incorporated
- **Research**: `docs/RESEARCH-SHAREABLE-CART-LINKS.md` — Shopify cart permalink documentation

## Plan Summary (6 steps)

1. **Create `services/annie-voice/shopify_cart.py`** (~150 lines) — catalog fetch, product search, permalink builder, `order_from_cremeitalia()` entry point
2. **Modify `services/annie-voice/text_llm.py`** (+15 lines) — tool def, intent regex, dispatch for `order_from_cremeitalia`
3. **Modify `services/telegram-bot/pending_handler.py`** (+8 lines) — dispatch `cremeitalia_cart` task results
4. **Modify `start.sh`** (+1 line) — `CREMEITALIA_ENABLED='true'` env var
5. **Create `services/annie-voice/tests/test_shopify_cart.py`** (~20 tests) — catalog, search, permalink, formatting
6. **Deploy + E2E test** — "order 2 bocconcini from cremeitalia" on Telegram

## Key Design Decisions (from adversarial review)

- **No generic Shopify framework** — YAGNI for one store
- **No Telegram inline keyboard browsing** — direct ordering is better UX for 61 products
- **No discount codes in permalinks** — invalid codes silently fail = trust violation
- **5-min cache** — perishables, not 15-min like TWF
- **Max 20 items** per permalink (URL length safety)
- **Only trigger on "cremeitalia" mention** — generic "order cheese" is ambiguous (Swiggy/Zomato)

## Reference Files

- `services/annie-voice/twf_tools.py` — reuse httpx pattern, TASK_RESULTS_DIR, format_price(), cache pattern
- `services/annie-voice/text_llm.py` — tool registration at ~line 508, intent at ~line 656, dispatch at ~line 843
- `services/telegram-bot/pending_handler.py` — task result dispatch at ~line 196

## Step 0 (manual)

Confirm cremeitalia delivers to HSR Layout 560102 — Rajesh already ordered so likely yes.

## Start Command

```
Implement the cremeitalia cart permalink ordering feature. Read the plan at ~/.claude/plans/concurrent-drifting-minsky.md for full details. Start with Step 1: create services/annie-voice/shopify_cart.py.
```
