Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

👔 MenWear - Hệ Thống Thương Mại Điện Tử Thời Trang Nam

PHP MySQL JavaScript CSS3 HTML5

Website Thương Mại Điện Tử Chuyên Nghiệp Dành Cho Thời Trang Nam

Tính NăngCài ĐặtSử DụngAPIDemo


📋 Mục Lục


🎯 Giới Thiệu

MenWear là một hệ thống thương mại điện tử hoàn chỉnh được xây dựng bằng PHP thuần (Vanilla PHP), chuyên về lĩnh vực thời trang nam. Dự án được phát triển với mục tiêu tạo ra một nền tảng mua sắm trực tuyến hiện đại, dễ sử dụng và có khả năng mở rộng cao.

🌟 Điểm Nổi Bật

  • 100% PHP Thuần - Không sử dụng framework, dễ hiểu và tùy biến
  • Responsive Design - Giao diện thân thiện trên mọi thiết bị
  • Quản Lý Biến Thể - Hệ thống màu sắc & size phức tạp
  • Quản Lý Kho Thông Minh - Tự động cập nhật tồn kho theo biến thể
  • Admin Panel Đầy Đủ - Dashboard và công cụ quản trị mạnh mẽ
  • SEO Friendly - URL thân thiện, meta tags tối ưu
  • Bảo Mật Cao - Password hashing, prepared statements, XSS protection

🚀 Tính Năng Chính

👥 Dành Cho Người Dùng

🛍️ Mua Sắm & Duyệt Sản Phẩm

  • Catalog Sản Phẩm Đa Dạng

    • Xem danh sách sản phẩm với phân trang
    • Bộ lọc theo danh mục, giá, màu sắc, kích thước
    • Sắp xếp theo: Mới nhất, Giá, Tên, Bán chạy
    • Tìm kiếm sản phẩm thông minh
  • Chi Tiết Sản Phẩm

    • Gallery ảnh với nhiều góc chụp
    • Ảnh thay đổi theo màu sắc được chọn
    • Mô tả chi tiết với ảnh minh họa
    • Bảng size chart (hướng dẫn chọn size)
    • Thông tin xuất xứ và chất liệu
    • Hiển thị tồn kho realtime
  • Hệ Thống Biến Thể Thông Minh

    • Chọn màu sắc và size
    • Tự động disable options hết hàng
    • Hiển thị giá theo biến thể
    • Thông báo tình trạng kho ngay lập tức

🛒 Giỏ Hàng & Thanh Toán

  • Giỏ Hàng Linh Hoạt

    • Lưu session cho khách vãng lai
    • Lưu database cho người dùng đã đăng nhập
    • Cập nhật số lượng realtime
    • Hiển thị tổng tiền tự động
  • Quy Trình Thanh Toán Đơn Giản

    • Form thông tin giao hàng
    • Nhiều phương thức thanh toán:
      • 💵 COD (Thanh toán khi nhận hàng)
      • 🏦 Chuyển khoản ngân hàng
      • 💳 Thẻ tín dụng
      • 💳 Thẻ ghi nợ
    • Áp dụng mã giảm giá (coupon)
    • Tính phí ship tự động
    • Email xác nhận đơn hàng

👤 Quản Lý Tài Khoản

  • Hệ Thống Xác Thực

    • Đăng ký tài khoản
    • Đăng nhập / Đăng xuất
    • Quản lý thông tin cá nhân
  • Quản Lý Đơn Hàng

    • Xem lịch sử đơn hàng
    • Chi tiết từng đơn hàng
    • Theo dõi trạng thái giao hàng
    • Hủy đơn hàng (nếu chưa xử lý)
  • Wishlist (Danh Sách Yêu Thích)

    • Thêm/xóa sản phẩm yêu thích
    • Xem danh sách wishlist
    • Quick add to cart từ wishlist

⭐ Đánh Giá & Nhận Xét

  • Đánh giá sao (1-5 sao)
  • Viết nhận xét sản phẩm
  • Xem reviews của người dùng khác
  • Tính trung bình rating

🔧 Dành Cho Quản Trị Viên

📊 Dashboard & Thống Kê

  • Tổng Quan Hệ Thống
    • Tổng sản phẩm, đơn hàng, doanh thu
    • Đơn hàng chờ xử lý
    • Biểu đồ doanh thu theo thời gian
    • Top sản phẩm bán chạy

📦 Quản Lý Sản Phẩm

  • CRUD Sản Phẩm Đầy Đủ

    • Thêm/Sửa/Xóa sản phẩm
    • Upload nhiều ảnh cho mỗi sản phẩm
    • Gán ảnh theo màu sắc cụ thể
    • Set ảnh primary (ảnh đại diện)
    • Upload ảnh mô tả chi tiết
    • Upload size chart
  • Quản Lý Biến Thể (Variants)

    • Tạo ma trận màu × size
    • Quản lý tồn kho cho từng biến thể
    • Giá bổ sung theo biến thể
    • Tự động tính tổng tồn kho
  • Thuộc Tính Sản Phẩm

    • Đặt sản phẩm nổi bật (Featured)
    • Đặt sản phẩm mới (New)
    • Đặt sản phẩm bán chạy (Bestseller)
    • Giá sale và thời gian khuyến mãi

📂 Quản Lý Danh Mục

  • Thêm/Sửa/Xóa danh mục
  • Danh mục phân cấp (Parent/Child)
  • Sắp xếp thứ tự hiển thị
  • Bật/Tắt danh mục

🎨 Quản Lý Thuộc Tính

  • Màu Sắc (Colors)

    • Tên màu và mã màu (hex code)
    • Bật/Tắt màu
  • Kích Thước (Sizes)

    • Tên size (S, M, L, XL, XXL...)
    • Thứ tự hiển thị

📋 Quản Lý Đơn Hàng

  • Xem & Xử Lý Đơn Hàng

    • Danh sách tất cả đơn hàng
    • Bộ lọc theo trạng thái, thanh toán
    • Xem chi tiết đơn hàng
    • In hóa đơn
  • Cập Nhật Trạng Thái

    • Trạng thái đơn hàng:
      • 🔵 Chờ xác nhận (Pending)
      • ✅ Đã xác nhận (Confirmed)
      • 📦 Đang xử lý (Processing)
      • 🚚 Đang giao hàng (Shipping)
      • ✔️ Đã giao hàng (Delivered)
      • ❌ Đã hủy (Cancelled)
    • Trạng thái thanh toán:
      • ⏳ Chờ thanh toán (Pending)
      • ✅ Đã thanh toán (Paid)
      • ❌ Thất bại (Failed)
      • 💰 Đã hoàn tiền (Refunded)

🎟️ Quản Lý Mã Giảm Giá (Coupons)

  • Tạo mã giảm giá
  • Loại giảm giá:
    • Giảm theo phần trăm (%)
    • Giảm số tiền cố định (VNĐ)
  • Thiết lập:
    • Giá trị đơn hàng tối thiểu
    • Giảm giá tối đa
    • Thời gian hiệu lực
    • Số lượt sử dụng

👥 Quản Lý Người Dùng

  • Xem danh sách users
  • Thông tin chi tiết user
  • Lịch sử đơn hàng của user
  • Bật/Tắt tài khoản

⚙️ Cài Đặt Hệ Thống

  • Tên website
  • Logo & Favicon
  • Thông tin liên hệ
  • Cấu hình email
  • Phí ship mặc định
  • Đơn vị tiền tệ

💻 Công Nghệ Sử Dụng

Backend

  • PHP 7.4+ - Ngôn ngữ lập trình chính
  • MySQL 5.7+ / MariaDB 10.3+ - Hệ quản trị cơ sở dữ liệu
  • PDO - PHP Data Objects cho database access
  • Session Management - Quản lý phiên người dùng

Frontend

  • HTML5 - Cấu trúc trang web
  • CSS3 - Styling với CSS Variables
  • JavaScript (Vanilla) - Tương tác không cần framework
  • Font Awesome 6 - Icon library
  • Google Fonts (Inter) - Typography

Server

  • Apache 2.4+ - Web server
  • XAMPP - Development environment
  • mod_rewrite - URL rewriting (optional)

Libraries & Tools

  • bcrypt - Password hashing
  • PDO Prepared Statements - SQL Injection prevention
  • htmlspecialchars - XSS protection

📋 Yêu Cầu Hệ Thống

Phần Mềm Cần Thiết

  • PHP >= 7.4
  • MySQL >= 5.7 hoặc MariaDB >= 10.3
  • Apache Web Server >= 2.4
  • XAMPP (khuyến nghị cho Windows)

PHP Extensions

  • PDO - Database connectivity
  • PDO_MySQL - MySQL driver
  • GD Library - Image processing
  • mbstring - Multi-byte string handling
  • session - Session management
  • json - JSON encoding/decoding

Cấu Hình Khuyến Nghị

  • Memory Limit: >= 128M
  • Upload Max Filesize: >= 10M
  • Post Max Size: >= 20M
  • Max Execution Time: >= 60s

🔧 Hướng Dẫn Cài Đặt

Bước 1: Cài Đặt XAMPP

  1. Download XAMPP từ https://www.apachefriends.org/
  2. Cài đặt XAMPP vào C:\xampp\
  3. Khởi động ApacheMySQL từ XAMPP Control Panel

Bước 2: Clone/Copy Source Code

Copy toàn bộ project vào thư mục htdocs:

# Đường dẫn cài đặt
C:\xampp\htdocs\men\

Bước 3: Tạo Database

Cách 1: Qua phpMyAdmin

  1. Mở trình duyệt và truy cập: http://localhost/phpmyadmin
  2. Click "New" để tạo database mới
  3. Đặt tên: menwear
  4. Chọn Collation: utf8mb4_unicode_ci
  5. Click "Create"
  6. Chọn database menwear vừa tạo
  7. Click tab "Import"
  8. Chọn file database/menwear.sql
  9. Click "Go" để import

Cách 2: Qua Command Line

# Mở Command Prompt
cd C:\xampp\mysql\bin

# Đăng nhập MySQL
mysql -u root -p

# Tạo database
CREATE DATABASE menwear CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

# Sử dụng database
USE menwear;

# Import file SQL
SOURCE C:\xampp\htdocs\men\database\menwear.sql;

# Kiểm tra
SHOW TABLES;

Bước 4: Cấu Hình Database

Mở file config/database.php và chỉnh sửa (nếu cần):

define('DB_HOST', 'localhost:3307'); // Port của MySQL (mặc định 3306)
define('DB_USER', 'root');            // Username MySQL
define('DB_PASS', '');                // Password MySQL (mặc định trống)
define('DB_NAME', 'menwear');         // Tên database
define('DB_CHARSET', 'utf8mb4');      // Charset

Lưu ý: Nếu MySQL của bạn chạy trên port 3306, hãy đổi thành localhost hoặc localhost:3306

Bước 5: Cấu Hình Base URL

File config/config.php tự động phát hiện base URL. Nếu cần thiết, bạn có thể cấu hình thủ công:

// Auto-detect (khuyến nghị)
// Code hiện tại đã tự động detect

// Hoặc cấu hình thủ công
define('BASE_URL', 'http://localhost/men');
define('ADMIN_URL', 'http://localhost/men/admin');

Bước 6: Tạo Thư Mục Uploads

Đảm bảo các thư mục sau tồn tại và có quyền ghi:

C:\xampp\htdocs\men\uploads\
├── products\           # Ảnh sản phẩm
├── descriptions\       # Ảnh mô tả
└── categories\         # Ảnh danh mục

Trên Windows:

  • Click phải vào thư mục uploads
  • Properties → Security → Edit
  • Chọn user của bạn
  • Tick "Full control"
  • Apply → OK

Bước 7: Truy Cập Website

Mở trình duyệt và truy cập:

🌐 Trang Chủ

http://localhost/men/

🔐 Trang Admin

http://localhost/men/admin/

Bước 8: Đăng Nhập Admin

Thông tin đăng nhập mặc định:

🔐 Tài Khoản Admin

Trường Giá trị
Username admin
Password 123123

👤 Tài Khoản User Test

Trường Giá trị
Username codyne
Password 12312

Bước 9: Test & Verify

  1. ✅ Truy cập trang chủ xem có load được không
  2. ✅ Vào trang sản phẩm, kiểm tra hiển thị
  3. ✅ Đăng nhập admin, kiểm tra dashboard
  4. ✅ Thử thêm 1 sản phẩm mới
  5. ✅ Test giỏ hàng và checkout

📁 Cấu Trúc Dự Án

C:\xampp\htdocs\men\
│
├── 📁 admin/                      # Trang quản trị
│   ├── 📁 attributes/            # Quản lý màu sắc, size
│   ├── 📁 categories/            # Quản lý danh mục
│   ├── 📁 coupons/               # Quản lý mã giảm giá
│   ├── 📁 orders/                # Quản lý đơn hàng
│   ├── 📁 products/              # Quản lý sản phẩm
│   │   ├── add.php              # Thêm sản phẩm
│   │   ├── edit.php             # Sửa sản phẩm
│   │   ├── delete.php           # Xóa sản phẩm
│   │   └── index.php            # Danh sách sản phẩm
│   ├── 📁 settings/              # Cài đặt hệ thống
│   ├── 📁 users/                 # Quản lý người dùng
│   ├── 📁 includes/              # Header, sidebar admin
│   ├── 📁 assets/                # CSS, JS admin
│   ├── index.php                # Dashboard
│   ├── login.php                # Đăng nhập admin
│   └── logout.php               # Đăng xuất admin
│
├── 📁 account/                    # Tài khoản người dùng
│   ├── profile.php              # Thông tin cá nhân
│   ├── orders.php               # Lịch sử đơn hàng
│   ├── order-detail.php         # Chi tiết đơn hàng
│   ├── cancel-order.php         # Hủy đơn hàng
│   ├── wishlist.php             # Danh sách yêu thích
│   └── wishlist-action.php      # Thêm/xóa wishlist
│
├── 📁 auth/                       # Xác thực người dùng
│   ├── login.php                # Đăng nhập
│   ├── register.php             # Đăng ký
│   └── logout.php               # Đăng xuất
│
├── 📁 cart/                       # Giỏ hàng
│   ├── index.php                # Xem giỏ hàng
│   ├── add.php                  # Thêm vào giỏ
│   ├── update.php               # Cập nhật số lượng
│   ├── update-variant.php       # Đổi biến thể
│   ├── remove.php               # Xóa khỏi giỏ
│   └── get-count.php            # Lấy số lượng (AJAX)
│
├── 📁 checkout/                   # Thanh toán
│   ├── index.php                # Form thanh toán
│   ├── process.php              # Xử lý đơn hàng
│   └── success.php              # Thành công
│
├── 📁 products/                   # Sản phẩm
│   ├── index.php                # Danh sách sản phẩm
│   ├── detail.php               # Chi tiết sản phẩm
│   └── search.php               # Tìm kiếm
│
├── 📁 config/                     # Cấu hình
│   ├── config.php               # Cấu hình chung
│   └── database.php             # Kết nối database
│
├── 📁 includes/                   # Components chung
│   ├── header.php               # Header website
│   ├── footer.php               # Footer website
│   ├── functions.php            # Helper functions
│   └── product-card.php         # Component hiển thị sản phẩm
│
├── 📁 database/                   # Database files
│   └── menwear.sql              # Full database dump
│
├── 📁 assets/                     # Tài nguyên tĩnh
│   ├── 📁 css/
│   │   ├── style.css            # CSS chính
│   │   └── admin.css            # CSS admin
│   ├── 📁 js/
│   │   ├── main.js              # JS chính
│   │   └── admin.js             # JS admin
│   └── 📁 images/                # Ảnh trang trí
│
├── 📁 uploads/                    # Thư mục upload
│   ├── 📁 products/              # Ảnh sản phẩm
│   │   ├── 📁 1/                # Product ID 1
│   │   ├── 📁 2/                # Product ID 2
│   │   └── ...
│   ├── 📁 descriptions/          # Ảnh mô tả
│   └── 📁 categories/            # Ảnh danh mục
│
├── index.php                     # Trang chủ
└── about.php                     # Giới thiệu

🗄️ Database Schema

📊 Các Bảng Chính

1. users - Người Dùng

- user_id (PK)
- username, email, password
- full_name, phone, address
- role (user/admin)
- is_active
- created_at

2. products - Sản Phẩm

- product_id (PK)
- product_name, product_slug
- category_id (FK)
- base_price, sale_price
- description, short_description
- stock_quantity (tự động từ variants)
- material, origin
- is_featured, is_new, is_bestseller
- is_on_sale, sale_start_date, sale_end_date
- views_count, sold_count
- size_chart_image
- created_at, updated_at

3. product_images - Ảnh Sản Phẩm

- image_id (PK)
- product_id (FK)
- color_id (FK) -- Ảnh thuộc màu nào
- image_path
- is_primary -- Ảnh đại diện
- display_order

4. product_variants - Biến Thể Sản Phẩm

- variant_id (PK)
- product_id (FK)
- color_id (FK)
- size_id (FK)
- stock_quantity
- additional_price
- is_active

5. product_descriptions - Mô Tả Chi Tiết

- description_id (PK)
- product_id (FK)
- image_path
- description_text
- display_order

6. categories - Danh Mục

- category_id (PK)
- category_name, category_slug
- description
- parent_id (FK) -- Danh mục cha
- display_order
- is_active

7. colors - Màu Sắc

- color_id (PK)
- color_name (Đen, Trắng, Xanh...)
- color_code (HEX: #000000)
- is_active

8. sizes - Kích Thước

- size_id (PK)
- size_name (S, M, L, XL, XXL)
- size_order (thứ tự hiển thị)
- is_active

9. carts - Giỏ Hàng

- cart_id (PK)
- user_id (FK)
- product_id (FK)
- variant_id (FK)
- quantity
- added_at, updated_at

10. orders - Đơn Hàng

- order_id (PK)
- user_id (FK)
- order_code (ORD202512101234)
- customer_name, customer_email, customer_phone
- shipping_address, order_notes
- payment_method (cod/bank_transfer/credit_card/debit_card)
- payment_status (pending/paid/failed/refunded)
- order_status (pending/confirmed/processing/shipping/delivered/cancelled)
- coupon_id (FK)
- subtotal, shipping_fee, discount_amount, total_amount
- ordered_at, confirmed_at, shipped_at, delivered_at, cancelled_at

11. order_items - Chi Tiết Đơn Hàng

- order_item_id (PK)
- order_id (FK)
- product_id (FK)
- variant_id (FK)
- product_name (snapshot tại thời điểm đặt)
- color_name, size_name
- price, quantity
- subtotal

12. coupons - Mã Giảm Giá

- coupon_id (PK)
- coupon_code (WELCOME10)
- discount_type (percentage/fixed)
- discount_value
- max_discount_amount
- min_order_value
- start_date, end_date
- usage_limit, usage_count
- is_active

13. reviews - Đánh Giá

- review_id (PK)
- product_id (FK)
- user_id (FK)
- rating (1-5)
- review_text
- is_verified_purchase
- created_at

14. wishlists - Danh Sách Yêu Thích

- wishlist_id (PK)
- user_id (FK)
- product_id (FK)
- created_at

15. settings - Cài Đặt Hệ Thống

- setting_id (PK)
- setting_key (site_name, logo, email...)
- setting_value
- updated_at

🔗 Quan Hệ Giữa Các Bảng

products (1) ←→ (N) product_images
products (1) ←→ (N) product_variants
products (1) ←→ (N) product_descriptions
products (N) ←→ (1) categories
product_variants (N) ←→ (1) colors
product_variants (N) ←→ (1) sizes
users (1) ←→ (N) orders
users (1) ←→ (N) carts
users (1) ←→ (N) wishlists
orders (1) ←→ (N) order_items
orders (N) ←→ (1) coupons

🔌 API & Functions

Helper Functions (includes/functions.php)

Bảo Mật & Validation

escape($string)                    // XSS protection
redirect($url)                     // Redirect helper
isLoggedIn()                       // Check user login
isAdmin()                          // Check admin role
getCurrentUserId()                 // Get current user ID

Xử Lý Giá & Tiền Tệ

formatPrice($price)                // Format: 350,000 ₫
calculateDiscount($original, $sale) // Tính % giảm giá
getFinalPrice($base, $sale, $isOnSale) // Giá cuối cùng

String & Slug

generateSlug($string)              // Tạo slug: "Áo Thun" → "ao-thun"
truncateText($text, $length)       // Rút gọn text

Settings

getSetting($key, $default)         // Lấy cấu hình từ DB

AJAX Endpoints

Giỏ Hàng

// Thêm vào giỏ
POST /cart/add.php
Body: { product_id, variant_id, quantity }

// Cập nhật số lượng
POST /cart/update.php
Body: { cart_id, quantity }

// Xóa khỏi giỏ
POST /cart/remove.php
Body: { cart_id }

// Lấy số lượng items
GET /cart/get-count.php

Wishlist

// Thêm/xóa wishlist
POST /account/wishlist-action.php
Body: { product_id, action: 'add'|'remove' }

🎨 Tính Năng Nâng Cao

1. Hệ Thống Biến Thể Thông Minh

Variant Matrix Logic:

// Ma trận: variantMatrix[color_id][size_id] = { variant_id, stock, price }

// Khi chọn màu
- Disable tất cả size hết hàng với màu đó
- Enable size còn hàng
- Đổi gallery ảnh theo màu

// Khi chọn size
- Disable tất cả màu hết hàng với size đó
- Enable màu còn hàng

// Khi chọn cả màu và size
- Hiển thị tồn kho cụ thể
- Hiển thị giá biến thể
- Enable nút "Thêm vào giỏ"

2. Image Upload System

Tính năng:

  • Upload nhiều ảnh cùng lúc
  • Tự động resize và optimize
  • Gán ảnh theo màu sắc
  • Set primary image
  • Drag & drop reorder
  • Preview trước khi upload

Cấu trúc lưu trữ:

uploads/products/
  └── {product_id}/
      ├── image_1.jpg
      ├── image_2.jpg
      └── ...

3. Responsive Design

Breakpoints:

/* Mobile First Approach */
Mobile:  < 768px
Tablet:  768px - 1024px
Desktop: > 1024px

Features:

  • ✅ Mobile navigation menu
  • ✅ Touch-friendly buttons
  • ✅ Optimized images per device
  • ✅ Flexible grid layouts

4. SEO Optimization

Meta Tags:

<title><?php echo $pageTitle; ?></title>
<meta name="description" content="<?php echo $pageDescription; ?>">
<meta name="keywords" content="...">
<meta property="og:title" content="...">
<meta property="og:image" content="...">

Friendly URLs:

/products/detail.php?slug=ao-thun-nam-basic
/products/index.php?category=ao-so-mi

5. Performance Optimization

Lazy Loading:

<img src="placeholder.jpg" data-src="real-image.jpg" loading="lazy">

Database Optimization:

  • Indexed columns (product_slug, category_slug, order_code)
  • Optimized queries với JOIN
  • Pagination để limit results

🔒 Bảo Mật

1. Password Security

// Hashing với bcrypt
$hashedPassword = password_hash($password, PASSWORD_BCRYPT);

// Verify
password_verify($inputPassword, $hashedPassword);

2. SQL Injection Prevention

// Sử dụng Prepared Statements
$stmt = $db->prepare("SELECT * FROM users WHERE email = ?");
$stmt->execute([$email]);

3. XSS Protection

// Escape output
echo htmlspecialchars($userInput, ENT_QUOTES, 'UTF-8');

4. Session Security

// Regenerate session ID sau login
session_regenerate_id(true);

// Set secure session params
ini_set('session.cookie_httponly', 1);
ini_set('session.cookie_secure', 1); // Nếu dùng HTTPS

5. File Upload Security

// Validate file type
$allowed = ['jpg', 'jpeg', 'png', 'gif', 'webp'];
$ext = strtolower(pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION));
if (!in_array($ext, $allowed)) {
    die('Invalid file type');
}

// Validate file size
if ($_FILES['image']['size'] > MAX_IMAGE_SIZE) {
    die('File too large');
}

// Rename file
$newFilename = uniqid() . '_' . time() . '.' . $ext;

6. CSRF Protection (Recommended)

// Tạo token
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));

// Validate token
if ($_POST['csrf_token'] !== $_SESSION['csrf_token']) {
    die('Invalid CSRF token');
}

🐛 Troubleshooting

❌ Lỗi Kết Nối Database

Triệu chứng:

Database connection failed: SQLSTATE[HY000] [2002] ...

Giải pháp:

  1. Kiểm tra MySQL đã chạy trong XAMPP Control Panel
  2. Kiểm tra port MySQL (3306 hoặc 3307)
  3. Kiểm tra username/password trong config/database.php
  4. Đảm bảo database menwear đã được tạo

❌ Lỗi Upload Ảnh

Triệu chứng:

Failed to upload image / Permission denied

Giải pháp:

  1. Kiểm tra thư mục uploads/ tồn tại
  2. Cấp quyền ghi cho thư mục uploads:
    # Windows: Properties → Security → Full Control
    # Linux: chmod -R 755 uploads/
  3. Kiểm tra upload_max_filesize trong php.ini:
    upload_max_filesize = 10M
    post_max_size = 20M

❌ Không Hiển Thị Ảnh

Triệu chứng:

  • Ảnh sản phẩm không load
  • Broken image icon

Giải pháp:

  1. Kiểm tra đường dẫn ảnh trong database
  2. Kiểm tra file ảnh tồn tại trong thư mục uploads
  3. Kiểm tra BASE_URL trong config/config.php
  4. Mở Developer Tools (F12) → Console để xem lỗi

❌ Session Không Hoạt Động

Triệu chứng:

  • Không đăng nhập được
  • Giỏ hàng bị mất sau refresh

Giải pháp:

  1. Kiểm tra session_start() được gọi
  2. Kiểm tra quyền ghi của session folder
  3. Xóa session cũ:
    session_destroy();

❌ CSS/JS Không Load

Triệu chứng:

  • Website không có style
  • JavaScript không hoạt động

Giải pháp:

  1. Kiểm tra đường dẫn CSS/JS trong header
  2. Hard refresh: Ctrl + F5
  3. Xóa cache trình duyệt
  4. Kiểm tra BASE_URL đúng chưa

❌ Lỗi 404 Not Found

Giải pháp:

  1. Kiểm tra file tồn tại
  2. Kiểm tra BASE_URL trong config
  3. Kiểm tra Apache đã enable mod_rewrite:
    LoadModule rewrite_module modules/mod_rewrite.so

❌ Giỏ Hàng Trống Sau Login

Nguyên nhân:

  • Giỏ hàng lưu trong session (chưa login) không sync sang database

Giải pháp:

  • Cải thiện: Migrate session cart sang database sau login
  • Code mẫu đã có trong auth/login.php

🎯 Roadmap

✅ Đã Hoàn Thành (v1.0)

  • Hệ thống sản phẩm & biến thể
  • Giỏ hàng & thanh toán
  • Quản lý đơn hàng
  • Admin panel
  • Wishlist
  • Reviews
  • Coupons
  • Responsive design

🚧 Đang Phát Triển (v1.1)

  • Email notification system
    • Email xác nhận đơn hàng
    • Email tracking đơn hàng
    • Email marketing
  • Advanced search
    • Full-text search
    • Autocomplete suggestions
    • Search filters

📅 Kế Hoạch Tương Lai (v2.0)

  • Payment Gateway Integration
    • VNPay
    • MoMo
    • ZaloPay
  • Analytics & Reports
    • Doanh thu theo thời gian
    • Top selling products
    • Customer insights
    • Export to Excel/PDF
  • Inventory Management
    • Low stock alerts
    • Auto-restock suggestions
    • Supplier management
  • Marketing Features
    • Flash sales
    • Bundle deals
    • Loyalty points
    • Referral program
  • UX Improvements
    • Dark mode
    • Multi-language (EN/VI)
    • Product comparison
    • Recently viewed
    • Size recommendation
  • Mobile App
    • React Native app
    • Push notifications
    • Mobile payment
  • Advanced Features
    • Live chat support
    • Chatbot integration
    • Social login (Google, Facebook)
    • PWA support
    • Abandoned cart recovery

🤝 Đóng Góp

Chúng tôi hoan nghênh mọi đóng góp cho dự án!

Cách Đóng Góp

  1. Fork repository
  2. Tạo branch mới:
    git checkout -b feature/TenTinhNang
  3. Commit thay đổi:
    git commit -m "Thêm tính năng ABC"
  4. Push lên branch:
    git push origin feature/TenTinhNang
  5. Tạo Pull Request

Coding Standards

  • Sử dụng camelCase cho biến JavaScript
  • Sử dụng snake_case cho biến PHP & database
  • Comment code rõ ràng (tiếng Việt hoặc tiếng Anh)
  • Tuân thủ PSR-12 cho PHP code style

📄 License

Dự án này được tạo ra cho mục đích giáo dục và học tập.

MIT License

Copyright (c) 2025 MenWear Team

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software...

👥 Credits

Development Team

  • Backend Developer: MenWear Team
  • Frontend Developer: MenWear Team
  • Database Design: MenWear Team
  • UI/UX Design: Modern E-commerce Principles

Technologies & Libraries


📞 Liên Hệ & Hỗ Trợ

Thông Tin Liên Hệ

Hỗ Trợ

Nếu gặp vấn đề hoặc có câu hỏi:

  1. Đọc kỹ phần Troubleshooting
  2. Kiểm tra Issues đã có câu trả lời chưa
  3. Tạo New Issue với thông tin chi tiết:
    • Mô tả lỗi
    • Screenshot
    • Error logs
    • Các bước tái hiện

📊 Project Stats

📝 Lines of Code: ~15,000+
📁 Files: 100+
🗄️ Database Tables: 15
👥 Contributors: MenWear Team
⭐ Version: 1.0.0
📅 Last Updated: December 2025

🌟 Changelog

Version 1.0.0 (December 2025)

🎉 Initial Release

✨ Features:
- Complete product management system
- Smart variant system (color × size)
- Shopping cart with session/database storage
- Multi-payment checkout process
- Admin dashboard with statistics
- Order management with status tracking
- Coupon system
- Wishlist functionality
- Product reviews & ratings
- Responsive design for all devices

🔧 Improvements:
- Auto-sync stock from variants
- Image upload with color mapping
- Size chart upload
- Optimized database queries
- SEO-friendly URLs

🐛 Bug Fixes:
- Fixed auto-increment issues
- Fixed cart session handling
- Fixed image path resolution
- Fixed order status workflow

🔒 Security:
- Password hashing with bcrypt
- SQL injection prevention
- XSS protection
- Secure session management

⭐ Star History

Star History Chart


Made with ❤️ by Codyz

© 2025 MenWear - All Rights Reserved

⬆ Back to Top

About

MenWear - Website bán thời trang nam. Dự án mã nguồn mở xây dựng bằng PHP & MySQL thuần, phục vụ học tập tại Trường ĐH Giao thông vận tải TP.HCM (UTH). Mọi người có thể fork, clone và đóng góp!

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages