Skip to content

Demo Full Onboarding Flow (QA/Testing)

Overview

Demo Full is a test-only provider that simulates Hendrickx/Vanhoutte-like onboarding. It requires the complete prerequisite chain: branding profile, billing profile, and location setup before proceeding.

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


Integration Type

  • Scope: Location-specific (requires location to be created and selected)
  • Payment Processing: Simulated (no real payments)
  • Payment Profile: NOT required (but would be in real flow)
  • Billing Profile: Required (billing details must be configured)
  • Branding Profile: Required (must be set up first)
  • Location: Required (must create location manually)
  • Menu Sync: Demo menu auto-populated after connection

Discovery Flow (JSON - for deterministic parsing)

discovery_questions
[
  {
    "id": "channels",
    "text": "What channels do you want to test?",
    "options": ["Kiosk only", "Online ordering only", "Both"]
  }
]
setup_steps
{
  "Kiosk only": [
    {"title": "Set up Store Branding", "route": "/settings/brand"},
    {"title": "Set up Billing Profile", "route": "/settings/billing"},
    {"title": "Create a Location", "route": "/settings/locations"},
    {"title": "Select Location from Topbar", "route": "/dashboard"},
    {"title": "Demo POS Connected", "route": "/orders", "auto_complete": true}
  ],
  "Online ordering only": [
    {"title": "Set up Store Branding", "route": "/settings/brand"},
    {"title": "Set up Billing Profile", "route": "/settings/billing"},
    {"title": "Create a Location", "route": "/settings/locations"},
    {"title": "Select Location from Topbar", "route": "/dashboard"},
    {"title": "Configure Online Ordering"},
    {"title": "Demo POS Connected", "route": "/pickup-and-delivery/online-ordering", "auto_complete": true}
  ],
  "Both": [
    {"title": "Set up Store Branding", "route": "/settings/brand"},
    {"title": "Set up Billing Profile", "route": "/settings/billing"},
    {"title": "Create a Location", "route": "/settings/locations"},
    {"title": "Select Location from Topbar", "route": "/dashboard"},
    {"title": "Configure Online Ordering"},
    {"title": "Demo POS Connected", "route": "/orders", "auto_complete": true}
  ]
}

Prerequisites

These tasks must be completed BEFORE the demo POS is "connected":

  1. Store Branding/settings/brand - Configure your store's branding (logo, colors, etc.)
  2. Billing Profile/settings/billing - Set up billing details
  3. Location/settings/locations - Create at least one location
  4. Select Location → Select the location from the topbar dropdown

What Gets Auto-Created

When demo-full prerequisites are complete:

  1. Demo POS connection applied to selected location
  2. A sample menu with test items for that location
  3. Mock payment configuration (no real transactions)

Emily Conversation Examples

Starting Onboarding

Emily: "You've selected Demo Full mode for testing. This simulates a Hendrickx/Vanhoutte flow with all prerequisites.

Before connecting the demo POS, you need to complete:
1. Store Branding - Your store's look and feel
2. Billing Profile - Your billing details
3. Create a Location - Where the POS will be connected

Let's start with Store Branding. Go to Settings → Brand."

After Each Prerequisite

Emily: "Store Branding is complete! ✓

Next, set up your Billing Profile. Go to Settings → Billing."
Emily: "Billing Profile is complete! ✓

Now create a location for your demo POS. Go to Settings → Locations and add a new location."
Emily: "Location created! ✓

Make sure to select your location from the topbar dropdown, then I'll connect the demo POS to it."

After All Prerequisites

Emily: "All prerequisites are complete! Demo POS is now connected to your location.

You have:
- Demo POS connected to [Location Name]
- A test menu with sample items
- Mock payment processing (no real charges)

What channels would you like to test?"

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

Playwright Usage

typescript
// Select demo-full provider to test complete flow
await page.evaluate(() => {
  localStorage.setItem('qa_demo_provider', 'demo-full')
})

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

// Test the full prerequisite chain
await page.goto('/settings/brand')
// ... complete branding

await page.goto('/settings/billing')
// ... complete billing

await page.goto('/settings/locations')
// ... create location

// Select location from topbar
// ... select location

// Verify onboarding completes