← All tests

POS config bundle STAGING

Narong (board items n5 / n6 / n7, Next-Phase POS) — three back-office configuration slices. Verified end-to-end on the staging Worker: demo.staging (Pro) for the navigation move, lumiere.staging (Starter, found at 0 cash / 0 categories) for the auto-create flows. Gate-2 walkthrough 8/8 + staging smoke 5/5.

The three: n5 Registers moved into Configurations › Store (full route move) · n6 every shop gets a default Cash method when a register is added · n7 offer to populate default categories (empty-state card + post-first-register prompt).

No migration, no backend change — pure nix-cafe UI / server-action logic.

n5 — Registers moved into Configurations › Store

The registers admin moved from the Point of Sale section to Configurations › Store › Registers (a full route move to /settings/registers). The old /pos/registers is now a redirect stub, so bookmarks and deep links (with ?shop=) still land right.

nav link settings-link-registers/cafe/settings/registers
navigate /cafe/pos/registers → lands on /cafe/settings/registers (admin renders) · ?shop=abc123 carried through
Configurations Store rail with Registers
Configurations › Store now lists Registers (removed from the POS section).
Registers admin under Configurations
The registers admin rendering inside the Configurations shell at /settings/registers.
New register in the Configurations admin
A newly added register shown in the (now Configurations) registers admin.

n6 — Every shop gets a default Cash method on register add

Shops are created in Cpanel, so there is no in-app shop-create hook — Narong's note pins the moment to "right after adding a register." Adding a register now ensures the shop has a Cash tender: Name = "Cash", Description = "Cash & <shop name>", shop-scoped. Idempotent (skips if a cash method already applies) and best-effort (never fails the register the user asked for).

after adding a register on lumiere (had 0 cash) → cafe.payment_methods:
name=Cash · description=Cash & Lumiere Coffee · type=cash · is_cash=t · is_active=t · shop_scoped=t
Right after adding a register on lumiere
The add-register flow on lumiere (Starter) — the Cash method is created behind the scenes on submit.

n7 — Offer to populate default categories

A one-click populate of the standard coffee-shop categories (Coffee · Tea · Frappe / Blended · Bakery & Pastry · Food · Retail / Beans), surfaced two ways: an empty-state card on Configurations › Categories, and a one-time prompt right after the first register is added (only when the tenant still has no categories). Idempotent — re-running skips existing names.

apply from the prompt on lumiere (had 0) → cafe.product_categories:
Coffee(0) · Tea(1) · Frappe / Blended(2) · Bakery & Pastry(3) · Food(4) · Retail / Beans(5)
Categories empty-state prompt
Empty-state card on Configurations › Categories (demo, no categories yet).
Post-register default categories prompt
Post-first-register prompt — appears right after the register is added.
Categories populated
After tapping "Use default categories" — the six defaults populate.

nix-cafe c495b4e (staging c9ad3c1, nix-cafe-staging Worker version 410a7efd). Parked on staging for the scheduled prod promote.