Xây dựng website cửa hàng bán mỹ phẩm - Học phần thay thế PTIT -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Xác định yêu cầu
Tìm hiểu lĩnh vực chuyên môn
- Đề tài thực hiện trên một trang web bán hàng online cho mỹ phẩm Trong đó khách hàng sẽ tham gia trang web có thể thực hiện đăng ký, đăng nhập, xem thông tin sản phẩm, thêm sản phẩm vào giỏ hàng, tiến hàng thanh toán sản phẩm, theo dõi trạng thái đơn hàng Ngoài ra người quản lý sẽ quản lý trang web có thể thực hiện các tác vụ như thêm, sửa, xóa, xem sản phẩm, danh mục Đối với nhân viên là người sẽ tiếp nhận đơn hàng do người quản lý chuyển đến thực hiện gói hàng, giao hàng cho khách
- Các từ khóa trong lĩnh vực bán hàng được chia thành ba nhóm như sau:
+ Con người: thành viên, nhân viên, quản lý, khách hàng
+ Hành động: đăng nhập, đăng xuất, đổi mật khẩu, cập nhật thông tin cá nhân, xem thông tin sản phẩm, thêm sản phẩm vào giỏ hàng, thực hiện thanh toán, thực hiện xác nhận đơn hàng, thực hiện quản lý sản phẩm, đơn hàng
+ Vật, đối tượng: cửa hàng, sản phẩm, danh mục sản phẩm, giỏ hàng, đơn hàng
- Bảng giải thích ngữ nghĩa:
Nhóm các khái niệm liên quan đến con người
1 Thành viên Member Người có tài khoản và thẩm quyền để đăng nhập vào hệ thống, thực hiện các chức năng được cho phép VD: khách hàng đăng nhập để có thể mua hàng
2 Khách hàng Customer Là người có quyền vào trang web với các truyền không liên quan đến quản lý sản phẩm như thêm sửa xóa chỉ được thực hiện các tác vụ như mua hàng
3 Quản lý Manager Là người có quyền đặc biệt của website là có thể tạo sản phẩm, quản lý đơn hàng của tất cả người dùng
4 Nhân viên Staff Là người có nhiệm vụ thực hiện các nhiệm vụ được giao của quản lý như giao hàng, đóng hàng Nhóm các khái niệm liên quan đến hoạt động của người
5 Đăng ký Registration Là hoạt động của khách hàng đăng ký tài khoản người dùng trên trang web khi chưa có tài khoản để đăng nhập để thực hiện được tác vụ thanh toán giỏ hàng
6 Đăng nhập Log in Là hoạt động của khách hàng đăng nhập khi đã có tài khoản để thực hiện thao tác thanh toán, thêm sản phẩm vào giỏ hàng
7 Thêm sản phẩm vào giỏ
Add to cart Là hành động người mua yêu thích sản phẩm và muốn mua dùng để trải nghiệm nên cho vào giỏ hàng để tiến hành thanh toán
8 Xem sản View Là hành động của người mua
6 phẩm product muốn tìm hiểu hơn về sản phẩm
9 Tìm kiếm Search Là hành động tìm ra sản phẩm mà mình muốn xem
10 Thanh toán Checkout Là hành động thanh toán sản phẩm từ giỏ hàng của người dùng
11 Quản lý sản phẩm Product management
Là hành động của người quản lý thêm sửa xóa sản phẩm theo từng đợt hàng
12 Quản lý danh mục sản phẩm
Là hành động của người quản lý thêm danh mục sản phẩm khi mới mua loại sản phẩm được sản xuất và nhập về để bán
13 Quản lý đơn hàng Order management
Là quản lý trạng thái đơn hàng của khách hàng và quản lý tất cả các đơn hàng đã được đặt
14 Thống kê sản phẩm product statistics Được sử dụng để kiểm soát sản phẩm, số lượng sản phẩm
Nhóm các khái niệm liên quan đến vật, đối tượng xử lý
15 Sản phẩm Product Sản phẩm là những mặt hàng hoặc dịch vụ được tạo ra và cung ứng cho thị trường nhằm thỏa mãn nhu cầu của người tiêu dùng
16 Đơn hàng Order Đặt hàng là việc khách hàng mua sản phẩm của cửa hàng
17 Giỏ hàng Cart Giỏ hàng chính là cầu nối trung gian giữa trang sản phẩm và quy trình thanh toán
18 Cửa hàng Shop Là tên gọi cho một địa điểm kinh doanh, bán lẻ của một cá nhân,
19 Danh mục Category Danh mục sản phẩm là tập hợp các dòng sản phẩm của doanh nghiệp cung cấp cho khách hàng
Mô tả hệ thống bằng ngôn ngữ tự nhiên
a Mục đích của hệ thống
- Trang web phục vụ các chức năng mua hàng thanh toán sản phẩm online, quản lý sản phẩm, danh mục sản phẩm và đơn hàng đã đặt cho
1 brand b Phạm vi hệ thống
+ Tìm kiếm/Xem thông tin sản phẩm
+ Thực hiện thanh toán đơn hàng
+ Cập nhật trạng thái đơn hàng khi đã nhận hoặc hủy
+ Thay đổi thông tin cá nhân
+ Quản lý đơn hàng: xác nhận đơn hàng, hủy đơn
+ Quản lý sản phẩm: thêm, sửa, xóa
+ Quản lý danh mục: thêm, sửa, xóa c Hoạt động nghiệp vụ của các chức năng
• Quản lý đơn hàng với admin:
Quản lý đăng nhập vào hệ thống, chọn chức năng quản lý đơn hàng -> Giao diện quản lý đơn hàng hiện lên cùng các chức năng: xử lý đơn hàng và danh sách các đơn hàng -> Quản lý chọn chức năng xử lý đơn hàng -> Giao diện xử lý đơn hàng hiện ra các đơn hàng mà khách hàng đã mua và đặt hàng thành công đang chờ xử lý -> Quản lý kiểm tra lại số lượng sản phẩm trong đơn mua đối chiếu với số lượng hàng trong kho và tiến hành chọn xác nhận/huỷ đơn hàng -> Nếu quản lý chọn xác nhận đơn hàng, hệ thống hiển thị xác nhận thành công và chuyển trạng thái từ chờ xử lý thành đã xác nhận và chuyển sang màn danh sách các đơn hàng có đơn hàng vừa xử lý thành công -> Nếu quản lý chọn huỷ đơn hàng, hệ thống hiển thị popup lý do huỷ đơn -> Quản lý nhập lý do huỷ và chọn button Xác nhận huỷ -> Huỷ thành công, đơn hàng chuyển trạng thái chờ xử lý thành shop đã huỷ và chuyển sang màn danh sách các đơn hàng có đơn hàng vừa xử lý thành công -> Tại màn danh sách các đơn hàng, quản lý
8 chọn 1 đơn hàng có trạng thái shop đã huỷ -> Hiển thị chi tiết các sản phẩm, tổng tiền, thông tin người mua và lý do huỷ
• Quản lý đơn hàng với customer
Khách hàng đăng nhập vào trang web -> Chọn chức năng xem
“Lịch sử đơn hàng” trên màn hình -> Chuyển đến trang đơn hàng và hiển thị danh sách các đơn hàng đã đặt -> Khách hàng click huỷ/đã nhận đơn hàng đã giao tại đơn hàng khách hàng cần cập nhật ->Nếu chọn huỷ thì hiển thị popup nhập lý do hủy Khách hàng nhập lý do và click confirm; Nếu chọn xác nhận -> Hiển thị thông báo xác nhận thành công và update lại trạng thái trên màn hình
Khách hàng đăng nhập vào hệ thống -> Khách hàng chọn giỏ hàng
-> Giỏ hàng hiện ra bao gồm: sản phẩm, số lượng, tổng tiền -> Khách hàng chọn button Thanh toán -> Giao diện xác nhận thanh toán hiện lên bao gồm: tổng số tiền, số điện thoại, tên khách hàng, địa chỉ, phương thức thanh toán -> Khách hàng xác nhận các thông tin và chọn phương thức thanh toán tiền mặt/ thẻ ngân hàng và click button Xác nhận -> Nếu khách hàng chọn phương thức thanh toán là tiền mặt thì đơn hàng được đặt thành công và chuyển sang giao diện “Đơn hàng của tôi” -> Nếu khách hàng chọn phương thức thanh toán là thẻ ngân hàng thì màn hình nhập thông tin thẻ hiện ra -> Khách hàng nhập thông tin thẻ và mã OTP và ấn nút Tiếp tục -> Nếu thông tin thẻ không chính xác/ số dư không đủ/ hệ thống hiển thị lỗi không thành công -> Nếu thông tin thẻ chính xác thì hệ thống hiển thị thông báo thành công
Quản lý đăng nhập vào hệ thống -> Quản lý chọn chức năng thống kê doanh thu -> Hiển thị chức năng thống kê doanh thu bao gồm chức năng: Thống kê doanh thu theo sản phẩm và thống kê doanh thu theo ngày -> Quản lý chọn thống kê doanh thu theo sản phẩm -> Quản lý nhập tên sản phẩm cần xem -> Hiển thị doanh thu của sản phẩm đó bao gồm: tổng doanh thu, doanh thu trong vòng 7 ngày -> Quản lý click button quay lại -> Hiển thị trang thống kê doanh thu -> Quản lý chọn thống kê doanh thu theo ngày -> Quản lý nhập ngày cần xem -> Hiển thị tổng doanh thu trong ngày và doanh thu từng sản phẩm trong ngày đó d Thông tin các đối tượng cần xử lý
- Nhóm thông tin liên quan đến con người:
+ Thành viên: email, tên, số điện thoại, địa chỉ, mật khẩu
+ Khách hàng: giống thành viên và có thêm role
+ Quản lý: giống thành viên và có thêm role
- Thông tin liên quan đến sản phẩm:
+ Sản phẩm: tên, số lượng, loại da, danh mục sản phẩm, mô tả, size + Danh mục: tên
+ Giỏ hàng: sản phẩm, số lượng sản phẩm, tổng tiền
+ Đơn hàng: tên khách hàng, địa chỉ, số điện thoại, trạng thái, sản phẩm, số lượng, tổng tiền, hình thức thanh toán e Quan hệ giữa các đối tượng
- Một quản lý sẽ quản lý nhiều sản phẩm
- Một quản lý sẽ quản lý nhiều danh mục
- Một quản lý sẽ quản lý nhiều đơn hàng
- Một sản phẩm có một danh mục
- Một danh mục sẽ có nhiều sản phẩm
- Một giỏ hàng sẽ có nhiều sản phẩm
- Một sản phẩm sẽ được nằm trong nhiều giỏ hàng
- Một đơn hàng sẽ có nhiều sản phẩm
- Một sản phẩm sẽ nằm trong nhiều đơn hàng
- Một đơn hàng sẽ có một người khách hàng
- Một khách hàng sẽ có nhiều đơn hàng.
Mô tả hệ thống bằng ngôn ngữ UML - use case
a, Quản lý đơn hàng với admin
- Chức năng “Quản lý đơn hàng”, quản lý phải tương tác với một số các giao diện:
+ Đăng nhập -> đề xuất UC đăng nhập
+ Quản lý đơn hàng -> đề xuất UC quản lý đơn hàng
+ Xử lý đơn hàng -> đề xuất UC xử lý đơn hàng
+ Danh sách đơn hàng -> đề xuất UC xem danh sách các đơn hàng + Chọn xác nhận đơn hàng-> đề xuất UC chọn xác nhận
+ Chọn huỷ đơn hàng -> đề xuất UC chọn huỷ
+ Nhập lý do hủy -> đề xuất UC nhập lý do
+ Xem chi tiết đơn hàng -> đề xuất UC xem chi tiết đơn hàng
+ Tìm kiếm sản phẩm -> đề xuất UC tìm kiếm
+ UC xem danh sách các đơn hàng, UC xử lý đơn hàng là một chức năng của quản lý nên là extend của quản lý đơn hàng UC nhập lý do là bắt buộc để thực hiện huỷ đơn hàng nên là include của UC chọn huỷ
- Các UC được mô tả như sau:
+ UC quản lý đơn hàng để xem danh sách các đơn hàng của toàn khách hàng đã đặt và để thực hiện xử lý đơn
+ UC chọn xác nhận là để xác nhận đơn từ quản lý
+ UC chọn huỷ là để huỷ đơn từ quản lý khi đơn hàng có sự sai lệch về sản phẩm, giá tiền + UC nhập lý do là để nhập lý do về tình trạng huỷ đơn hàng
+ UC chọn phương thức xử lý để quản lý thực hiện chọn xác nhận đơn hàng/huỷ đơn hàng b, Quản lý đơn hàng với customer
- Chức năng “Quản lý đơn hàng”, khách hàng phải tương tác với một số các giao diện:
+ Đăng nhập -> đề xuất UC đăng nhập
+ Quản lý đơn hàng -> đề xuất UC quản lý đơn hàng
+ Lịch sử đơn hàng -> đề xuất UC chọn lịch sử đơn hàng
+ Chọn trạng thái cần cập nhật -> đề xuất UC trạng thái cần cập nhật
- Các UC được mô tả như sau:
+ UC quản lý đơn hàng để xem danh sách đơn hàng đã đặt và có thể thực hiện cập nhật trạng thái
+ UC trạng thái cần cập nhật để khách hàng thay đổi trạng thái đơn hàng là huỷ hoặc xác nhận đã giao thành công b, Thanh toán giỏ hàng
- Chức năng “Thanh toán giỏ hàng”, khách hàng phải tương tác với một số các giao diện:
+ Đăng nhập -> đề xuất UC đăng nhập
+ Xem giỏ hàng -> đề xuất UC xem giỏ hàng
+ Thanh toán giỏ hàng -> đề xuất UC thanh toán giỏ hàng
+ Xác nhận thanh toán -> đề xuất UC xác nhận thanh toán giỏ hàng + Thanh toán tiền mặt → đề xuất UC thanh toán tiền mặt
+ Thanh toán thẻ ngân hàng → đề xuất UC thanh toán thẻ ngân hàng + Nhập thông tin thẻ ngân hàng → đề xuất UC nhập thông tin thẻ + UC nhập thông tin thẻ là bắt buộc để thực hiện thanh toán thẻ ngân hàng thành công nên nó UC thanh toán thẻ ngân hàng include nhập thông tin thẻ
- Các UC được mô tả như sau:
+ UC xem giỏ hàng để xem danh sách sản phẩm trong giỏ hàng
+ UC xác nhận thanh toán giỏ hàng: để chọn phương thức thanh toán và xác nhận thông tin nhận hàng c, Thống kê doanh thu
- Chức năng “Thống kê doanh thu”, quản lý phải tương tác với một số các giao diện:
+ Đăng nhập -> đề xuất UC đăng nhập
+ Thống kê doanh thu -> đề xuất UC thống kê doanh thu
+ Thống kê doanh thu theo sản phẩm -> đề xuất UC thống kê theo sản phẩm + Thống kê doanh thu theo ngày-> đề xuất UC thống kê theo ngày
+ UC thống kê theo sản phẩm, UC thống kê theo ngày là 2 chức năng của thống kê doanh thu nên là extend của UC thống kê doanh thu
UC nhập ngày là bắt buộc để thực hiện được UC thống kê theo ngày, do đó UC thống kê theo ngày include UC nhập ngày UC nhập tên sản phẩm là bắt buộc để thực hiện được UC thống kê theo sản phẩm, do đó UC thống kê theo sản phẩm include UC nhập tên sản phẩm
- Các UC được mô tả như sau:
+ UC thống kê theo ngày là để quản lý có thể xem được doanh thu trong ngày + UC thống kê theo sản phẩm là để quản lý có thể xem được doanh thu của sản phẩm từ lúc bắt đầu bán
Phân tích yêu cầu
Viết kịch bản
a, Kịch bản cho module quản lý đơn hàng của quản lý:
Use case Quản lý đơn hàng
Tiền điều kiện Quản lý đã đăng nhập vào hệ thống và có ít nhất 1 đơn hàng chưa được xử lý Hậu điều kiện Xử lý đơn hàng thành công
Kịch bản chính 1 Tại giao diện đăng nhập, quản lý nhập email, password và nhấn login
2 Giao diện màn hình chính của quản lý hiện ra, quản lý chọn chức năng quản lý đơn hàng
3 Giao diện màn hình chức năng quản lý đơn hàng hiện ra bao gồm chức năng danh sách đơn hàng và xử lý đơn hàng
4 Quản lý chọn xử lý đơn hàng, giao diện hiện lên các đơn hàng chưa được xử lý
5 Quản lý chọn huỷ đơn hàng, hiển thị popup nhập lý do
6 Quản chọn xác nhận và hiển thị sang màn danh sách đơn hàng bao gồm đơn hàng vừa xử lý
7 Quản lý chọn một đơn hàng, hiển thị chi tiết đơn hàng
Ngoại lệ 6 Hệ thống hiển thị thông báo lỗi “Khách hàng đã hủy” do khách hàng vừa hủy đơn hàng mà hệ thống chưa kịp cập nhật b, Kịch bản cho module quản lý đơn hàng của khách hàng
Use case Quản lý đơn hàng
Tiền điều kiện Khách hàng đã đăng nhập vào có ít nhất 1 đơn hàng chưa cập nhật trạng thái Hậu điều kiện Cập nhật trạng thái đơn hàng thành công
Kịch bản chính 1 Tại giao diện đăng nhập, khách hàng nhập email, password và nhấn login
2 Giao diện màn hình chính của khách hàng hiện ra, khách hàng chọn xem Lịch sử đơn hàng
3 Giao diện màn hình Lịch sử đơn hàng hiện ra bao gồm danh sách các đơn hàng đã đặt
4 Khách hàng chọn huỷ đơn, hiển thị popup nhập lý do
5 Khách hàng chọn xác nhận, đóng popup và update lại đơn hàng
Ngoại lệ 4 Hệ thống hiển thị thông báo lỗi “Quản lý đã hủy/xác nhận đơn” c, Kịch bản cho module thanh toán giỏ hàng
Use case Thanh toán giỏ hàng
Tiền điều kiện Khách hàng đăng nhập thành công và giỏ hàng có ít nhất 1 sản phẩm Hậu điều kiện Thanh toán thành công
Kịch bản chính 1 Tại giao diện đăng nhập, khách hàng nhập email, password và nhấn login
2 Giao diện màn hình khách hàng hiện ra có button giỏ hàng và giao diện trang chủ
3 Khách hàng chọn button giỏ hàng
4 Giao diện giỏ hàng hiện ra
5 Khách hàng chọn button Thanh toán
6 Giao diện xác nhận thanh toán hiện ra
7 Khách hàng chọn thanh toán bằng thẻ ATM
8 Giao diện vnpay hiện lên
9 Khách hàng chọn thanh toán thẻ ngân hàng và điền thông tin thẻ chính xác
Ngoại lệ 5 Giỏ hàng không có sản phẩm, khách hàng chọn thanh toán thì hiển thị thông báo lỗi “Giỏ hàng đang trống” d, Kịch bản cho module thống kê doanh thu
Use case Thống kê doanh thu
Tiền điều kiện Quản lý đã đăng nhập và đã có doanh thu của sản phẩm Hậu điều kiện Có thể xem được thống kê doanh thu
Kịch bản chính 1 Tại giao diện đăng nhập, quản lý nhập email, password và nhấn login
2 Giao diện màn hình chính của quản lý hiện ra, quản lý chọn chức năng thống kê doanh thu
3 Màn hình của thống kê doanh thu hiện lên bao gồm 2 chức năng: thống kê doanh thu theo sản phẩm và thống kê doanh thu theo ngày
4 Quản lý chọn chức năng thống kê doanh thu theo sản phẩm
5 Giao diện thống kê doanh thu theo sản phẩm hiện lên, quản lý nhập tên sản phẩm cần xem
6 Hiển thị thống kê doanh thu của sản phẩm đó trong 7 ngày
7 Quản lý chọn button quay lại
8 Hiển thị lại màn các chức năng của thống kê doanh thu
9 Quản lý chọn chức năng thống kê doanh thu theo ngày
10 Quản lý nhập ngày cần thống kê
11 Hiển thị doanh số của ngày đó và doanh số từng sản phẩm của ngày đó được sắp xếp giảm dần
Ngoại lệ Chưa có sản phẩm nào được bán
Trích lớp thực thể
a, Mô tả hệ thống trong một đoạn văn
Hệ thống là một trang web bán mỹ phẩm hỗ trợ quản lý sản phẩm, các danh mục sản phẩm sẽ bán và đặt hàng online Thành viên hệ thống có thể thực hiện đăng nhập, đăng ký, thay đổi mật khẩu Khách hàng có xem thông tin chi tiết sản phẩm, các đơn hàng đã đặt, thêm sản phẩm vào giỏ hàng, thanh toán Quản lý có thể thực hiện thêm, sửa, xóa sản phẩm và danh mục Quản lý có thể thực hiện các chức năng quản lý đơn hàng như là xem danh sách các đơn hàng và xử lý đơn hàng, thực hiện thống kê doanh thu theo sản phẩm và theo ngày b, Đánh giá danh từ
- Các danh từ trừu tượng: hệ thống, trang web, mỹ phẩm -> loại
- Các danh từ liên quan đến người:
+ Thành viên hệ thống ->User(trừu tượng): email, password, fullname, phoneNumber, address, role + Quản lý -> Admin (trừu tượng): kế thừa user
+ Khách hàng -> Customer: kế thừa user
- Các danh từ liên quan đến vật:
+ Sản phẩm -> Product: name, image, desc, idCategory, skinType, inventory, sold, price
+ Giỏ hàng -> Cart: totalPrice, status
+ Đơn hàng -> Order: idCustomer, idCart, price, status, paymentType
- Các danh từ thông tin:
+ Thống kê doanh thu theo sản phẩm -> TKDoanhThuTheoSp: totalPrice
+ Thống kê doanh thu theo ngày-> TKDoanhThuTheoNgay: totalPrice c, Xác định quan hệ số lượng giữa các thực thể
- Một quản lý có thể quản lý nhiều đơn hàng -> Admin - Order là 1-
- Một quản lý có thể tạo nhiều sản phẩm -> Admin - Product là 1-N
- Một quản lý có thể tạo nhiều danh mục sản phẩm -> Admin -
- Một khách hàng có thể nhiều giỏ hàng -> Customer - Cart là 1-N
- Một khách hàng có thể nhiều đơn hàng -> Customer - Order là 1-N
- Một giỏ hàng có thể thanh toán được một đơn hàng -> Cart - Order là 1-1
- Một danh mục sản phẩm sẽ có thể có nhiều sản phẩm -> Category -
- Một giỏ hàng có thể có nhiều sản phẩm và một sản phẩm có thể có nhiều giỏ hàng -> Cart - Product là N-N d, Biểu đồ lớp thực thể
Trích lớp biên và điều khiển
a, Phân tích module Quản lý đơn hàng của admin
18 b, Phân tích module Quản lý đơn hàng của khách hàng c, Phân tích module Thanh toán giỏ hàng
19 d, Phân tích module Thống kê doanh thu
Phân tích hoạt động
a, Quản lý đơn hàng của admin
- Biểu đồ chuyển đổi trạng thái
- Kịch bản v2 cho module Quản lý Order:
20 b, Quản lý đơn hàng của khách hàng
- Biểu đồ chuyển đổi trạng thái
- Kịch bản v2 cho module Quản lý Order: c, Thanh toán giỏ hàng
- Biểu đồ chuyển đổi trạng thái:
- Kịch bản v2 cho module Quản lý Order:
- Biểu đồ chuyển đổi trạng thái
- Kịch bản v2 cho module thống kê doanh thu
Thiết kế lớp thực thể
- Chuyển đổi quan hệ Association:
+ Cart - Product: Cart chứa CartProduct, CartProduct chứa Product.
Thiết kế cơ sở dữ liệu
- Mỗi lớp thực thể đề xuất thành 1 bảng:
+ Lớp User -> tblUser: idUser, email,fullname, address, role, password
+ Lớp Admin -> tblAdmin + Lớp Customer -> tblCustomer + Lớp Category -> tblCategory: idCategory, name + Lớp Product-> tblProduct: idProduct, nameProduct, image, price, desc, inventory, sold, skinType
+ Lớp Cart -> tblCart: idCart, totalPrice, status + Lớp CartProduct -> tblCartProduct: price, quantity + Lớp Order -> tblOrder: idOrder, price, status, paymentType, date
- Khóa ngoại được thiết lập cho các bảng:
+ 1 tblAdmin - n tblProduct: bảng tblProduct có khóa ngoại tblAdminId
+ 1 tblAdmin - n tblCategory: bảng tblCategory có khóa ngoại tblAdminId
+ 1 tblAdmin - n tblOrder: bảng tblOrder có khóa ngoại tblAdminId
+ 1 tblProduct - n tblCartProduct: bảng tblCartProduct có khóa ngoại tblProductId
+ 1 tblCategory - n tblProduct: bảng tblProduct có khóa ngoại tbCategoryId
+ 1 tblCustomer - n tblProduct: bảng tblProduct có khóa ngoại tblCustomerId
+ 1 tblCustomer - n tblOrder: bảng tblOrder có khóa ngoại tblCustomerId
+ 1 tblCart - n tblCartProduct: bảng tblCartProduct có khóa ngoại tblCartId
Thiết kế chi tiết cho module
Thiết kế tĩnh
a Quản lý đơn hàng b Quản lý đơn hàng
26 c Thanh toán giỏ hàng d Thống kê doanh thu
Thiết kế động
a Quản lý đơn hàng admin b Quản lý đơn hàng customer
Thiết kế giao diện
a Quản lý đơn hàng admin
< b Quản lý đơn hàng customer
Các hoạt động rà soát
- Thực hiện thanh toán giỏ hàng là có thể thanh toán theo sản phẩm hay là thanh toán toàn sản phẩm trong giỏ
- Thực hiện huỷ đơn hàng, popup nhập lý do xác nhận huỷ có trường nhập lý do có là trường bắt buộc hay không?
- Trường nhập lý do không chấp nhận các ký tự nào không?
- Thống kê doanh thu theo ngày thì có thể thống kế trong khoảng thời gian được hay không?
- Thống kê doanh thu sản phẩm thì kết quả là tổng tiền của sản phẩm đã bán là trong khoảng thời gian bao lâu hay là từ khi bắt đầu bán
- Việc thống kê doanh thu theo sản phẩm và theo ngày liệu có thể phát triển kết hợp cùng nhau không?
- Việc theo dõi khi chuyển trạng thái đơn hàng thành chờ nhận hàng thì việc đối soát khách hàng đã nhận hàng được thực hiện như nào?
2 Rà soát phân tích a Module Quản lý đơn hàng của admin
- Sau khi hiển thị thông báo “Khách hàng đã huỷ”, hệ thống có thực hiện reload lại trang không hay người dùng tự reload lại
- Khi không nhập lý do huỷ sẽ hiển thị thông báo thất bại hay button xác nhận disable b Module Quản lý đơn hàng của customer
- Khi hiển thị thông báo “Quản lý đã hủy/xác nhận đơn”, hệ thống có thực hiện reload lại trang không hay người dùng tự reload lại
- Khi không nhập lý do huỷ sẽ hiển thị thông báo thất bại hay button xác nhận disable c Module Thanh toán giỏ hàng
- Tại màn hình xác nhận thanh toán, khi khách hàng không chọn phương thức thanh toán thì hệ thống tự động chọn phương thức cho hay là hiển thị thông báo
- Thanh toán không thành công, sau khi thông báo lỗi sẽ thực hiện chuyển sang màn hình nào
- Tại màn hình giỏ hàng, khi sản phẩm đã được bán hết và hệ thống chưa update lại thì khách hàng click Checkout sẽ hiển thị
34 thông báo gì? Có thực hiện reload lại trang không hay người dùng tự reload? d Module Thống kê doanh thu
- Với thống kê doanh thu theo ngày, format cho ngày thống kê là gì DD/MM/YYYY hay MM/DD/YYYY
- Với thống kê doanh thu theo ngày, giao diện có hiển thị datepicker không?
- Với thống kê doanh thu theo ngày, có thực hiện thông báo lỗi với những ngày không có trong năm vd ngày 29/02/2023
3 Rà soát thiết kế a Module quản lý đơn hàng của admin
- Thêm giao diện danh sách của các đơn chờ nhận hàng là lấy ra các đơn hàng có trạng thái chờ nhận hàng
- Button Xác nhận huỷ được disable khi chưa nhập lý do b Module quản lý đơn hàng của customer
- Khi admin xác nhận đơn hàng -> trạng thái từ Chờ xác nhận thành Chờ nhận hàng thì mới hiển thị nút xác nhận
- Button Xác nhận huỷ được disable khi chưa nhập lý do c Module thanh toán giỏ hàng
- Button “Checkout” tại màn giỏ hàng nên được disable khi chưa có sản phẩm nào trong giỏ hàng
- Hiển thị thông báo “Đã có sản phẩm đã hết hàng Bạn cần reload lại trang” khi sản phẩm đã hết nhưng hệ thống chưa update lại tại màn giỏ hàng
- Nên có button thay đổi thông tin nhận hàng tại màn xác nhận thanh toán d Module thống kê doanh thu
- Nên có datepicker để admin chọn ngày
Kiểm thử chức năng
1 Quản lý đơn hàng của admin
ID Item Sub Item Pre- condition Steps Expected result
4 Check font, size Đăng nhập với tài khoản admin
1 Truy cập trang quản lý đơn hàng
1 Truy cập trang quản lý đơn hàng
3 Giao diện không bị đè lên nhau
1 Truy cập trang quản lý đơn hàng
2 Reload lại màn hình và hiển thị như ban đầu
7 Check khi nhấn tab 1 Nhấn tab trên bàn phím 1 Di chuyển từ trái sang phải, từ trên xuống dưới
Check chức năng xử lý trạng thái
1 Truy cập trang quản lý đơn hàng
2 Click button Xử lý trạng thái
2 Hiển thị danh sách các đơn hàng chưa xử lý
Check khi click button Huỷ Đơn hàng chưa bị khách hàng huỷ
1 Truy cập chức năng xử lý trạng thái
2 Hiển thị popup xác nhận huỷ
Check click button Xác nhận khi không nhập lý do
1 Truy cập chức năng xử lý trạng thái
3 Bỏ qua trường nhập lý do và click button Xác nhận
3 Hiển thị thông báo đỏ tại dưới trường nhâp lý do:"Không được bỏ trống" và button Xác nhận disable
Check click button Xác nhận khi nhập lý do toàn khoảng trắng
1 Truy cập chức năng xử lý trạng thái
3 Hiển thị thông báo đỏ tại dưới trường nhâp lý do:"Không được bỏ trống"
Check click button Xác nhận khi nhập lý do
1 Truy cập chức năng xử lý trạng thái
3 Nhập lý do="không có nhu cầu"
4 Huỷ thành công và chuyển sang màn danh sách đơn hàng
Check click button Huỷ tại popup
1 Truy cập chức năng xử lý trạng thái
3 Tại popup click button Huỷ
3 Đóng popup trờ về màn
Check khi click button Xác nhận
1 Truy cập chức năng xử lý trạng thái
2 Hiển thị thông báo thành công và chuyển sang màn Danh sách đơn hàng
Check khi click button Quay lại
1 Truy cập chức năng xử lý trạng thái
2 Thực hiện Quay lại màn quản lý đơn hàng bao gồm các chức năng
Check chức năng Danh sách đơn hàng
1 Truy cập trang quản lý đơn hàng
2 Click button Xử lý trạng thái
2 Hiển thị danh sách các đơn hàng đã xử lý
Check hiển thị chi tiết đơn hàng đã huỷ
1 Truy cập chức năng danh sách đơn hàng
2 Hiển thị thông tin chi tiết đơn hàng: người nhận, địa chỉ, lý do huỷ, các sản phẩm và tổng tiền
Check khi click button Quay lại tại màn chi tiết
1 Truy cập chức năng danh sách đơn hàng
3 Thực hiện quay lại màn Danh sách đơn hàng
Check khi click button Quay lại
1 Truy cập chức năng danh sách đơn hàng
2 Thực hiện Quay lại màn quản lý đơn hàng bao gồm các chức năng
Check DB khi update trạng thái đơn
1 Thực hiện update trạng thái đơn hàng thành công
2 Thực hiện truy vấn DB check giá trị
2 Dữ liệu trong DB được update thành công
2 Quản lý đơn hàng của customer
ID Item Sub Item Pre- condition Steps Expected result
4 Check font, size Đã thực hiện đăng nhập
1 Truy cập trang lịch sử đơn hàng
1 Truy cập trang lịch sử đơn hàng
3 Giao diện không bị đè lên nhau
6 Check khi nhấn tab 1 Nhấn tab trên bàn phím 1 Di chuyển từ trái sang phải, từ trên xuống dưới
1 Truy cập trang lịch sử đơn hàng
2 Reload lại màn hình và hiển thị như ban đầu
Huỷ Đơn hàng chưa bị admin xác nhận/huỷ
1 Truy cập chức năng lịch sử đơn hàng
2 Hiển thị popup xác nhận huỷ
Check click button Xác nhận khi không nhập lý do
1 Truy cập chức năng lịch sử đơn hàng
3 Bỏ qua trường nhập lý do và click button Xác nhận
3 Hiển thị thông báo đỏ tại dưới trường nhâp lý do:"Không được bỏ trống" và button Xác nhận disable
Check click button Xác nhận khi nhập lý do toàn khoảng trắng
1 Truy cập chức năng lịch sử đơn hàng
3 Hiển thị thông báo đỏ tại dưới trường nhâp lý do:"Không được bỏ trống"
Check click button Xác nhận khi nhập lý do
1 Truy cập chức năng lịch sử đơn hàng
3 Nhập lý do="không có nhu cầu"
4 Huỷ thành công, đóng popup và chuyển trạng thái thành đã huỷ
Check click button Huỷ tại popup
1 Truy cập chức năng lịch sử đơn hàng
3 Tại popup click button Huỷ
3 Đóng popup trờ về màn lịch sử đơn hàng
1 Truy cập chức năng lịch sử đơn hàng
2 Chuyển trạng thái thành giao hàng thành công và đóng popup trờ về màn lịch sử đơn hàng
Check hiển thị chi tiết đơn hàng đã huỷ
1 Truy cập chức năng lịch sử đơn hàng
2 Hiển thị thông tin chi tiết đơn hàng: người nhận, địa chỉ, lý do huỷ, các sản phẩm và tổng tiền
1 Truy cập chức năng lịch sử đơn hàng
3 Thực hiện quay lại màn Lịch sử đơn hàng
Check DB khi update trạng thái đơn
1 Thực hiện update trạng thái đơn hàng thành công
2 Thực hiện truy vấn DB check giá trị
2 Dữ liệu trong DB được update thành công
ID Item Sub Item Pre- condition Steps Expected result
4 Check font, size Đã thực hiện đăng nhập
1 Truy cập trang giỏ hàng
2 Check font, size 2 Hiển thị như design
1 Truy cập trang giỏ hàng
3 Giao diện không bị đè lên nhau
1 Truy cập trang giỏ hàng
2 Reload lại màn hình và hiển thị như ban đầu
7 Check khi nhấn tab 1 Nhấn tab trên bàn phím
1 Di chuyển từ trái sang phải, từ trên xuống dưới
Giỏ hàng đã có sản phẩm
1 Truy cập vào giỏ hàng
2 Chuyển sang màn hình xác nhận thanh toán
1 sản phẩm trong giỏ đã sold out khi chưa update
1 Truy cập vào giỏ hàng
2 Hiển thị thông báo: Đã có sản phẩm sold out và reload lại màn
Check khi không chọn phương thức thanh toán
1 Truy cập vào giỏ hàng
3 Click button Confirm thanh toán
3 Hiển thị thông báo: Bạn cần chọn phương thức thanh toán
Check khi chọn phương thức thanh toán là Tiền mặt
1 Truy cập màn hình Xác nhận thanh toán
2 Chọn phương thức là Tiền mặt
3 Click button Confirm thanh toán
3 Hiển thị thông báo thành công và chuyển sang màn Lịch sử đơn hàng
Check khi chọn phương thức thanh toán là thanh toán thẻ ngân hàng
1 Truy cập màn hình Xác nhận thanh toán
2 Chọn phương thức là thanh toán thẻ ngân hàng
3 Click button Confirm thanh toán
3 Chuyển sang màn hình nhập thông tin thẻ của vnpay
Check khi thanh toán thẻ không thành công
1 Truy cập màn hinh thanh toán vnpay
2 Thực hiện thanh toán không thành công do số dư không đủ
2 Chuyển về màn hình xác nhận thanh toán và hiển thị thông báo thanh toán không thành công
Check khi thanh toán thẻ thành công
1 Truy cập màn hinh thanh toán vnpay
2 Thực hiện thanh toán thành công
2 Chuyển về màn hình xác nhận thanh toán và thông báo thanh toán thành công
1 Truy cập màn hình Xác nhận thanh toán
2 Click button Thay đổi địa điểm
2 Chuyển sang màn thay đổi địa điểm
Check DB khi thực hiện thanh toán thành công
1 Thực hiện thanh toán thành công đơn hàng
2 Thực hiện truy vấn đơn hàng trong DB
2 Kết quả bản ghi trong DB trùng dữ liệu với lúc tạo đơn
Check DB khi thực hiện thanh toán thất bại
1 Thực hiện thanh toán thành công đơn hàng
2 Thực hiện truy vấn đơn hàng trong DB
2 Không hiển thị bản ghi nào trong DB bảng order
ID Item Sub Item Pre- condition Steps Expected result
4 Check font, size Đã thực hiện đăng nhập
1 Truy cập trang thống kê doanh thu
1 Truy cập trang thống kê doanh thu
3 Giao diện không bị đè lên nhau
1 Truy cập trang thống kê doanh thu
2 Reload lại màn hình và hiển thị như ban đầu
7 Check khi nhấn tab 1 Nhấn tab trên bàn phím 1 Di chuyển từ trái sang phải, từ trên xuống dưới
Check khi truy cập vào màn hình
1 Truy cập trang Thống kê doanh thu
2 Click button Thống kê doanh thu theo sản phẩm
2 Chuyển sang màn hình Thống kê doanh thu theo sản phẩm
Check khi không nhập giá trị cho trường tên sản phẩm
1 Truy cập trang thống kê doanh thu
2 Click vào trường tên sản phẩm
3 Hiển thị thông báo đỏ: Trường bắt buộc để thống kê
Check khi nhập giá trị cho trường tên sản phẩm toàn là khoảng trắng
1 Truy cập trang thống kê doanh thu
2 Nhập trường tên sản phẩm: " "
3 Hiển thị thông báo đỏ: Trường bắt buộc để thống kê
Check khi nhập giá trị cho trường tên sản phẩm toàn là ký tự thường
1 Truy cập trang thống kê doanh thu
2 Nhập trường tên sản phẩm: "Sữa rửa mặt"
3 Không hiển thị thông báo
Check khi nhập giá trị cho trường tên sản phẩm toàn là ký tự đặc biệt
1 Truy cập trang thống kê doanh thu
2 Nhập trường tên sản phẩm: "$"
3 Không hiển thị thông báo
Check khi nhập giá trị cho trường tên sản phẩm toàn là ký tự đặc biệt
1 Truy cập trang thống kê doanh thu
2 Nhập trường tên sản phẩm: "1"
3 Không hiển thị thông báo
Check khi nhập giá trị cho trường tên sản phẩm có khoảng trắng đầu cuối
1 Truy cập trang thống kê doanh thu
2 Nhập trường tên sản phẩm: " Sữa rửa mặt "
2 Tự động xoá khoảng trắng đầu cuối
3 Không hiển thị thông báo
Check khi click button Thống kê khi nhập sản phẩm có trong DB
1 Truy cập trang thống kê doanh thu
2 Nhập trường tên sản phẩm: "Sữa rửa mặt"
3 Hiển thị doanh thu sản phẩm
Check khi click button Thống kê khi nhập sản phẩm không có trong
1 Truy cập trang thống kê doanh thu
2 Nhập trường tên sản phẩm: "Sữa rửa mặt"
3 Hiển thị không có doanh thu sản phẩm này
1 Truy cập trang thống kê doanh thu theo sản phẩm
2 Hiển thị lại màn Thống kê doanh thu
Check khi truy cập vào màn hình
1 Truy cập trang Thống kê doanh thu
2 Click button Thống kê doanh thu theo ngày
2 Chuyển sang màn hình Thống kê doanh thu theo ngày
Check khi không nhập giá trị cho trường ngày
1 Truy cập trang thống kê doanh thu
3 Hiển thị thông báo đỏ: Trường bắt buộc để thống kê
Check khi nhập giá trị cho trường ngày toàn là khoảng trắng
1 Truy cập trang thống kê doanh thu
3 Hiển thị thông báo đỏ: Nhập sai format
Check khi nhập giá trị cho trường ngày sai định dạng
1 Truy cập trang thống kê doanh thu
3 Hiển thị thông báo đỏ: Nhập ngày đúng trong năm
Check khi nhập giá trị cho trường ngày không có trong năm
1 Truy cập trang thống kê doanh thu
3 Hiển thị thông báo đỏ: Nhập ngày đúng trong năm
Check khi nhập giá trị cho trường ngày lớn hơn ngày hiện tại
1 Truy cập trang thống kê doanh thu
3 Hiển thị thông báo đỏ: Ngày phải nhỏ hơn hoặc bằng ngày hiện tại