Trang Home đã được cập nhật với cấu trúc mới bao gồm 3 phần sản phẩm chính:
- 🔥 HOT PICKS - Sản phẩm bán chạy nhất
- 🆕 SẢN PHẨM MỚI - Sản phẩm mới nhất
- TẤT CẢ SẢN PHẨM - Danh sách đầy đủ với phân trang
- Banner chính của trang web
- Giới thiệu thương hiệu UTH Shoes
- Lưới danh mục sản phẩm
- Giúp người dùng dễ dàng tìm kiếm theo danh mục
- Vị trí: Sau CategoriesGrid
- Số lượng: 3 sản phẩm
- Tiêu chí: Sản phẩm có lượt bán cao nhất (tạm thời chọn 3 sản phẩm đầu)
- Thiết kế:
- Background gradient xanh-tím
- Badge "HOT" với animation pulse
- Card trong suốt với backdrop blur
- Hover effect nâng cao và scale
- Vị trí: Sau HotPicks
- Số lượng: 3 sản phẩm
- Tiêu chí: Sản phẩm mới nhất (tạm thời chọn 3 sản phẩm cuối)
- Thiết kế:
- Background gradient hồng-đỏ
- Badge "NEW" với animation bounce
- Card trong suốt với backdrop blur
- Hover effect nâng cao và scale
- Vị trí: Sau NewProducts
- Số lượng: 100 sản phẩm với phân trang 4×3
- Thiết kế:
- Background trắng
- Grid layout 3 cột × 4 hàng
- Phân trang hoàn chỉnh
- Responsive design
- Banner cộng tác/cuối trang
- Thông tin liên hệ và social media
- Component hiển thị sản phẩm bán chạy
- Sử dụng 3 sản phẩm đầu tiên từ
allProducts - Badge "HOT" với icon lửa
- Thống kê "Bán chạy"
- CSS cho component HotPicks
- Background gradient xanh-tím
- Animation pulse cho badge
- Responsive design hoàn chỉnh
- Component hiển thị sản phẩm mới
- Sử dụng 3 sản phẩm cuối cùng từ
allProducts - Badge "NEW" với icon sao
- Thống kê "Mới về"
- CSS cho component NewProducts
- Background gradient hồng-đỏ
- Animation bounce cho badge
- Responsive design hoàn chỉnh
// Tạm thời chọn 3 sản phẩm đầu tiên
const hotPicksProducts = allProducts.slice(0, 3);
// Khi có dữ liệu thực tế, sẽ thay bằng:
// const hotPicksProducts = allProducts
// .sort((a, b) => b.salesCount - a.salesCount)
// .slice(0, 3);// Tạm thời chọn 3 sản phẩm cuối cùng
const newProducts = allProducts.slice(-3).reverse();
// Khi có dữ liệu thực tế, sẽ thay bằng:
// const newProducts = allProducts
// .sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt))
// .slice(0, 3);- HotPicks: 3 cột
- NewProducts: 3 cột
- ProductList: 3 cột × 4 hàng
- HotPicks: 2 cột
- NewProducts: 2 cột
- ProductList: 2 cột × 6 hàng
- HotPicks: 1 cột
- NewProducts: 1 cột
- ProductList: 1 cột × 12 hàng
- Badge "HOT" với animation pulse
- Background gradient xanh-tím nổi bật
- Thống kê "Bán chạy" với icon chart
- Badge "NEW" với animation bounce
- Background gradient hồng-đỏ thu hút
- Thống kê "Mới về" với icon clock
- Hover effect nâng cao và scale
- Backdrop blur cho card trong suốt
- Nút "Xem tất cả sản phẩm" với animation
- Responsive design hoàn chỉnh
Khi có API thực tế, có thể cập nhật logic:
// HotPicks - Sản phẩm bán chạy
const fetchHotPicks = async () => {
const response = await fetch('/api/products/hot-picks?limit=3');
return response.json();
};
// NewProducts - Sản phẩm mới
const fetchNewProducts = async () => {
const response = await fetch('/api/products/new?limit=3');
return response.json();
};Trang Home mới đã được thiết kế với:
- ✅ 3 phần sản phẩm rõ ràng: HotPicks, NewProducts, AllProducts
- ✅ Thiết kế nổi bật: Gradient backgrounds, animations, hover effects
- ✅ Responsive hoàn chỉnh: Tối ưu cho mọi thiết bị
- ✅ UX tốt: Dễ dàng tìm kiếm và duyệt sản phẩm
- ✅ Code sạch: Component tách biệt, dễ maintain
- ✅ Tương thích: Sử dụng dữ liệu từ
allProducts.js
Cấu trúc này giúp người dùng dễ dàng khám phá sản phẩm theo từng nhóm và tăng khả năng mua hàng!