Refactor component styles and update color tokens for enhanced consistency
- Updated various components to utilize the latest color tokens, improving visual coherence across the application. - Enhanced error and status messaging styles for better user feedback and clarity. - Streamlined layout components to align with the new design tokens, ensuring a unified look and feel. - Improved overall styling consistency by adopting standardized color usage in key components.
This commit is contained in:
parent
a2e81798ef
commit
5367678557
419
docs/architecture/PUBLIC-CATALOG-TASKS.md
Normal file
419
docs/architecture/PUBLIC-CATALOG-TASKS.md
Normal file
@ -0,0 +1,419 @@
|
|||||||
|
# Public Catalog & Unified Checkout - Task Checklist
|
||||||
|
|
||||||
|
> **Related**: See [PUBLIC-CATALOG-UNIFIED-CHECKOUT.md](./PUBLIC-CATALOG-UNIFIED-CHECKOUT.md) for full design document.
|
||||||
|
|
||||||
|
## Quick Reference
|
||||||
|
|
||||||
|
- **Total Effort**: ~7 weeks
|
||||||
|
- **Priority**: P0 (Critical), P1 (Important), P2 (Nice to have)
|
||||||
|
- **Status Legend**: ⬜ Todo, 🟡 In Progress, ✅ Done, ❌ Blocked
|
||||||
|
- **Branch**: `Homepage`
|
||||||
|
|
||||||
|
### Current Progress
|
||||||
|
|
||||||
|
```
|
||||||
|
✅ Phase 0 (SF Permissions) → Phase 1 → Phase 2 → Phase 3 → Phase 4 → Phase 5 → Launch
|
||||||
|
↑
|
||||||
|
START HERE
|
||||||
|
```
|
||||||
|
|
||||||
|
### Critical Path
|
||||||
|
|
||||||
|
Phase 4 (Salesforce Account Creation) remains the most complex phase, but **SF permissions are now verified** ✅
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 0: Preparation (4 days)
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| --- | ---------------------------------------- | -------- | ------ | ------ | --------------------------- |
|
||||||
|
| 0.1 | Create feature branch `feature/homepage` | P0 | 1h | ✅ | Done - on Homepage branch |
|
||||||
|
| 0.2 | Document current catalog user flow | P0 | 2h | ⬜ | Screenshots + notes |
|
||||||
|
| 0.3 | Document current checkout user flow | P0 | 2h | ⬜ | Screenshots + notes |
|
||||||
|
| 0.4 | Set up feature flags infrastructure | P0 | 4h | ⬜ | Use env vars initially |
|
||||||
|
| 0.5 | Verify SF integration user permissions | P0 | 3h | ✅ | Done - permissions verified |
|
||||||
|
| 0.6 | Add "Portal Checkout" to SF picklist | P0 | 1h | ✅ | Done - picklist updated |
|
||||||
|
| 0.7 | Create test Salesforce sandbox accounts | P0 | 2h | ⬜ | For testing order flow |
|
||||||
|
| 0.8 | Create test WHMCS accounts | P0 | 2h | ⬜ | For payment testing |
|
||||||
|
| 0.9 | Document rollback/cleanup procedures | P0 | 2h | ⬜ | For orphaned records |
|
||||||
|
|
||||||
|
### ✅ Salesforce Permissions - VERIFIED
|
||||||
|
|
||||||
|
The following permissions have been confirmed:
|
||||||
|
|
||||||
|
| Object | Permission | Status |
|
||||||
|
| ------------------------------- | ---------- | ------------------------------ |
|
||||||
|
| Account | CREATE | ✅ Verified |
|
||||||
|
| Account | UPDATE | ✅ Verified |
|
||||||
|
| Contact | CREATE | ✅ Verified |
|
||||||
|
| SF_Account_No\_\_c | READ/WRITE | ✅ Verified |
|
||||||
|
| WH_Account\_\_c | READ/WRITE | ✅ Verified |
|
||||||
|
| Portal_Status\_\_c | WRITE | ✅ Verified |
|
||||||
|
| Portal_Registration_Source\_\_c | WRITE | ✅ Verified (picklist updated) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 1: Public Catalog (5 days)
|
||||||
|
|
||||||
|
### 1.1 Frontend - Routes & Layout
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ------ | ----------------------------------------------------- | -------- | ------ | ------ | ----------------------------- |
|
||||||
|
| 1.1.1 | Create `CatalogLayout` component | P0 | 4h | ⬜ | Hybrid header (public + auth) |
|
||||||
|
| 1.1.2 | Create `CatalogHeader` component | P0 | 2h | ⬜ | Logo, nav, sign-in button |
|
||||||
|
| 1.1.3 | Create `(public)/catalog/layout.tsx` | P0 | 1h | ⬜ | Use CatalogLayout |
|
||||||
|
| 1.1.4 | Create `(public)/catalog/page.tsx` | P0 | 2h | ⬜ | Copy from authenticated |
|
||||||
|
| 1.1.5 | Create `(public)/catalog/internet/page.tsx` | P0 | 2h | ⬜ | Copy from authenticated |
|
||||||
|
| 1.1.6 | Create `(public)/catalog/internet/configure/page.tsx` | P0 | 2h | ⬜ | Copy from authenticated |
|
||||||
|
| 1.1.7 | Create `(public)/catalog/sim/page.tsx` | P0 | 2h | ⬜ | Copy from authenticated |
|
||||||
|
| 1.1.8 | Create `(public)/catalog/sim/configure/page.tsx` | P0 | 2h | ⬜ | Copy from authenticated |
|
||||||
|
| 1.1.9 | Create `(public)/catalog/vpn/page.tsx` | P0 | 1h | ⬜ | Copy from authenticated |
|
||||||
|
| 1.1.10 | Update internal links in catalog components | P0 | 2h | ⬜ | Ensure relative paths work |
|
||||||
|
|
||||||
|
### 1.2 Backend - Public API
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ----- | --------------------------------------------- | -------- | ------ | ------ | ----------------------- |
|
||||||
|
| 1.2.1 | Add `@Public()` to `CatalogController` | P0 | 0.5h | ⬜ | `catalog.controller.ts` |
|
||||||
|
| 1.2.2 | Update catalog services to handle null userId | P0 | 1h | ⬜ | Defensive coding |
|
||||||
|
| 1.2.3 | Add rate limiting to public catalog endpoints | P0 | 1h | ⬜ | Prevent abuse |
|
||||||
|
| 1.2.4 | Test catalog API without auth token | P0 | 1h | ⬜ | Manual + automated |
|
||||||
|
|
||||||
|
### 1.3 Integration
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ----- | -------------------------------------------- | -------- | ------ | ------ | ---------------------- |
|
||||||
|
| 1.3.1 | Update `catalogService` to work without auth | P0 | 1h | ⬜ | Frontend service |
|
||||||
|
| 1.3.2 | Test full catalog flow without login | P0 | 2h | ⬜ | All product types |
|
||||||
|
| 1.3.3 | Add "Proceed to Checkout" CTA | P0 | 2h | ⬜ | Redirects to /checkout |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 2: Checkout Store (3 days)
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| --- | --------------------------------------- | -------- | ------ | ------ | ----------------------- |
|
||||||
|
| 2.1 | Define `CartItem` TypeScript interface | P0 | 1h | ⬜ | In domain package |
|
||||||
|
| 2.2 | Define `GuestInfo` TypeScript interface | P0 | 1h | ⬜ | In domain package |
|
||||||
|
| 2.3 | Create `checkout.store.ts` with Zustand | P0 | 2h | ⬜ | With persist middleware |
|
||||||
|
| 2.4 | Implement cart item serialization | P0 | 2h | ⬜ | Handle complex objects |
|
||||||
|
| 2.5 | Implement cart validation utilities | P0 | 2h | ⬜ | Zod schemas |
|
||||||
|
| 2.6 | Create `useCartRecovery` hook | P1 | 2h | ⬜ | Detect stale carts |
|
||||||
|
| 2.7 | Write unit tests for checkout store | P0 | 4h | ⬜ | Full coverage |
|
||||||
|
| 2.8 | Test localStorage persistence | P0 | 1h | ⬜ | Refresh, close browser |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 3: Unified Checkout UI (8 days)
|
||||||
|
|
||||||
|
### 3.1 Checkout Shell
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ----- | ------------------------------------ | -------- | ------ | ------ | --------------- |
|
||||||
|
| 3.1.1 | Create `(public)/checkout/page.tsx` | P0 | 1h | ⬜ | Shell page |
|
||||||
|
| 3.1.2 | Create `CheckoutLayout` component | P0 | 2h | ⬜ | Minimal header |
|
||||||
|
| 3.1.3 | Create `CheckoutProgress` component | P0 | 2h | ⬜ | Step indicator |
|
||||||
|
| 3.1.4 | Create `CheckoutWizard` component | P0 | 3h | ⬜ | Step management |
|
||||||
|
| 3.1.5 | Create `OrderSummaryCard` component | P0 | 2h | ⬜ | Sidebar summary |
|
||||||
|
| 3.1.6 | Create `EmptyCartRedirect` component | P0 | 1h | ⬜ | Handle no cart |
|
||||||
|
|
||||||
|
### 3.2 Account Step
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ----- | ------------------------------------- | -------- | ------ | ------ | -------------------- |
|
||||||
|
| 3.2.1 | Create `AccountStep` component | P0 | 3h | ⬜ | Parent component |
|
||||||
|
| 3.2.2 | Create `GuestInfoForm` component | P0 | 3h | ⬜ | New customer form |
|
||||||
|
| 3.2.3 | Create `SignInForm` embedded variant | P0 | 2h | ⬜ | Reuse existing |
|
||||||
|
| 3.2.4 | Implement mode switching (new/signin) | P0 | 1h | ⬜ | Toggle between forms |
|
||||||
|
| 3.2.5 | Add form validation | P0 | 2h | ⬜ | Zod + useZodForm |
|
||||||
|
|
||||||
|
### 3.3 Address Step
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ----- | -------------------------------- | -------- | ------ | ------ | --------------- |
|
||||||
|
| 3.3.1 | Create `AddressStep` component | P0 | 2h | ⬜ | Wrapper |
|
||||||
|
| 3.3.2 | Integrate existing `AddressForm` | P0 | 2h | ⬜ | Reuse component |
|
||||||
|
| 3.3.3 | Add postal code auto-fill (JP) | P1 | 3h | ⬜ | External API |
|
||||||
|
| 3.3.4 | Add address validation | P0 | 2h | ⬜ | Required fields |
|
||||||
|
|
||||||
|
### 3.4 Payment Step
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ----- | --------------------------------------- | -------- | ------ | ------ | --------------- |
|
||||||
|
| 3.4.1 | Create `PaymentStep` component | P0 | 3h | ⬜ | Main component |
|
||||||
|
| 3.4.2 | Implement WHMCS SSO link opening | P0 | 2h | ⬜ | New tab |
|
||||||
|
| 3.4.3 | Create `usePaymentPolling` hook | P0 | 2h | ⬜ | Poll for method |
|
||||||
|
| 3.4.4 | Add focus listener for return detection | P0 | 1h | ⬜ | Window focus |
|
||||||
|
| 3.4.5 | Create `PaymentMethodDisplay` component | P0 | 1h | ⬜ | Show added card |
|
||||||
|
| 3.4.6 | Add loading/waiting states | P0 | 1h | ⬜ | UX polish |
|
||||||
|
|
||||||
|
### 3.5 Review Step
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ----- | ----------------------------------- | -------- | ------ | ------ | ------------ |
|
||||||
|
| 3.5.1 | Create `ReviewStep` component | P0 | 3h | ⬜ | Summary view |
|
||||||
|
| 3.5.2 | Create `OrderItemsReview` component | P0 | 2h | ⬜ | Cart items |
|
||||||
|
| 3.5.3 | Create `AddressReview` component | P0 | 1h | ⬜ | Show address |
|
||||||
|
| 3.5.4 | Create `PaymentReview` component | P0 | 1h | ⬜ | Show payment |
|
||||||
|
| 3.5.5 | Add terms acceptance checkbox | P0 | 0.5h | ⬜ | Required |
|
||||||
|
| 3.5.6 | Create submit order handler | P0 | 2h | ⬜ | API call |
|
||||||
|
| 3.5.7 | Add loading state during submission | P0 | 1h | ⬜ | UX |
|
||||||
|
|
||||||
|
### 3.6 Confirmation
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ----- | -------------------------------------------- | -------- | ------ | ------ | ------------- |
|
||||||
|
| 3.6.1 | Create `(public)/checkout/complete/page.tsx` | P0 | 2h | ⬜ | Success page |
|
||||||
|
| 3.6.2 | Create `OrderConfirmation` component | P0 | 2h | ⬜ | Order details |
|
||||||
|
| 3.6.3 | Add "Go to Dashboard" CTA | P0 | 0.5h | ⬜ | Navigation |
|
||||||
|
| 3.6.4 | Clear checkout store on completion | P0 | 0.5h | ⬜ | Cleanup |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 4: Backend - Checkout Registration (7 days)
|
||||||
|
|
||||||
|
> **CRITICAL**: Salesforce Account creation is SYNCHRONOUS and REQUIRED.
|
||||||
|
> Every new customer MUST have a Salesforce Account for business tracking.
|
||||||
|
|
||||||
|
### 4.1 Domain Schema Changes
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ----- | -------------------------------------------- | -------- | ------ | ------ | ---------------------- |
|
||||||
|
| 4.1.1 | Make `sfNumber` optional in signup schema | P0 | 1h | ⬜ | `packages/domain/auth` |
|
||||||
|
| 4.1.2 | Create `checkoutRegisterSchema` | P0 | 1h | ⬜ | New schema |
|
||||||
|
| 4.1.3 | Create `checkoutSubmitSchema` | P0 | 1h | ⬜ | Order from cart |
|
||||||
|
| 4.1.4 | Create `CreateSalesforceAccountRequest` type | P0 | 0.5h | ⬜ | SF Account payload |
|
||||||
|
| 4.1.5 | Create `CreateSalesforceContactRequest` type | P0 | 0.5h | ⬜ | SF Contact payload |
|
||||||
|
| 4.1.6 | Update type exports | P0 | 0.5h | ⬜ | Index files |
|
||||||
|
| 4.1.7 | Build domain package | P0 | 0.5h | ⬜ | Verify compilation |
|
||||||
|
|
||||||
|
### 4.2 Salesforce Account Service Updates
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ----- | ------------------------------------ | -------- | ------ | ------ | ---------------------- |
|
||||||
|
| 4.2.1 | Add `createAccount()` method | P0 | 3h | ⬜ | Creates SF Account |
|
||||||
|
| 4.2.2 | Add `createContact()` method | P0 | 2h | ⬜ | Creates SF Contact |
|
||||||
|
| 4.2.3 | Add `generateAccountNumber()` method | P0 | 2h | ⬜ | Auto-gen PNNNNNNN |
|
||||||
|
| 4.2.4 | Add `findByEmail()` method | P0 | 1h | ⬜ | Check for duplicates |
|
||||||
|
| 4.2.5 | Test SF Account creation in sandbox | P0 | 2h | ⬜ | Verify permissions |
|
||||||
|
| 4.2.6 | Test SF Contact creation in sandbox | P0 | 1h | ⬜ | Verify link to Account |
|
||||||
|
| 4.2.7 | Verify WH_Account\_\_c update works | P0 | 1h | ⬜ | Link SF → WHMCS |
|
||||||
|
|
||||||
|
### 4.3 Checkout Service
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ------ | ------------------------------------------ | -------- | ------ | ------ | ------------------- |
|
||||||
|
| 4.3.1 | Create `CheckoutService` class | P0 | 1h | ⬜ | Business logic |
|
||||||
|
| 4.3.2 | Implement `registerForCheckout()` - Step 1 | P0 | 1h | ⬜ | Create SF Account |
|
||||||
|
| 4.3.3 | Implement `registerForCheckout()` - Step 2 | P0 | 1h | ⬜ | Create SF Contact |
|
||||||
|
| 4.3.4 | Implement `registerForCheckout()` - Step 3 | P0 | 1h | ⬜ | Create WHMCS Client |
|
||||||
|
| 4.3.5 | Implement `registerForCheckout()` - Step 4 | P0 | 0.5h | ⬜ | Link SF to WHMCS |
|
||||||
|
| 4.3.6 | Implement `registerForCheckout()` - Step 5 | P0 | 1h | ⬜ | Create Portal User |
|
||||||
|
| 4.3.7 | Implement `registerForCheckout()` - Step 6 | P0 | 0.5h | ⬜ | Create ID Mapping |
|
||||||
|
| 4.3.8 | Implement `registerForCheckout()` - Step 7 | P0 | 0.5h | ⬜ | Generate tokens |
|
||||||
|
| 4.3.9 | Implement `rollbackRegistration()` method | P0 | 2h | ⬜ | Compensating txns |
|
||||||
|
| 4.3.10 | Implement `getPaymentStatus()` method | P0 | 1h | ⬜ | Check WHMCS |
|
||||||
|
| 4.3.11 | Add comprehensive logging | P0 | 1h | ⬜ | Debug each step |
|
||||||
|
|
||||||
|
### 4.4 Checkout Controller
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ----- | ------------------------------------------- | -------- | ------ | ------ | -------------- |
|
||||||
|
| 4.4.1 | Create `CheckoutController` class | P0 | 1h | ⬜ | New controller |
|
||||||
|
| 4.4.2 | Add `POST /checkout/register` endpoint | P0 | 1h | ⬜ | Public |
|
||||||
|
| 4.4.3 | Add `GET /checkout/payment-status` endpoint | P0 | 0.5h | ⬜ | Authenticated |
|
||||||
|
| 4.4.4 | Add `POST /checkout/submit` endpoint | P0 | 0.5h | ⬜ | Authenticated |
|
||||||
|
| 4.4.5 | Add rate limiting (5/min) | P0 | 0.5h | ⬜ | Prevent abuse |
|
||||||
|
| 4.4.6 | Create `CheckoutModule` | P0 | 0.5h | ⬜ | Nest module |
|
||||||
|
| 4.4.7 | Register in `AppModule` | P0 | 0.5h | ⬜ | Wire up |
|
||||||
|
|
||||||
|
### 4.5 Testing
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ----- | ------------------------------------ | -------- | ------ | ------ | -------------------- |
|
||||||
|
| 4.5.1 | Unit test: SF Account creation | P0 | 1h | ⬜ | Mock SF API |
|
||||||
|
| 4.5.2 | Unit test: SF Contact creation | P0 | 1h | ⬜ | Mock SF API |
|
||||||
|
| 4.5.3 | Unit test: Account number generation | P0 | 1h | ⬜ | Sequence logic |
|
||||||
|
| 4.5.4 | Unit test: Full registration flow | P0 | 2h | ⬜ | Happy path |
|
||||||
|
| 4.5.5 | Unit test: Rollback scenarios | P0 | 2h | ⬜ | Failure at each step |
|
||||||
|
| 4.5.6 | Integration test: SF sandbox | P0 | 2h | ⬜ | Real SF calls |
|
||||||
|
| 4.5.7 | Integration test: Full flow | P0 | 2h | ⬜ | SF + WHMCS + Portal |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 5: Integration Testing (5 days)
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ---- | ---------------------------------------- | -------- | ------ | ------ | ------------------- |
|
||||||
|
| 5.1 | Wire up checkout UI to register endpoint | P0 | 2h | ⬜ | API integration |
|
||||||
|
| 5.2 | Implement auto-login after registration | P0 | 2h | ⬜ | Token handling |
|
||||||
|
| 5.3 | Wire up order submission | P0 | 2h | ⬜ | API integration |
|
||||||
|
| 5.4 | E2E test: New customer full flow | P0 | 4h | ⬜ | Playwright |
|
||||||
|
| 5.5 | E2E test: Existing customer flow | P0 | 2h | ⬜ | Sign-in path |
|
||||||
|
| 5.6 | E2E test: Cart recovery | P1 | 2h | ⬜ | Abandon + resume |
|
||||||
|
| 5.7 | E2E test: Error scenarios | P0 | 3h | ⬜ | Network, validation |
|
||||||
|
| 5.8 | Performance test checkout | P1 | 2h | ⬜ | Load testing |
|
||||||
|
| 5.9 | Security review | P0 | 4h | ⬜ | Auth, CSRF, etc. |
|
||||||
|
| 5.10 | Fix bugs from testing | P0 | 8h | ⬜ | Buffer time |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 6: Public Support (3 days)
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| --- | ------------------------------------------ | -------- | ------ | ------ | ------------ |
|
||||||
|
| 6.1 | Create `(public)/support/page.tsx` | P1 | 2h | ⬜ | FAQ landing |
|
||||||
|
| 6.2 | Create `PublicSupportView` component | P1 | 3h | ⬜ | Content |
|
||||||
|
| 6.3 | Create `(public)/support/contact/page.tsx` | P1 | 1h | ⬜ | Form page |
|
||||||
|
| 6.4 | Create `PublicContactForm` component | P1 | 3h | ⬜ | Form UI |
|
||||||
|
| 6.5 | Create `publicContactSchema` | P1 | 0.5h | ⬜ | Validation |
|
||||||
|
| 6.6 | Add `POST /support/contact` endpoint | P1 | 2h | ⬜ | Public API |
|
||||||
|
| 6.7 | Implement Salesforce Lead creation | P1 | 3h | ⬜ | Integration |
|
||||||
|
| 6.8 | Add rate limiting to contact endpoint | P1 | 0.5h | ⬜ | Prevent spam |
|
||||||
|
| 6.9 | Test public contact flow | P1 | 1h | ⬜ | Full flow |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Phase 7: Polish & Launch (4 days)
|
||||||
|
|
||||||
|
### 7.1 Error Handling
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ----- | ------------------------- | -------- | ------ | ------ | -------------------- |
|
||||||
|
| 7.1.1 | Review all error messages | P0 | 2h | ⬜ | User-friendly |
|
||||||
|
| 7.1.2 | Add error boundaries | P0 | 1h | ⬜ | React boundaries |
|
||||||
|
| 7.1.3 | Add retry mechanisms | P1 | 2h | ⬜ | Network errors |
|
||||||
|
| 7.1.4 | Add fallback UI states | P0 | 2h | ⬜ | Graceful degradation |
|
||||||
|
|
||||||
|
### 7.2 UX Polish
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ----- | ------------------------- | -------- | ------ | ------ | ----------------------- |
|
||||||
|
| 7.2.1 | Add loading skeletons | P0 | 2h | ⬜ | All async states |
|
||||||
|
| 7.2.2 | Add transition animations | P2 | 2h | ⬜ | Step transitions |
|
||||||
|
| 7.2.3 | Mobile responsive testing | P0 | 2h | ⬜ | All breakpoints |
|
||||||
|
| 7.2.4 | Accessibility audit | P1 | 2h | ⬜ | Screen reader, keyboard |
|
||||||
|
|
||||||
|
### 7.3 Analytics & Monitoring
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ----- | --------------------------- | -------- | ------ | ------ | ----------------- |
|
||||||
|
| 7.3.1 | Add funnel tracking events | P1 | 2h | ⬜ | Google Analytics |
|
||||||
|
| 7.3.2 | Add error tracking | P1 | 1h | ⬜ | Sentry or similar |
|
||||||
|
| 7.3.3 | Create conversion dashboard | P1 | 2h | ⬜ | Metrics |
|
||||||
|
|
||||||
|
### 7.4 Documentation
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ----- | ------------------------------ | -------- | ------ | ------ | ---------- |
|
||||||
|
| 7.4.1 | Update STRUCTURE.md | P1 | 1h | ⬜ | New routes |
|
||||||
|
| 7.4.2 | Update catalog-and-checkout.md | P1 | 2h | ⬜ | New flow |
|
||||||
|
| 7.4.3 | Create feature announcement | P1 | 1h | ⬜ | For users |
|
||||||
|
|
||||||
|
### 7.5 Launch Prep
|
||||||
|
|
||||||
|
| # | Task | Priority | Effort | Status | Notes |
|
||||||
|
| ----- | -------------------------------- | -------- | ------ | ------ | ---------------- |
|
||||||
|
| 7.5.1 | Configure feature flags for prod | P0 | 1h | ⬜ | Gradual rollout |
|
||||||
|
| 7.5.2 | Update production env vars | P0 | 0.5h | ⬜ | If needed |
|
||||||
|
| 7.5.3 | Create rollback procedure | P0 | 1h | ⬜ | Document steps |
|
||||||
|
| 7.5.4 | Prepare monitoring alerts | P0 | 1h | ⬜ | Error rate, etc. |
|
||||||
|
| 7.5.5 | Schedule launch window | P0 | 0.5h | ⬜ | With team |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Definition of Done
|
||||||
|
|
||||||
|
Each task is considered **Done** when:
|
||||||
|
|
||||||
|
- [ ] Code is written and follows project conventions
|
||||||
|
- [ ] Unit tests pass (if applicable)
|
||||||
|
- [ ] Code is reviewed and approved
|
||||||
|
- [ ] Feature works in staging environment
|
||||||
|
- [ ] No TypeScript errors
|
||||||
|
- [ ] No ESLint warnings
|
||||||
|
- [ ] Responsive design verified (if UI)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Dependencies Graph
|
||||||
|
|
||||||
|
```
|
||||||
|
Phase 0 ✅ (SF Permissions verified, branch created)
|
||||||
|
│
|
||||||
|
↓
|
||||||
|
Phase 1 ──→ Phase 2 ──→ Phase 3
|
||||||
|
│
|
||||||
|
↓
|
||||||
|
Phase 4 (SF Account Creation)
|
||||||
|
│
|
||||||
|
↓
|
||||||
|
Phase 5 (Integration Testing)
|
||||||
|
│
|
||||||
|
├──────────┬──────────┐
|
||||||
|
↓ │ ↓
|
||||||
|
Phase 6 │ Phase 7
|
||||||
|
│ │ │
|
||||||
|
└──────────┴──────────┘
|
||||||
|
↓
|
||||||
|
LAUNCH
|
||||||
|
```
|
||||||
|
|
||||||
|
### Phase Dependencies Detail
|
||||||
|
|
||||||
|
| Phase | Depends On | Blocks |
|
||||||
|
| ------- | ------------------ | -------------------------------- |
|
||||||
|
| Phase 0 | - | All phases |
|
||||||
|
| Phase 1 | Phase 0 | Phase 3 (checkout needs catalog) |
|
||||||
|
| Phase 2 | Phase 0 | Phase 3 (checkout needs cart) |
|
||||||
|
| Phase 3 | Phase 1, 2 | Phase 5 |
|
||||||
|
| Phase 4 | Phase 0 (SF perms) | Phase 5 |
|
||||||
|
| Phase 5 | Phase 3, 4 | Phase 7 |
|
||||||
|
| Phase 6 | Phase 0 | Launch |
|
||||||
|
| Phase 7 | Phase 5 | Launch |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Risk Register
|
||||||
|
|
||||||
|
| Risk | Likelihood | Impact | Mitigation | Status |
|
||||||
|
| ------------------------------------------- | ---------- | ------------ | ------------------------------------- | ------------ |
|
||||||
|
| **SF Account creation fails** | Medium | **Critical** | Retry logic, clear errors, monitoring | Open |
|
||||||
|
| ~~SF permission issues~~ | ~~Medium~~ | ~~Critical~~ | ~~Verify in Phase 0~~ | ✅ Mitigated |
|
||||||
|
| **Partial registration (orphaned records)** | Medium | High | Rollback logic, cleanup procedures | Open |
|
||||||
|
| SF API rate limits | Low | High | Monitor usage, batch if needed | Open |
|
||||||
|
| WHMCS SSO reliability | Medium | High | Add retry logic, clear error messages | Open |
|
||||||
|
| Performance regression | Low | Medium | Load test before launch | Open |
|
||||||
|
| Security vulnerability | Low | Critical | Security review, pen test | Open |
|
||||||
|
| Duplicate SF Accounts created | Low | Medium | Check by email before creating | Open |
|
||||||
|
| User confusion with new flow | Medium | Low | Clear UX, help text | Open |
|
||||||
|
|
||||||
|
### Salesforce-Specific Risks
|
||||||
|
|
||||||
|
| Risk | Mitigation | Status |
|
||||||
|
| -------------------------------------------- | ------------------------------------- | ----------- |
|
||||||
|
| ~~Integration user lacks CREATE on Account~~ | ~~Test in Phase 0~~ | ✅ Verified |
|
||||||
|
| Required fields missing in SF org | Document all fields, validate payload | Open |
|
||||||
|
| Customer number collision | Use SF auto-number or query for max | Open |
|
||||||
|
| SF sandbox differs from production | Test in production-like sandbox | Open |
|
||||||
|
| SF API timeout during registration | Add timeout handling, retry logic | Open |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Contacts
|
||||||
|
|
||||||
|
| Role | Name | Responsibility |
|
||||||
|
| ------------ | ---- | ------------------------ |
|
||||||
|
| Tech Lead | TBD | Architecture decisions |
|
||||||
|
| Frontend Dev | TBD | UI implementation |
|
||||||
|
| Backend Dev | TBD | API implementation |
|
||||||
|
| QA | TBD | Testing |
|
||||||
|
| Product | TBD | Requirements, acceptance |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Changelog
|
||||||
|
|
||||||
|
| Date | Change | Author |
|
||||||
|
| ---------- | ------------------------- | ------ |
|
||||||
|
| 2024-12-17 | Initial task list created | - |
|
||||||
1421
docs/architecture/PUBLIC-CATALOG-UNIFIED-CHECKOUT.md
Normal file
1421
docs/architecture/PUBLIC-CATALOG-UNIFIED-CHECKOUT.md
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user