# Retail Operating System — Web POS

v62 turns the previous React bootstrap into a real cashier shell.

Current usable flow:

1. Login with email/password and Tenant ULID.
2. Resolve tenant membership and organization scope.
3. Select company, branch and register.
4. Detect/open the register shift.
5. Create a server-side cart.
6. Scan barcode.
7. Increase/decrease quantity.
8. Checkout using server-side cart version + idempotency.
9. Collect full cash payment.
10. Queue receipt printing.
11. Start a new sale or close the shift.

Development:

```powershell
cd apps\web
npm run dev
```

Vite proxies `/api` and `/up` to `http://127.0.0.1:8000`, so the default API base
in the login screen is `/api/v1`.

For local demo data:

```powershell
cd apps\api
php artisan demo:seed-retail
```

Use the Tenant public ULID printed by the command. The demo login is printed by
the seeder as well.

v62 intentionally implements cash settlement first. Card/external payment UI is
deferred until provider/device outcome handling is wired into the cashier flow.
