UC 1.1–1.9: Marketing Site
Use cases cho toàn bộ marketing website — landing pages, SEO, resources, utility
| Tài liệu | Nội dung |
|---|---|
| UC 1.1–1.6 | Navigation, Cookie Consent, Analytics, CRM, Landing Pages |
| UC 1.7: SEO Pages | Trading SEO pages |
| UC 1.8: Resources | Rules, Trading Floor, Insights Hub, Help Center |
| UC 1.9: Utility Suite | Utility pages |
Điều kiện truy cập — Cloudflare Edge Block (toàn bộ Marketing site)
Toàn bộ domain đứng sau Cloudflare. Cloudflare chặn truy cập ngay tại edge theo vị trí vật lý của visitor cho 7 quốc gia (Cuba, Iran, North Korea, Syria, Belarus, Russia, China) + 5 vùng Ukraine bị cấm vận — visitor không xem được bất kỳ page nào của Marketing site (cũng như Dashboard và Checkout). Request bị drop tại edge, không tới Next.js, nên không có xử lý nào ở tầng application.
RACI: Stack Trading ops tự cấu hình rule trên Cloudflare dashboard (WAF / Security Rules), Sotatek không build. Đặc tả đầy đủ: Cloudflare Edge Access Block · BR_1.1.1.4 · BR_1.1.1.5 (Ref: MKT-42).
Cơ chế sanctions geo-block theo
Compliance_geo_restrictionslà chủ đề riêng thuộc Checkout (UC_2.1.4), không thuộc phạm vi Marketing site.
Marketing Site — CMS Editability Scope (Overall)
Tổng hợp phạm vi chỉnh sửa nội dung cho toàn bộ màn hình Marketing site: phần nào bị Hardcode (cố định trong code Next.js, chỉ đổi được qua dev deploy) và phần nào chỉnh được qua Sanity CMS (Marketing team tự cập nhật, không cần dev). Một màn hình có thể vừa có phần Hardcode vừa có phần Sanity (ví dụ: Layout Hardcode nhưng Pricing Data vẫn chỉnh qua Sanity).
Nguồn: [Internal] Pricing Data Display - Marketing Site.docx (Ref: MKT_PRICING_DISPLAY_SCOPE trong _SOURCE_MANIFEST.yaml) — tài liệu này cũng resolve Open Question về "linked doc" trong CR-20260731-001.
Legend: Hardcode = cố định trong code. Sanity = field nội dung do Marketing team quản lý qua Sanity CMS. N/A = section không tồn tại trên màn đó.
| Pages | UC ref | Layout | Pricing Data | FAQ section | Insight Hub section | Other Content | Mode Waitlist |
|---|---|---|---|---|---|---|---|
| Homepage | UC_1.3.1 | Hardcode | Sanity | Sanity | Sanity | Hardcode | Sanity |
| Associate Track | UC_1.4.1 | Hardcode | Sanity | Sanity | N/A | Hardcode | Sanity |
| Career Path | UC_1.5.1 | Hardcode | Sanity | Sanity | N/A | Hardcode | Sanity |
| Trading & Strategies SEO Pages | UC_1.7.1–1.7.6 | Sanity (mỗi SEO page chỉ dùng được 1 layout) | Sanity | Sanity | N/A | Sanity | Sanity |
| Rules | UC_1.8.1 | Hardcode | Sanity | Sanity | N/A | Hardcode | Sanity |
| Trading Floor / Community | UC_1.8.2 | Hardcode | Sanity | Sanity | N/A | Hardcode | Sanity |
| Comparison Hub | UC_1.8.3 | Hardcode | Hardcode⁵ | N/A | N/A | Sanity (battle cards: name + link target)⁵ | Sanity |
| Comparison Matrix Detail Pages | UC_1.8.4 | Sanity (chỉ dùng 1 layout) | Sanity | N/A | N/A | Sanity | Sanity |
| Insight Hub | UC_1.8.5 | Sanity (chỉ dùng 1 layout) | Sanity | N/A | Sanity | Sanity | N/A¹ |
| Insight Hub Detail Pages | UC_1.8.6 | Sanity (chỉ dùng 1 layout) | Sanity | Sanity | Sanity | Sanity | Sanity |
| About Us | UC_1.6.1 | Hardcode | Sanity³ | N/A⁴ | N/A | Team Members block = Sanity; phần còn lại = Hardcode | Sanity |
| Partners | UC_1.8.7 | Hardcode | Sanity² | N/A | N/A | Hardcode | N/A¹ |
| Terms of Service | UC_1.9.2 | Sanity | N/A | N/A | N/A | Sanity | N/A |
| Risk Disclosure | UC_1.9.3 | Sanity | N/A | N/A | N/A | Sanity | N/A |
| Privacy Policy | UC_1.9.1 | Sanity | N/A | N/A | N/A | Sanity | N/A |
| 404 Error Page | UC_1.9.4 | Hardcode | N/A | N/A | N/A | N/A | N/A |
| Help Center / FAQ | UC_1.8.8 | Sanity (chỉ dùng 1 layout) | N/A | Sanity | N/A | Sanity | N/A¹ |
| Global Footer | UC_1.1.1 | Hardcode | N/A | N/A | Sanity | Sanity (Market Vertical Pages, Comparison Pages, Insights) | Sanity |
| Global Header | UC_1.1.1 | Hardcode | N/A | N/A | Sanity (1 featured) | Sanity (Trading & Strategy Pages) | Sanity |
Mode Waitlist = cơ chế đổi CTA button gold sang text "Join Waitlist" khi Sanity signup-gate config variable tắt tính năng đăng ký mới (Ref: CR-20260731-002), song song với việc đổi text/ảnh/sub-text giá từ $499 → $650 khi hết ưu đãi 500 Founding Member (Ref: CR-20260731-001). Chi tiết CTA text list + logic đổi giá theo từng trang: xem §5/§3/Business Rules của từng UC tương ứng ở bảng trên.
Cột FAQ section = trang đó có khối FAQ hay không. Cơ chế populate (Ref: CR-20260817-001, 2026-08-17): Sanity có 1 settings tab riêng liệt kê tất cả static page có FAQ; mỗi page chọn từng FAQ item từ master "All FAQ list" (chọn theo item, không phải theo category; 1 item dùng lại được cho nhiều trang; thứ tự do editor sắp). Định nghĩa canonical: UC_1.8.8 §4.9/BR_1.8.8.5. Model cũ (mỗi màn 1 category, page query theo category) đã bị thay thế — category giờ chỉ còn dùng cho sidebar của trang Help Center. ⚠️ Ngoại lệ: các trang SEO (UC_1.7.x) vẫn tự author FAQ inline trong document của chính trang đó (field S12 – FAQ Items), chưa rõ có migrate sang settings tab không.
¹ Insight Hub, Partners, và Help Center/FAQ: tài liệu nguồn liệt kê Mode Waitlist = Sanity cho 3 trang này, nhưng UC hiện tại xác nhận không có gold CTA Checkout nào trên các trang này (Partners chỉ có form apply affiliate; Insight Hub chỉ có Newsletter Subscribe; Help Center chỉ có Contact Support mailto) — cơ chế Waitlist-swap không áp dụng được, đã confirm với BA là không cần viết thêm.
² Partners: Pricing Data = Sanity đã confirm cụ thể là mục "Proprietary Trading Affiliate Commission Tiers" (tier %, requirement, description, $500 bonus banner) — phần còn lại của trang vẫn Hardcode (Ref: UC_1.8.7 §5.1 item 4).
³ About Us: tài liệu nguồn ghi Pricing Data = N/A cho trang này. Cột Pricing Data ở bảng trên đã sửa N/A → Sanity — section tương ứng là "Team Members block" (UC_1.6.2, đã Sanity từ trước theo MKT-06), KHÔNG phải Pre-Footer CTA (Pre-Footer CTA của About Us vẫn có $499/$650 qua Sanity nhưng được track riêng dưới Mode Waitlist/CTA-pricing pattern, không tính vào cột Pricing Data này) — xem mapping chi tiết bên dưới.
⁵ Comparison Hub (Ref: CR-20260817-002, BA session 2026-08-17) — hai thay đổi ngược chiều nhau trên cùng 1 trang:
- Pricing Data: Sanity → Hardcode. Trang này được carve out khỏi CR-20260731-001; toàn bộ số pricing (kể cả founder seat count + $499/$650 ở Pre-Footer CTA) hardcode trong Next.js, đổi state phải qua dev deploy. Ref: BR_1.8.3.6. Chỉ áp dụng cho Comparison Hub — mọi trang Marketing khác giữ nguyên Sanity pricing theo CR-20260731-001.
- Other Content: battle cards → Sanity. Các card trong 2 grid so sánh đối thủ (
Stack vs Topstep,Stack vs FTMO, …) là Sanity entry với đúng 2 field: tên card + link target. Editor thêm/sửa/xoá/đổi thứ tự bao nhiêu card cũng được, FE tự auto-layout. Ngoài card ra không có gì khác trên trang chỉnh được qua Sanity (2 bảng comparison, Ask Three Questions, Why Real Capital Matters vẫn hardcode). Ref: BR_1.8.3.8.
⁴ About Us — FAQ = N/A: trang này không có FAQ section. Đây là giá trị nguyên bản trong MKT_PRICING_DISPLAY_SCOPE (không phải BA sửa) — tức tài liệu nguồn của khách đã tự ghi About Us không có FAQ, độc lập xác nhận đúng những gì quan sát được trên build thật. Điều này supersede vế "FAQ" trong QnA MKT-06 (2026-07-24); chỉ vế "Team Members" của MKT-06 còn hiệu lực. Ref: BR_1.6.2.2.
Pricing Data — Section nào trên từng màn Hardcode chứa Sanity pricing
Phạm vi: Bảng dưới đây chỉ liệt kê section pricing/data-table riêng của từng trang (ví dụ: bảng capital/salary, tier commission, comp table theo Level...). KHÔNG bao gồm Pre-Footer CTA / Hero founder-pricing ($499↔$650) và cơ chế Mode Waitlist — 2 cái đó là pattern dùng chung xuyên suốt toàn site (đã document đầy đủ qua CR-20260731-001/CR-20260731-002, xem cột "Mode Waitlist" ở bảng Overall Scope phía trên và Business Rules riêng của từng UC), được xác nhận là tách riêng khỏi danh sách "Pricing Data" này.
| Page | Pricing Section(s) — tên chính xác trong UC | Nội dung Sanity | Nguồn |
|---|---|---|---|
| Homepage | "Real Capital → W-2 Career Path" (UC_1.3.1 §5) | Capital/career-progression teaser data — ⚠️ UC hiện tại mới chỉ document 2 CTA button ở section này, chưa có breakdown chi tiết field data; cần đối chiếu wireframe (xem note dưới bảng) | BA confirmation |
| Associate Track | "The Performance Protocol" (UC_1.4.1 §3) — Starting Capital tiers; "The Career Path (Teaser)" (UC_1.4.1 §3 item 6) — 10-Dot capital/salary timeline + Milestone Cards + Card 3 "Absolute Cash Over Fake Percentages" | Starting Capital tier values; Level capital/salary Dot data + Milestone Card figures $25K/$75M (shared source with UC_1.5.2); Card 3 editable row array — teaser render giống hệt trang Career Path, không phải bản rút gọn (Ref: MKT-44) | CR-20260731-001; BR_1.5.2.4 + MKT-43/MKT-44 |
| Career Path | "The Career Path" (Interactive Timeline heading, UC_1.5.2); "Level 6: Welcome to the Payroll" (UC_1.5.1 §3); "24 Levels of Career Progression Table" (UC_1.5.2) — both Forex and Futures tab data; "Absolute Cash Over Fake Percentages" (Card 3 của section "The Career Path", UC_1.5.2 §2 step 2) | Timeline capital/salary Dot data + 2 con số trên Milestone Cards ($25K / $75M); Monthly Base Salary $2,578 / Profit target 9.4% / Bonus $2,350 (Level 6 comp figures); full 24-level Notional/Profit Target/Stop Loss table (both tabs); Card 3 = editable row array (Marketing tự thêm/xoá/đổi thứ tự dòng) — mỗi dòng gồm Level+role label, metric label, qualifier, figure; 3 dòng hiện tại ($48,178 / $391,928 / $969,428 ở Level 10/14/16) là content chứ không phải structure | CR-20260731-001; BR_1.5.1.3 (Level 6 comp figures); BR_1.5.2.4 + MKT-43 (Card 3) |
| Rules | "Trader Advancement Parameters by Level" (UC_1.8.1 §5) | Level/Stage, Notional Capital, Profit Target, Max Drawdown, Defense figures | CR-20260731-001; BR_1.8.1.8 |
| Trading Floor / Community | "Mentorship Driven by Capital, Not Charity"; "DFW Locals: Trade From HQ" (cả 2 ở UC_1.8.2 §5) | Pod Leader Carry bounties ($250/$500/$1,500), "Total Class Earnings: $15,750", "$2,250 per trader" callout; Associate Desk $800/month, Stack Trader Desk $0/month | BR_1.8.2.6 — carve-out superseding the MKT-05 "100% hardcoded" framing for these 2 sections specifically |
| About Us | "Team Members block" (UC_1.6.2) | Leadership Team profile data (already Sanity per MKT-06) | BA confirmation — clarifies that About Us's Pricing Data classification maps to this block, not the Pre-Footer CTA |
| Partners | "Proprietary Trading Affiliate Commission Tiers" (UC_1.8.7 §5.1) | Tier commission %, requirement thresholds, $500 bonus banner | BR_1.8.7.4 — carve-out from BR_1.8.7.3's page-level hardcode rule |
Comparison Hub cố ý không có trong bảng này — trang này không có content section "pricing data" riêng nào ngoài Pre-Footer CTA (vốn được track riêng theo scope note ở trên). Từ CR-20260817-002 (2026-08-17), kể cả Pre-Footer CTA của trang này cũng hardcode — xem footnote ⁵ ở bảng Overall Scope.
⚠️ Gap còn lại (Homepage): "Real Capital → W-2 Career Path" được xác nhận là Sanity pricing-data section, nhưng UC hiện tại mới chỉ document 2 CTA button (Explore Career Path, Start Associate Track) — chưa capture breakdown capital/salary data, khác với section tương đương "The Career Path (Teaser)" bên Associate Track đã liệt kê đủ 10-Dot data. Nhiều khả năng mirror chính bộ Dot data đó (hoặc Interactive Timeline của Career Path), nhưng không assume — flag để đối chiếu wireframe trực tiếp thay vì copy nội dung ngang qua khi chưa confirm.
Business Rules cho 3 carve-out — cả 3 phân loại Sanity dưới đây nay đã có BR chính thức, bảng trên trỏ trực tiếp vào BR anchor:
- (a) Career Path — "Level 6: Welcome to the Payroll" → BR_1.5.1.3: 3 con số comp (Monthly Base Salary $2,578 / Profit target 9.4% / Bonus $2,350) là Sanity; copy + layout xung quanh vẫn hardcode.
- (b) Trading Floor / Community → BR_1.8.2.6: các con số tiền trong "Mentorship Driven by Capital, Not Charity" (bounty $250/$500/$1,500, Total Class Earnings $15,750, callout $2,250) và "DFW Locals: Trade From HQ" (desk $800/month, $0/month) là Sanity — carve-out thu hẹp framing "100% hardcoded" theo MKT-05, không thay thế toàn bộ.
- (c) Partners → BR_1.8.7.4: tier commission %, requirement threshold, description, và $500 bonus banner là Sanity. ⚠️ Lưu ý:
BR_1.8.7.3trước đó ghi Commission Tiers là hardcoded — mâu thuẫn trực tiếp với bảng Pricing Data; đã sửa BR_1.8.7.3 để trỏ sang BR_1.8.7.4 làm ngoại lệ thay vì để 2 rule chọi nhau.
(d) Career Path + Associate Track — Card "Absolute Cash Over Fake Percentages" → BR_1.5.2.4 (Ref: MKT-43, 2026-08-24): pricing block thứ 4 của trang Career Path, phát hiện từ build ngày 2026-08-24 — trước đó chưa từng được document ở UC nào lẫn bảng này, và 3 con số không có trong bất kỳ file nguồn nào của khách (RFQ V7, Zapier V7, Dashboard V7), QnA, hay CR. Khách đã confirm: Sanity, dạng editable row array (thêm/xoá/đổi thứ tự dòng được — nên mỗi dòng tự mang label riêng, khác 3 carve-out (a)/(b)/(c) ở trên vốn chỉ Sanity phần giá trị số), không sync Table A/B, và giữ nguyên label lệch "Cumulative Bonuses" (dòng 1) vs "Cumulative Cash" (dòng 2–3) theo đúng design. Hệ quả cho FE/QC: xem E_1.5.2.6. Card này render y hệt trên teaser trang Associate Track (Ref: MKT-44).
Nguyên tắc chung cho (a)/(b)/(c): chỉ giá trị số là Sanity; heading, copy, layout, motion, eligibility text đều giữ hardcode — đúng theo split "content Sanity, structural layout hardcode" của BR_1.3.4.1.