Bọn mình hay đùa nhau, làm IT cho sàn Thương mại điện tử (전자상거래 - E-commerce) giống như xây một cái siêu thị vô hình khổng lồ vậy.
Nhiều người nhìn vào cái "giao diện" lướt lướt mượt mà, chốt đơn ầm ầm của Shopee hay Tiki, rồi cứ tưởng bở làm web bán hàng nhàn lắm! Nhưng sự thật là, phần hiển thị rực rỡ đấy chỉ chiếm 20% công sức thôi các bác ạ. 80% còn lại là cuộc chiến ngầm đẫm máu của hệ thống xử lý dòng tiền, dòng hàng, dữ liệu và kiến trúc Microservices!
Hôm nay nhân ngày cờ đến tay, Hà Nemo sẽ "giải phẫu" sương sương cỗ máy đa luồng này, đem những lý thuyết khô khan ráp vào thực tế kiến trúc E-commerce cho các đồng âm cùng hóng nhé!
🛒 1. Cái "Siêu thị vô hình" này hoạt động thế nào?
Trộm vía, một hệ thống chuẩn chỉnh là nơi kệ hàng tự động nhảy múa theo sở thích của bạn nhờ Hệ thống gợi ý (추천 시스템 - Recommendation). Giỏ hàng thì tự động tính toán trừ tiền bằng Khuyến mãi (프로모션 - Promotion), và nhân viên kho nhận lệnh đóng gói ngay đúng cái tíc tắc bạn quẹt thẻ. Đỉnh cao chưa?
👥 2. 3 Chân dung "khách ruột" phải chiều chuộng
Một sàn xịn sẽ không dùng chung một cục, mà phục vụ 3 nhóm người dùng qua 3 Portal riêng biệt:
- Người mua (구매자 - Buyer): Chỉ quan tâm tìm hàng, săn sale, hối giao hàng.
- Người bán (판매자 - Seller/Merchant): Đăng sản phẩm, ôm cục tức khi bị boom hàng, xem báo cáo doanh thu.
- Người vận hành sàn (플랫폼 관리자 - Admin/Platform): Cầm trịch sân chơi, duyệt nhà bán, chạy Flash Sale, dẹp loạn khiếu nại.
🧩 3. 5 Mảnh ghép sinh tử (Microservices) định hình hệ thống
Lý thuyết chỉ sống động khi có ví dụ thực tế. E-commerce chính là bài test "tối thượng" hội tụ đủ mọi độ khó của MSA (Distributed Transaction, Data Consistency, Async Communication, High Traffic). Áp dụng Domain-Driven Design (DDD) để vạch ra Bounded Context, chúng ta sẽ xẻ hệ thống thành 5 core Microservices:
- 회원 서비스 (Member Service - Thành viên):
- Trách nhiệm: Quản lý vòng đời user (đăng ký, đăng nhập, thay đổi thông tin).
- Tính năng: Xử lý xác thực JWT (JSON Web Token) qua API Gateway, cung cấp dữ liệu định danh (ID, Name, Tier) làm nền tảng cho mọi service khác.
- 상품 서비스 (Product Service - Sản phẩm):
- Trách nhiệm: Quản lý thông tin hàng hóa và "trùm cuối" - 재고 (Inventory - Tồn kho).
- Đặc điểm: Lượng thao tác Đọc (Read - xem chi tiết sản phẩm) áp đảo hoàn toàn thao tác Ghi (Write - trừ tồn kho). Do đó, đây là "mảnh đất vàng" để áp dụng CQRS Pattern và hệ thống Caching (như Redis).
- 주문 서비스 (Order Service - Đơn hàng):
- Trách nhiệm: "Trái tim" của hệ thống, quản lý từ 장바구니 (Cart - Giỏ hàng) đến 주문 생성 (Order Creation - Tạo đơn).
- Đặc điểm: Rối não và phức tạp nhất! Để tạo 1 đơn, nó phải gọi Member lấy info, gọi Product check tồn kho, gọi Payment trừ tiền, rồi phát event cho Shipping. Đây là trung tâm điều phối giao dịch phân tán sử dụng SAGA Pattern.
- 결제 서비스 (Payment Service - Thanh toán):
- Trách nhiệm: Giao tiếp trực tiếp với cổng thanh toán (PG) bên ngoài.
- Đặc điểm: Trong kiến trúc SAGA, nếu đơn hàng có biến, đây là nơi chịu trách nhiệm thực thi các "giao dịch bù trừ" (Compensating Transaction) để hoàn tiền cho khách.
- 배송 서비스 (Shipping Service - Vận chuyển):
- Trách nhiệm: Tracking trạng thái giao hàng từ khi nhận lệnh đến lúc tới tay khách.
- Đặc điểm: Nó không cần gọi trực tiếp Order Service. Nó chỉ việc Subscribe các event "Đã thanh toán" thông qua Kafka để bắt đầu quy trình đóng gói. Minh chứng hoàn hảo cho 이벤트 기반 아키텍처 (Event-Driven Architecture - Kiến trúc hướng sự kiện - EDA).
⚔️ 4. Góc khuất & Nỗi đau của dân IT mảng sàn
Làm TMĐT mà không nếm mùi mấy cái "đặc sản" này thì chưa gọi là làm:
- Bán vượt tồn kho (초과 판매 - Over-selling): Kho còn đúng 1 cái iPhone, nhưng 100 ông cùng bấm mua đúng vào 1 phần nghìn giây. Làm sao chỉ 1 ông mua được, 99 ông kia ngậm ngùi thông báo hết hàng? (Tới đây là anh em Dev lôi Distributed Lock, Queue, Redis ra chơi rồi đấy).
- Xử lý đồng thời cao (동시성 처리 - High Concurrency): Ngày siêu sale 11/11, truy cập tăng 50 lần ngày thường. Hệ thống mà nghẽn cổ chai lúc này là bay ngay tiền tỷ, sếp tế sống cả team!
📚 5. Từ lóng bỏ túi để chém gió với team Business:
- Mã phân loại hàng hóa (재고 유지 단위 - SKU): Áo thun đen size M là 1 SKU, trắng size M là 1 SKU khác.
- Tổng giá trị giao dịch (총 상품 가치 - GMV): Cái này mấy sàn hay lôi ra khè nhau để khoe độ lớn.
- Tỷ lệ bỏ quên giỏ hàng (장바구니 포기율 - Cart Abandonment Rate): Khách bỏ đồ vào giỏ rồi lặn mất tăm - Chỉ số làm team Marketing mất ngủ.
- Giá trị trung bình đơn hàng (평균 주문 가치 - AOV): Đơn to đơn nhỏ chia trung bình.
📱 6. Thuật ngữ các trang (Page Layout) theo Hành trình khách hàng
Làm E-commerce mà không phân biệt được các loại trang này thì khó mà nói chuyện với team UI/UX hay Business:
Giai đoạn 1: Khám phá / Tìm kiếm (Exploration)
- 홈 페이지 (Home Page - Trang chủ): "Mặt tiền" của hệ thống. Chứa thông điệp chính, banner khuyến mãi, bộ sưu tập gợi ý để định hình ấn tượng đầu tiên.
- 랜딩 페이지 (Landing Page - Trang đích): Trang mục tiêu từ Ads/SNS chuyển hướng tới. Thường tối ưu hóa cho một hành động chuyển đổi duy nhất (chốt đơn/đăng ký).
- 카테고리 페이지 (Category Page - Trang danh mục): Trạm trung chuyển (Hub) để điều hướng khách vào các ngành hàng lớn (VD: Thời trang nam, Đồ điện tử).
- 브랜드 페이지 (Brand Page - Trang thương hiệu): Không gian riêng cho một thương hiệu cụ thể (câu chuyện brand, hàng best-seller).
- 기획전/프로모션 페이지 (Promotion/Campaign Page - Trang sự kiện/khuyến mãi): Nơi tổng hợp các deal, flash sale, chính sách giảm giá theo mùa hoặc chủ đề.
Giai đoạn 2: Xem danh sách / Lọc (Listing)
- 검색 결과 페이지 / SRP (Search Result Page - Trang kết quả tìm kiếm): Hiển thị danh sách sau khi khách gõ từ khóa, đi kèm bộ lọc (Filter), sắp xếp (Sort) và gợi ý từ khóa.
- 상품 목록 페이지 / PLP (Product Listing Page - Trang danh sách sản phẩm): Danh sách hàng hóa theo Category/Brand. Thường hiển thị dạng lưới (Grid), có giá, nhãn (Badge), và tồn kho cơ bản.
- 컬렉션 페이지 (Collection Page - Trang bộ sưu tập): Danh sách hàng hóa được "tuyển tập" theo concept, truyền cảm hứng mua sắm (VD: "Outfit Thu Đông", "Top Trending").
Giai đoạn 3: Quyết định (Decision)
- 상품 상세 페이지 / PDP (Product Detail Page - Trang chi tiết sản phẩm): Trang "sinh tử"! Chứa toàn bộ thông tin cốt lõi (Ảnh, giá, Option màu/size, tồn kho, phí ship, review/FAQ). Đây là nơi tung đòn quyết định ép khách bấm nút "Mua".
Giai đoạn 4: Thanh toán (Checkout)
- 카트/장바구니 (Cart - Giỏ hàng): Nơi khách sửa số lượng, đổi Option, kiểm tra tổng tiền, áp mã giảm giá (Coupon), và là nơi hệ thống tung chiêu Upsell/Cross-sell lần cuối.
🖼️ 7. Phân tích Kiến trúc E-Commerce qua Sơ đồ (Architecture Blueprint)
Để trực quan hóa mớ lý thuyết bên trên, chúng ta cùng xem xét bản thiết kế kiến trúc chuẩn (Blueprint) của một hệ thống E-commerce hiện đại:
7-1. Frontend & Gateway Ingress (Client Touchpoints)

- Tổng quan về các "điểm chạm" (Touchpoints) mà người dùng cuối tương tác - cái mà rất thân thuộc với chúng ta chính là các Actors của hệ thống.
- Luồng cơ bản: End Users (Khách hàng, Seller, Admin) thao tác trên Web/App ➡️ Dữ liệu đi qua mạng lưới Edge/CDN (để load tĩnh nhanh, chống DDoS) ➡️ Đi qua cổng bảo mật Client-to-Gateway Ingress (xác thực HTTPS, JWT) ➡️ Truyền tới Backend Services.
- Từ vựng (Hàn - Anh - Việt):
- 구매자 (Customer) - Người mua
- 판매자 (Seller/Merchant) - Người bán
- 플랫폼 관리자 (Admin/Platform) - Quản trị viên nền tảng
- 고객센터 (Customer Support) - Trung tâm CSKH / Hỗ trợ khách hàng
- 접점 (Touchpoint) - Điểm chạm
7-2. E-Commerce Overview Architecture (Tổng thể domain)

- Bức tranh toàn cảnh từ phía Client đi sâu vào Backend và liên kết ra Hệ sinh thái bên ngoài (External Ecosystem).
- Luồng cơ bản: Client Touchpoints ➡️ API Gateway phân luồng ➡️ Backend Core Modules (5 services cốt lõi kết nối với nhau qua Kafka, chạy trên nền tảng Kubernetes/Istio) ➡️ Tích hợp với External Ecosystem (PG, 3PL, Hệ thống Thuế/ERP). Phía dưới thể hiện luồng giao dịch xuyên suốt (End-to-End Transaction Pipeline) từ lúc tìm kiếm đến lúc nhận hàng.
- Từ vựng (Hàn - Anh - Việt):
- 전체 모듈 (Entire Modules) - Toàn bộ mô-đun
- 연동 (Integration) - Liên kết / Tích hợp
- 장바구니 유입 (Cart Entry) - Đưa sản phẩm vào giỏ hàng
- 결제 승인 (Payment Approval) - Phê duyệt thanh toán
7-3. Backend Core Modules (Cloud Microservices Engine)

- Đi sâu "zoom cận cảnh" vào trái tim của hệ thống - 5 Core Microservices.
- Luồng cơ bản: API Gateway là lớp phòng ngự (Auth, Rate Limiting). Bên trong, 5 service (Member, Product, Order, Payment, Shipping) hoạt động độc lập, mỗi service ôm một DB riêng biệt. Chúng không gọi chéo nhau trực tiếp quá nhiều mà giao tiếp bất đồng bộ qua Event Streaming (Kafka) để hệ thống không bị nghẽn (bottleneck).
- Từ vựng (Hàn - Anh - Việt):
- 상품 / 재고 관리 (Product / Inventory Management) - Quản lý Sản phẩm / Tồn kho
- 주문 / 장바구니 / 거래 처리 (Order / Cart / Transaction Processing) - Xử lý Đơn hàng / Giỏ / Giao dịch
- 결제 / 환불 (Payment / Refund) - Thanh toán / Hoàn tiền
- 배송 / 상태 추적 (Shipping / Tracking) - Giao hàng / Theo dõi trạng thái
7-4. Cart & Payment Form (Quy trình Thanh toán & Tính toàn vẹn)

- Phân tích chi tiết luồng (Pipeline) xử lý giao dịch khi thanh toán, đảm bảo tính toàn vẹn dữ liệu (Integrity).
- Luồng cơ bản: Client chốt đơn ➡️ Order Service kiểm tra tính hợp lệ của Giỏ hàng (Cart Validation) ➡️ Payment Service khởi tạo giao dịch ➡️ Gọi API sang cổng thanh toán ngoài (External PG Server) ➡️ PG trả kết quả thành công qua Webhook ➡️ Lưu DB, bắn event lên Kafka để Order Service xác nhận đơn hàng thành công.
- Từ vựng (Hàn - Anh - Việt):
- 주문 및 결제 요청 (Order & Payment Request) - Yêu cầu Đặt hàng & Thanh toán
- 장바구니 검증 (Cart Validation) - Xác thực giỏ hàng
- 결제 트랜잭션 처리 (Payment Transaction Processing) - Xử lý giao dịch thanh toán
- 주문서 원본 (Original Order Document) - Đơn hàng gốc
7-5. 3PL Fulfillment & Logistics Integration (Quy trình Giao vận)

- Luồng tích hợp với Đối tác kho bãi vận chuyển thứ 3 (3PL) và Hệ thống quản lý kho (WMS).
- Luồng cơ bản: Đơn hàng được thanh toán thành công (Trigger) ➡️ Hệ thống chốt phân bổ tồn kho (Inventory Allocation) ➡️ Shipping Service gửi Yêu cầu xuất kho (SYNC) sang hệ thống 3PL ➡️ Khi hàng đi, 3PL bắn Webhook cập nhật trạng thái (ASYNC) ➡️ Cập nhật lên màn hình Tracking UI cho Khách hàng và Admin.
- Từ vựng (Hàn - Anh - Việt):
- 주문 승인 및 출고 지시 (Order Approval & Fulfillment Trigger) - Phê duyệt đơn & Chỉ thị xuất kho
- 재고 할당 (Inventory Allocation) - Phân bổ tồn kho
- 출고 완료 (Dispatch Complete) - Xuất kho hoàn tất
- 배송 완료 (Delivery Complete) - Giao hàng hoàn tất
Làm IT BA mảng E-commerce khá chật vật do đặc trưng nhạy cảm như tiền nong, làm với B2C thì sẽ có nhiều user cuối cần được đáp ứng, và có nhiều thay đổi gấp trong quá trình vận hành. Tuy nhiên, đây là 1 domain khá dễ thở với dân Non-tech vì các luồng biz đều khá dễ tiếp cận, và chúng ta cũng chính là người dùng trong hệ sinh thái này.
Hãy cùng đọc tiếp các bài viết thuộc series "Domain this, Domain that" của chúng mình nhaa