← All tests

Loyalty Reward Shop — admin tab STAGING

Phase 4 of the NIX Loyalty Platform — the merchant-facing Reward Shop admin card inside nix-cafe (“Loyalty Mobile App Settings” → Reward Settings). It manages the points-redemption catalog: map a reward type → a point price (+ optional stock/active), which members later spend points on for a coupon, fulfilled at the POS by scanning the coupon QR. The card is an API client of the separate loyalty backend (GET/PUT /admin/reward-shop) — config persists in the loyalty DB, not cafe.*.

Gate 2 (staging) — 10/10 passed on demo.staging.nixtech.app. First real run of the new dev → staging → main pipeline for nix-cafe — the tab was rescued off the retired karouna-dev branch, cherry-picked to dev (da640dd), merged to staging, and verified against a manually-deployed nix-cafe-staging Worker wired to the staging loyalty backend.

Parked on staging awaiting the scheduled prod promote (staging → main); the full narongix regression sweep runs at that prod promote. No prod data prep needed — prod cafe already carries the loyalty secrets and prod demo already has spin + config.

What this ship adds: a Reward Shop CRUD card (reward-type dropdown + point price + stock + active, add/remove rows, Save) mirroring the already-shipped Reward Pool card; new client methods getRewardShop/putRewardShop + saveRewardShopAction. Gated to spin-enabled tenants for now (grouped under Reward Settings).

Gate 2 evidence (demo, logged-in browser on staging):

SSO login demo.staging
Loyalty settings page loads (authed)
No load error — staging loyalty backend reachable via the new Worker secrets
Reward Shop card renders under the Reward Settings tab
Add a shop row + set a point price
Save round-trips (server action → loyalty backend PUT /admin/reward-shop)
Persisted through the backend — 3 rows after a full reload
Cleanup restored staging to its original 2 rows
No 5xx during the flow  ·  staging SSO smoke still 5/5 (no regression from the redeploy)

Screens

Reward Shop initial
Reward Shop card — initial catalog (2 items) under Reward Settings
Added a shop row
Added a catalog row + set a point price (123)
Saved
Save round-trips to the loyalty backend (saved indicator)
Persisted after reload
Persisted — 3 rows after a full page reload

nix-cafe da640dd (dev + staging) · loyalty backend Reward-Shop endpoints already live (b6723fc, migration 0003) · no nix-db migration for this tab.