Giới thiệu dự án

Thương mại điện tử Việt Nam đang trải qua giai đoạn tăng trưởng vũ bão. Theo báo cáo EConomy SEA do Google và Temasek công bố, quy mô thị trường TMĐT Việt Nam đạt 5 tỷ USD vào đầu năm 2020, với tốc độ tăng trưởng lên tới 81%. Đặc biệt, năm 2019 ghi nhận 39,9 triệu người tham gia mua sắm trực tuyến — tăng gần gấp đôi chỉ sau 3 năm — với giá trị mua sắm bình quân đạt 202 USD/người. Trong bối cảnh đó, ngành thời trang trực tuyến nổi lên như một trong những phân khúc tiềm năng nhất.

Tuy nhiên, nhiều cửa hàng thời trang vừa và nhỏ vẫn chưa có nền tảng số hoàn chỉnh để vận hành kinh doanh online một cách chuyên nghiệp. Phần lớn phụ thuộc vào mạng xã hội (Facebook, Zalo) mà thiếu đi hệ thống quản lý đơn hàng, tồn kho, và phân tích doanh thu tích hợp — dẫn đến rủi ro thất thoát đơn hàng và trải nghiệm khách hàng kém nhất quán.

Đồ án "Xây Dựng Website Bán Quần Áo Online" được thực hiện bởi nhóm sinh viên Đinh Văn Duy, Nguyễn Bảo Trung và Nguyễn Duy Nam — chuyên ngành Công nghệ Phần mềm, Trường Đại học Điện Lực (năm 2024) — nhằm giải quyết trực tiếp bài toán trên. Dự án xây dựng một nền tảng thương mại điện tử đầy đủ chức năng, từ giao diện mua sắm phía khách hàng đến hệ thống quản trị phía Admin.

Mục tiêu cụ thể của dự án:

  1. Xây dựng website bán hàng thời trang đáp ứng trải nghiệm đa thiết bị (responsive design)
  2. Triển khai hệ thống quản trị (Admin Panel) cho phép quản lý sản phẩm, đơn hàng, khách hàng và doanh thu
  3. Tích hợp cổng thanh toán trực tuyến VNPAY và hình thức COD (Cash on Delivery)
  4. Áp dụng phân quyền người dùng (RBAC — Role-Based Access Control) cho Admin và Khách hàng
  5. Tối ưu hóa SEO và hiệu suất tải trang nhằm tăng khả năng tiếp cận tự nhiên

Phạm vi dự án: Website phục vụ thị trường nội địa Việt Nam, hỗ trợ ngôn ngữ tiếng Việt, vận hành trên máy chủ local và có thể triển khai lên hosting thương mại.


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Thị trường thương mại điện tử thời trang tại Việt Nam có sự cạnh tranh từ nhiều nền tảng lớn lẫn giải pháp tự xây dựng:

Giải pháp Ưu điểm Nhược điểm
Shopee / Lazada Lượng người dùng lớn, sẵn có Phụ thuộc nền tảng, phí hoa hồng cao, không tùy biến thương hiệu
WordPress + WooCommerce Linh hoạt, nhiều plugin Yêu cầu cấu hình phức tạp, hiệu suất phụ thuộc hosting
Tự xây PHP thuần Toàn quyền kiểm soát, hiểu sâu kiến trúc Tốn thời gian phát triển, cần kiến thức full-stack
Website đồ án này (PHP + MySQL) Phù hợp SME, dễ tùy biến, không phí nền tảng Phạm vi giới hạn theo thời gian học phần

Khảo sát cho thấy 97% cửa hàng online năm 2019 đã áp dụng bán lẻ đa kênh (theo Sapo), trong đó hơn 54% sở hữu từ 5 kênh bán hàng trở lên. Điều này cho thấy nhu cầu có một website riêng — độc lập với marketplace — là xu hướng tất yếu.

Phân tích yêu cầu theo mô hình MoSCoW:

  • Must have: Đăng ký/đăng nhập, xem sản phẩm, giỏ hàng, thanh toán, quản lý đơn hàng Admin
  • Should have: Mã giảm giá, đánh giá sản phẩm, thống kê doanh thu, quản lý nhà cung cấp
  • Could have: Tích hợp VNPAY, tìm kiếm nâng cao theo bộ lọc, quên mật khẩu qua email
  • Won't have (v1): Ứng dụng mobile native, tích hợp AI gợi ý sản phẩm

Thiết kế hệ thống

Technology Stack:

Frontend : HTML5, CSS3, JavaScript (ES6)
Backend  : PHP (procedural + OOP)
Database : MySQL 8.x
IDE      : Visual Studio Code
Server   : Apache (XAMPP / WAMP local)
Payment  : VNPAY Gateway

Kiến trúc hệ thống theo mô hình Client-Server truyền thống với hai luồng actor chính:

[Browser Client]
      |
      ├──► [Customer Interface] ──► PHP Controllers ──► MySQL DB
      │         (public pages)
      └──► [Admin Panel]        ──► PHP Controllers ──► MySQL DB
                (protected, session-based auth)

Thiết kế cơ sở dữ liệu bao gồm các bảng chính:

Bảng Mô tả
users Tài khoản khách hàng và admin
products Thông tin sản phẩm, giá, tồn kho
categories Danh mục sản phẩm
suppliers Nhà cung cấp
orders Đơn hàng đặt mua
order_details Chi tiết sản phẩm trong đơn
cart Giỏ hàng tạm thời
discounts Mã giảm giá
reviews Đánh giá sản phẩm

Bảo mật hệ thống: Session-based authentication, kiểm tra quyền truy cập theo role (Admin/Customer), validate input phía server để phòng chống SQL Injection cơ bản và XSS.

Methodology

Dự án áp dụng quy trình phát triển tuần tự (Waterfall) phù hợp với quy mô học phần có deadline cố định:

  • Tuần 1–2: Khảo sát yêu cầu, phân tích bài toán, xây dựng use case diagram
  • Tuần 3–4: Thiết kế CSDL, class diagram, sequence diagram
  • Tuần 5–8: Lập trình backend (PHP/MySQL), xây dựng Admin Panel
  • Tuần 9–11: Lập trình frontend (HTML/CSS/JS), tích hợp giao diện
  • Tuần 12: Testing, sửa lỗi, hoàn thiện báo cáo

Implementation và kết quả

Development process

Hệ thống được chia thành hai module lớn triển khai song song:

Module Admin bao gồm 8 chức năng nghiệp vụ chính:

// Ví dụ luồng xác thực Admin với session PHP
session_start();
if (!isset($_SESSION['admin_id']) || $_SESSION['role'] !== 'admin') {
    header("Location: login.php");
    exit();
}
  • Quản lý khách hàng: Xem, xóa tài khoản, kiểm tra thông tin
  • Quản lý sản phẩm: CRUD đầy đủ (Create/Read/Update/Delete) + nhập tồn kho
  • Quản lý danh mục: Thêm/sửa/xóa danh mục sản phẩm
  • Quản lý nhà cung cấp: Theo dõi nguồn hàng
  • Quản lý đơn hàng: Duyệt đơn, xác nhận thanh toán, hủy đơn
  • Quản lý mã giảm giá: Tạo và kiểm soát voucher
  • Quản lý đánh giá: Kiểm duyệt review khách hàng
  • Thống kê: Doanh thu, số đơn, sản phẩm bán chạy

Module Customer cung cấp 7 luồng chức năng:

Đăng ký → Xác nhận email → Đăng nhập → Duyệt sản phẩm
→ Thêm giỏ hàng → Áp mã giảm giá → Thanh toán (VNPAY/COD)
→ Xem lịch sử đơn hàng → Hủy đơn (nếu chưa xử lý)

Thuật toán tìm kiếm sản phẩm sử dụng truy vấn MySQL với LIKEWHERE filter đa điều kiện:

SELECT p.*, c.name as category_name 
FROM products p
JOIN categories c ON p.category_id = c.id
WHERE p.name LIKE '%keyword%' 
  AND p.price BETWEEN min_price AND max_price
  AND p.status = 'active'
ORDER BY p.created_at DESC;

Testing và validation

Kiểm thử được thực hiện theo phương pháp manual black-box testing với các kịch bản:

Kịch bản test Kết quả mong đợi Trạng thái
Đăng nhập sai mật khẩu Hiển thị thông báo lỗi, không cho phép truy cập ✅ Pass
Thêm sản phẩm vào giỏ (chưa đăng nhập) Redirect về trang đăng nhập ✅ Pass
Đặt hàng với mã giảm giá hợp lệ Trừ đúng % giảm giá vào tổng tiền ✅ Pass
Admin xóa danh mục có sản phẩm Thông báo cảnh báo, không cho xóa ✅ Pass
Tìm kiếm sản phẩm không tồn tại Hiển thị thông báo "Không tìm thấy" ✅ Pass

Kết quả đạt được

  • 15/15 chức năng theo yêu cầu ban đầu được triển khai hoàn chỉnh
  • 4 chương báo cáo đầy đủ: Tổng quan, Phân tích hệ thống, Giải pháp, Giao diện
  • 32 biểu đồ (use case, sequence, class diagram) mô tả toàn diện kiến trúc hệ thống
  • Giao diện responsive, tương thích trình duyệt Chrome, Firefox, Edge

Đổi mới và đóng góp

So với việc sử dụng các giải pháp có sẵn như WooCommerce hay các template thương mại, dự án này mang lại giá trị học thuật và thực tiễn rõ rệt:

Tích hợp VNPAY Gateway — Thay vì chỉ hỗ trợ COD, hệ thống tích hợp cổng thanh toán VNPAY, cho phép xử lý giao dịch trực tuyến an toàn. Đây là điểm vượt trội so với nhiều đồ án tương đương chỉ mô phỏng thanh toán.

Hệ thống phân quyền RBAC — Phân tách rõ ràng giữa Admin và Customer với session riêng biệt, kiểm soát truy cập từng trang theo role. Điều này phản ánh mô hình bảo mật thực tế trong ứng dụng doanh nghiệp.

Module thống kê doanh thu — Cung cấp dashboard tổng hợp (khách hàng, sản phẩm, đơn hàng, doanh thu) trực tiếp từ CSDL — giúp chủ cửa hàng ra quyết định kinh doanh dựa trên dữ liệu thay vì ước tính thủ công.

So sánh với giải pháp tương đương:

Tiêu chí Đồ án này Bán hàng qua Facebook WooCommerce
Quản lý tồn kho ✅ Tích hợp sẵn ❌ Thủ công ✅ Plugin
Thống kê doanh thu ✅ Real-time ❌ Không có ✅ Plugin trả phí
Phí nền tảng $0 $0 Hosting + plugin
Tùy biến giao diện ✅ Toàn quyền ❌ Hạn chế ✅ Theme
Quản lý mã giảm giá ✅ Tích hợp ❌ Thủ công ✅ Plugin

Ứng dụng thực tế và triển khai

Kịch bản triển khai thực tế

Hệ thống phù hợp nhất cho cửa hàng thời trang vừa và nhỏ (SME) tại Việt Nam muốn chuyển đổi số với ngân sách thấp:

  • Cửa hàng thời trang local muốn mở rộng kênh bán online bên cạnh cửa hàng vật lý
  • Sinh viên khởi nghiệp cần prototype nhanh để thử nghiệm thị trường
  • Doanh nghiệp nhỏ chưa đủ ngân sách cho các nền tảng SaaS thương mại

Yêu cầu triển khai

Môi trường tối thiểu:
- PHP >= 7.4
- MySQL >= 5.7 hoặc MariaDB >= 10.3
- Apache / Nginx web server
- RAM: 512MB (shared hosting đủ dùng)
- Disk: 1GB (cho media sản phẩm)

Công cụ:
- XAMPP (local development)
- phpMyAdmin (quản lý CSDL)
- VS Code + PHP Intelephense extension

Đánh giá khả năng mở rộng

Quy mô Số sản phẩm Số đơn/ngày Giải pháp
Nhỏ (current) < 500 < 50 Shared hosting đơn giản
Trung bình 500–5.000 50–500 VPS + MySQL optimization
Lớn > 5.000 > 500 Cần refactor sang framework (Laravel)

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Không có caching layer: Mỗi request đều truy vấn trực tiếp MySQL, hiệu suất giảm khi tải cao — cần tích hợp Redis hoặc Memcached trong phiên bản tiếp theo
  • Bảo mật cơ bản: Chưa có CSRF token đầy đủ, prepared statements cần áp dụng nhất quán hơn
  • PHP thuần (procedural): Khó bảo trì khi mở rộng, cần refactor sang mô hình MVC hoặc dùng framework Laravel/CodeIgniter
  • Chưa có API RESTful: Hạn chế tích hợp với ứng dụng mobile hoặc bên thứ ba

Hướng phát triển đề xuất

  1. Phiên bản 2.0: Chuyển sang Laravel Framework + Vue.js frontend, xây dựng REST API
  2. Mobile App: Phát triển ứng dụng Android/iOS dùng chung backend API
  3. AI Recommendation: Tích hợp thuật toán gợi ý sản phẩm dựa trên lịch sử mua hàng (Collaborative Filtering)
  4. Multi-vendor: Mở rộng thành marketplace cho phép nhiều shop cùng bán trên một nền tảng
  5. Analytics nâng cao: Tích hợp Google Analytics 4 và heatmap để phân tích hành vi người dùng

Đối tượng hưởng lợi

Sinh viên CNTT tìm hiểu lập trình web có thể học từ dự án này:

  • Mô hình tổ chức CSDL quan hệ cho ứng dụng thương mại điện tử
  • Luồng xác thực và phân quyền người dùng bằng PHP Session
  • Cách thiết kế use case và sequence diagram cho hệ thống thực tế

Lập trình viên backend có thể tham khảo:

  • Pattern tổ chức code PHP cho ứng dụng CRUD đa vai trò
  • Quy trình tích hợp cổng thanh toán VNPAY
  • Cấu trúc bảng CSDL cho hệ thống đơn hàng + tồn kho

Chủ doanh nghiệp SME có thể:

  • Dùng làm proof-of-concept trước khi đầu tư vào giải pháp thương mại lớn hơn
  • Hiểu rõ các tính năng tối thiểu cần có cho một website bán hàng chuyên nghiệp
  • Ước tính chi phí và thời gian phát triển dựa trên scope thực tế của dự án

Câu hỏi thường gặp

1. Yêu cầu kỹ thuật để triển khai website này? Cần máy chủ có PHP 7.4+, MySQL 5.7+, Apache/Nginx. Shared hosting phổ thông tại Việt Nam (Azdigi, Hostinger VN) hoàn toàn đáp ứng được với chi phí từ 50.000–150.000 VNĐ/tháng.

2. Hệ thống chịu tải được bao nhiêu người dùng đồng thời? Với cấu hình shared hosting cơ bản, hệ thống ổn định ở mức 50–100 concurrent users. Để mở rộng, cần nâng cấp lên VPS và bổ sung query caching.

3. Làm thế nào để tích hợp với hệ thống vận chuyển (GHN, GHTK)? Phiên bản hiện tại chưa tích hợp API vận chuyển. Có thể bổ sung bằng cách gọi REST API của GHN/GHTK tại bước xác nhận đơn hàng trong Admin Panel.

4. Chi phí bảo trì hàng năm là bao nhiêu? Chi phí ước tính: Hosting (~1.200.000 VNĐ/năm) + Domain (~300.000 VNĐ/năm) + SSL (miễn phí với Let's Encrypt) = ~1.500.000 VNĐ/năm.

5. Có thể tích hợp thêm phương thức thanh toán nào khác? Ngoài VNPAY và COD, có thể mở rộng tích hợp MoMo Wallet, ZaloPay thông qua SDK chính thức của từng nhà cung cấp.


Kết luận

Đồ án "Xây Dựng Website Bán Quần Áo Online" của nhóm sinh viên Trường Đại học Điện Lực đã hoàn thành mục tiêu xây dựng một nền tảng thương mại điện tử thời trang đầy đủ chức năng trên nền tảng PHP + MySQL + JavaScript. Với 15 chức năng nghiệp vụ được triển khai — bao gồm toàn bộ vòng đời đơn hàng từ duyệt sản phẩm đến thanh toán VNPAY — dự án không chỉ đáp ứng yêu cầu học phần mà còn mang giá trị ứng dụng thực tiễn cho các doanh nghiệp SME.

Điểm nổi bật về mặt kỹ thuật là việc triển khai hệ thống phân quyền RBAC, tích hợp cổng thanh toán trực tuyến, và module thống kê doanh thu real-time — những tính năng thường chỉ xuất hiện trong các hệ thống thương mại chuyên nghiệp. Về học thuật, bộ tài liệu phân tích hệ thống với 32 biểu đồ UML (use case, sequence, class) là tài nguyên tham khảo có giá trị cho sinh viên CNTT đang học về phân tích và thiết kế hệ thống.

Hướng phát triển ưu tiên trong tương lai là refactor sang kiến trúc MVC với Laravel Framework, bổ sung REST API để hỗ trợ mobile app, và tích hợp AI recommendation engine — giúp nâng tầm hệ thống lên chuẩn thương mại điện tử hiện đại.