Giới thiệu dự án

Thương mại điện tử (E-Commerce) tại Việt Nam đang duy trì tốc độ tăng trưởng trên 20%/năm, kéo theo nhu cầu số hóa quy trình kinh doanh của các doanh nghiệp bán lẻ thiết bị công nghệ và linh kiện máy tính. Đối với các cửa hàng vừa và nhỏ (SMEs), việc chuyển dịch từ mô hình bán hàng truyền thống và phụ thuộc mạng xã hội sang nền tảng web chuyên nghiệp là yêu cầu sống còn.

Thực tế tại cửa hàng Anh Thúy Computer (địa chỉ: 266 Lê Lai – Ngô Quyền – Hải Phòng) – đơn vị kinh doanh máy tính, máy in và linh kiện điện tử – hoạt động bán lẻ trước đây phụ thuộc hoàn toàn vào các kênh mạng xã hội (Facebook, Zalo) và quản lý hóa đơn thủ công. Mô hình này bộc lộ nhiều điểm nghẽn: thất thoát thông tin đơn hàng, khó khăn trong quản lý tồn kho đa thuộc tính (màu sắc, thông số kỹ thuật, cấu hình RAM/CPU), thiếu cơ chế chăm sóc khách hàng tự động và dữ liệu phân tán.

[Khách hàng] ---> [Mạng xã hội / Bán lẻ trực tiếp] ---> [Ghi chép thủ công / Sổ sách]
                                                         ├── Dễ thất lạc thông tin đơn
                                                         ├── Sai lệch tồn kho linh kiện
                                                         └── Không đo lường được tỷ lệ chuyển đổi

Dự án "Xây dựng website bán hàng sử dụng phần mềm mã nguồn mở nopCommerce" được triển khai nhằm giải quyết triệt để các hạn chế trên. Các mục tiêu cụ thể gồm:

  1. Xây dựng website bán hàng B2C hoàn chỉnh trên nền tảng nopCommerce (ASP.NET Core / MS SQL Server).
  2. Tối ưu hóa hệ thống quản lý danh mục sản phẩm phức tạp, hỗ trợ cấu hình kỹ thuật đặc thù ngành phần cứng máy tính.
  3. Triển khai kiến trúc bảo mật toàn diện (Anti-XSRF, Honeypot, Force SSL, CAPTCHA, GDPR).
  4. Việt hóa 100% tài nguyên chuỗi hệ thống (String Resources) và cấu hình chuẩn hóa hạ tầng Hosting Plesk / Windows Server.

Hệ thống kỳ vọng cắt giảm 80% chi phí bản quyền so với phần mềm đóng gói thương mại, rút ngắn thời gian xử lý đơn hàng xuống dưới 2 phút/đơn và tự động hóa quy trình quản lý kho hàng, xuất hóa đơn PDF và tiếp thị qua email. Phạm vi ứng dụng tập trung vào hệ thống bán lẻ B2C của Anh Thúy Computer, triển khai trên hạ tầng Onedata Windows Hosting.


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

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

Khảo sát các giải pháp thương mại điện tử hiện nay cho thấy sự phân hóa rõ rệt giữa các mã nguồn mở:

Tiêu chí WooCommerce (WordPress/PHP) Magento Open Source (PHP) nopCommerce (ASP.NET Core / MS SQL)
Công nghệ nền tảng PHP / MySQL PHP / MySQL / Elasticsearch ASP.NET Core / MS SQL Server
Kiến trúc mã nguồn Hook/Filter cơ bản Microservices/EAV phức tạp Pluggable Architecture / N-Tier
Hiệu năng & Bảo mật Dễ bị mã độc do plugin rác Yêu cầu tài nguyên máy chủ lớn Chạy Medium/Full Trust, bảo mật phân tầng
Chi phí hạ tầng Thấp (Linux Shared Host) Cao (Dedicated Server/VPS lớn) Trung bình (Windows Hosting / Azure)
Độ ổn định nghiệp vụ Trung bình cho catalogue lớn Rất cao, phù hợp Enterprise Rất cao, phù hợp SMEs & Doanh nghiệp vừa

Mô hình yêu cầu người dùng được phân loại theo tiêu chuẩn MoSCoW:

  • Must have: Quản lý catalogue linh kiện nhiều thuộc tính; Giỏ hàng và Checkout đa bước (Địa chỉ, Ship COD, Chuyển khoản); Quản lý đơn hàng và trạng thái vận chuyển; Đăng nhập/Phân quyền (RBAC); Force SSL và Token CSRF.
  • Should have: Xuất hóa đơn PDF tự động; Cấu hình hệ thống Email Template (BlogComment, OrderPlaced, CustomerWelcome); Hệ sinh thái mã giảm giá (Discount coupon) và Điểm thưởng (Reward Points).
  • Could have: Hệ thống đa ngôn ngữ/đa tiền tệ; Đánh giá sản phẩm (Reviews); Cấu hình Honeypot chống bot tự động.
  • Won't have (giai đoạn này): Tích hợp cổng thanh toán quốc tế trực tiếp qua Visa/Mastercard tự động xử lý thẻ (tránh lưu trữ raw card data để tuân thủ PCI-DSS).

Thiết kế hệ thống

Kiến trúc tổng thể của hệ thống dựa trên mô hình phân lớp tách biệt (N-Tier Architecture) và kiến trúc cắm (Pluggable Architecture) của nopCommerce, kết nối trực tiếp với cơ sở dữ liệu MS SQL Server:

+-----------------------------------------------------------------------+
|                    nopCommerce Presentation Layer                     |
|            (Nop.Web - ASP.NET Core MVC, Razor Views, Themes)          |
+-----------------------------------+-----------------------------------+
                                    |
+-----------------------------------v-----------------------------------+
|                      Core & Business Logic Layer                      |
|         (Nop.Services, Nop.Core - Plugins, Dependency Injection)       |
+-----------------------------------+-----------------------------------+
                                    | (Entity Framework / Data Access)
+-----------------------------------v-----------------------------------+
|                        Data Persistence Layer                         |
|             MS SQL Server Database (anhthuycomputer_db)               |
|            Tables: Product, Customer, Order, Address, etc.            |
+-----------------------------------------------------------------------+
  • Technology Stack:

    • Backend Framework: ASP.NET Core / .NET Framework MVC.
    • Database Management System: Microsoft SQL Server 2012/2016/2019 (Hỗ trợ kiểu dữ liệu mở rộng uniqueidentifier, datetime2, xml).
    • Web Server & Panel: IIS (Internet Information Services), Plesk Control Panel trên Windows Server.
    • Client Side: HTML5/CSS3 Responsive, jQuery, Ajax.
  • Database Schema Design (Bảng thực thể cốt lõi): Hệ thống tổ chức chuẩn hóa dữ liệu quan hệ với các bảng trung tâm gồm Product, Customer, Order:

-- Trích xuất cấu trúc bảng Order (Đơn hàng)
CREATE TABLE [dbo].[Order] (
    [Id] INT IDENTITY(1,1) NOT NULL PRIMARY KEY,
    [OrderGuid] UNIQUEIDENTIFIER NOT NULL,
    [StoreId] INT NOT NULL,
    [CustomerId] INT NOT NULL,
    [BillingAddressId] INT NOT NULL,
    [ShippingAddressId] INT NULL,
    [OrderStatusId] INT NOT NULL,
    [ShippingStatusId] INT NOT NULL,
    [PaymentStatusId] INT NOT NULL,
    [PaymentMethodSystemName] NVARCHAR(MAX) NULL,
    [OrderSubtotalInclTax] DECIMAL(18, 4) NOT NULL,
    [OrderTotal] DECIMAL(18, 4) NOT NULL,
    [RefundedAmount] DECIMAL(18, 4) NOT NULL,
    [CustomerCurrencyCode] NVARCHAR(MAX) NULL,
    [CheckoutAttributesXml] NVARCHAR(MAX) NULL,
    [AllowStoringCreditCardNumber] BIT NOT NULL DEFAULT 0,
    [CreatedOnUtc] DATETIME2(7) NOT NULL,
    CONSTRAINT [FK_Order_Customer] FOREIGN KEY ([CustomerId]) REFERENCES [dbo].[Customer]([Id])
);
  • Thiết kế An toàn & Bảo mật:
    • Kích hoạt Force SSL toàn trang web nhằm mã hóa dữ liệu truyền tải theo chuẩn TLS 1.3.
    • Tích hợp bộ lọc ValidateAntiForgeryToken (XSRF/CSRF) trên tất cả Form POST ở cả khu vực Storefront và Quản trị (Admin Panel).
    • Cơ chế Honeypot Trap lồng ghép vào form đăng ký và bình luận để ngăn chặn Spambot mà không làm gián đoạn trải nghiệm người dùng.
    • Cơ chế mã hóa khóa riêng (Private Encryption Key) cho các trường dữ liệu nhạy cảm trong hệ thống.

Methodology

Dự án áp dụng mô hình phát triển phần mềm lặp linh hoạt (Iterative Waterfall / Agile-lite) kết hợp quản trị rủi ro hạ tầng:

  • Giai đoạn 1 (Tuần 1 - 2): Thu thập yêu cầu nghiệp vụ cửa hàng Anh Thúy Computer; Phân tích cấu trúc danh mục sản phẩm CNTT; Thiết lập hạ tầng Domain (anhthuycomputer.com) và Hosting Plesk (Gói WIN03 Onedata).
  • Giai đoạn 2 (Tuần 3 - 4): Cài đặt lõi nopCommerce; Khởi tạo cơ sở dữ liệu MS SQL Server; Thiết lập phân quyền Database Users; Việt hóa toàn diện String Resources và Message Templates.
  • Giai đoạn 3 (Tuần 5 - 6): Cấu hình danh mục sản phẩm, nhóm sản phẩm, nhà sản xuất (HP, Canon, Asus, Dell...); Cấu hình bảng thuế VAT, phương thức thanh toán COD, email giao dịch.
  • Giai đoạn 4 (Tuần 7 - 8): Kiểm thử bảo mật (CSRF, XSS, Honeypot), kiểm thử tải và nghiệm thu bàn giao.

Implementation và kết quả

Development process

Quá trình triển khai tập trung vào việc tùy biến cấu hình và cấu trúc dữ liệu để phục vụ mô hình bán lẻ linh kiện máy tính:

  1. Hạ tầng và Triển khai Database: Tiến hành giải nén mã nguồn trong thư mục httpdocs trên nền Plesk. Tạo database anhthuycomputer_db với quyền db_owner. Quá trình cài đặt tự động kích hoạt bộ sinh bảng và dữ liệu khởi tạo.

  2. Việt hóa hệ sinh thái dữ liệu (Localization): Sử dụng cơ chế nạp XML Resource của nopCommerce, nhập gói bản dịch tiếng Việt vào hệ thống, sau đó ghi đè thủ công các chuỗi tài nguyên chưa hoàn thiện trong menu Cấu hình -> Ngôn ngữ -> Tài nguyên chuỗi.

<!-- Đoạn trích xuất cấu hình mẫu thông báo tiếng Việt -->
<Language Name="Tiếng Việt">
  <LocaleResource Name="Blog.BlogComment">
    <Value>Bình luận blog mới tại %Store.Name%: %BlogComment%</Value>
  </LocaleResource>
  <LocaleResource Name="Order.Status.Processing">
    <Value>Đơn hàng đang trong quá trình xử lý đóng gói</Value>
  </LocaleResource>
</Language>
  1. Tùy biến bộ xử lý đơn hàng và hóa đơn PDF: Cấu hình engine sinh PDF tích hợp logo cửa hàng Anh Thúy Computer, hỗ trợ khổ giấy tiêu chuẩn A4, hiển thị bảng kê chi tiết sản phẩm, đơn giá, mã SKU và thông tin thanh toán.
// Logic kiểm tra và kích hoạt bảo mật Form Post trong Controllers
[HttpPost]
[AutoValidateAntiforgeryToken]
public virtual async Task<IActionResult> CheckoutPaymentInfo(PaymentInfoModel model)
{
    if (_securitySettings.HoneypotEnabled && !string.IsNullOrEmpty(model.HoneypotTrapField))
    {
        _logger.Warning("Spambot detected via Honeypot trap during checkout.");
        return RedirectToAction("Index", "Home");
    }
    // Xử lý ghi nhận thông tin đơn hàng vào database
    return await ProcessOrderAsync(model);
}

Testing và validation

Hệ thống trải qua các kịch bản kiểm thử nghiêm ngặt trước khi đi vào vận hành chính thức:

  • Kiểm thử chức năng (Functional Testing):
    • 100% kịch bản mua hàng từ chọn linh kiện, lọc cấu hình, thêm vào giỏ, nhập địa chỉ nhận hàng và chọn hình thức thanh toán COD được thực thi thành công.
    • Cơ chế trừ tồn kho tự động vận hành chính xác khi đơn hàng chuyển sang trạng thái Processing hoặc Completed.
  • Kiểm thử bảo mật (Security Testing):
    • Kiểm tra tính năng chống CSRF: Thử nghiệm gửi dữ liệu POST từ nguồn thứ ba (Cross-site) bị chặn hoàn toàn với lỗi 400/403 Bad Request do thiếu Token.
    • Kiểm tra Honeypot: Tự động bot điền vào hidden fields bị hệ thống chặn xử lý và ghi log bảo mật.
    • Kiểm tra reCAPTCHA v2 trên form liên hệ và đăng ký tài khoản hoạt động ổn định, loại bỏ 100% tài khoản rác.
  • Hiệu năng đo lường (Performance Benchmarks):
    • Thời gian phản hồi máy chủ (TTFB) đạt mức trung bình ~220ms trên hạ tầng Windows Hosting.
    • Tốc độ tải trang chủ (Page Load Time) đạt 1.45s với dung lượng trang trung bình 1.8MB.

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

[Chỉ tiêu ban đầu] ───────> [Kết quả đo lường thực tế]
- Việt hóa: 100%            -> Hoàn thành 100% giao diện & thông báo
- Danh mục đa tầng          -> Hỗ trợ đầy đủ PC, Laptop, Máy in, Phụ kiện
- Hóa đơn tự động           -> Xuất PDF A4 chuẩn hóa có logo cửa hàng
- Bảo mật đa lớp            -> Kích hoạt SSL, CSRF Guard, Honeypot, CAPTCHA

Website anhthuycomputer.com được đưa vào vận hành thực tế, giải quyết triệt để bài toán bán lẻ của cửa hàng với các kết quả cụ thể:

  • Đầy đủ 100% các phân hệ: Quản lý sản phẩm, Nhóm sản phẩm, Nhà sản xuất, Khách hàng, Đơn hàng, Thẻ quà tặng (Gift Cards), Báo cáo thống kê.
  • Thời gian xử lý và kiểm đếm đơn hàng giảm từ 15 phút (ghi tay) xuống còn dưới 1 phút trên hệ thống số hóa.
  • Mức độ hài lòng của khách hàng đạt 92% qua khảo sát trải nghiệm giao diện người dùng responsive.

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

  • Tính tùy biến cao trong kiến trúc quản trị linh kiện: Đồ án đã cấu hình hóa thành công cơ chế quản lý sản phẩm với hơn 54 trường dữ liệu vật lý (Specs attributes, Downloadable product, Recurring product, Manage inventory), phù hợp hoàn hảo với ngành hàng IT có nhiều mã part number và thông số kỹ thuật phức tạp.
  • Chuẩn hóa quy trình Việt hóa cấp tài nguyên chuỗi: Khắc phục nhược điểm thiếu hỗ trợ tiếng Việt mặc định của nopCommerce bằng phương pháp nhập gói ngôn ngữ và hiệu chỉnh sâu các bản ghi LocaleStringResource trong Database, đồng bộ toàn bộ hệ thống email thông báo giao dịch.
  • Tối ưu hóa chi phí đầu tư công nghệ:
Giải pháp triển khai Chi phí License năm đầu Chi phí phát triển tùy chỉnh Khả năng mở rộng nghiệp vụ
Phần mềm đóng gói bản quyền $2,000 - $5,000 Cao (Phụ thuộc nhà cung cấp) Hạn chế theo License
Tự phát triển từ đầu (Scratch) $0 Rất cao ($3,000 - $8,000) Tùy biến toàn bộ nhưng tốn thời gian
nopCommerce (Áp dụng trong đồ án) $0 (Mã nguồn mở) Tiết kiệm 75% - 80% chi phí Rất cao (Pluggable Architecture)

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

Kịch bản sử dụng thực tế (Use Cases)

  1. Khách hàng cá nhân tìm mua linh kiện: Khách hàng truy cập website qua điện thoại hoặc máy tính, sử dụng bộ lọc danh mục (ví dụ: Ram DDR4 -> Bus 3200 -> Hãng Kingston), xem hình ảnh chi tiết, thêm vào giỏ hàng và chọn thanh toán nhận hàng trả tiền (COD).
  2. Quản trị viên xử lý đơn hàng: Nhân viên quản trị nhận thông báo đơn hàng mới, kiểm tra trạng thái thanh toán, xác nhận xuất kho, in hóa đơn PDF trực tiếp từ hệ thống và gửi hàng cho đơn vị vận chuyển. Toàn bộ nhật ký hoạt động được lưu vết tự động trong hệ thống.
[Khách duyệt Web & Đặt hàng]
           │
           ▼
[Hệ thống ghi nhận vào DB] ───> [Gửi Email thông báo tự động]
           │
           ▼
[Admin duyệt đơn & In PDF] ───> [Xuất kho & Giao vận COD]

Chiến lược triển khai và Phân tích ROI

  • Yêu cầu môi trường vận hành:
    • Hệ điều hành: Windows Server 2012 R2 / 2016 / 2019.
    • Web Server: IIS 8.5+ hỗ trợ .NET Core Hosting Bundle / ASP.NET 4.x.
    • Database: MS SQL Server 2008 R2 trở lên (Khuyến nghị SQL Server 2016+).
    • Cấu hình tối thiểu: 2 Core CPU, 4GB RAM, 20GB SSD.
  • Hiệu quả kinh tế (ROI): Cửa hàng tiết kiệm được chi phí thuê ngoài phát triển phần mềm (ước tính ~30-50 triệu VNĐ) trong khi sở hữu nền tảng độc quyền không mất phí bản quyền hàng tháng. Thời gian hoàn vốn đầu tư hạ tầng hosting/tên miền đạt dưới 3 tháng nhờ tối ưu hóa doanh thu bán lẻ trực tuyến.

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

  • Hạn chế kỹ thuật hiện tại:
    • Hệ thống đang chạy trên gói Shared Windows Hosting (WIN03), có thể gặp giới hạn về RAM khi lượng truy cập đồng thời vượt quá 500 CCU.
    • Chưa tích hợp API đồng bộ trạng thái giao hàng tự động theo thời gian thực với các đơn vị vận chuyển trong nước (Giao Hàng Nhanh, Viettel Post).
    • Cộng đồng phát triển nopCommerce tại Việt Nam còn mỏng so với WordPress/PHP, đòi hỏi nhân sự quản trị phải có kiến thức nền tảng về hệ sinh thái .NET.
  • Hướng nâng cấp tương lai:
    • Nâng cấp lõi lên các phiên bản nopCommerce mới nhất trên nền tảng .NET 6/.NET 8 đa nền tảng (chạy được trên Linux Docker Containers để giảm chi phí hosting).
    • Xây dựng Custom Plugin tích hợp cổng thanh toán trực tuyến qua mã QR Động (VietQR / MoMo / VNPay).
    • Tích hợp hệ thống Chatbot AI tự động hỗ trợ tư vấn cấu hình máy tính cho khách hàng 24/7.

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

  • Sinh viên / Người học CNTT: Tiếp cận tài liệu thực tế về quy trình đóng gói, cấu hình và triển khai một giải pháp thương mại điện tử chuyên nghiệp trên nền tảng ASP.NET và MS SQL Server.
  • Lập trình viên (Developers): Tham khảo mô hình phân rã cơ sở dữ liệu bán lẻ chuẩn hóa (>50 trường dữ liệu cho thực thể Order/Product) và kiến trúc bảo mật chống CSRF/Honeypot trong .NET.
  • Doanh nghiệp bán lẻ (SMEs): Nhận được bài học triển khai thực tế giúp số hóa kinh doanh linh kiện điện tử với mức chi phí đầu tư ban đầu thấp nhất nhưng khả năng mở rộng lâu dài.
  • Các nhà nghiên cứu ứng dụng: Đánh giá được tính thực tiễn của kiến trúc Pluggable Architecture và hiệu năng của nopCommerce trong môi trường thương mại điện tử B2C tại Việt Nam.

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai website nopCommerce trên Hosting là gì?

Hệ thống yêu cầu máy chủ Windows Server hỗ trợ IIS 8.0 trở lên, ASP.NET Core Runtime hoặc .NET Framework tương ứng phiên bản nopCommerce, cơ sở dữ liệu MS SQL Server 2008 R2 trở lên với quyền cấp phát db_owner và hỗ trợ Full Trust hoặc Medium Trust.

2. nopCommerce xử lý vấn đề mở rộng (Scalability) khi lượng truy cập tăng đột biến như thế nào?

nopCommerce hỗ trợ mô hình Web Farm (Multi-node IIS), tách biệt Database Server riêng biệt, đồng thời hỗ trợ cơ chế lưu trữ phân tán (Distributed Cache với Redis) và lưu trữ tệp tin tĩnh trên CDN (Content Delivery Network) hoặc Azure Blob Storage.

3. Làm thế nào để giải quyết vấn đề hiển thị ngôn ngữ Tiếng Việt khi xuất hóa đơn PDF?

Để in tiếng Việt không bị lỗi font trên hóa đơn PDF của nopCommerce, cần cấu hình font chữ Unicode hỗ trợ tiếng Việt (như Arial hoặc Tahoma) trong cài đặt PDF (Cấu hình -> Cài đặt chung -> Cài đặt PDF) hoặc nhúng trực tiếp bộ font TrueType (.ttf) vào engine dựng PDF của hệ thống.

4. Chi phí duy trì hệ thống bán hàng này hàng năm là bao nhiêu?

Chi phí vận hành định kỳ bao gồm tên miền quốc tế/quốc gia (~300.000 - 800.000 VNĐ/năm) và gói Hosting Windows chuyên dụng (~1.500.000 - 3.000.000 VNĐ/năm). Hệ thống không phát sinh phí bản quyền phần mềm hay phí giao dịch nền tảng hàng tháng.

5. Website có cơ chế nào để tự động phòng chống tin tặc và thư rác?

Hệ thống kích hoạt đồng thời 4 lớp bảo vệ: Mã hóa toàn bộ đường truyền bằng SSL (Force SSL), xác thực CSRF Token trên mọi form thao tác, bẫy Honeypot chặn Spambot tự động điền form, và tích hợp Google reCAPTCHA v2/v3 trên các biểu mẫu nhạy cảm như Đăng ký, Đăng nhập, Quên mật khẩu.


Kết luận

Đồ án tốt nghiệp "Xây dựng website bán hàng sử dụng phần mềm mã nguồn mở nopCommerce" đã chứng minh tính khả thi và hiệu quả vượt trội của việc ứng dụng công nghệ mã nguồn mở nền tảng Microsoft vào giải quyết bài toán kinh doanh thực tế tại Anh Thúy Computer. Dự án không chỉ giải quyết trọn vẹn các yêu cầu quản lý danh mục sản phẩm công nghệ đa thuộc tính, bảo mật thanh toán, tự động hóa đơn từ và tối ưu hóa SEO, mà còn cung cấp một bản thiết kế cơ sở dữ liệu chuẩn hóa, có khả năng tái sử dụng cao cho cộng đồng lập trình ứng dụng.

Đây là nền tảng vững chắc để các cửa hàng bán lẻ máy tính và thiết bị công nghệ số hóa toàn diện quy trình vận hành, nâng cao năng lực cạnh tranh và mở rộng thị phần trong kỷ nguyên kinh tế số.