Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số và sự bùng nổ của thị trường thương mại điện tử (TMĐT) mô hình B2C (Business-to-Consumer), việc xây dựng một hệ sinh thái quản lý bán hàng chuyên nghiệp là yếu tố sống còn đối với các doanh nghiệp bán lẻ. Theo các báo cáo kinh tế số tại Việt Nam, doanh thu TMĐT B2C duy trì tốc độ tăng trưởng bình quân 20–25%/năm. Đối với Công ty Cổ phần Thương mại MQ Việt Nam (MQ VN) – đơn vị mở rộng kinh doanh từ bất động sản sang phân phối các sản phẩm thời trang nữ (giày dép, túi xách) qua nền tảng trực tuyến bili.vn – sự gia tăng nhanh chóng về lượng truy cập và số lượng đơn hàng đặt ra bài toán cấp bách về năng lực quản trị vận hành.

flowchart LR
    A[Khách hàng đặt hàng bili.vn] --> B[Kinh doanh duyệt đơn]
    B --> C[Kho nhặt hàng & đóng gói]
    C --> D[Thu ngân kiểm soát COD/CK]
    D --> E[Vận chuyển giao hàng]
    E --> F[Hoàn tất đơn hàng]

Vấn đề thực tế và điểm nghẽn vận hành (Problem Statement)

Khảo sát quy trình nghiệp vụ thực tế tại Công ty Cổ phần Thương mại MQ Việt Nam chỉ ra những điểm nghẽn nghiêm trọng trong hệ thống cũ:

  • Phân bổ đơn hàng thủ công: Việc gán đơn hàng cho nhân viên kinh doanh chưa được tự động hóa, dẫn đến tình trạng phân bổ không đồng đều và gia tăng thời gian chờ xử lý lên tới 4–6 giờ/đơn.
  • Xung đột và trùng lặp dữ liệu: Thiếu cơ chế khóa phiên (locking mechanism) và phân định trạng thái rõ ràng giữa các bộ phận, khiến 8–12% số đơn hàng bị xử lý trùng lặp hoặc sót đơn.
  • Quản trị kho thiếu đồng bộ: Sản phẩm thời trang có nhiều biến thể phức tạp (Size, Color, SKU), nhưng hệ thống cũ chưa liên kết trừ tồn kho theo thời gian thực (real-time inventory updates), tỷ lệ sai lệch tồn kho thực tế và sổ sách lên đến 15%.
  • Bảo mật và phân quyền lỏng lẻo: Chưa triển khai phân quyền đa cấp dựa trên vai trò (Role-Based Access Control - RBAC), tiềm ẩn nguy cơ lộ lọt dữ liệu khách hàng và sai lệch báo cáo tài chính.

Mục tiêu dự án

  1. Chuẩn hóa quy trình nghiệp vụ: Xây dựng luồng xử lý đơn hàng khép kín qua 5 giai đoạn: Chờ xử lý $\rightarrow$ Đã duyệt $\rightarrow$ Đã nhặt hàng $\rightarrow$ Đã xác nhận thanh toán $\rightarrow$ Hoàn tất giao hàng.
  2. Thiết kế kiến trúc hệ thống hướng đối tượng: Ứng dụng ngôn ngữ mô hình hóa UML (Unified Modeling Language) để đặc tả chi tiết kiến trúc, dữ liệu và tương tác hệ thống.
  3. Phát triển CSDL chuẩn 3NF: Xây dựng cơ sở dữ liệu quan hệ (RDBMS) tối ưu hóa toàn vẹn dữ liệu và hỗ trợ truy vấn báo cáo tốc độ cao.
  4. Triển khai ứng dụng web chuyên biệt: Phát triển hệ thống quản lý bán hàng trên nền tảng PHP và MySQL, đáp ứng yêu cầu truy cập đồng thời và khả năng quản trị từ xa của ban giám đốc.

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

  • Phạm vi: Toàn bộ quy trình quản lý danh mục sản phẩm, quản lý kho hàng đa thuộc tính (màu sắc, kích thước), xử lý đơn hàng đa phòng ban, quản lý khách hàng và phân tích báo cáo doanh thu tại Công ty Cổ phần Thương mại MQ Việt Nam.
  • Giới hạn: Hệ thống tập trung vào nghiệp vụ nội bộ và nền tảng web bán lẻ; chưa bao gồm tích hợp tự động qua API cổng thanh toán quốc tế và cổng vận chuyển bên thứ ba.

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

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

Doanh nghiệp vừa và nhỏ (SME) tại Việt Nam thường đứng trước 3 phương án: sử dụng phần mềm đóng gói SaaS (Shopify, Haravan), mua module phần mềm sẵn có (Nhanh.vn), hoặc tự thiết kế hệ thống theo yêu cầu (Custom-built OMS).

Tiêu chí đánh giá Nền tảng SaaS (Shopify/Haravan) Nền tảng đóng gói (Nhanh.vn) Hệ thống tùy biến MQ VN
Chi phí duy trì Cao (Phí thuê bao tháng + % hoa hồng đơn) Trung bình (Thuê bao năm) Tối ưu (Chi phí máy chủ cố định)
Độ linh hoạt quy trình Cố định theo chuẩn quốc tế Giới hạn theo cấu hình có sẵn Tùy biến 100% theo workflow 5 bước
Tích hợp module nội bộ Phức tạp, tốn phí plugin Khó mở rộng thêm tính năng riêng Tích hợp sẵn chấm công, nhân sự, kho
Bảo mật dữ liệu Lưu trữ trên Cloud nhà cung cấp Lưu trữ trên Cloud nhà cung cấp Toàn quyền kiểm soát trên máy chủ riêng

Phân tích yêu cầu theo ma trận MoSCoW

  • Must-have (Bắt buộc): Module đăng nhập phân quyền đa cấp (RBAC), quy trình duyệt đơn hàng 5 trạng thái, quản lý sản phẩm theo SKU/Màu/Kích cỡ, trừ tồn kho tự động khi tạo đơn, xuất báo cáo doanh thu theo kỳ.
  • Should-have (Nên có): Chức năng phân bổ đơn tự động cho nhân viên kinh doanh, quản lý thông tin chăm sóc khách hàng sau bán, giao diện responsive tương thích trình duyệt đa nền tảng.
  • Could-have (Có thể có): Lịch hẹn thông báo sự kiện, sinh nhật nhân viên và khách hàng, tích hợp chấm công nhân sự trên giao diện quản trị.
  • Won't-have (Chưa thực hiện): Tự động tạo mã vận đơn qua API đơn vị vận chuyển bên thứ ba, thanh toán tiền điện tử.

Thiết kế hệ thống

Hệ thống được thiết kế theo mô hình kiến trúc 3 tầng (3-Tier Architecture) hướng đối tượng (OOAD), đảm bảo tính module hóa và khả năng bảo trì:

graph TD
    subgraph Presentation_Layer [Tầng giao diện người dùng]
        UI1[Khách hàng - Web Frontend Bootstrap 5]
        UI2[Ban Giám Đốc / Quản trị viên]
        UI3[Kinh doanh / Kho / Thu ngân / Vận chuyển]
    end

    subgraph Business_Logic_Layer [Tầng xử lý nghiệp vụ - PHP 8.1 Backend]
        BLL1[Module Xác thực & Phân quyền RBAC]
        BLL2[State Engine Quản lý đơn hàng]
        BLL3[Inventory & Product Management]
        BLL4[Reporting & Data Export Service]
    end

    subgraph Data_Layer [Tầng dữ liệu - MySQL 8.0 RDBMS]
        DB[(MySQL Database Server)]
        Tables[orders / order_items / products / warehouse / categories]
    end

    UI1 -->|HTTP/HTTPS Request| BLL2
    UI2 -->|RBAC Admin Access| BLL1
    UI3 -->|Workflow Access| BLL2
    BLL1 --> BLL2
    BLL2 --> BLL3
    BLL3 --> BLL4
    BLL1 & BLL2 & BLL3 & BLL4 -->|PDO Prepared Statements| DB
    DB --- Tables

Ngăn xếp công nghệ (Technology Stack)

  • Backend: PHP 8.1+ (mô hình lập trình hướng đối tượng OOP, chuẩn PSR-12).
  • Cơ sở dữ liệu: MySQL 8.0 Community Server (Storage Engine: InnoDB, hỗ trợ Transaction ACID).
  • Web Server & Hệ điều hành: Apache HTTP Server 2.4 trên nền tảng Linux Ubuntu Server 22.04 LTS.
  • Frontend: HTML5, CSS3, JavaScript (ES6), Bootstrap 5.3, thư viện đồ thị dữ liệu.
  • Tích hợp văn phòng: Thư viện xuất nhập dữ liệu Microsoft Excel (.xlsx) và Word (.docx).

Thiết kế cơ sở dữ liệu quan hệ (RDBMS Schema)

Hệ thống chuẩn hóa lược đồ CSDL nhằm triệt tiêu dư thừa dữ liệu (3NF) với các bảng thực thể trọng tâm:

Tên bảng Khóa chính (PK) Khóa ngoại (FK) Các trường dữ liệu chính Mô tả chức năng
categories id (INT) parent_id name, description, status Phân cấp danh mục sản phẩm
products id (INT) category_id, created_by code, name, price, sell_price, total_quantity Lưu thông tin sản phẩm cơ sở
color id (INT) Không name, code, status Bảng mã màu sắc
size id (INT) Không name, status Bảng kích thước sản phẩm
warehouse id (INT) product_id, color_id, size_id quantity, thumb, status Quản lý tồn kho theo biến thể
orders id (INT) customer_id, created_by total_amount, paid_amount, payment_type, status Lưu thông tin tổng quát đơn hàng
order_items id (INT) order_id, warehouse_id, product_id price, quantity, discount, amount Chi tiết các mặt hàng trong đơn
-- Thiết kế cấu trúc bảng đơn hàng và chi tiết đơn hàng
CREATE TABLE `orders` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `customer_id` INT NOT NULL,
  `customer_name` VARCHAR(255) NOT NULL,
  `customer_phone` VARCHAR(20) NOT NULL,
  `customer_email` VARCHAR(150),
  `customer_address` TEXT NOT NULL,
  `total_amount` INT NOT NULL DEFAULT 0,
  `discount` INT DEFAULT 0,
  `fee_ship` INT DEFAULT 0,
  `paid_amount` INT NOT NULL DEFAULT 0,
  `payment_type` VARCHAR(50) NOT NULL COMMENT 'COD, BankTransfer',
  `status` INT NOT NULL DEFAULT 0 COMMENT '0:Chờ xử lý, 1:Đã duyệt, 2:Đã nhặt hàng, 3:Đã thanh toán/Xác nhận, 4:Hoàn tất, -1:Hủy',
  `created_at` INT NOT NULL,
  `approved_at` INT NULL,
  `paid_at` INT NULL,
  `finished_at` INT NULL,
  INDEX `idx_customer_phone` (`customer_phone`),
  INDEX `idx_order_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

CREATE TABLE `order_items` (
  `id` INT AUTO_INCREMENT PRIMARY KEY,
  `order_id` INT NOT NULL,
  `warehouse_id` INT NOT NULL,
  `product_id` INT NOT NULL,
  `price` INT NOT NULL,
  `quantity` INT NOT NULL,
  `discount` INT DEFAULT 0,
  `amount` INT NOT NULL,
  FOREIGN KEY (`order_id`) REFERENCES `orders`(`id`) ON DELETE CASCADE,
  FOREIGN KEY (`warehouse_id`) REFERENCES `warehouse`(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

Methodology

Dự án áp dụng phương pháp phát triển phần mềm lặp từng bước (Iterative Development) kết hợp nguyên lý phân tích thiết kế hướng đối tượng OOAD thông qua chuẩn mô hình hóa UML:

  • Biểu đồ Use Case: Đặc tả chi tiết các tác nhân (Khách hàng, Nhân viên Kinh doanh, Nhân viên Kho, Thu ngân, Nhân viên Vận chuyển, Ban Giám Đốc).
  • Biểu đồ tuần tự (Sequence Diagram): Mô hình hóa tương tác giữa Boundary, Control và Entity trong các ca sử dụng cốt lõi: Đặt hàng, Duyệt đơn, Trừ kho và Thanh toán.
  • Biểu đồ trạng thái (State Diagram): Kiểm soát vòng đời đơn hàng, ngăn chặn việc chuyển đổi trạng thái không hợp lệ.

Lộ trình thực hiện (Timeline 12 tuần)

  • Tuần 1–3: Khảo sát hiện trạng tại văn phòng MQ Việt Nam, phỏng vấn các phòng ban, đặc tả tài liệu yêu cầu SRS (Software Requirement Specification).
  • Tuần 4–6: Thiết kế CSDL, thiết kế kiến trúc hệ thống, xây dựng sơ đồ UML và thiết kế Wireframe/UI giao diện người dùng.
  • Tuần 7–9: Lập trình module Authentication, Product Management, Order Processing Engine, Warehouse Tracking.
  • Tuần 10–11: Kiểm thử tích hợp (Integration Testing), kiểm thử chấp nhận người dùng (UAT), tối ưu hóa hiệu năng truy vấn SQL.
  • Tuần 12: Đóng gói, triển khai hệ thống lên Linux Server và đào tạo vận hành nội bộ.

Implementation và kết quả

Development process

Quá trình phát triển tập trung vào việc giải quyết bài toán cốt lõi: Xử lý đơn hàng đa trạng thái đồng thời đảm bảo toàn vẹn dữ liệu kho hàng. Dưới đây là triển khai kỹ thuật của Controller xử lý duyệt đơn và cập nhật tồn kho an toàn bằng cơ chế Database Transaction trong PHP PDO:

<?php
declare(strict_types=1);

namespace App\Controllers;

use PDO;
use Exception;

class OrderController 
{
    private PDO $db;

    public function __construct(PDO $dbConnection) 
    {
        $this->db = $dbConnection;
    }

    /**
     * Xử lý duyệt đơn hàng và khóa trừ tồn kho an toàn
     * @param int $orderId
     * @param int $staffId
     * @return bool
     * @throws Exception
     */
    public function approveOrder(int $orderId, int $staffId): bool 
    {
        try {
            // Bắt đầu Transaction đảm bảo tính nguyên tố (ACID)
            $this->db->beginTransaction();

            // 1. Kiểm tra trạng thái đơn hàng hiện tại với SELECT ... FOR UPDATE
            $stmt = $this->db->prepare("SELECT status FROM orders WHERE id = :id FOR UPDATE");
            $stmt->execute([':id' => $orderId]);
            $currentStatus = $stmt->fetchColumn();

            if ($currentStatus === false) {
                throw new Exception("Lỗi: Đơn hàng #{$orderId} không tồn tại.");
            }
            if ((int)$currentStatus !== 0) { // 0: Chờ xử lý
                throw new Exception("Lỗi: Đơn hàng #{$orderId} không ở trạng thái Chờ xử lý.");
            }

            // 2. Lấy danh sách sản phẩm trong đơn hàng
            $stmtItems = $this->db->prepare(
                "SELECT warehouse_id, quantity FROM order_items WHERE order_id = :order_id"
            );
            $stmtItems->execute([':order_id' => $orderId]);
            $items = $stmtItems->fetchAll(PDO::FETCH_ASSOC);

            // 3. Kiểm tra và cập nhật trừ kho theo biến thể
            $updateStockStmt = $this->db->prepare(
                "UPDATE warehouse 
                 SET quantity = quantity - :qty 
                 WHERE id = :wh_id AND quantity >= :check_qty"
            );

            foreach ($items as $item) {
                $updateStockStmt->execute([
                    ':qty'       => $item['quantity'],
                    ':wh_id'     => $item['warehouse_id'],
                    ':check_qty' => $item['quantity']
                ]);

                if ($updateStockStmt->rowCount() === 0) {
                    throw new Exception("Lỗi: Hàng tồn trong kho không đủ cho biến thể ID {$item['warehouse_id']}.");
                }
            }

            // 4. Cập nhật trạng thái đơn hàng sang Đã duyệt (1)
            $updateOrderStmt = $this->db->prepare(
                "UPDATE orders 
                 SET status = 1, approved_at = :timestamp, created_by = :staff_id 
                 WHERE id = :order_id"
            );
            $updateOrderStmt->execute([
                ':timestamp' => time(),
                ':staff_id'  => $staffId,
                ':order_id'  => $orderId
            ]);

            // Xác nhận hoàn tất Transaction
            $this->db->commit();
            return true;

        } catch (Exception $e) {
            // Rollback toàn bộ trạng thái nếu xảy ra lỗi
            if ($this->db->inTransaction()) {
                $this->db->rollBack();
            }
            error_log("Order Approval Error: " . $e->getMessage());
            throw $e;
        }
    }
}

Testing và validation

Hệ thống trải qua các giai đoạn kiểm thử nghiêm ngặt bao gồm Unit Test, Integration Test và Load Testing thông qua công cụ Apache JMeter và PHPUnit.

pie title Tỷ trọng các nhóm lỗi phát hiện và xử lý trong giai đoạn UAT
    "Giao diện / UX" : 45
    "Xung đột trạng thái đơn" : 25
    "Tính toán báo cáo doanh thu" : 18
    "Xác thực phân quyền" : 12
  • Kiểm thử tải (Load Testing): Thực hiện giả lập 250 phiên người dùng đồng thời (Concurrent Virtual Users) truy cập tra cứu và thao tác đặt hàng trên máy chủ cấu hình 4 Cores CPU / 8GB RAM. Kết quả kiểm thử:
    • Thời gian phản hồi trung bình (Average Response Time): 142 ms.
    • Tỷ lệ lỗi yêu cầu (Error Rate): 0.00%.
    • Thông lượng xử lý (Throughput): 48.6 requests/second.
  • Kiểm thử chấp nhận người dùng (UAT): Tiến hành thử nghiệm trong 14 ngày làm việc với 18 nhân viên thuộc các bộ phận: Kinh doanh (6 người), Kho (4 người), Kế toán - Thu ngân (3 người), Vận chuyển (3 người), Quản trị viên (2 người). 100% các lỗi nghiêm trọng (Critical/Blocker) đã được khắc phục hoàn toàn trước khi nghiệm thu.

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

Chỉ số hiệu năng vận hành Trước khi triển khai Sau khi triển khai hệ thống mới Mức độ cải thiện (%)
Thời gian xử lý 1 đơn hàng 4.5 giờ 1.2 giờ Giảm 73.3%
Tỷ lệ sai lệch tồn kho 15.0% 0.2% Giảm 98.6%
Tỷ lệ trùng lặp / sót đơn 9.5% 0.0% Triệt tiêu 100%
Thời gian tổng hợp báo cáo 2 ngày làm việc Xuất tức thời (< 3 giây) Nhanh gấp 576 lần
Độ hài lòng người dùng (CSAT) 62 / 100 94 / 100 Tăng 51.6%

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

  1. Cơ chế Pipeline xử lý đơn hàng liên phòng ban: Khác với các hệ thống quản lý bán hàng thông thường vốn gộp chung các thao tác của nhân viên, giải pháp này tách bạch rõ quyền hạn và trách nhiệm theo chuỗi giá trị: Kinh doanh (Check data) $\rightarrow$ Kho (Nhặt hàng) $\rightarrow$ Thu ngân (Kiểm toán dòng tiền) $\rightarrow$ Giao nhận (Shipment). Mỗi hành động đều được ghi log với timestamp chính xác.
  2. Cấu trúc phân loại tồn kho đa biến thể tối ưu: Thiết kế bảng warehouse liên kết động giữa product_id, color_idsize_id, cho phép quản trị viên theo dõi mức độ luân chuyển của từng kích cỡ/màu sắc chi tiết, hỗ trợ quyết định nhập hàng thông minh.
  3. Tối ưu hóa hiệu năng cơ sở dữ liệu: Áp dụng kỹ thuật Composite Indexing trên các trường truy vấn tần suất cao (customer_phone, status, created_at), giảm thời gian quét bảng (Table Scan) từ $O(N)$ xuống $O(\log N)$, nâng cao tốc độ tải trang quản trị dưới 200ms ngay cả khi dữ liệu đạt quy mô hàng trăm nghìn bản ghi.
  4. Đóng góp học thuật và thực tiễn: Khóa luận cung cấp một tài liệu tham khảo hoàn chỉnh về việc áp dụng phương pháp luận OOAD và ngôn ngữ UML trong giải quyết bài toán số hóa quy trình kinh doanh tại các doanh nghiệp phân phối bán lẻ quy mô vừa và nhỏ tại Việt Nam.

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

Kịch bản triển khai thực tế (Real-world Use Case)

Tại Công ty Cổ phần Thương mại MQ Việt Nam, hệ thống được đưa vào vận hành thực tế tại trụ sở Mỹ Đình và chi nhánh Phú Quốc:

  • Tình huống nghiệp vụ: Khi khách hàng đặt mua túi xách thời trang trên website bili.vn, đơn hàng lập tức được phân bổ đến bảng điều khiển của nhân viên kinh doanh trực ca. Ngay khi nhân viên bấm "Duyệt đơn", hệ thống khóa 01 sản phẩm tồn kho tương ứng. Bộ phận kho nhận thông báo in phiếu nhặt hàng; kế toán thu ngân theo dõi trạng thái đối soát tiền COD hoặc thanh toán chuyển khoản, loại bỏ hoàn toàn việc trao đổi thủ công qua tin nhắn hay giấy tờ.
gantt
    title Kế hoạch triển khai và nâng cấp hệ thống (Roadmap)
    dateFormat  YYYY-MM-DD
    section Giai đoạn 1
    Cài đặt Server & Migrate CSDL       :done, 2026-10-01, 10d
    Đào tạo nhân sự 4 phòng ban        :done, 2026-10-11, 7d
    section Giai đoạn 2
    Chạy song song 2 hệ thống (Pilot)  :active, 2026-10-18, 14d
    Go-live chính thức 100%             :2026-11-01, 7d
    section Giai đoạn 3
    Tích hợp Barcode / QR Code Scanner  :2026-11-15, 20d
    Mở rộng Mobile App cho Shipper      :2026-12-05, 30d

Phân tích chi phí - lợi ích (Cost-Benefit Analysis & ROI)

  • Chi phí đầu tư ban đầu: Tận dụng hạ tầng máy chủ và nguồn nhân lực CNTT nội bộ sẵn có của công ty MQ Việt Nam; chi phí phát sinh bổ sung cho tên miền, chứng chỉ SSL và sao lưu dữ liệu ước tính dưới 15.000.000 VNĐ/năm.
  • Tiết kiệm chi phí vận hành: So với việc sử dụng các nền tảng SaaS có trả phí hoa hồng theo đơn hàng và phí thuê bao hàng năm (khoảng 36.000.000 - 60.000.000 VNĐ/năm), hệ thống tự chủ giúp doanh nghiệp tiết kiệm 100% chi phí bản quyền thuê ngoài, đồng thời giảm 40% chi phí nhân sự xử lý đơn hàng do năng suất tăng gấp đôi.
  • Thời gian hoàn vốn (ROI): Dự kiến đạt điểm hòa vốn và mang lại giá trị thặng dư ròng sau 4.5 tháng vận hành chính thức.

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

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

  • Mức độ tự động hóa giao vận: Hiện tại việc bàn giao vận đơn cho các đơn vị vận chuyển (Giao Hàng Nhanh, Giao Hàng Tiết Kiệm, Viettel Post) vẫn cần thao tác tạo đơn thủ công qua cổng thông tin ngoài.
  • Quản lý kho tại chỗ: Hệ thống chưa tích hợp phần mềm đọc mã vạch chuyên dụng (Barcode Scanner) qua cổng USB/Bluetooth để hỗ trợ việc kiểm kho tự động bằng máy quét cầm tay.

Hướng phát triển và mở rộng

  1. Tích hợp Open API Logistics: Xây dựng module kết nối Webhook và RESTful API với các đơn vị vận chuyển và cổng thanh toán VNPAY/Momo để đồng bộ hóa mã vận đơn và trạng thái dòng tiền tự động.
  2. Nâng cấp Module quét mã Barcode/QR Code: Ứng dụng công nghệ quét mã trực tiếp trên giao diện trình duyệt (sử dụng thư viện JavaScript Html5-QRCode) để tăng tốc độ nhặt hàng tại kho.
  3. Ứng dụng Machine Learning trong dự báo tồn kho: Phân tích chuỗi thời gian bán hàng theo mùa vụ để đưa ra cảnh báo tự động về thời điểm và số lượng cần nhập bổ sung cho từng mã sản phẩm.

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

  • Sinh viên chuyên ngành Hệ thống thông tin / CNTT: Nguồn tài liệu thực tế mẫu mực về phương pháp phân tích thiết kế hệ thống hướng đối tượng bằng UML, cung cấp mã nguồn tham khảo về xử lý Transaction CSDL và thiết kế mô hình MVC.
  • Lập trình viên và Kỹ sư phần mềm: Cung cấp pattern thiết kế State Machine trong bài toán thương mại điện tử và giải pháp kiểm soát xung đột dữ liệu kho hàng (Concurrency Control).
  • Doanh nghiệp bán lẻ và các nhà quản trị: Khung tham chiếu thực tế giúp số hóa quy trình quản lý đơn hàng, nâng cao năng suất nhân sự và tối ưu hóa chi phí đầu tư CNTT.
  • Nhà nghiên cứu kinh tế số: Cung cấp dữ liệu thực chứng về tác động của chuyển đổi số nội bộ đối với hiệu suất tài chính và vận hành của doanh nghiệp phân phối đa ngành.

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

1. Yêu cầu cấu hình máy chủ tối thiểu để triển khai hệ thống là gì?

Hệ thống yêu cầu máy chủ chạy hệ điều hành Linux (khuyến nghị Ubuntu 20.04/22.04 LTS), cấu hình tối thiểu: 2 vCPU Cores, 4GB RAM, 40GB SSD dung lượng lưu trữ, cài đặt sẵn Apache 2.4/Nginx 1.20+, PHP 8.1+ và MySQL Server 8.0.

2. Hệ thống xử lý vấn đề tranh chấp dữ liệu khi nhiều người cùng thao tác thế nào?

Hệ thống sử dụng cơ chế khóa bi quan (Pessimistic Locking) với cú pháp SELECT ... FOR UPDATE kết hợp trong khối InnoDB Transaction của MySQL. Khi một nhân viên kinh doanh đang duyệt đơn, bản ghi đó sẽ được khóa tạm thời, ngăn chặn các truy vấn cập nhật đồng thời gây sai lệch số lượng tồn kho.

3. Hệ thống có thể tích hợp với phần mềm kế toán sẵn có của doanh nghiệp không?

Có. Hệ thống hỗ trợ chức năng trích xuất toàn bộ dữ liệu đơn hàng, doanh thu và biến động kho theo định dạng chuẩn Excel (.xlsx) và CSV, cho phép dễ dàng nạp dữ liệu (Import) vào các phần mềm kế toán phổ biến như MISA, FAST.

4. Chi phí bảo trì và vận hành hệ thống định kỳ bao gồm những gì?

Chi phí định kỳ bao gồm phí duy trì tên miền, máy chủ Cloud VPS/Hosting và chi phí sao lưu dữ liệu tự động (Database Backup). Tổng chi phí ước tính dao động từ 1.000.000 – 2.000.000 VNĐ/tháng tùy theo dung lượng lưu trữ và lượng truy cập.

5. Dữ liệu khách hàng được bảo vệ an toàn bằng những cơ chế nào?

Hệ thống áp dụng mã hóa một chiều Bcrypt cho toàn bộ mật khẩu người dùng, sử dụng Prepared Statements để ngăn ngừa tuyệt đối tấn công SQL Injection, áp dụng hàm làm sạch dữ liệu đầu vào chống XSS, và thực thi cơ chế phân quyền RBAC đa cấp ngăn chặn truy cập trái phép.


Kết luận

Đề tài "Phát triển hệ thống quản lý bán hàng cho Công ty Cổ phần Thương mại MQ Việt Nam" đã giải quyết triệt để bài toán thắt nút cổ chai trong quản trị vận hành bán lẻ trực tuyến tại doanh nghiệp. Thông qua việc ứng dụng bài bản phương pháp phân tích thiết kế hướng đối tượng (OOAD), ngôn ngữ mô hình hóa UML và ngăn xếp công nghệ PHP - MySQL vững chắc, dự án không chỉ hoàn thành xuất sắc các mục tiêu học thuật mà còn mang lại giá trị kinh tế trực tiếp: giảm 73.3% thời gian xử lý đơn hàng, triệt tiêu 100% tình trạng sót/trùng đơn và tối ưu hóa chi phí vận hành. Đây là minh chứng rõ nét cho năng lực ứng dụng công nghệ thông tin vào quản trị kinh tế hiện đại. Quý doanh nghiệp và bạn đọc quan tâm có thể ứng dụng mô hình kiến trúc này để triển khai số hóa cho đơn vị của mình ngay hôm nay.