# ScanOps Quick Guide

**For:** everyday operators, trainers, and demos  
**Local URL:** `http://localhost:3005`

ScanOps combines **QR campaigns** (SMB) and **Inventory Center** (warehouse). Start with the quick path below, then jump to the task you need.

> **Full reference:** [SOP-ScanOps-Operations.md](./SOP-ScanOps-Operations.md) (screenshots, backend notes, capture scripts)

---

## Two paths in one product

| Path | Best for | Main areas |
|------|----------|------------|
| **SMB / marketing** | Restaurants, agencies, small shops | Create QR → QR Library → Campaigns → Billing |
| **Warehouse / ops** | Warehouses, manufacturing, retail ops | Inventory Center: Catalog, Locations, Check Out, Receiving, POs, scan labels |

**Plan gates (keep it honest):**

- **Inventory Center** → **Pro Plus** or **Enterprise** only (not Pro / Business alone)
- Cardless 14-day trial with Pro Plus intent unlocks Inventory while the trial is open
- **Integrations** (webhooks, connectors) → **Enterprise / Contact Sales** only
- **No credit card** at signup — card only when you **Subscribe** from Billing

---

## Quick start (first 10 minutes)

1. Open `http://localhost:3005/` — landing page
2. Try **Live Demo** (`/demo`) — public sandbox, no login
3. **Start Free Trial** → `/signup` (add `?plan=pro_plus` for warehouse demos)
4. Pick a plan → submit (Turnstile may appear) — no card collected
5. **Login** at `/login` → lands on `/dashboard`
6. **Create QR** → `/dashboard#create` — pick a marketing type (URL, menu, WiFi, etc.)
7. **QR Library** → `/dashboard#codes` — campaign codes (inventory labels hidden by default)
8. **Campaigns** → `/dashboard#campaigns` — groups by folder name from step 6
9. **Billing** → `/dashboard#billing` — plan, monthly/yearly, Subscribe after trial
10. Warehouse? Continue to **Inventory** sections below (Pro Plus+ required)

---

## Create a marketing QR

- Go to `/dashboard#create`
- Choose a **marketing type** (URL, text, menu, WiFi, link hub, vCard, etc.)
- Optional: set a **folder name** — it becomes a campaign group
- Save — code appears in QR Library

Inventory/asset labels belong under **Inventory → QR Library**, not here.

---

## QR Library & campaigns

**QR Library** (`/dashboard#codes`)

- Campaign and web codes live here
- Inventory labels are **hidden by default** — toggle only if you need them in this list

**Campaigns** (`/dashboard#campaigns`)

- Each folder from Create QR shows as a campaign group
- Use for KPIs and export by group

---

## Inventory Center (Pro Plus+)

If not entitled, panels show **Inventory Center locked**. QR campaigns still work.

**Overview** — `/dashboard#inventory-dashboard`  
- KPIs and low-stock **item names** (not count-only)

**Catalog** — `/dashboard#inventory-list`  
- Search name, SKU, location, barcode  
- Paginated (25 per page)

**Locations** — `/dashboard#inventory-locations`  
- Bins and warehouses (`#inventory-warehouses`)

**Check Out** — `/dashboard#inventory-location-issue`  
- Scan or type bin code → pick line → Check Out  
- Optional: **Load pack list** (CSV) for warehouse waves  
- **Today's picks** shows EOD summary after picks

**Receiving** — `/dashboard#inventory-receive`  
- PO → inspect → receive → LPN → putaway

**Purchase Orders** — `/dashboard#inventory-purchase-orders`

**Inventory QR Library** — `/dashboard#inventory-qr-library`  
- Floor labels; scans open `/inventory/scan/{code}`

### Inventory shortcuts

| Hash | Screen |
|------|--------|
| `#inventory-dashboard` | Overview |
| `#inventory-list` | Catalog |
| `#inventory-locations` | Locations |
| `#inventory-location-issue` | Check Out |
| `#inventory-receive` | Receiving |
| `#inventory-purchase-orders` | Purchase Orders |
| `#inventory-qr-library` | Inventory QR Library |

---

## Floor scan path

**URL:** `/inventory/scan/{code}`

- **Signed in:** item name, SKU, on-hand, locations; Check Out and more
- **Not signed in:** sign in or enter **floor PIN** (4–8 digits, set under Dashboard → Team)
- Floor PIN unlocks **Check Out + Receive** only

---

## Billing

`/dashboard#billing`

- View current plan and invoices
- Toggle **Monthly** / **Yearly** for subscription plans
- After trial: **Subscribe** — this is when card/checkout happens
- **Cancel plan** → access until renewal, then view-only until renew

---

## Account & integrations

**Account** — `/dashboard#account`  
- Edit **Display name** and save  
- Email and role are read-only

**Integrations** — `/dashboard#ecosystem`  
- **Enterprise only** — lower plans show locked state  
- Sales path: `/contact?plan=enterprise`

---

## Demo journeys

**SMB (~6–8 min):** Landing → signup → create marketing QR → QR Library → Campaigns → Billing. Mention Inventory is Pro Plus+.

**Warehouse (~10–15 min):** Signup `?plan=pro_plus` → Inventory overview → Catalog → Locations → Check Out (+ pack list) → Receiving → Inventory QR Library → scan path → Billing → Integrations locked on lower plans.

**Recording script:** [DEMO-RECORDING-SCRIPT.md](./DEMO-RECORDING-SCRIPT.md)

---

## Local setup

```powershell
npm run dev          # port 3005
npm run health -- --url http://localhost:3005/health
```

For warehouse demos, use a Pro Plus trial or entitled test org. Turnstile on signup/login may block headless tools — complete manually for live demos. See [AUTH-BOT-PROTECTION.md](./AUTH-BOT-PROTECTION.md).
