TMS-1306: wishlist - yêu thích
Tài liệu mô tả trang "Wishlist-Yêu thích" trên trang web
1. Mô tả tổng quan
Trang Yêu thích là nơi hiển thị danh sách các sản phẩm mà người dùng đã đánh dấu yêu thích với sản phẩm bất kì. Tại đây, người dùng có thể:
- Xem danh sách sản phẩm đã đánh dấu yêu thích.
- Xóa sản phẩm khỏi danh sách yêu thích.
- Tiến hành thêm vào giỏ hàng
2. Các chức năng và luồng hoạt động
2.1 Thêm sản phẩm vào danh sách yêu thích (Add to Wishlist)
- Khi người dùng nhấn nút
Add To Wishlist
tại bất kỳ trang danh sách sản phẩm hoặc chi tiết sản phẩm nào, sản phẩm đó sẽ được thêm vào danh sách yêu thích.
- Hệ thống sẽ hiển thị sản phẩm ngay trên yêu thích (wishlist) với thông tin chi tiết.
2.2 Thêm sản phẩm vào giỏ hàng (Add to Cart)
- Khi người dùng nhấn nút
Add To Cart
tại trang yêu thích, sản phẩm đó sẽ được thêm vào giỏ hàng.
- Hệ thống sẽ hiển thị sản phẩm ngay trên trang giỏ hàng với thông tin chi tiết.
2.3 Chọn sản phẩm để xóa khỏi Danh sách yêu thích
- Người dùng có thể chọn từng sản phẩm bằng cách tick vào ô checkbox hoặc chọn tất cả sản phẩm cùng lúc.
- Chỉ các sản phẩm được chọn mới đực xóa khi nhấn xóa.
2.4 Xóa sản phẩm khỏi Danh sách yêu thích
Khi nhấn nút icon thùng rác ở mỗi dòng
, hệ thống sẽ tiến hành xóa sản phẩm đó ở trang.
3. API Endpoint liên quan
Phương thức |
Route |
Mô tả |
GET |
/api/v1/auth/get/shop-order |
Lấy dữ liệu giỏ hàng từ database |
POST |
/api/v1/auth/post/shop-order |
Lưu dữ liệu giỏ hàng vào database |
POST |
/api/v1/auth/post/shop-order/update |
Cập nhật giỏ hàng (thay đổi số lượng, xóa) |
POST |
/api/v1/auth/post/shop-order/checkout |
Xử lý thanh toán giỏ hàng |
4. Cấu trúc dữ liệu giỏ hàng
4.1 Bảng ecom.shop-order
- Chứa thông tin đơn hàng của người dùng.
Trường (EN) |
Trường (VI) |
Mô tả |
user_id |
ID người dùng |
ID của người đặt hàng |
order_status |
Trạng thái đơn |
Trạng thái đơn hàng (chờ, đã thanh toán, huỷ) |
total_price |
Tổng giá trị |
Tổng số tiền của đơn hàng |
created_at |
Ngày tạo |
Ngày đơn hàng được tạo |
4.2 Bảng ecom.shop-order-details
- Chứa chi tiết các sản phẩm trong đơn hàng.
Trường (EN) |
Trường (VI) |
Mô tả |
order_id |
ID đơn hàng |
ID của đơn hàng |
product_id |
ID sản phẩm |
ID của sản phẩm |
price |
Giá gốc |
Giá sản phẩm |
quantity |
Số lượng |
Số lượng sản phẩm |
total_price |
Tạm tính |
Tổng giá của sản phẩm đó (price * quantity ) |
5. Giao diện giỏ hàng
5.1 Danh sách sản phẩm trong giỏ hàng
Trường (EN) |
Trường (VI) |
Cột DB |
Mô tả |
Product |
Sản phẩm |
product_id |
Hiển thị sản phẩm trong giỏ hàng |
Unit Price |
Đơn giá |
price |
Giá sản phẩm đơn lẻ |
Quantity |
Số lượng |
quantity |
Số lượng sản phẩm trong giỏ |
Subtotal |
Tạm tính |
total_price |
Tổng tiền của sản phẩm trong giỏ |
Remove |
Xóa |
Không |
Xóa sản phẩm khỏi giỏ hàng |
5.2 Tổng giá trị giỏ hàng (Checkout Summary)
Trường (EN) |
Trường (VI) |
Cột DB |
Mô tả |
Subtotal |
Tạm tính |
Không |
Tổng tiền của tất cả sản phẩm đã chọn |
Shipping |
Phí vận chuyển |
Không |
Phí vận chuyển (nếu có) |
Total |
Tổng cộng |
Không |
Tổng giá trị đơn hàng sau phí vận chuyển |
6. Tóm tắt
- Người dùng có thể thêm sản phẩm vào giỏ hàng từ danh sách sản phẩm hoặc trang chi tiết sản phẩm.
- Giỏ hàng có thể cập nhật số lượng sản phẩm, xóa sản phẩm, và chọn sản phẩm để thanh toán.
- Sau khi chọn sản phẩm, người dùng có thể tiến hành thanh toán và lưu đơn hàng.
- Dữ liệu giỏ hàng được lưu vào cơ sở dữ liệu thông qua các API đã định nghĩa.
Ref task: #1306 - QA