feat: module-driven onboarding system + simplified 3-step signup

Add OnboardingProviderProtocol so modules declare their own post-signup
onboarding steps. The core OnboardingAggregator discovers enabled
providers and exposes a dashboard API (GET /dashboard/onboarding).
A session-scoped banner on the store dashboard shows a checklist that
guides merchants through setup without blocking signup.

Signup is simplified from 4 steps to 3 (Plan → Account → Payment):
store creation is merged into account creation, store language is
captured from the user's browsing language, and platform-specific
template branching is removed.

Includes 47 unit and integration tests covering all new providers,
the aggregator, the API endpoint, and the signup service changes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-28 23:39:42 +01:00
parent f8a2394da5
commit ef9ea29643
26 changed files with 2055 additions and 699 deletions

View File

@@ -63,6 +63,11 @@ from app.modules.contracts.metrics import (
MetricsProviderProtocol,
MetricValue,
)
from app.modules.contracts.onboarding import (
OnboardingProviderProtocol,
OnboardingStepDefinition,
OnboardingStepStatus,
)
from app.modules.contracts.widgets import (
BreakdownWidget,
DashboardWidget,
@@ -92,6 +97,10 @@ __all__ = [
"MetricValue",
"MetricsContext",
"MetricsProviderProtocol",
# Onboarding protocols
"OnboardingStepDefinition",
"OnboardingStepStatus",
"OnboardingProviderProtocol",
# Widget protocols
"WidgetContext",
"WidgetListItem",