Phase 5 — finishes the delivery surface on the merchant side. The nix-cafe
“Food Delivery” section gains a Register | Settings toggle; Settings is the
NIX menu-code map (NIX:101–999 → product) — the bridge that lets a delivery
receipt line resolve to a product. Delivery spin chances now honor per-product eligibility
the same way in-store orders do: a product set to “no chance” in Orders & Spins
earns no delivery spins. Per Blueprint v1.1 the surface is virtual-printer/OCR-oriented (no per-platform
API keys).
demo.staging.nixtech.app + the staging loyalty
backend. Backend migration 0005 (delivery_menu_map) + GET/PUT
/admin/delivery-menu-map (replace-set); ingest resolves each line’s NIX:xxx tag
→ product and drops disabled items. nix-cafe cb86124, backend 12ac8a1. Parked on
staging for the scheduled prod promote (0005 joins the stack).
Checks:


nix-cafe loyalty-mobile-app-client.tsx + page.tsx + lib/loyalty/client.ts (cb86124, dev→staging) · nix-loyalty-backend migration 0005 + routes/delivery.ts (12ac8a1) · harness test-loyalty-delivery-settings-staging.mjs. Product dropdown = the shared Popular-Menu list (demo has no cafe products on staging → UI write path proven via remove→save).