
Business side
Operational and brand control for food-service businesses across branches and menus.
- Branches
- Menus
- Products
- Visual identity
- Configuration

Customer side
A guest-facing path from discovery to payment, shaped by each business identity.
- Discover
- Explore
- Order
- Pay

01 · Identity A
Shared platform. Independent brand surface.

02 · Identity B
Same system. Different visual language.

03 · Identity C
Configured experience, not a separate product.
Same system. Multiple outcomes.

English
Left-to-right reading flow and spacing.

Persian
Right-to-left structure and typographic behavior.
Explicit tenant context
- Problem
- Public and admin requests can arrive through different entry points.
- Decision
- Resolve tenant context before authorization and business logic.
- Why
- Boundaries stay clear when every meaningful path starts from the same conceptual sequence.
Separating Cart from Order
- Problem
- Editable shopping intent and committed purchases behave differently.
- Decision
- Keep cart and order as distinct stages with an explicit transition.
- Why
- Conversion, capability checks, and idempotent behavior become easier to reason about.
Server-side authorization
- Problem
- UI restrictions alone cannot protect tenant and branch boundaries.
- Decision
- Validate membership, roles, and branch access on the server.
- Why
- Permissions remain trustworthy even when clients are wrong or incomplete.
Idempotent payment operations
- Problem
- Retries, concurrency, and partial payment make money flows fragile.
- Decision
- Design payment handling around idempotency, allocation, state, and verification.
- Why
- Correctness matters more than pretending the provider integration is finished.






