Files
pos-system/microservices/docs/audit/product-manager.md
Ho Ngoc Hai 76d75c753b Migrate
2026-05-23 18:37:02 +07:00

14 KiB
Raw Permalink Blame History

Product Manager Audit — GoodGo POS System

Auditor: Product Manager Agent Date: 2026-03-20 Scope: Feature completeness, user flows, product gaps, roadmap alignment Working Directory: /Users/velikho/Desktop/WORKING/pos-system


Executive Summary

GoodGo POS là nền tảng multi-vertical mạnh, với 5 vertical đều có core POS hoạt động (~8595% feature-complete cho Restaurant, Karaoke, Cafe, Spa, Retail). Tuy nhiên, toàn bộ marketing/CRM ecosystem — được quảng bá là key differentiator so với KiotViet, Sapo, iPOS — là UI stub hoàn toàn, không có backend integration. Đây là rủi ro sản phẩm cao nhất cần giải quyết trước demo/launch.


Critical Issues

CI-1: Marketing Suite là Demo 100% — Zero Backend Integration

File paths:

  • apps/web-client-tpos-net/src/WebClientTpos.Client/Pages/Marketing/AiChatbot.razor (210 lines)
  • apps/web-client-tpos-net/src/WebClientTpos.Client/Pages/Marketing/CustomerCrm.razor (173 lines)
  • apps/web-client-tpos-net/src/WebClientTpos.Client/Pages/Marketing/LivechatConsole.razor (192 lines)
  • apps/web-client-tpos-net/src/WebClientTpos.Client/Pages/Marketing/AiContentStudio.razor (176 lines)
  • apps/web-client-tpos-net/src/WebClientTpos.Client/Pages/Marketing/ChatbotAutomation.razor (145 lines)
  • apps/web-client-tpos-net/src/WebClientTpos.Client/Pages/Marketing/SocialHub.razor (162 lines)

Pattern (identical trong tất cả 6 trang):

// EN: Demo customer data / VI: Dữ liệu khách hàng demo
private record CustomerInfo(string Name, string Phone, ...);
private readonly CustomerInfo[] _customers = new[] { new CustomerInfo(...), ... };

Impact: Merchant đăng ký plan Growth/Pro vì tin vào tính năng CRM, AI Chatbot, và Social Hub — khi vào dùng sẽ thấy dữ liệu giả. Đây là churn risktrust damage lớn. Đây là điểm mà GoodGo tuyên bố vượt KiotViet và Sapo nhưng thực tế là không có gì.

Recommended action: Ẩn Marketing section khỏi Starter/Growth plan. Chỉ show cho Pro+ với label "Coming Soon" hoặc implement thực tế — không nên để merchant dùng thử demo data như product thật.


CI-2: Voucher/Promotion Redemption bị gián đoạn hoàn toàn

Backend (hoạt động): services/promotion-service-net/src/PromotionService.API/Application/Commands/ — có ClaimVoucher, RedeemVoucher, CreateCampaign.

Frontend gap: Không có UI nào trong payment flow để nhập mã voucher. Kiểm tra:

  • apps/web-client-tpos-net/src/WebClientTpos.Client/Pages/Pos/Shared/Payment/MethodSelect.razor — không có "Apply Voucher" field.
  • apps/web-client-tpos-net/src/WebClientTpos.Client/Pages/Admin/Shop/ShopPromotions.razor — có form tạo voucher nhưng khép lại tại UI.

Impact: Merchant tạo được voucher nhưng customer không thể redeem tại quầy. Merchant nghĩ mình đã chạy campaign — thực tế campaign không có tác dụng gì. Đây là broken promise trong mỗi giao dịch.


CI-3: Payment Gateway — Trạng thái Live/Sandbox không rõ ràng

services/wallet-service-net/src/WalletService.API/Application/Commands/Payments/CreatePayment, ProcessPaymentCallback — architecture tốt với IPaymentGateway abstraction. Tuy nhiên:

  • Không rõ gateway nào đang live (VNPay? MoMo? ZaloPay?)
  • Webhook callback security (HMAC signature verification) không được documented
  • TipEntry UI tồn tại nhưng tip logic tới wallet service chưa được verify

Impact: Nếu team demo payment cho khách hàng mà không biết gateway nào đang hoạt động, sẽ fail live demo. Đây là P0 trước bất kỳ investor/merchant demo.


CI-4: Analytics & Reporting — 0% Wired to Real Data

Frontend (đầy đủ UI): Revenue Dashboard, Staff Performance, EOD Report tồn tại.

Backend: order-service-netCloseDayCommand nhưng không có aggregation queries cho trend analytics.

Gap: All KPI cards (revenue, transactions, avg order value, growth %) là hardcoded demo values trong Razor @code blocks.

Impact: Merchant đưa ra quyết định kinh doanh dựa trên số liệu giả. Với SMB Việt Nam, quyết định nhập hàng/thuê staff dựa trên báo cáo — nếu báo cáo sai họ sẽ mất tiền thật.


Warnings

W-1: Promotion-to-POS Gap Ảnh Hưởng Toàn Bộ Marketing Funnel

Backend promotion service exists và functional. Frontend marketing UI exists nhưng disconnected. Kết quả: Merchant create campaign → customer không thể redeem → merchant không thấy ROI → churn.

Theo user flow chuẩn: Merchant tạo voucher (Admin Shop → Promotions) → Customer nhận voucher (qua gì? SMS/QR? Chưa có) → Customer redeem tại quầy (POS Payment screen — không có input field) → Order được discount (backend ready). Bước 2 và 3 bị vỡ.

W-2: Spa Vertical — Appointment Logic chưa End-to-End

  • UI: Appointment calendar, therapist assignment, treatment timer có (Pages/Pos/Spa/)
  • Backend: booking-service có CreateAppointment, therapist CRUD
  • Gap: Khi khách walk-in không book trước, flow "new appointment from POS" không rõ ràng. "Book from POS" button và "Customer lookup" có trong UI nhưng integration path chưa documented.

W-3: Onboarding Wizard — Device Pairing bước 5 chưa rõ

Pages/Admin/Onboarding/OnboardingDevice.razor — Step 5 có UI pairing device nhưng mechanism (QR code? token? physical device ID?) không visible trong code. Nếu merchant dùng iPad/tablet mới và step này fail, họ sẽ stuck ngay bước cuối onboarding.

W-4: QR Menu Customer Ordering — Post-Cart Flow Bị Hở

Pages/Customer/TableMenu.razor: Cart management hoạt động tốt. Tuy nhiên sau khi customer bấm "Checkout":

  • Navigates to payment method selection
  • Nhưng customer context (tableId, sessionId) cần được passed qua payment flow
  • Không rõ order được submit vào order-service như thế nào, staff có nhận notification không

Risk: Customer submit order nhưng staff không thấy → order bị miss → bad experience → review kém.

W-5: Neon PostgreSQL Shared Credentials (Security)

deployments/ — Staging/production sử dụng shared DB credentials cho tất cả 23+ services. Nếu 1 service bị compromise, attacker có access tới toàn bộ DB tier.

PM impact: Đây là compliance risk (PDPA Việt Nam, payment data security) sẽ block enterprise deals.

W-6: Marketing mkt-* Services thiếu trong Docker (4 services)

mkt-facebook-service-net, mkt-whatsapp-service-net, mkt-x-service-net, mkt-zalo-service-net không có trong deployments/local/docker-compose.yml. Team không thể test marketing integration locally.


Improvements

IMP-1: Triển khai "Voucher Redemption" tại điểm bán — ROI cao nhất trong 1 sprint

User Story: As a cashier, I want to enter a voucher code during checkout so that the customer gets the promised discount.

Effort: 3 ngày backend (new Query: ValidateVoucher), 2 ngày frontend (thêm input vào MethodSelect.razor). RICE Score: Reach=500 merchants × Impact=3 (high) × Confidence=90% / Effort=1 week = 1,350 (highest priority).

IMP-2: Wire Analytics Dashboard vào Real Data — Quick Win

services/order-service-net đã có order data. Thêm:

  • GetDailyRevenueQuery → trả về revenue by day/payment method
  • GetTopProductsQuery → trả về best-sellers
  • Wire Pages/Admin/Dashboard/RevenueDashboard.razor thay demo arrays

Effort: 5 ngày backend (2 queries + aggregation), 2 ngày frontend (replace mock data). Impact: Merchant có real business intelligence → quyết định tốt hơn → giảm churn.

IMP-3: Vertical-Specific Reporting — "Quick Wins" per persona

Vertical Missing Report Effort Value
Karaoke Per-room revenue, peak hour heatmap 5 ngày High
Cafe Daily queue throughput, popular items 3 ngày High
Restaurant Table turnover rate, avg dwell time 4 ngày High
Spa Therapist utilization, rebooking rate 4 ngày Medium
Retail Inventory aging, return rate by SKU 5 ngày Medium

IMP-4: Customer Feedback Loop — Differentiate từ Competitors

Sau khi payment success, hiện QR code cho customer rate experience (1-5 stars + comment). Feed data vào merchant dashboard. Không competitor nào (KiotViet, Sapo, iPOS) có feature này tích hợp trong POS flow.

Effort: 2 tuần (new feedback-service đơn giản hoặc add vào order-service). Competitive impact: Cao — là unique differentiator có thể quảng cáo.

IMP-5: Marketing Section — Quyết Định Rõ Ràng về Roadmap

Có 3 lựa chọn:

Option A — Hide & Honest (Recommended ngắn hạn):

  • Ẩn Marketing section với "Coming in Q2 2026" label
  • Giữ mockup làm prototype cho user research
  • Không gây trust damage với merchants

Option B — Stub with Real Data:

  • Giữ UI, thay demo arrays bằng real API calls (customer list from IAM/order service, basic stats)
  • 2 tuần effort, delivers "real feel"
  • Không có full chatbot/social media nhưng CRM list sẽ có data thật

Option C — Full Implementation:

  • Build MCP-powered chatbot integration (Zalo, Facebook, WhatsApp)
  • 8-12 tuần, cần dedicated team
  • Align với Q2 2026 roadmap target

IMP-6: Onboarding Post-Completion — First Order Tutorial

Sau bước 6 "Complete" của onboarding wizard, hiện guided walkthrough:

  • "Bước tiếp theo: Tạo đơn hàng đầu tiên" với checklist
  • Link tới tutorial video

Effort: 2 ngày, impact rất cao với new merchant activation rate.

IMP-7: Mobile App Completeness cho Staff

app-client-base-swift iOS app: 9 pages, auth flows và basic navigation. Staff cần mobile app để:

  • Clock in/out khi không ở quầy
  • Nhận order notifications
  • Check lịch làm việc

Priority: Medium, nhưng cần để tránh staff dùng browser mobile (poor UX).


Action Items (Prioritized)

Sprint 1 (Week 1-2) — Revenue-Critical

# Action Owner Effort Priority RICE
A1 Xác nhận payment gateways nào đang live, document & test CTO + Backend 3 ngày P0
A2 Implement Voucher Redemption field trong payment flow Backend + Frontend 1 tuần P0 1,350
A3 Ẩn/label "Coming Soon" cho Marketing section Frontend 1 ngày P0
A4 Wire Revenue Dashboard tới real order data Backend + Frontend 1 tuần P1 900

Sprint 2 (Week 3-4) — Merchant Retention

# Action Owner Effort Priority
A5 Vertical-specific reporting (Karaoke + Cafe ưu tiên) Backend + Frontend 2 tuần P1
A6 Fix QR Customer Menu → Order submission flow Backend + Frontend 3 ngày P1
A7 Clarify & fix Onboarding Device Pairing (bước 5) Frontend + Backend 2 ngày P1
A8 Add post-onboarding "First Order" tutorial Frontend 2 ngày P2

Sprint 3 (Week 5-8) — Differentiation

# Action Owner Effort Priority
A9 Customer Feedback post-payment (QR rating) Backend + Frontend 2 tuần P2
A10 Marketing Section — Option B (stub with real data) Backend + Frontend 2 tuần P2
A11 iOS Mobile App — Staff clock-in/order notifications Mobile 3 tuần P2
A12 Audit Neon PostgreSQL credentials (per-service isolation) DevOps 1 tuần P1

Success Metrics

Metric Baseline Target (3 months) How to Measure
Merchant activation rate (first order after onboarding) Unknown >70% Analytics: orders/merchant in first 7 days
Voucher redemption rate 0% (feature broken) >15% orders with voucher Order service: count orders with promotion_id
Marketing section churn trigger Unknown <5% abandon after seeing stub Frontend: page bounce rate on Marketing
Dashboard daily active usage Unknown >60% merchants view weekly Analytics: dashboard page views/week
Payment failure rate Unknown <2% Wallet service: failed payments / total
NPS (Merchant) Baseline needed >50 Survey via in-app prompt

Competitive Positioning Assessment

Feature GoodGo Status KiotViet Sapo POS iPOS
Multi-vertical POS 5 verticals Retail only 2
KDS Kitchen Display
AI-powered Operations MCP (Cafe)
Loyalty stamps/levels Working Basic Basic
Marketing CRM ⚠️ Stub only Basic
Real-time analytics ⚠️ Demo data
Omnichannel (Web+Mobile) Architecture
Booking/Scheduling
Multi-tenant (shops)

Assessment: GoodGo dẫn đầu về multi-vertical và AI integration (MCP server là unique). Nhưng Real-time Analytics và Marketing CRM — nơi Sapo và KiotViet đang mạnh — đang là liability. Cần fix analytics trước mọi marketing effort.


Product Gaps Summary (MoSCoW)

Must Have (cho MVP launch)

  • Multi-vertical POS order flow
  • Payment methods UI
  • Real payment gateway integration verified
  • Voucher redemption at POS
  • Real analytics data (not demo)

Should Have (launch + 30 days)

  • Marketing section với real data (Option B)
  • Customer feedback loop
  • Per-vertical reporting
  • Loyalty stamps working
  • KDS Kitchen Display

Could Have (Q2 2026)

  • Full AI Chatbot (Zalo/Facebook/WhatsApp)
  • AI Content Studio
  • Social Hub management
  • iOS mobile app complete
  • Customer segmentation CRM

Won't Have (không ưu tiên)

  • Enterprise multi-location analytics
  • 3rd-party ERP integration
  • Marketplace integration (Shopee, Lazada)

Audit completed: 2026-03-20 Next review: After Sprint 1 completion (2026-04-03) Related: ROADMAP.md | CTO_REPORT_SHOP_DELETE.md