Giới thiệu dự án

Thương mại điện tử (E-Commerce) tại Việt Nam đang trải qua giai đoạn tăng trưởng bùng nổ với tốc độ trung bình trên 20%/năm, đạt quy mô hơn 20 tỷ USD. Cùng với tỷ lệ người dùng sở hữu điện thoại thông minh (smartphone) vượt mức 75% dân số, nhu cầu trang bị phụ kiện bảo vệ và cá nhân hóa thiết bị như ốp lưng chống sốc, kính cường lực, cáp sạc đa năng ngày càng tăng cao. Đồ án tốt nghiệp "Xây dựng website bán phụ kiện điện thoại Shin Case bằng WordPress" do sinh viên Đoàn Mạnh Quân thực hiện dưới sự hướng dẫn của ThS. Nguyễn Mạnh Hùng (Khoa Công nghệ Thông tin – Trường Đại học Hải Phòng) và sự hỗ trợ thực tế từ Công ty Cổ phần Thương mại Andin, giải quyết bài toán số hóa toàn diện quy trình kinh doanh cho chuỗi bán lẻ phụ kiện điện thoại.

+-----------------------------------------------------------------------------------+
|                            BÀI TOÁN KINH DOANH SHIN CASE                          |
+-----------------------------------------------------------------------------------+
|  Hiện trạng thủ công:                  |  Mục tiêu hệ thống hóa:                  |
|  - Chốt đơn phân tán qua MXH           |  -> Tập trung dữ liệu đơn hàng tự động   |
|  - Thất thoát 25-35% đơn vào giờ cao điểm |  -> Giỏ hàng & Checkout realtime 24/7    |
|  - Sai lệch tồn kho thủ công           |  -> Đồng bộ tồn kho tự động qua RDBMS    |
|  - Chi phí vận hành trung gian cao     |  -> Tự chủ nền tảng với chi phí tối ưu   |
+-----------------------------------------------------------------------------------+

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

Trước khi triển khai dự án, thương hiệu Shin Case vận hành chủ yếu dựa trên bán lẻ trực tiếp tại cửa hàng và tiếp thị phân tán qua mạng xã hội:

  • Tỷ lệ thất thoát đơn hàng: Việc tư vấn và chốt đơn thủ công qua tin nhắn dẫn đến tình trạng quá tải, phản hồi chậm trễ, tỷ lệ bỏ rơi đơn hàng lên tới 35%.
  • Quản lý tồn kho thiếu đồng bộ: Không có cơ chế kiểm soát tồn kho tức thời giữa cửa hàng vật lý và kênh online, gây ra tình trạng hủy đơn do hết hàng.
  • Trải nghiệm khách hàng rời rạc: Thiếu công cụ tra cứu thông số kỹ thuật (độ chống va đập, chất liệu ốp, dòng máy tương thích), không có hệ thống lưu vết lịch sử giao dịch và tích điểm trung thành.

Mục tiêu dự án

  1. Xây dựng nền tảng E-Commerce chuyên biệt: Phát triển cổng thông tin và bán hàng trực tuyến toàn diện cho thương hiệu Shin Case với giao diện tối ưu UI/UX, tương thích đa thiết bị (Responsive Web Design).
  2. Chuẩn hóa quy trình nghiệp vụ: Số hóa toàn bộ chu trình từ tìm kiếm sản phẩm, quản lý giỏ hàng, đặt hàng, xử lý phân quyền người dùng (Role-Based Access Control) đến quản trị danh mục và báo cáo doanh thu.
  3. Tối ưu hóa hiệu năng và bảo mật: Đạt điểm Google PageSpeed Insights $\ge 85$, thời gian phản hồi máy chủ (TTFB) $< 400\text{ ms}$, vận hành ổn định với tối thiểu 100 người dùng đồng thời (Concurrent Users).
  4. Tối ưu hóa công cụ tìm kiếm (SEO On-page): Cấu trúc Schema Markup chuẩn cho E-commerce, tối ưu thẻ meta, URL thân thiện, nâng cao khả năng tiếp cận khách hàng tự nhiên.

Giải pháp kỹ thuật và căn cứ lựa chọn

Dự án lựa chọn mô hình kiến trúc web trên nền tảng Hệ quản trị nội dung WordPress (Content Management System - CMS) kết hợp hệ sinh thái thương mại điện tử WooCommerce và cơ sở dữ liệu quan hệ MySQL, vận hành trên máy chủ web Apache/Nginx.

+---------------------------------------------------------------------------+
|                          KIẾN TRÚC STACK LỰA CHỌN                         |
+---------------------------------------------------------------------------+
| Presentation:  HTML5, CSS3, JavaScript (ES6+), Bootstrap 5/Tailwind       |
| Application:   PHP 8.1 / 8.2 Engine, WordPress Core 6.4+, WooCommerce 8.x |
| Database:      MySQL 8.0 / MariaDB 10.6 (InnoDB Engine, UTF8MB4)          |
| Web Server:    Apache 2.4 / Nginx Reverse Proxy trên Linux (Ubuntu Server)|
+---------------------------------------------------------------------------+

Lý do lựa chọn: WordPress hiện chiếm hơn 42.8% thị phần của top 10 triệu website hàng đầu thế giới và nắm giữ 75% thị phần mã nguồn mở CMS. Nền tảng cung cấp kiến trúc Module (Plugin & Theme) linh hoạt, hỗ trợ API mở rộng, chi phí bản quyền 0 đồng (giấy phép GNU GPLv2), rút ngắn 60% thời gian phát triển so với việc lập trình thuần từ đầu mà vẫn đảm bảo tính an toàn và khả năng mở rộng.

Chỉ số kết quả kỳ vọng (Measurable Metrics)

  • Tốc độ tải trang: $\le 1.8\text{ s}$ trên mạng 4G tiêu chuẩn.
  • Tính toàn vẹn dữ liệu: Sai số tồn kho và tính toán giỏ hàng đạt mức $0%$.
  • Khả năng phục vụ: Tỷ lệ uptime hệ thống đạt $\ge 99.8%$.
  • Mức độ sẵn sàng vận hành: 100% các Use Case cốt lõi (Đăng nhập, Quản lý sản phẩm, Giỏ hàng, Thanh toán, Tra cứu đơn hàng) vượt qua kiểm thử chấp nhận người dùng (UAT).

Phạm vi và giới hạn

  • Phạm vi: Triển khai đầy đủ phân hệ Frontend cho khách vãng lai/thành viên và Dashboard phân hệ Backend cho Quản trị viên (Admin), Nhân viên quản lý đơn hàng/sản phẩm. Hệ thống thanh toán tích hợp phương thức COD (Cash on Delivery) và Chuyển khoản ngân hàng trực tiếp (Direct Bank Transfer).
  • Giới hạn: Giai đoạn 1 chưa tích hợp cổng thanh toán trực tuyến trung gian (VNPay, MoMo) qua Webhook IPN thời gian thực và chưa đồng bộ phần mềm quản lý ERP ngoại vi.

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

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

So sánh giải pháp công nghệ

Tiêu chí Lập trình Native (PHP/Laravel) Nền tảng đóng SaaS (Shopify/Haravan) Giải pháp Đề tài: WordPress + MySQL
Chi phí đầu tư ban đầu Rất cao (20 - 50 triệu VNĐ) Thấp (chỉ trả phí khởi tạo) Rất thấp (Tối ưu hạ tầng lưu trữ & domain)
Chi phí duy trì hàng tháng Chi phí bảo trì hạ tầng Cao (Phí thuê bao + % hoa hồng đơn) 0 VNĐ phí hoa hồng, chỉ duy trì Server
Thời gian phát triển Kéo dài (3 - 6 tháng) Rất nhanh (1 - 2 tuần) Nhanh chóng (3 - 4 tuần hoàn thiện)
Khả năng tùy biến & CSDL Hoàn toàn làm chủ mã nguồn Bị giới hạn trong hệ sinh thái SaaS Toàn quyền can thiệp CSDL & Source code
Hỗ trợ cộng đồng & Plugins Phải tự xây dựng module Có App Store nhưng trả phí định kỳ Hơn 60.000 plugin, cộng đồng toàn cầu

Ma trận ưu tiên yêu cầu người dùng (MoSCoW)

  • Must have (Bắt buộc có): Đăng ký/đăng nhập/xác thực tài khoản; Xem chi tiết & tìm kiếm sản phẩm theo tên/danh mục; Quản lý giỏ hàng (thêm, cập nhật số lượng, xóa); Quy trình đặt hàng và lưu đơn; Trang quản trị CRUD sản phẩm, danh mục và cập nhật trạng thái đơn hàng.
  • Should have (Nên có): Bộ lọc sản phẩm theo mức giá/chất liệu; Phân quyền Admin - Nhân viên; Hệ thống đánh giá & chấm điểm sao (Star Rating); Khôi phục mật khẩu qua Email token.
  • Could have (Có thể mở rộng): Tích hợp live chat tư vấn; Mã giảm giá khuyến mại tự động; Module sản phẩm bán chạy nhất (Best Sellers).
  • Won't have (Chưa thực hiện đợt này): Thanh toán tự động qua cổng thẻ Visa/Mastercard quốc tế; Ứng dụng di động Native iOS/Android.

Rào cản kỹ thuật và phân tích khoảng trống

Thách thức lớn nhất nằm ở việc cân bằng giữa tính năng phong phú của WordPress và tốc độ phản hồi CSDL khi dữ liệu wp_postswp_postmeta phình to. Giải pháp là chuẩn hóa cấu trúc truy vấn, tạo Index cho các trường lọc chính và triển khai cơ chế Object Cache nhằm giảm tải truy vấn lặp lại đến RDBMS.


Thiết kế hệ thống

Kiến trúc hệ thống

Hệ thống tuân thủ mô hình kiến trúc phân tầng chuẩn (3-Tier Layered Architecture), đảm bảo tách biệt rõ ràng giữa tầng giao diện người dùng, tầng xử lý logic nghiệp vụ và tầng dữ liệu bền vững.

graph TD
    Client[Client: Web Browser / Mobile Web] -->|HTTP/HTTPS Request| WebServer[Web Server: Apache / Nginx]
    WebServer -->|PHP-FPM Processing| WPApp[WordPress Application Engine]
    
    subgraph "Tầng Xử lý Nghiệp vụ & Module"
        WPApp --> AuthMod[Authentication & RBAC Module]
        WPApp --> ProdMod[Product & Catalog Manager]
        WPApp --> CartMod[Cart & Calculation Engine]
        WPApp --> OrderMod[Order & Checkout Processor]
    end
    
    subgraph "Tầng Cơ sở Dữ liệu (RDBMS)"
        AuthMod --> MySQL[(MySQL Database Server)]
        ProdMod --> MySQL
        CartMod --> MySQL
        OrderMod --> MySQL
    end

Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu kế thừa và mở rộng lược đồ chuẩn của WordPress, đảm bảo tính toàn vẹn quan hệ (Referential Integrity) qua các bảng thực thể chính:

+-------------------+       +-----------------------+       +-------------------+
|     wp_users      |       |      wp_usermeta      |       |     wp_posts      |
+-------------------+       +-----------------------+       +-------------------+
| ID (PK, bigint)   |<----->| umeta_id (PK, bigint) |       | ID (PK, bigint)   |
| user_login        |       | user_id (FK, bigint)  |       | post_author (FK)  |
| user_pass         |       | meta_key (varchar)    |       | post_title (text) |
| user_email        |       | meta_value (longtext) |       | post_status       |
+-------------------+       +-----------------------+       | post_type         |
                                                            +-------------------+
                                                                      |
+-------------------+       +-----------------------+                 |
|     wp_terms      |       | wp_term_relationships |                 |
+-------------------+       +-----------------------+                 |
| term_id (PK)      |<----->| object_id (FK, bigint)|<----------------+
| name (varchar)    |       | term_taxonomy_id (FK) |
| slug (varchar)    |       +-----------------------+
+-------------------+

Đoạn mã DDL định nghĩa bảng quản lý tài khoản và phân quyền bổ trợ:

-- Cấu trúc bảng người dùng và phân quyền hệ thống Shin Case
CREATE TABLE IF NOT EXISTS `shincase_user_roles` (
    `role_id` INT(11) NOT NULL AUTO_INCREMENT,
    `role_name` VARCHAR(50) NOT NULL UNIQUE,
    `permissions` TEXT NOT NULL,
    PRIMARY KEY (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE IF NOT EXISTS `shincase_order_logs` (
    `log_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
    `order_id` BIGINT(20) UNSIGNED NOT NULL,
    `action_by` BIGINT(20) UNSIGNED NOT NULL,
    `previous_status` VARCHAR(50) NOT NULL,
    `new_status` VARCHAR(50) NOT NULL,
    `updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY (`log_id`),
    INDEX `idx_order_lookup` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Thiết kế logic & API Hook

Hệ thống sử dụng cơ chế WordPress Action & Filter Hooks và mở rộng chuẩn WP REST API để phục vụ xử lý bất đồng bộ (AJAX) cho các tác vụ thêm vào giỏ hàng và kiểm tra trạng thái đơn:

Endpoint Tra cứu / Đặt hàng:
- POST /wp-json/shincase/v1/cart/add        -> Thêm sản phẩm vào giỏ, kiểm tra tồn kho.
- GET  /wp-json/shincase/v1/orders/track    -> Tra cứu đơn hàng theo mã định danh và số điện thoại.
- POST /wp-json/shincase/v1/checkout/submit -> Tiếp nhận Payload đơn hàng, khóa tồn kho, sinh mã đơn.

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

Dự án áp dụng mô hình phát triển phần mềm Agile/Scrum thu gọn, chia vòng đời 8 tuần thành 4 Sprint rõ ràng:

+-------------------------------------------------------------------------------+
|                      LỘ TRÌNH TRIỂN KHAI SPRINT (8 TUẦN)                      |
+-------------------------------------------------------------------------------+
| Sprint 1 [Tuần 1-2]: Khảo sát, thu thập yêu cầu, đặc tả Use Case, thiết kế DB |
| Sprint 2 [Tuần 3-4]: Dựng Core, cấu hình CSDL, Theme UI/UX, Module Sản phẩm  |
| Sprint 3 [Tuần 5-6]: Phát triển Giỏ hàng, Checkout, Phân quyền RBAC, Admin   |
| Sprint 4 [Tuần 7-8]: Tích hợp kiểm thử UAT, tối ưu bảo mật, Benchmark & Go-Live|
+-------------------------------------------------------------------------------+

Ma trận quản trị rủi ro kỹ thuật

Rủi ro tiềm ẩn Mức độ Biện pháp giảm thiểu
Xung đột Plugin/Theme Trung bình Đóng gói chức năng riêng qua Custom Child Theme & Must-Use (MU) Plugins
Lỗ hổng SQL Injection/XSS Cao Sử dụng đối tượng chuẩn $wpdb->prepare(), hàm sanitize_text_field()wp_nonce_field()
Nút thắt cổ chai hiệu năng Cao Kích hoạt bộ nhớ đệm WP Super Cache, nén ảnh định dạng WebP, tối ưu bảng wp_options

Implementation và kết quả

Quy trình phát triển và hiện thực hóa mã nguồn

Quy trình phát triển tập trung vào việc tùy biến nghiệp vụ giỏ hàng và xác thực giao dịch, đảm bảo logic đặt hàng chính xác tuyệt đối.

Thuật toán kiểm tra tồn kho và thêm vào giỏ hàng

Đoạn mã xử lý kiểm tra số lượng khả dụng trước khi cập nhật Session giỏ hàng:

<?php
/**
 * Hook xử lý kiểm tra tính hợp lệ và thêm sản phẩm vào giỏ hàng Shin Case
 */
add_action('wp_ajax_shincase_ajax_add_to_cart', 'shincase_ajax_add_to_cart_handler');
add_action('wp_ajax_nopriv_shincase_ajax_add_to_cart', 'shincase_ajax_add_to_cart_handler');

function shincase_ajax_add_to_cart_handler() {
    // 1. Kiểm tra mã xác thực CSRF Nonce bảo mật
    check_ajax_referer('shincase_security_nonce', 'security');

    $product_id = isset($_POST['product_id']) ? intval($_POST['product_id']) : 0;
    $quantity   = isset($_POST['quantity']) ? intval($_POST['quantity']) : 1;

    if ($product_id <= 0 || $quantity <= 0) {
        wp_send_json_error(array('message' => 'Dữ liệu sản phẩm không hợp lệ!'));
        wp_die();
    }

    // 2. Truy vấn đối tượng sản phẩm và kiểm tra tồn kho
    $product = wc_get_product($product_id);
    if (!$product || !$product->is_purchasable()) {
        wp_send_json_error(array('message' => 'Sản phẩm hiện không hỗ trợ đặt hàng!'));
        wp_die();
    }

    // 3. Kiểm tra số lượng tồn kho (Stock Quantity Verification)
    if ($product->managing_stock()) {
        $stock_quantity = $product->get_stock_quantity();
        $cart_item_qty  = 0;

        foreach (WC()->cart->get_cart() as $cart_item_key => $values) {
            if ($values['product_id'] == $product_id) {
                $cart_item_qty += $values['quantity'];
            }
        }

        if (($cart_item_qty + $quantity) > $stock_quantity) {
            wp_send_json_error(array(
                'message' => sprintf('Số lượng yêu cầu vượt quá tồn kho (Chỉ còn %d sản phẩm).', $stock_quantity)
            ));
            wp_die();
        }
    }

    // 4. Thực hiện thêm vào giỏ hàng
    $cart_item_key = WC()->cart->add_to_cart($product_id, $quantity);
    if ($cart_item_key) {
        wp_send_json_success(array(
            'message'    => 'Thêm vào giỏ hàng thành công!',
            'cart_count' => WC()->cart->get_cart_contents_count(),
            'cart_total' => WC()->cart->get_cart_total()
        ));
    } else {
        wp_send_json_error(array('message' => 'Không thể thêm sản phẩm vào giỏ hàng.'));
    }
    wp_die();
}
?>

Kiểm thử và đánh giá hệ thống (Testing & Validation)

Hệ thống trải qua 3 giai đoạn kiểm thử toàn diện: Unit Test, Integration Test và User Acceptance Test (UAT) với 45 kịch bản kiểm thử chi tiết.

Kết quả kiểm thử chức năng (Functional Testing Summary)

Phân hệ chức năng Số lượng Test Cases Tỷ lệ Pass (%) Lỗi phát hiện (Bugs) Tình trạng xử lý
Xác thực & Tài khoản 10 100% 2 (Validation regex email) Đã khắc phục 100%
Danh mục & Sản phẩm 12 100% 1 (Lỗi upload ảnh dung lượng lớn) Đã khắc phục 100%
Giỏ hàng & Đơn hàng 15 100% 3 (Xử lý concurrency tồn kho) Đã khắc phục 100%
Admin Dashboard & RBAC 8 100% 0 Đạt chuẩn
Tổng cộng 45 100% 6 Hoàn thành đóng bug

Benchmark hiệu năng (Performance Metrics)

  • Lighthouse Performance Score: Desktop: 94/100 | Mobile: 88/100.
  • First Contentful Paint (FCP): $0.9\text{ s}$.
  • Largest Contentful Paint (LCP): $1.6\text{ s}$.
  • Cumulative Layout Shift (CLS): $0.02$ (Đạt mức lý tưởng theo chuẩn Web Vitals).
  • Stress Test (Tải giả lập Apache Benchmark): Hệ thống xử lý thành công $150\text{ requests/second}$ mà không phát sinh lỗi mã $5xx$.
+--------------------------------------------------------------------+
|                KẾT QUẢ GOOGLE LIGHTHOUSE BENCHMARK                 |
+--------------------------------------------------------------------+
|  Performance:       [=========================>]  94/100           |
|  Accessibility:     [==========================>] 96/100           |
|  Best Practices:    [=========================>]  92/100           |
|  SEO:               [==========================>] 98/100           |
+--------------------------------------------------------------------+

Kết quả đạt được

Hệ thống đã hoàn thiện 100% các chức năng đề ra trong bản đặc tả yêu cầu đồ án:

  1. Giao diện người dùng hoàn chỉnh: Trang chủ, Trang danh mục sản phẩm (Ốp lưng chống sốc, ốp thời trang, phụ kiện sạc cáp), Trang chi tiết sản phẩm chuẩn SEO, Giỏ hàng động, Trang thanh toán tinh gọn 1 bước (One-step Checkout).
  2. Hệ thống phân quyền 4 cấp độ: Quản trị viên (Toàn quyền hệ thống), Nhân viên bán hàng (Quản lý sản phẩm, đơn hàng, duyệt đánh giá), Khách hàng thành viên (Lưu địa chỉ, theo dõi lịch sử mua hàng, tích điểm), Khách vãng lai (Mua hàng không cần đăng ký).
  3. Phản hồi UAT: Đạt điểm hài lòng 4.8/5.0 dựa trên khảo sát trải nghiệm của 30 người dùng thử nghiệm tại Công ty Cổ phần Thương mại Andin.

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

Điểm cải tiến kỹ thuật nổi bật

  1. Tối ưu hóa quy trình Checkout giảm ma sát: Tinh gọn các trường thông tin không cần thiết trong biểu mẫu WooCommerce tiêu chuẩn, giảm thời gian hoàn tất đơn hàng từ 4.5 phút xuống còn dưới 1.2 phút (giảm 73% thời gian thao tác).
  2. Cơ chế lọc sản phẩm Dynamic AJAX Filter: Lọc sản phẩm tức thì theo loại máy (iPhone, Samsung, Xiaomi) và tính năng (chống sốc, trong suốt, in hình) mà không cần tải lại toàn bộ trang, giúp giảm 45% lượng băng thông truyền tải.
  3. Cấu trúc dữ liệu có cấu trúc (Schema Markup): Tích hợp tự động Schema Product, Review và AggregateRating, giúp website Shin Case hiển thị thông tin giá bán và đánh giá sao trực tiếp trên kết quả tìm kiếm Google SERP.

So sánh định lượng với các giải pháp hiện hành

Tiêu chí kỹ thuật Giải pháp truyền thống (Fanpage/Bán lẻ) Website Shin Case (Đề tài) Mức độ cải thiện (%)
Thời gian tiếp nhận & tạo đơn 8 - 12 phút / đơn $\le 1\text{ phút (Tự động)}$ Tăng tốc 88%
Sai lệch dữ liệu tồn kho 12 - 18% sai sót $0%$ Giảm 100% sai lệch
Khả năng phục vụ đồng thời 3 - 5 khách hàng $> 100\text{ khách hàng}$ Tăng gấp 20+ lần
Chi phí vận hành đơn hàng 15.000 VNĐ / đơn $\approx 2.500\text{ VNĐ / đơn}$ Tiết kiệm 83% chi phí

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

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

  • Kịch bản Khách hàng: Người dùng tìm kiếm ốp lưng iPhone 15 Pro Max -> Truy cập website qua liên kết chuẩn SEO -> Sử dụng bộ lọc chọn loại "Chống sốc" -> Xem đánh giá và hình ảnh thực tế -> Thêm vào giỏ -> Nhập thông tin giao hàng & chọn COD -> Nhận mã tra cứu đơn hàng qua màn hình và Email thông báo.
  • Kịch bản Quản trị/Nhân viên: Nhân viên nhận thông báo đơn hàng mới trên Admin Dashboard -> Kiểm tra thông tin -> Đổi trạng thái sang "Đang xử lý/Đã giao cho đơn vị vận chuyển" -> Hệ thống tự động trừ kho và gửi email cập nhật trạng thái tới khách hàng.

Yêu cầu cấu hình và hướng dẫn triển khai hệ thống

+----------------------------------------------------------------------------+
|                    YÊU CẦU HẠ TẦNG PHẦN CỨNG & PHẦN MỀM                    |
+----------------------------------------------------------------------------+
| CPU:          2 Cores (Tối thiểu: 1 Core 2.0 GHz)                          |
| RAM:          2 GB (Khuyến nghị: 4 GB cho môi trường Production)           |
| Dung lượng:   20 GB SSD NVMe                                               |
| HĐH / Server: Ubuntu Server 22.04 LTS / Apache 2.4.x hoặc Nginx 1.24.x     |
| Runtime / DB: PHP 8.1+ (FPM), MySQL 8.0 / MariaDB 10.6                     |
| Chứng chỉ:    SSL/TLS Let's Encrypt kích hoạt HTTPS bảo mật                |
+----------------------------------------------------------------------------+

Quy trình cài đặt 4 bước:

  1. Bước 1 (Thiết lập Web Server & CSDL): Cài đặt LAMP Stack, tạo database shincase_db và cấp quyền user CSDL chuyên biệt.
  2. Bước 2 (Triển khai Source Code): Đưa mã nguồn vào thư mục /var/www/html/shincase, cấu hình quyền sở hữu chown -R www-data:www-data.
  3. Bước 3 (Cấu hình môi trường): Khai báo các thông số kết nối CSDL và Salt keys trong tệp wp-config.php:
    define('DB_NAME', 'shincase_db');
    define('DB_USER', 'shincase_user');
    define('DB_PASSWORD', 'Secure_Pass_2024!#');
    define('DB_HOST', 'localhost');
    define('DB_CHARSET', 'utf8mb4');
    define('DB_COLLATE', '');
    
  4. Bước 4 (Kích hoạt Theme & Tối ưu Caching): Kích hoạt Theme Shin Case, chạy tiến trình import dữ liệu mẫu WooCommerce và cấu hình Mod_Rewrite phục vụ Permalinks chuẩn SEO.

Phân tích hiệu quả kinh tế và lộ trình ROI

  • Tổng mức đầu tư hạ tầng ban đầu: Khoảng 1.800.000 VNĐ / năm (Tên miền quốc tế .com + Cloud VPS 2GB RAM).
  • Điểm hòa vốn (Break-even Point): Dự kiến đạt được ngay sau 2 tháng vận hành khi cửa hàng tiết kiệm được chi phí thuê ngoài nhân sự trực chát và cắt giảm tỷ lệ hủy đơn hàng online.

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

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

  • Hệ thống cơ sở dữ liệu WordPress mặc định lưu toàn bộ thuộc tính sản phẩm dưới dạng EAV (Entity-Attribute-Value) trong bảng wp_postmeta, dễ dẫn đến tình trạng suy giảm hiệu năng khi quy mô danh mục vượt quá 50.000 SKU nếu không có giải pháp Elasticsearch bổ trợ.
  • Chưa hỗ trợ xử lý thanh toán tự động qua Webhook cổng thẻ và chưa tích hợp API tự động đẩy đơn sang các đơn vị vận chuyển (Giao Hàng Nhanh, Viettel Post).

Hướng nâng cấp trong tương lai

  1. Tích hợp cổng thanh toán trực tuyến: Tích hợp SDK thanh toán quét mã QR VNPay-QR, VietQR, MoMo tự động xác thực trạng thái giao dịch theo thời gian thực (Real-time IPN).
  2. Đồng bộ API Đơn vị Vận chuyển: Kết nối trực tiếp hệ thống API của Giao Hàng Nhanh (GHN) / Giao Hàng Tiết Kiệm (GHTK) để tự động tính phí ship theo tọa độ và tạo vận đơn tự động.
  3. Ứng dụng Trí tuệ Nhân tạo (AI Recommendation): Triển khai thuật toán lọc cộng tác (Collaborative Filtering) để gợi ý mẫu ốp lưng phù hợp với từng dòng máy khách hàng đang truy cập.

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

+---------------------------------------------------------------------------+
|                          ĐỐI TƯỢNG HƯỞNG LỢI                              |
+---------------------------------------------------------------------------+
| [1] SINH VIÊN CNTT:                                                       |
|     - Tài liệu tham khảo chuẩn mực về phân tích thiết kế Use Case, RDBMS  |
|     - Mẫu hình đồ án tốt nghiệp thực chiến gắn liền với doanh nghiệp      |
|                                                                           |
| [2] LẬP TRÌNH VIÊN WEB:                                                   |
|     - Nắm vững kỹ thuật tùy biến Hook/Filter và tối ưu hóa MySQL          |
|     - Framework xử lý AJAX và kiểm soát an toàn bảo mật dữ liệu           |
|                                                                           |
| [3] DOANH NGHIỆP BÁN LẺ (SMEs):                                           |
|     - Mô hình triển khai E-Commerce chi phí thấp, tự chủ 100% dữ liệu     |
|     - Cắt giảm 60-80% chi phí vận hành và rủi ro thất thoát đơn hàng      |
+---------------------------------------------------------------------------+

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

1. Cấu hình máy chủ tối thiểu để vận hành website Shin Case là gì?

Hệ thống yêu cầu máy chủ Linux (Ubuntu/CentOS) với tối thiểu 1 Core CPU, 2 GB RAM và 20 GB ổ cứng SSD. Môi trường phần mềm yêu cầu PHP phiên bản 8.1 trở lên, MySQL phiên bản 8.0 hoặc MariaDB 10.6, máy chủ web Apache 2.4/Nginx có kích hoạt module mod_rewrite và chứng chỉ SSL HTTPS.

2. Hệ thống xử lý thế nào khi có nhiều người cùng đặt một sản phẩm sắp hết hàng?

Tại thời điểm khách hàng nhấn thanh toán, hệ thống sẽ kích hoạt giao dịch CSDL (Database Transaction Lock) kết hợp hàm xác thực tồn kho wc_get_product()->get_stock_quantity(). Nếu số lượng tồn kho không đủ đáp ứng, hệ thống sẽ tự động chặn đơn hàng phát sinh, rollback giao dịch và hiển thị thông báo tức thời tới khách hàng.

3. Website có thể tích hợp với các hệ thống quản lý bán hàng (POS) bên ngoài không?

Hoàn toàn có thể. Do hệ thống được xây dựng trên nền tảng mở của WordPress và WooCommerce, lập trình viên có thể sử dụng hệ thống WooCommerce REST API v3 (hỗ trợ xác thực qua OAuth/Basic Auth) để đồng bộ dữ liệu hai chiều về sản phẩm, khách hàng và đơn hàng với bất kỳ phần mềm POS ngoại vi nào (như KiotViet, Sapo).

4. Chi phí duy trì hệ thống hàng năm ước tính là bao nhiêu?

Chi phí vận hành hàng năm cực kỳ tối ưu, bao gồm phí duy trì tên miền (khoảng 250.000 - 350.000 VNĐ/năm) và chi phí thuê Cloud VPS lưu trữ (khoảng 1.200.000 - 1.800.000 VNĐ/năm). Hệ thống không phát sinh phí thuê bao định kỳ hay phí phần trăm hoa hồng trên từng đơn hàng như các nền tảng SaaS.

5. Dữ liệu khách hàng và đơn hàng có an toàn trước các cuộc tấn công mạng không?

Dự án áp dụng đầy đủ các nguyên tắc bảo mật chuẩn OWASP: lọc dữ liệu đầu vào qua các hàm sanitize, phòng chống tấn công SQL Injection bằng prepared statements ($wpdb->prepare), ngăn chặn tấn công Cross-Site Request Forgery bằng mã token một lần (wp_nonce), và mã hóa toàn bộ thông tin đăng nhập bằng thuật toán băm (hashing) chuẩn của WordPress.


Kết luận

Đồ án tốt nghiệp "Xây dựng website bán phụ kiện điện thoại Shin Case bằng WordPress" của sinh viên Đoàn Mạnh Quân đã hiện thực hóa thành công một giải pháp công nghệ toàn diện, giải quyết trọn vẹn bài toán chuyển đổi số từ mô hình bán hàng truyền thống sang nền tảng E-Commerce hiện đại. Đề tài không chỉ hoàn thành xuất sắc các mục tiêu học thuật về phân tích thiết kế hệ thống, mô hình hóa Use Case, thiết kế cơ sở dữ liệu quan hệ và tối ưu hóa hiệu năng phần mềm, mà còn mang lại giá trị thực tiễn cao cho hoạt động kinh doanh của thương hiệu Shin Case và đối tác Công ty Cổ phần Thương mại Andin. Đây là tài liệu tham khảo giá trị cho sinh viên ngành Công nghệ thông tin và là giải pháp mẫu mực cho các doanh nghiệp bán lẻ đang tìm kiếm hướng đi chuyển đổi số hiệu quả, tiết kiệm chi phí.