TorbatYar/docs/commercial-runtime-adoption-report.md
Mortezakoohjani 0d424c500a feat(platform): complete commercial runtime consolidation
Unify commercial runtime ownership across backend and frontend so platform, experience, and hospitality modules use the shared commercial source of truth.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-29 11:11:53 +03:30

3.5 KiB

Commercial Runtime Adoption Report

Date: 2026-07-28
Phase: commercial-runtime-adoption
Prerequisite: Commercial Runtime Backend COMPLETE (not rebuilt)
Contract: commercial.v1.2 · ADR-023 · ADR-022


Verdict

Platform commercial lookups now consume Commercial Runtime (/api/v1/commercial/*) as the single SoT.

Admin Commercial Portal is the only editor for commercial registries. New products / bundles / capabilities / pricing require registry rows only — zero FE/BE commercial catalog code.


Platform Commercial Readiness Score: 92 / 100

Dimension Score Notes
SoT uniqueness 95 FE catalogs deleted; Core onboarding/tenant context on commercial
FE adoption 94 Billing, workspace, admin plans/features, tenant subs, hub catalog
BE adoption 90 Onboarding + tenant context + Payment entitlement client
Zero-code expansion 96 Catalog discovery + generic registries
Legacy removal 88 Legacy Core /plans//features deprecated (compat retained)
L2 boundary hygiene 95 Payment/Experience/Hospitality L2 packs kept (ADR-023)

Deductions: legacy Core plan tables still exist (deprecated APIs); vertical modules still use L2 feature gates (correct, not commercial SoT); communication roadmap registry still lists future modules locally (codes aligned).


Migrated

Frontend

  • Deleted lib/business-bundles.ts, lib/apps-catalog.ts, AppStoreGrid, AppTile
  • Billing: commercial subscriptions/pricing only (no Core bridge, no trial_days \|\| 14)
  • Workspace entitlement + subscription: commercial only
  • Admin /admin/plans/admin/commercial/plans
  • Admin /admin/features/admin/commercial/capabilities
  • Tenant detail subscription: commercial plans + subscriptions
  • Admin hub: discovers registries via GET /catalog
  • Communication future-module bundle fields → commercial-style codes

Backend

  • Onboarding: no legacy FREE/STARTER plan assignment; commercial activation from FE
  • Tenant context: plan/subscription from CommercialTenantSubscription
  • Payment CoreEntitlementClientPOST /api/v1/commercial/entitlements/check
  • Legacy /api/v1/plans marked Deprecated with successor Link header
  • Trial days: taken from plan/pricing resolve only (no hardcoded 14)

Zero-code validation

Action FE code change BE code change How
Add product None None Admin → products registry
Add bundle None None Admin → bundles
Add capability None None Admin → capabilities
Add pricing/plan None None Admin → pricing / plans
New registry kind None None POST /admin/kinds + catalog

Intentionally unchanged (not commercial SoT)

  • Payment / Experience / Hospitality L2 capability packs (ADR-023 decision 10)
  • Delivery operational pricing rules
  • Vertical merchandising (menu items, membership venue plans, etc.)
  • docs/reference/*.yaml seed inputs (feed Commercial Runtime)

Artifacts


STOP

Do not rebuild Commercial Runtime. Do not start Marketplace / QR / Booking / Payment 14.6+.