Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh công nghệ thông tin và truyền thông phát triển mạnh mẽ, mạng máy tính đã trở thành phương tiện hỗ trợ quan trọng trong đời sống và hoạt động sản xuất kinh doanh. Việc ứng dụng mạng Internet giúp việc truyền tải và truy xuất dữ liệu diễn ra nhanh chóng, cho phép người dùng tiếp cận đầy đủ thông tin, hình ảnh và âm thanh của sản phẩm chỉ qua vài thao tác tìm kiếm. Cùng với xu hướng thương mại điện tử ngày càng phổ biến, các hệ thống bán hàng trực tuyến xuất hiện nhằm đáp ứng nhu cầu giao dịch tiện lợi, liên tục và không bị giới hạn bởi khoảng cách địa lý.

Đề tài được thực hiện xuất phát từ khảo sát thực tế tại cửa hàng Long Phát – một đơn vị kinh doanh đa dạng các mặt hàng nhưng chưa xây dựng kênh bán hàng trực tuyến để giới thiệu sản phẩm và tiếp nhận đơn đặt hàng từ xa. Do chưa có hệ thống website, đơn vị gặp khó khăn trong việc thu thập phản hồi, đánh giá của người tiêu dùng để cải tiến chất lượng dịch vụ cũng như nâng cao trải nghiệm khách hàng.

Mục tiêu và nhiệm vụ nghiên cứu của đồ án bao gồm:

  1. Xây dựng website thương mại điện tử giúp khách hàng tra cứu thông tin chi tiết về sản phẩm, xem danh mục và thực hiện đặt mua hàng một cách nhanh chóng, tiện lợi.
  2. Thiết lập hệ thống quản trị dữ liệu phục vụ quản lý sản phẩm, phân loại hàng hóa, quản lý tài khoản khách hàng, kiểm soát đơn đặt hàng và tổng hợp báo cáo thống kê doanh thu theo kỳ (tháng, năm).
  3. Đảm bảo các yêu cầu kỹ thuật: cập nhật và lưu trữ thông tin chính xác; tốc độ truy xuất nhanh; giao diện trực quan, thẩm mỹ; vận hành ổn định và tích hợp cơ chế bảo mật phân quyền người dùng.

Đối tượng nghiên cứu là quy trình quản lý và kinh doanh bán lẻ trực tuyến. Phạm vi nghiên cứu tập trung vào việc khảo sát quy trình vận hành tại cửa hàng, thiết kế cơ sở dữ liệu quan hệ, xây dựng giao diện người dùng và triển khai các mô-đun chức năng dựa trên môi trường web tại Trường Cao đẳng Kinh tế Kế hoạch Đà Nẵng.

Cơ sở lý thuyết và phương pháp

Đồ án ứng dụng các lý thuyết về kỹ thuật phần mềm và kiến trúc hệ thống web mã nguồn mở, cụ thể gồm:

  • Mô hình kiến trúc MVC (Model - View - Controller): Mô hình phân tách ứng dụng thành ba thành phần độc lập:
    • Model: Đại diện cho cấu trúc dữ liệu, chịu trách nhiệm lưu trữ, thực hiện các thao tác truy vấn cơ sở dữ liệu và xử lý logic kinh doanh; không can thiệp vào cách thức hiển thị dữ liệu.
    • View: Đảm nhận vai trò hiển thị giao diện người dùng, tiếp nhận các thay đổi dữ liệu từ Model và chuyển tiếp sự kiện tương tác của người dùng đến Controller mà không chứa logic nghiệp vụ.
    • Controller: Tiếp nhận các sự kiện và yêu cầu từ View, điều phối luồng xử lý, thao tác với Model để cập nhật trạng thái dữ liệu và chuyển đổi hiển thị trên View.
  • Ngôn ngữ lập trình PHP (Hypertext Preprocessor): Ngôn ngữ kịch bản chạy trên máy chủ (server-side), hỗ trợ nhúng trực tiếp vào mã nguồn HTML, có khả năng xử lý biểu mẫu, kết nối linh hoạt với hệ quản trị cơ sở dữ liệu và hỗ trợ nhiều framework phát triển web.
  • Bộ công nghệ Frontend (HTML, CSS, JavaScript):
    • HTML (Hypertext Markup Language): Ngôn ngữ đánh dấu dùng để cấu trúc hóa trang web, tạo các khối văn bản, tiêu đề, liên kết, bảng và biểu mẫu.
    • CSS (Cascading Style Sheets): Ngôn ngữ định dạng hỗ trợ thiết lập màu sắc, phông chữ, bố cục và tối ưu hóa tính thẩm mỹ cho giao diện.
    • JavaScript: Ngôn ngữ lập trình hướng sự kiện và không đồng bộ, cho phép tạo các tương tác động trên trình duyệt, kiểm tra dữ liệu đầu vào và thao tác với DOM mà không cần tải lại toàn bộ trang.
  • Hệ quản trị cơ sở dữ liệu MySQL: Hệ quản trị cơ sở dữ liệu quan hệ mã nguồn mở sử dụng ngôn ngữ truy vấn có cấu trúc (SQL), cung cấp khả năng xử lý đồng thời nhiều kết nối và hỗ trợ quản lý dữ liệu có cấu trúc.

Phương pháp nghiên cứu được triển khai bao gồm: phương pháp phân tích yêu cầu nghiệp vụ thực tế, mô hình hóa chức năng bằng sơ đồ Use Case, thiết kế cơ sở dữ liệu quan hệ (sơ đồ ERD) và phương pháp hiện thực hóa hệ thống thông qua lập trình mã nguồn PHP/MySQL.

Thiết kế và triển khai

Kiến trúc và mô hình triển khai

Hệ thống được thiết kế để vận hành trên môi trường Web Server hỗ trợ dịch vụ PHP và MySQL. Mô hình triển khai bao gồm hai tác nhân chính:

  • Người quản trị (Admin): Đăng nhập vào giao diện quản trị thông qua trình duyệt web để thực hiện các thao tác quản lý dữ liệu, phê duyệt hóa đơn và xem báo cáo thống kê.
  • Khách hàng (Client): Sử dụng trình duyệt trên máy tính hoặc thiết bị di động để duyệt danh mục, tìm kiếm sản phẩm, gửi bình luận đánh giá, quản lý tài khoản cá nhân, thêm giỏ hàng và đặt mua hàng.

Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu của hệ thống được xây dựng trên MySQL với 9 thực thể bảng chính, đảm bảo các mối quan hệ ràng buộc khóa ngoại chặt chẽ:

  • Người dùng – Phân quyền
  • Hóa đơn – Người dùng
  • Chi tiết hóa đơn – Hóa đơn
  • Sản phẩm – Chi tiết hóa đơn
  • Loại sản phẩm – Sản phẩm
  • Khuyến mãi – Sản phẩm
  • Danh mục – Loại sản phẩm

Chi tiết cấu trúc các bảng dữ liệu được quy định như sau:

Tên bảng Tên cột Kiểu dữ liệu Ràng buộc Diễn giải
banner Id
HinhAnh
INT(11)
VARCHAR(255)
PK, NOT NULL
NOT NULL
Mã định danh banner
Đường dẫn hình ảnh
chitiethoadon MaHD
MaSP
SoLuong
DonGia
INT(11)
INT(11)
INT(11)
FLOAT
PK, NOT NULL
NOT NULL
NOT NULL
NOT NULL
Mã hóa đơn
Mã sản phẩm
Số lượng mua
Đơn giá sản phẩm
danhmuc MaDM
TenDM
INT(11)
VARCHAR(255)
PK, NOT NULL
NOT NULL
Mã danh mục
Tên danh mục
hoadon MaHD
MaND
NgayLap
NguoiNhan
SDT
DiaChi
PhuongThucTT
TongTien
TrangThai
INT(11)
INT(11)
DATETIME
VARCHAR(50)
VARCHAR(20)
VARCHAR(100)
VARCHAR(20)
FLOAT
VARCHAR(70)
PK, NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
Mã hóa đơn
Mã người dùng đặt hàng
Thời gian lập đơn
Họ tên người nhận
Số điện thoại nhận hàng
Địa chỉ giao hàng
Hình thức thanh toán
Tổng giá trị đơn hàng
Trạng thái xử lý hóa đơn
khuyenmai MaKM
TenKM
LoaiKM
GiaTriKM
NgayBD
TrangThai
INT(11)
VARCHAR(100)
VARCHAR(20)
FLOAT(11)
DATETIME
INT(11)
PK, NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
Mã chương trình khuyến mãi
Tên khuyến mãi
Loại áp dụng
Giá trị giảm giá
Thời gian bắt đầu
Trạng thái kích hoạt
loaisanpham MaLSP
TenLSP
HinhAnh
Mota
MaDM
INT(11)
VARCHAR(70)
VARCHAR(200)
VARCHAR(200)
INT(11)
PK, NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
Mã loại sản phẩm
Tên phân loại
Hình ảnh đại diện
Mô tả loại
Khóa ngoại liên kết danhmuc
nguoidung MaND
Matkhau
Ho Ten
GioiTinh
SDT
Email
Diachi
TaiKhoan
MaQuyen
TrangThai
INT(11)
VARCHAR(100)
VARCHAR(20)
VARCHAR(10)
VARCHAR(20)
VARCHAR(50)
VARCHAR(200)
VARCHAR(100)
INT(11)
INT(11)
PK, NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
Mã người dùng
Mật khẩu tài khoản
Họ và tên đầy đủ
Giới tính người dùng
Số điện thoại liên hệ
Địa chỉ thư điện tử
Địa chỉ cư trú
Tên đăng nhập hệ thống
Mã quyền hạn
Trạng thái kích hoạt
phanquyen MaQuyen
TenQuyen
ChiTietQuyen
INT(11)
VARCHAR(20)
VARCHAR(255)
PK, NOT NULL
NOT NULL
NOT NULL
Mã định danh quyền
Tên quyền truy cập
Mô tả chi tiết quyền hạn
sanpham MaSP
MaLSP
MaDM
TenSP
DonGia
SoLuong
HinhAnh1
HinhAnh2
HinhAnh3
MaKM
Tensanpham
Tinhtrang
Kichthuoc
Trongluong
Chatlieu
Soluongg
Mausac
Donvitinh
Noisanxuat
SoSao
SoDanhGia
TrangThai
MoTa
ThoiGian
INT(11)
INT(11)
INT(11)
VARCHAR(70)
INT(11)
INT(10)
VARCHAR(200)
VARCHAR(255)
VARCHAR(255)
INT(11)
VARCHAR(50)
VARCHAR(50)
VARCHAR(50)
VARCHAR(50)
VARCHAR(50)
VARCHAR(50)
VARCHAR(50)
VARCHAR(50)
VARCHAR(50)
INT(11)
INT(11)
INT(11)
TEXT
DATETIME
PK, NOT NULL
NOT NULL
FK, NOT NULL
FK, NOT NULL
NOT NULL
PK, NOT NULL
NOT NULL
NOT NULL
NOT NULL
PK, NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
PK, NOT NULL
NOT NULL
NOT NULL
NOT NULL
NOT NULL
Mã sản phẩm
Mã loại sản phẩm
Mã danh mục
Tên sản phẩm
Đơn giá bán
Số lượng tồn kho
Hình ảnh chính
Hình ảnh phụ 1
Hình ảnh phụ 2
Mã khuyến mãi áp dụng
Tên hiển thị chi tiết
Tình trạng hàng hóa
Thông số kích thước
Khối lượng/Trọng lượng
Chất liệu sản phẩm
Số lượng quy chuẩn
Màu sắc sản phẩm
Đơn vị tính
Xuất xứ/Nơi sản xuất
Điểm xếp hạng sao
Lượt đánh giá
Trạng thái kinh doanh
Mô tả chi tiết nội dung
Thời gian cập nhật

Hiện thực mã nguồn và giao diện

Hệ thống được tổ chức thành các thư viện hàm chức năng:

  • Hàm kết nối cơ sở dữ liệu và thực thi các câu lệnh SQL (truy vấn, thêm, sửa, xóa, tìm kiếm).
  • Các hàm tương tác với bảng danh mục, bảng loại sản phẩm và bảng sản phẩm.
  • Các hàm xử lý giỏ hàng ($_SESSION['sanpham']), tích lũy số lượng và tổng tiền thanh toán.
  • Các hàm xác thực phiên đăng nhập của người dùng và quản trị viên ($_SESSION['isLogin_Admin']).
  • Các hàm quản lý đánh giá và tích hợp plugin bình luận Facebook.

Giao diện người dùng sử dụng thư viện JavaScript SimpleLens để hỗ trợ hiển thị kính lúp phóng to bộ ba hình ảnh (HinhAnh1, HinhAnh2, HinhAnh3), đồng thời tích hợp phân trang bảng dữ liệu DataTable phía giao diện quản trị.

Nội dung chính theo từng chương

Lời nói đầu và Tổng quan công nghệ

Nội dung mở đầu trình bày vai trò của công nghệ thông tin trong thương mại điện tử, lý do lựa chọn xây dựng website bán hàng, mục tiêu tối ưu chi phí vận hành và mở rộng thị trường kinh doanh cho cửa hàng. Phần này cung cấp cơ sở lý thuyết tổng quan về:

  • Nguyên lý hoạt động và quy trình điều khiển của mô hình MVC trong phát triển ứng dụng web.
  • Đặc điểm của ngôn ngữ PHP trong việc tạo nội dung động và tương tác cơ sở dữ liệu trên máy chủ.
  • Vai trò cấu trúc của HTML, định dạng thẩm mỹ của CSS và khả năng xử lý tương tác bất đồng bộ của JavaScript.
  • Khả năng lưu trữ, mở rộng và quản lý dữ liệu quan hệ của hệ quản trị MySQL theo giấy phép mã nguồn mở GPL.

Phân tích hiện trạng và Yêu cầu hệ thống

Chương này tập trung đánh giá hiện trạng hoạt động của cửa hàng kinh doanh, chỉ rõ những hạn chế do chưa có hệ thống trực tuyến. Trên cơ sở đó, tác giả xây dựng bảng đặc tả yêu cầu chức năng và phi chức năng:

  • Yêu cầu đối với phân hệ khách hàng: Hiển thị danh mục phân cấp theo Accordion; thanh tìm kiếm sản phẩm theo tên; danh sách 10 sản phẩm được xem nhiều nhất; trang chi tiết sản phẩm kèm thông số kỹ thuật (kích thước, trọng lượng, chất liệu, đơn vị tính, nơi sản xuất); tích hợp gửi bình luận (yêu cầu đăng nhập); quản lý thông tin cá nhân (đổi mật khẩu, xem danh sách đơn hàng, xem lịch sử bình luận); quản lý giỏ hàng và quy trình đặt hàng.
  • Yêu cầu đối với phân hệ quản trị: Cung cấp đầy đủ các thao tác xem, thêm, sửa, xóa, tìm kiếm và phân trang dữ liệu đối với tài khoản, sản phẩm, loại sản phẩm, danh mục, banner, khuyến mãi; module kiểm tra chi tiết và duyệt đơn hàng; module tổng hợp báo cáo thống kê doanh thu, khách hàng, nhân viên và sản phẩm.
  • Yêu cầu bảo mật: Kiểm soát dữ liệu nhập trên tất cả các biểu mẫu; phân quyền chặt chẽ giữa khách hàng thành viên và quản trị viên; ngăn chặn việc gửi bình luận hoặc truy cập chức năng hệ thống đối với người dùng nặc danh (chưa đăng nhập).

Chương 3. Thiết kế hệ thống

Nội dung chương 3 thiết lập các sơ đồ kỹ thuật và bản thiết kế chi tiết:

  • Trình bày mô hình triển khai thực tế trên máy chủ web lưu trữ (Host hỗ trợ PHP/MySQL).
  • Xây dựng sơ đồ quan hệ thực thể (ERD Diagram Level) thể hiện mối liên kết giữa 9 bảng dữ liệu.
  • Thiết lập từ điển dữ liệu chi tiết cho từng bảng (banner, chitiethoadon, danhmuc, hoadon, khuyenmai, loaisanpham, nguoidung, phanquyen, sanpham), xác định rõ khóa chính (PK), khóa ngoại (FK), kiểu dữ liệu và thuộc tính NOT NULL.
  • Thiết kế cấu trúc layout và giao diện cho các trang quản trị (thêm mới/quản lý tài khoản, sản phẩm, loại sản phẩm, danh mục, hóa đơn, banner, khuyến mãi, thống kê) và các trang khách hàng (trang chủ, cửa hàng, chi tiết sản phẩm, đăng nhập, quên mật khẩu, cập nhật tài khoản, giỏ hàng, đặt hàng, xác nhận đơn hàng).

Chương 4. Thực hiện dự án

Chương 4 mô tả cấu trúc mã nguồn thực tế và cách thức hiện thực các mô-đun:

  • Xây dựng danh mục các thư viện hàm xử lý truy vấn dữ liệu SQL và quản lý phiên làm việc (Session).
  • Hiện thực mã nguồn giao diện quản trị (demo trang quản lý danh mục và trang quản lý sản phẩm kết hợp bảng dữ liệu Bootstrap, phân quyền đăng nhập $_SESSION['isLogin_Admin'] và thông báo cookie).
  • Hiện thực mã nguồn giao diện khách hàng:
    • Header trang chủ tích hợp giỏ hàng thả xuống (cart dropdown) tính toán tổng số lượng và thành tiền từ biến phiên $_SESSION['sanpham'].
    • Thanh điều hướng đa cấp (Megamenu) hiển thị danh mục và loại sản phẩm.
    • Khung danh mục Sidebar dạng Accordion cho phép thu gọn/mở rộng.
    • Trang chi tiết sản phẩm hiển thị thông tin đặc tính kỹ thuật, bộ trượt hình ảnh simpleLens và khu vực bình luận tích hợp plugin Facebook.

Kết quả và đóng góp

Đồ án đã đạt được các kết quả kỹ thuật và ứng dụng thực tiễn:

  • Hoàn thiện hệ thống website thương mại điện tử với hai phân hệ tách biệt (Client và Admin), vận hành theo mô hình kiến trúc MVC.
  • Xây dựng cấu trúc cơ sở dữ liệu quan hệ gồm 9 bảng dữ liệu trên MySQL, đảm bảo tính toàn vẹn và chuẩn hóa thông tin hàng hóa, danh mục, người dùng và đơn hàng.
  • Xây dựng thành công các chức năng cốt lõi: duyệt danh mục sản phẩm đa cấp, xem chi tiết thuộc tính sản phẩm, giỏ hàng tương tác qua Session, đặt hàng, duyệt hóa đơn và phân quyền quản trị.
  • Đóng góp giải pháp công nghệ giúp cơ sở kinh doanh số hóa quy trình quản lý bán hàng, chuyển đổi từ phương thức bán lẻ trực tiếp sang quản lý tập trung và tương tác với khách hàng qua môi trường mạng.

Hạn chế và hướng nghiên cứu tiếp

Căn cứ trên các nội dung được ghi nhận trong văn bản, hệ thống còn một số điểm cần tiếp tục hoàn thiện:

  • Tính năng phục hồi mật khẩu ("Quên mật khẩu") tại giao diện khách hàng vẫn đang trong giai đoạn phát triển, chưa được hiện thực hóa hoàn chỉnh.
  • Cần tiếp tục đồng bộ hóa và chuẩn hóa nội dung giữa phần tiêu đề bìa báo cáo (website bán giấy photocopy) và nội dung nghiệp vụ triển khai thực tế bên trong (website bán vật liệu xây dựng Long Phát).
  • Cần mở rộng tích hợp các cổng thanh toán trực tuyến tự động bên cạnh các phương thức thanh toán cơ bản hiện có.

Giá trị tham khảo

Báo cáo đồ án là tài liệu tham khảo phù hợp cho sinh viên chuyên ngành Công nghệ thông tin, Hệ thống thông tin hoặc Thương mại điện tử thuộc hệ đào tạo cao đẳng và đại học. Tài liệu cung cấp mẫu thiết kế cơ sở dữ liệu quan hệ chi tiết (từ điển dữ liệu 9 bảng) và cấu trúc mã nguồn PHP/MySQL áp dụng mô hình MVC cơ bản, rất hữu ích cho các đề tài xây dựng website bán hàng, quản lý sản phẩm hoặc đồ án môn học kỹ thuật lập trình web.

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

1. Hệ thống website được xây dựng dựa trên những công nghệ và kiến trúc nào?
Website được phát triển dựa trên mô hình kiến trúc MVC (Model - View - Controller), sử dụng ngôn ngữ lập trình phía máy chủ PHP kết hợp với hệ quản trị cơ sở dữ liệu MySQL. Phần giao diện người dùng được xây dựng bằng HTML, CSS, JavaScript và thư viện hiển thị hình ảnh SimpleLens.

2. Cơ sở dữ liệu của đồ án gồm bao nhiêu bảng và có những bảng nào?
Hệ thống gồm 9 bảng dữ liệu chính: banner (quản lý ảnh banner), chitiethoadon (chi tiết mặt hàng trong đơn), danhmuc (danh mục chính), hoadon (thông tin đơn hàng), khuyenmai (chương trình giảm giá), loaisanpham (loại sản phẩm phân cấp), nguoidung (tài khoản khách hàng và quản trị), phanquyen (phân quyền vai trò) và sanpham (thông tin chi tiết hàng hóa).

3. Phân hệ quản trị (Admin) cung cấp những chức năng nghiệp vụ nào?
Quản trị viên có quyền thực hiện các thao tác xem, thêm, xóa, sửa và phân trang đối với: tài khoản người dùng, sản phẩm, loại sản phẩm, danh mục sản phẩm, banner quảng cáo, chương trình khuyến mãi; thực hiện xét duyệt các đơn hàng/hóa đơn; đồng thời theo dõi các bảng tổng hợp thống kê doanh thu, đơn hàng, người dùng và sản phẩm.

4. Chức năng giỏ hàng và đặt hàng của khách hàng được xử lý như thế nào trong mã nguồn?
Hệ thống sử dụng biến phiên $_SESSION['sanpham'] để lưu trữ danh sách mặt hàng được chọn, tự động tính toán tổng số lượng và thành tiền. Khách hàng có thể xem nhanh giỏ hàng từ thanh điều hướng (dropdown), chuyển đến trang giỏ hàng để cập nhật hoặc tiến hành chuyển sang trang thanh toán (?act=checkout) và xác nhận đơn hàng.

5. Trong các chức năng người dùng, chức năng nào được tác giả ghi chú là đang trong quá trình phát triển?
Trong mục lục và phần đặc tả chức năng quản lý tài khoản của khách hàng, chức năng "Quên mật khẩu" được tác giả ghi chú rõ là đang trong quá trình phát triển.

Kết luận

Đồ án "Xây dựng website bán hàng" do sinh viên Trần Duy Thiện thực hiện dưới sự hướng dẫn của giảng viên Nguyễn Văn Mùi tại Trường Cao đẳng Kinh tế Kế hoạch đã hoàn thành việc thiết kế và lập trình một hệ thống thương mại điện tử cơ bản. Báo cáo cung cấp đầy đủ quy trình từ khảo sát yêu cầu, thiết kế mô hình cơ sở dữ liệu quan hệ 9 bảng, đến hiện thực mã nguồn PHP/MySQL theo kiến trúc MVC. Hệ thống giải quyết tốt bài toán hiển thị sản phẩm đa cấp, quản lý giỏ hàng và quản trị đơn hàng, là tài liệu tham khảo thực tế cho các nghiên cứu và đồ án phát triển web ứng dụng.