Skip to content

Demo Minimal Onboarding Flow (QA/Testing)

Overview

Demo Minimal is a test-only provider that simulates Square-like onboarding with no prerequisites. This allows QA and Playwright tests to quickly get to post-onboarding flows without setting up payment profiles, billing, or branding.

Important: This provider is for testing/staging environments only and should never appear in production.


Integration Type

  • Scope: Merchant-scoped (no location required)
  • Payment Processing: Simulated (no real payments)
  • Payment Profile: NOT required (skipped)
  • Billing Profile: NOT required (skipped)
  • Branding Profile: NOT required (skipped)
  • Location: NOT required (auto-created with demo data)
  • Menu Sync: Demo menu auto-populated

Discovery Flow (JSON - for deterministic parsing)

discovery_questions
[
  {
    "id": "channels",
    "text": "What would you like to test?",
    "options": ["Kiosk only", "Online ordering only", "Both"]
  }
]
setup_steps
{
  "Kiosk only": [
    {"title": "Demo Setup Complete", "route": "/orders", "auto_complete": true}
  ],
  "Online ordering only": [
    {"title": "Demo Setup Complete", "route": "/pickup-and-delivery/online-ordering", "auto_complete": true}
  ],
  "Both": [
    {"title": "Demo Setup Complete", "route": "/orders", "auto_complete": true}
  ]
}

Prerequisites

None - This is the minimal demo flow for rapid testing.


What Gets Auto-Created

When demo-minimal is selected:

  1. A demo location with mock address and coordinates
  2. A sample menu with test items
  3. Mock payment configuration (no real transactions)

Emily Conversation Examples

Starting Onboarding

Emily: "You've selected Demo Minimal mode for testing. This skips all prerequisites and sets up a demo environment instantly.

What would you like to test?"

[Kiosk only] [Online ordering only] [Both]

After Selection

Emily: "Demo environment is ready! You now have:
- A demo location with sample data
- A test menu with sample items
- Mock payment processing (no real charges)

You can now explore all features as if you had a real POS connected."

Playwright Usage

typescript
// Select demo-minimal provider for quick testing
await page.evaluate(() => {
  localStorage.setItem('qa_demo_provider', 'demo-minimal')
})

// Or via URL parameter
await page.goto('/dashboard?demo=minimal')