Giới thiệu dự án

Sự phát triển mạnh mẽ của thương mại điện tử (E-commerce) và xu hướng mua sắm trực tuyến (Online Shopping) đã làm thay đổi căn bản hành vi người tiêu dùng ngành bán lẻ thời trang. Theo thống kê của Hiệp hội Thương mại Điện tử Việt Nam (VECOM), tốc độ tăng trưởng của thị trường thương mại điện tử duy trì ở mức trên 20% mỗi năm, trong đó phân khúc thời trang và may mặc luôn nằm trong top 3 ngành hàng có lượng giao dịch cao nhất. Trước sự dịch chuyển từ mô hình bán lẻ truyền thống (Brick-and-Mortar) sang mô hình kinh doanh đa kênh (Omnichannel) và bán lẻ trực tiếp tới người tiêu dùng (Direct-to-Consumer - D2C), việc sở hữu một nền tảng website chuyên biệt, tốc độ cao và tối ưu trải nghiệm người dùng (UX/UI) trở thành yêu cầu sống còn cho các thương hiệu thời trang lớn như Canifa.

Đồ án "Xây dựng giao diện website bán quần áo Canifa" được thực hiện bởi sinh viên Trần Khánh Sơn, chuyên ngành Kỹ thuật Phần mềm (hướng chuyên sâu Công nghệ Web), Khoa Công nghệ Thông tin – Trường Đại học Sư phạm Kỹ thuật Hưng Yên, dưới sự hướng dẫn khoa học của ThS. Chu Thị Minh Huệ.

+-----------------------------------------------------------------------------------+
|                            BÀI TOÁN KINH DOANH CANIFA                             |
+-----------------------------------------------------------------------------------+
|  [Hạn chế truyền thống]                     [Giải pháp Website E-Commerce]         |
|  * Phụ thuộc cửa hàng vật lý                * Bán hàng 24/7 không giới hạn vị trí |
|  * Phí sàn TMĐT cao (8% - 15%)      ===>    * Sở hữu dữ liệu khách hàng (D2C)     |
|  * Khó cá nhân hóa thương hiệu               * Đồng bộ giá, kho, đơn hàng tức thì  |
|  * Tắc nghẽn quản lý thủ công               * Tự động hóa báo cáo doanh thu       |
+-----------------------------------------------------------------------------------+

Vấn đề thực tiễn và Pain Points

Phương thức bán hàng truyền thống của các chuỗi thời trang bộc lộ nhiều điểm nghẽn:

  • Giới hạn không gian và thời gian: Khách hàng chỉ có thể tiếp cận sản phẩm tại điểm bán trong giờ mở cửa, gây suy giảm doanh thu tiềm năng trong các giai đoạn giãn cách xã hội hoặc thời tiết bất lợi.
  • Chi phí vận hành sàn trung gian cao: Phụ thuộc vào sàn thương mại điện tử khiến biên lợi nhuận bị bào mòn từ 8% đến 15% phí chiết khấu, đồng thời thương hiệu không làm chủ được dữ liệu hành vi người dùng.
  • Đồng bộ hóa dữ liệu tồn kho và giá cả: Biến động giá theo chương trình khuyến mãi, sự thay đổi đa biến thể (kích thước, màu sắc, chất liệu) nếu quản lý thủ công dễ gây thất thoát, sai lệch đơn hàng và giảm chỉ số hài lòng khách hàng (CSAT).

Mục tiêu của đề tài

  1. Mục tiêu 1: Phân tích toàn diện quy trình nghiệp vụ bán lẻ thời trang Canifa, bao gồm quản lý danh mục, biến thể sản phẩm, giỏ hàng, đặt hàng và quy trình nhập kho.
  2. Mục tiêu 2: Thiết kế và xây dựng giao diện người dùng (Front-end UI) hiện đại, chuẩn Responsive Web Design, tương thích mượt mà trên Desktop, Tablet và Mobile.
  3. Mục tiêu 3: Hiện thực hóa các tương tác phức tạp phía Client-side (Dynamic DOM Manipulation, Mini-cart Flyout, Dynamic Pricing Table) bằng JavaScript thuần và jQuery.
  4. Mục tiêu 4: Thiết kế kiến trúc phân hệ quản trị (Admin Dashboard) hỗ trợ nhân viên và quản trị viên vận hành luồng xử lý đơn hàng 5 trạng thái và thống kê doanh thu - lợi nhuận đa chiều.
  5. Mục tiêu 5: Tối ưu hóa hiệu năng tải trang với thời gian phản hồi dưới 2.0 giây, đảm bảo tính toàn vẹn dữ liệu tài chính chính xác tuyệt đối.

Giải pháp kỹ thuật và Phạm vi nghiên cứu

Đề tài lựa chọn giải pháp xây dựng Front-end tùy biến cao dựa trên bộ ba công nghệ cốt lõi HTML5, CSS3 và JavaScript kết hợp thư viện jQuery. Cách tiếp cận này giúp giảm tải phụ thuộc vào các framework cồng kềnh, tối ưu dung lượng tải trang (Bundle Size), đồng thời xây dựng nền tảng vững chắc để dễ dàng tích hợp vào bất kỳ hệ thống Back-end RESTful API nào (như Node.js hoặc PHP).

  • Phạm vi nghiên cứu: Khảo sát quy trình nghiệp vụ thực tế tại chuỗi cửa hàng Canifa; tập trung phát triển phân hệ người dùng (Customer Storefront) và phân hệ quản trị nội dung (Admin Portal).
  • Giới hạn: Tập trung chuyên sâu vào giao diện tương tác và kiến trúc dữ liệu thực thể; các cổng thanh toán trung gian ngân hàng và cổng vận chuyển của bên thứ ba được mô phỏng theo chuẩn quy trình nghiệp vụ e-commerce.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí đánh giá Nền tảng SaaS đóng gói (Shopify/Haravan) Nền tảng CMS mã nguồn mở (WordPress/WooCommerce) Giải pháp Custom Front-end (Đồ án Canifa)
Khả năng tùy biến UI/UX Bị giới hạn theo template có sẵn Phụ thuộc vào theme engine & plugin Tùy biến 100% theo nhận diện thương hiệu Canifa
Tốc độ tải trang & Tối ưu Khó can thiệp sâu vào mã nguồn lõi Dễ bị phình to mã nguồn do plugin (Bloatware) Mã nguồn tối giản, CSS/JS tinh gọn, tải dưới 2s
Chi phí duy trì Chi phí thuê bao hàng tháng cao Chi phí bảo trì hosting và bản quyền plugin Miễn phí bản quyền, tự chủ hoàn toàn hạ tầng
Độ phức tạp nghiệp vụ Cấu hình nghiệp vụ phân cấp hạn chế Cần can thiệp sâu vào hook/filter phức tạp Thiết kế khớp chính xác biểu đồ use-case bán lẻ

Phân loại yêu cầu người dùng theo mô hình MoSCoW

  • Must-have (Bắt buộc phải có):
    • Đăng ký, đăng nhập tài khoản khách hàng và nhân viên với cơ chế phân quyền Role-Based Access Control (RBAC).
    • Tìm kiếm, lọc sản phẩm theo nhóm: Hàng mới về (New Trends), Hàng bán chạy (Best Sellers), Hàng giảm giá (Sale/Outlet) và danh mục loại quần áo.
    • Xem chi tiết sản phẩm: chọn kích thước (Size: S, M, L, XL), màu sắc, hiển thị chất liệu, giá niêm yết và giá khuyến mãi.
    • Quản lý giỏ hàng: Thêm sản phẩm, cập nhật số lượng trực tiếp (Real-time recalculation), xóa sản phẩm, hiển thị Mini-cart.
    • Quy trình đặt hàng (Checkout): Nhập thông tin giao hàng, chọn địa chỉ mặc định hoặc địa chỉ mới, sinh mã đơn hàng tự động.
    • Quản trị viên: Quản lý loại quần áo, thông tin sản phẩm, quản lý đơn hàng theo vòng đời trạng thái, quản lý hóa đơn nhập, báo cáo doanh thu.
  • Should-have (Nên có):
    • Giao diện xem đánh giá và phản hồi (Customer Reviews) của khách hàng đã mua sản phẩm.
    • Quản lý lịch sử đơn hàng cho phép khách hàng hủy đơn hoặc chỉnh sửa đơn hàng khi chưa chuyển sang trạng thái xử lý/vận chuyển.
    • Phân hệ quản lý nhân sự cho phép Admin phân quyền và theo dõi trạng thái hoạt động của nhân viên.
  • Could-have (Có thể có):
    • Thống kê biểu đồ doanh thu, lợi nhuận trực quan theo ngày, tháng, năm.
    • Tự động gợi ý sản phẩm bán kèm (Cross-selling) ở trang chi tiết sản phẩm.
  • Won't-have (Chưa triển khai trong giai đoạn này):
    • Tích hợp cổng thanh toán trực tuyến quốc tế (PayPal/Stripe) và Webhook đồng bộ vận đơn thời gian thực với đơn vị vận chuyển (GHN, Viettel Post).

Thiết kế hệ thống và Kiến trúc dữ liệu

Kiến trúc phần mềm được tổ chức theo mô hình phân tầng hướng module, tách biệt giữa tầng hiển thị (Presentation Layer), tầng điều khiển logic giao diện (Client Controller Layer) và tầng dữ liệu thực thể (Data Entity Model).

+-------------------------------------------------------------------------------+
|                       KIẾN TRÚC PHẦN MỀM HỆ THỐNG WEBSITE                     |
+-------------------------------------------------------------------------------+
| [PRESENTATION LAYER]                                                          |
|  + HTML5 Semantic Markup / CSS3 Layout (Flexbox & CSS Grid)                   |
|  + Responsive Viewport Matrix (Mobile < 768px, Tablet 768-1024px, PC > 1024px)|
+-------------------------------------------------------------------------------+
                                      │
                                      ▼
+-------------------------------------------------------------------------------+
| [CLIENT CONTROLLER & INTERACTION LAYER]                                       |
|  + JavaScript ES6+ Event Listeners & DOM Manipulators                         |
|  + jQuery Engine: Ajax Handlers, Mini-cart Engine, Modal State Controllers    |
+-------------------------------------------------------------------------------+
                                      │
                                      ▼
+-------------------------------------------------------------------------------+
| [DATA ENTITY & RESTFUL API INTERFACE]                                         |
|  + Endpoints: /api/v1/products, /api/v1/cart, /api/v1/orders, /api/v1/reports  |
|  + Entities: LoaiQuanAo, QuanAo, GiaBan, DonHang, ChiTietDH, HoaDonNhap       |
+-------------------------------------------------------------------------------+

Biểu đồ lớp thực thể (Entity Class Design)

Hệ thống quản lý dữ liệu thông qua cấu trúc thực thể chuẩn hóa quan hệ (RDBMS Logic):

  1. LoaiQuanAo (MaLoai [PK], TenLoai): Danh mục phân loại nhóm sản phẩm (Áo thun, Sơ mi, Quần jeans, Váy...).
  2. QuanAo (MaQA [PK], TenQA, ChatLieu, Size, MauSac, MoTa, MaLoai [FK]): Chứa thông tin chi tiết từng mặt hàng.
  3. GiaBan (MaGia [PK], MaQA [FK], GiaBan, NgayHieuLuc, NgayHetHieuLuc): Quản lý biến động giá bán theo từng giai đoạn thời gian.
  4. HoaDonNhap (MaHDN [PK], NgayNhap, MaNV [FK], TongTien): Quản lý quá trình nhập hàng từ nhà cung cấp Canifa.
  5. ChiTietHDNhap (MaHDN [FK], MaQA [FK], SoLuong, GiaNhap, ThanhTien): Chi tiết từng sản phẩm trong hóa đơn nhập.
  6. KhachHang (MaKH [PK], TenKH, SDT, Email, DiaChi): Hồ sơ khách hàng và địa chỉ giao nhận.
  7. DonHang (MaDH [PK], MaKH [FK], NgayDat, TongTien, DiaChiGiao, SDTNhan, TrangThai): Quản lý vòng đời đơn hàng.
  8. ChiTietDonHang (MaDH [FK], MaQA [FK], SoLuong, DonGia, ThanhTien): Chi tiết mặt hàng xuất bán.
  9. NhanVien (MaNV [PK], TenNV, MatKhau, VaiTro, TrangThai): Quản lý danh sách nhân sự và phân quyền Admin/Staff.

Đặc tả API Endpoints

GET    /api/v1/products?category={id}&sort={asc|desc}&page={num}  -> Lấy danh sách sản phẩm
GET    /api/v1/products/{id}                                      -> Lấy chi tiết sản phẩm kèm bảng giá hiệu lực
POST   /api/v1/cart/items                                         -> Thêm sản phẩm vào giỏ hàng
PUT    /api/v1/cart/items/{id}                                    -> Cập nhật số lượng sản phẩm trong giỏ
DELETE /api/v1/cart/items/{id}                                    -> Xóa sản phẩm khỏi giỏ hàng
POST   /api/v1/orders/checkout                                    -> Tạo đơn hàng mới và trừ tồn kho
GET    /api/v1/admin/reports/revenue?from={date}&to={date}        -> Báo cáo doanh thu & lợi nhuận
PUT    /api/v1/admin/orders/{id}/status                           -> Cập nhật trạng thái đơn hàng (5 bước)

Phương pháp luận phát triển (Methodology)

Dự án áp dụng quy trình phát triển phần mềm chuẩn 5 bước trong thời gian 16 tuần:

  1. Tuần 1 - 3 (Khảo sát & Lập kế hoạch): Thu thập dữ liệu thực tế tại hệ thống Canifa, xác định danh sách Actor (Khách hàng, Nhân viên, Admin) và lập bảng phân rã Use Case.
  2. Tuần 4 - 7 (Phân tích & Thiết kế hệ thống): Thiết kế sơ đồ Use Case tổng quát, Use Case chi tiết phân rã, sơ đồ lớp thực thể (Class Diagram), xây dựng Wireframe và cấu trúc luồng giao diện (User Flow).
  3. Tuần 8 - 12 (Hiện thực hóa Front-end): Viết mã nguồn HTML5 ngữ nghĩa, thiết kế hệ thống CSS Grid/Flexbox, xây dựng bộ thư viện JavaScript/jQuery xử lý sự kiện tương tác Client-side.
  4. Tuần 13 - 15 (Kiểm thử & Tối ưu): Thực hiện kiểm thử chức năng (Functional Testing), kiểm thử giao diện Responsive trên nhiều độ phân giải, tối ưu tốc độ render và DOM reflow.
  5. Tuần 16 (Đóng gói & Đánh giá nghiệm thu): Đóng gói ứng dụng, hoàn thiện tài liệu kỹ thuật và báo cáo bảo vệ đồ án.

Implementation và kết quả

Chi tiết giải pháp kỹ thuật và Mã nguồn minh họa

Hệ thống được phát triển tuân thủ các chuẩn lập trình web hiện đại: tách biệt rõ ràng giữa cấu trúc (HTML), định dạng (CSS) và hành vi (JavaScript). Cấu trúc mã nguồn sử dụng quy chuẩn đặt tên BEM (Block Element Modifier) giúp duy trì khả năng mở rộng và tái sử dụng thành phần.

project-canifa/
├── assets/
│   ├── css/
│   │   ├── base.css           # Reset CSS, Typography, Variables
│   │   ├── grid.css           # Responsive 12-Column Grid System
│   │   ├── main.css           # Component Styles (Header, Slider, Cards)
│   │   └── admin.css          # Dashboard Layout & Data Tables
│   ├── js/
│   │   ├── cart.js            # Shopping Cart Engine & Local State
│   │   ├── product-detail.js  # Variant Selector & Gallery Zoom
│   │   ├── checkout.js        # Form Validation & Order Processor
│   │   └── admin-stat.js      # Filter & Dashboard Reporting Logic
│   └── images/                # Optimized WebP/PNG Assets
├── index.html                 # Homepage
├── product-detail.html        # Single Product View
├── cart.html                  # Full Cart Management
├── checkout.html              # Checkout & Address Selection
└── admin/                     # Admin Portal Screens
    ├── dashboard.html
    ├── manage-products.html
    └── manage-orders.html

1. Thuật toán quản lý giỏ hàng động và cập nhật Mini-Cart

Mã nguồn JavaScript xử lý tương tác thêm sản phẩm vào giỏ hàng, tự động kiểm tra số lượng hợp lệ, tính toán tổng tiền chính xác đến từng đơn vị và cập nhật giao diện mà không cần tải lại trang:

/**
 * Module quản lý giỏ hàng (Canifa Shopping Cart Engine)
 * Đảm bảo tính toán chính xác giá trị và cập nhật Real-time DOM
 */
const CanifaCart = (function ($) {
    let cartItems = JSON.parse(localStorage.getItem('CANIFA_CART')) || [];

    const formatCurrency = (amount) => {
        return new Intl.NumberFormat('vi-VN', { style: 'currency', currency: 'VND' }).format(amount);
    };

    const saveCart = () => {
        localStorage.setItem('CANIFA_CART', JSON.stringify(cartItems));
    };

    const calculateTotals = () => {
        return cartItems.reduce((acc, item) => {
            return {
                totalQuantity: acc.totalQuantity + item.quantity,
                totalPrice: acc.totalPrice + (item.price * item.quantity)
            };
        }, { totalQuantity: 0, totalPrice: 0 });
    };

    const updateMiniCartUI = () => {
        const { totalQuantity, totalPrice } = calculateTotals();
        $('.header__cart-badge').text(totalQuantity);
        $('.mini-cart__total-price').text(formatCurrency(totalPrice));
        
        const $listContainer = $('.mini-cart__list');
        $listContainer.empty();

        if (cartItems.length === 0) {
            $listContainer.html('<li class="mini-cart__empty">Giỏ hàng của bạn đang trống</li>');
            return;
        }

        cartItems.forEach((item) => {
            const itemHTML = `
                <li class="mini-cart__item" data-id="${item.id}" data-size="${item.size}" data-color="${item.color}">
                    <img src="${item.image}" alt="${item.name}" class="mini-cart__img">
                    <div class="mini-cart__info">
                        <h4 class="mini-cart__title">${item.name}</h4>
                        <span class="mini-cart__variant">${item.size} / ${item.color}</span>
                        <span class="mini-cart__price">${item.quantity} x ${formatCurrency(item.price)}</span>
                    </div>
                    <button type="button" class="mini-cart__btn-remove">&times;</button>
                </li>`;
            $listContainer.append(itemHTML);
        });
    };

    return {
        addItem: function (product) {
            const existingIndex = cartItems.findIndex(i => 
                i.id === product.id && i.size === product.size && i.color === product.color
            );

            if (existingIndex > -1) {
                cartItems[existingIndex].quantity += product.quantity;
            } else {
                cartItems.push(product);
            }

            saveCart();
            updateMiniCartUI();
        },
        updateQuantity: function (id, size, color, newQty) {
            const item = cartItems.find(i => i.id === id && i.size === size && i.color === color);
            if (item && newQty > 0) {
                item.quantity = newQty;
                saveCart();
                updateMiniCartUI();
            }
        },
        removeItem: function (id, size, color) {
            cartItems = cartItems.filter(i => !(i.id === id && i.size === size && i.color === color));
            saveCart();
            updateMiniCartUI();
        },
        init: function () {
            updateMiniCartUI();
        }
    };
})(jQuery);

$(document).ready(function () {
    CanifaCart.init();
});

2. Thuật toán xác định giá bán hiệu lực (Effective Pricing Algorithm)

Đảm bảo giá của sản phẩm hiển thị trên giao diện luôn lấy theo khoảng thời gian hiệu lực (NgayHieuLuc <= Hiện tại <= NgayHetHieuLuc):

/**
 * Xác định đơn giá hiện hành của sản phẩm dựa trên bảng dữ liệu giá đa kỳ
 * Độ phức tạp thời gian: O(N) với N là số kỳ điều chỉnh giá
 */
function getEffectivePrice(priceHistoryList, targetDate = new Date()) {
    const validPrices = priceHistoryList.filter(entry => {
        const start = new Date(entry.ngayHieuLuc);
        const end = entry.ngayHetHieuLuc ? new Date(entry.ngayHetHieuLuc) : new Date(8640000000000000);
        return targetDate >= start && targetDate <= end;
    });

    if (validPrices.length === 0) {
        throw new Error("ERR_NO_VALID_PRICE: Không tìm thấy giá bán hợp lệ tại thời điểm yêu cầu");
    }

    // Sắp xếp lấy kỳ hiệu lực mới nhất
    validPrices.sort((a, b) => new Date(b.ngayHieuLuc) - new Date(a.ngayHieuLuc));
    return validPrices[0].giaBan;
}

Kết quả kiểm thử và Đánh giá hiệu năng

+-----------------------------------------------------------------------------------+
|                     KẾT QUẢ KIỂM THỬ VÀ BENCHMARK HIỆU NĂNG                       |
+-----------------------------------------------------------------------------------+
|  Chỉ số đánh giá               | Mục tiêu ban đầu        | Thực tế đạt được       |
|  ------------------------------+-------------------------+----------------------- |
|  Thời gian tải trang (Load)    | < 2.0 giây              | 1.35 giây (Vượt 32.5%) |
|  First Contentful Paint (FCP)  | < 1.5 giây              | 0.85 giây              |
|  Time to Interactive (TTI)     | < 2.5 giây              | 1.62 giây              |
|  Cumulative Layout Shift (CLS) | < 0.1                   | 0.015 (Rất mượt mà)    |
|  Tỷ lệ Test Cases thành công   | > 95.0%                 | 97.8% (44/45 cases)    |
|  Mức độ hài lòng người dùng    | > 4.0 / 5.0             | 4.65 / 5.0 (UAT mẫu)   |
+-----------------------------------------------------------------------------------+

Hệ thống đã trải qua 45 kịch bản kiểm thử hộp đen (Black-box Test Cases) bao phủ toàn bộ các luồng sự kiện chính và ngoại lệ:

  • Xác thực dữ liệu form: Kiểm tra ràng buộc biểu thức chính quy (Regex) đối với số điện thoại Việt Nam (10 chữ số) và định dạng email chuẩn RFC 5322.
  • Ràng buộc nghiệp vụ giỏ hàng: Kiểm tra ngăn chặn thêm số lượng vượt quá giới hạn tồn kho, tự động cập nhật tổng giá trị chính xác tuyệt đối.
  • Quản trị đơn hàng: Kiểm thử quá trình chuyển đổi trạng thái đơn hàng qua 5 giai đoạn: Chưa xác thực $\rightarrow$ Đã xác thực $\rightarrow$ Đã chuyển nhà cung cấp $\rightarrow$ Đang vận chuyển $\rightarrow$ Hoàn tất thanh toán/Đổi trả.

Đổi mới và đóng góp

  1. Cơ chế đồng bộ giỏ hàng không tải lại trang (Zero-Reload Mini-Cart Sync): Thay vì phải refresh trang hoặc chuyển hướng liên tục gây gián đoạn trải nghiệm mua sắm, hệ thống ứng dụng mô hình quản lý trạng thái cục bộ kết hợp sự kiện DOM ảo, giúp giảm 45% thời gian thực hiện thao tác mua hàng so với website cũ.

  2. Kiến trúc dữ liệu giá bán đa kỳ (Dynamic Effective Pricing Strategy): Mô hình thực thể GiaBan với ràng buộc ngày hiệu lực cho phép thương hiệu thiết lập trước các chiến dịch khuyến mãi theo khung giờ (Flash Sale) mà không cần can thiệp chỉnh sửa thủ công cơ sở dữ liệu vào thời điểm mở bán, loại bỏ 100% rủi ro nhầm lẫn giá.

  3. Thiết kế phân tầng quản trị trực quan (Actionable Admin Dashboard): Giao diện quản trị được tối ưu hóa cho phép nhân viên kho và nhân viên bán hàng tiếp nhận, lọc và xác nhận hàng trăm đơn đặt hàng mỗi ngày với chỉ 2 thao tác nhấp chuột, nâng cao 40% hiệu suất vận hành tại cửa hàng.


Ứng dụng thực tế và triển khai

Kịch bản vận hành thực tế (Use Case Scenarios)

[Khách hàng truy cập] ---> [Lọc danh mục Quần Áo] ---> [Chọn Size / Màu sắc]
                                                               │
                                                               ▼
[Đặt hàng thành công] <--- [Nhập địa chỉ giao hàng] <--- [Kiểm tra Giỏ hàng]
        │
        ▼
[Admin Dashboard]    ---> [Xác thực đơn hàng]       ---> [Xuất kho / Giao vận]
  • Kịch bản Khách hàng mua sắm: Khách hàng duyệt sản phẩm tại chuyên mục "Hàng mới về", chọn áo Polo kích cỡ L màu xanh Navy. Khách hàng thêm vào giỏ hàng, kiểm tra nhanh qua Mini-cart và chuyển đến trang Đặt hàng. Hệ thống tự động điền thông tin khách hàng cũ nếu đã đăng nhập và sinh mã đơn hàng ngẫu nhiên DH-2022XXXX.
  • Kịch bản Quản trị viên nhập kho: Khi tiếp nhận lô hàng mới từ nhà cung cấp Canifa, thủ kho mở giao diện "Quản lý hóa đơn nhập", nhập mã sản phẩm, số lượng và đơn giá nhập. Hệ thống tự động ghi nhận tổng chi phí và cập nhật tăng số lượng tồn khả dụng trên website.

Yêu cầu triển khai hạ tầng kỹ thuật (Deployment Requirements)

  • Môi trường Web Server: Nginx 1.20+ hoặc Apache HTTP Server 2.4+ có kích hoạt nén gzip/brotli và cấu hình HTTP/2.
  • Phía Máy khách (Client-side): Trình duyệt hiện đại hỗ trợ ECMAScript 6+ (Google Chrome 90+, Mozilla Firefox 88+, Apple Safari 14+, Microsoft Edge 90+).
  • Chi phí & ROI (Hoàn vốn đầu tư): Do sử dụng mã nguồn mở và kiến trúc front-end tối ưu, chi phí triển khai hệ thống giảm 65% so với thuê giải pháp độc quyền. Thời gian thu hồi vốn (ROI) dự kiến đạt trong vòng 4 đến 6 tháng nhờ cắt giảm phí hoa hồng sàn thương mại điện tử và tối ưu chi phí nhân sự xử lý đơn hàng.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Hệ thống xử lý dữ liệu đơn hàng và giỏ hàng chủ yếu thực thi phía Client-side (DOM & Local State), chưa tích hợp WebSockets để cập nhật tình trạng tồn kho tức thời (Real-time Stock Update) khi có nhiều người cùng tranh mua 1 sản phẩm cuối cùng.
  • Chưa tích hợp chữ ký số và xác thực 2 yếu tố (2FA) qua SMS OTP cho tài khoản quản trị viên cấp cao.

Hướng nâng cấp mở rộng

  • Chuyển đổi kiến trúc sang Single Page Application (SPA): Tái cấu trúc giao diện sang các thư viện hiện đại như React.js hoặc Next.js (Server-Side Rendering) nhằm nâng cao điểm số SEO tổng thể và tối ưu Core Web Vitals.
  • Tích hợp Trí tuệ Nhân tạo (AI Outfit Recommendation): Ứng dụng thuật toán lọc cộng tác (Collaborative Filtering) để gợi ý phối đồ thời trang cá nhân hóa dựa trên lịch sử xem sản phẩm của người dùng.
  • Mở rộng Progressive Web App (PWA): Cho phép người dùng cài đặt website trực tiếp lên màn hình chính điện thoại và gửi thông báo đẩy (Push Notifications) về các chương trình giảm giá.

Đối tượng hưởng lợi

+-----------------------------------------------------------------------------------+
|                           GIÁ TRỊ MANG LẠI CHO CÁC BÊN                            |
+-----------------------------------------------------------------------------------+
| [Sinh viên & Học viên]      | Mẫu tham khảo chuẩn mực về phân tích hệ thống UML,  |
|                             | cấu trúc HTML5/CSS3 và JavaScript DOM tương tác.    |
| ----------------------------+-----------------------------------------------------|
| [Lập trình viên Web]        | Khung giao diện E-commerce tinh gọn, dễ mở rộng,     |
|                             | sẵn sàng gắn kết với Back-end Node.js, PHP, Java.   |
| ----------------------------+-----------------------------------------------------|
| [Doanh nghiệp bán lẻ]       | Mô hình website bán hàng D2C hoàn chỉnh giúp giảm   |
|                             | 10-15% phí sàn, kiểm soát 100% dữ liệu khách hàng.  |
| ----------------------------+-----------------------------------------------------|
| [Nhà nghiên cứu / Giảng viên| Tài liệu kiểm chứng ứng dụng lý thuyết phân tích    |
|                             | phần mềm vào bài toán kinh doanh thời trang thực tế.|
+-----------------------------------------------------------------------------------+

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

1. Yêu cầu phần cứng và phần mềm tối thiểu để vận hành giao diện website Canifa là gì?

Giao diện website được xây dựng bằng công nghệ web tiêu chuẩn (HTML5, CSS3, JavaScript ES6), do đó không đòi hỏi phần cứng chuyên dụng. Hệ thống có thể chạy trên bất kỳ Shared Hosting hoặc máy chủ ảo (VPS) cấu hình cơ bản (1 vCPU, 1GB RAM) chạy nền tảng Nginx/Apache. Phía người dùng chỉ cần thiết bị có kết nối Internet và trình duyệt web thông dụng.

2. Giao diện có tương thích tốt trên các kích thước màn hình điện thoại khác nhau không?

Có. Giao diện áp dụng kỹ thuật Responsive Web Design với hệ thống CSS Grid và Media Queries 12 cột chuẩn, đảm bảo hiển thị tối ưu trên 3 nhóm độ phân giải chính: Mobile (chiều rộng < 768px), Tablet (768px - 1024px) và Desktop/PC (chiều rộng > 1024px).

3. Website giải quyết bài toán biến động giá khuyến mãi như thế nào?

Thông qua thiết kế thực thể GiaBan liên kết với QuanAo, mỗi bản ghi giá đều có trường NgayHieuLucNgayHetHieuLuc. Thuật toán phía hệ thống sẽ tự động quét và áp dụng mức giá khớp với thời gian thực của máy chủ, cho phép cài đặt sẵn giá Flash Sale tự động bật/tắt chính xác.

4. Hệ thống đảm bảo tính bảo mật trong phân quyền quản trị ra sao?

Website chia tách nghiêm ngặt giữa vai trò Khách hàng (Customer), Nhân viên bán hàng (Staff) và Quản trị viên tối cao (Admin). Nhân viên chỉ có quyền xem đơn hàng, cập nhật trạng thái vận chuyển và nhập kho; chỉ tài khoản Admin mới có quyền can thiệp vào cấu hình nhân sự, bảng giá và chiết xuất báo cáo tài chính.

5. Khả năng kết nối giao diện này với các hệ thống Back-end sẵn có như thế nào?

Toàn bộ logic tương tác phía Front-end được module hóa thông qua các hàm gọi hàm xử lý dữ liệu rõ ràng. Lập trình viên chỉ cần thay thế các mảng dữ liệu mô phỏng bằng các lời gọi hàm AJAX/Fetch API trỏ đến các RESTful API endpoints chuẩn JSON của bất kỳ nền tảng Back-end nào (Spring Boot, Laravel, Express.js).


Kết luận

Đồ án "Xây dựng giao diện website bán quần áo Canifa" của sinh viên Trần Khánh Sơn (Đại học Sư phạm Kỹ thuật Hưng Yên) đã hoàn thành xuất sắc các mục tiêu nghiên cứu và kỹ thuật đề ra. Đề tài không chỉ giải quyết trọn vẹn bài toán chuyển đổi số mô hình bán hàng thời trang từ truyền thống sang thương mại điện tử trực tuyến, mà còn thể hiện năng lực phân tích thiết kế hệ thống phần mềm bài bản thông qua hệ thống biểu đồ Use Case, biểu đồ lớp thực thể và quy trình kiểm thử nghiêm ngặt.

Với mã nguồn được cấu trúc khoa học, giao diện thẩm mỹ cao, tốc độ tải trang ấn tượng dưới 1.5 giây và khả năng tương thích đa thiết bị, sản phẩm là tài liệu tham khảo giá trị cho sinh viên chuyên ngành Công nghệ Thông tin, đồng thời là bộ khung vững chắc sẵn sàng đưa vào ứng dụng thực tế trong các chuỗi cửa hàng bán lẻ thời trang.