Appearance
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":
- Store Branding →
/settings/brand- Configure your store's branding (logo, colors, etc.) - Billing Profile →
/settings/billing- Set up billing details - Location →
/settings/locations- Create at least one location - Select Location → Select the location from the topbar dropdown
What Gets Auto-Created
When demo-full prerequisites are complete:
- Demo POS connection applied to selected location
- A sample menu with test items for that location
- 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