Giới thiệu dự án

Thương mại điện tử (E-commerce) tại Việt Nam chứng kiến sự tăng trưởng vượt bậc với tốc độ bình quân hơn 20%/năm theo báo cáo từ Hiệp hội Thương mại điện tử Việt Nam (VECOM). Đặc biệt, sau đại dịch COVID-19, xu hướng mua sắm cây xanh trang trí bàn làm việc, cây phong thủy và cây văn phòng trực tuyến gia tăng mạnh mẽ. Tuy nhiên, các cửa hàng kinh doanh cây cảnh truyền thống và nhiều nền tảng website hiện hành đang đối mặt với những hạn chế lớn về mặt kỹ thuật và trải nghiệm người dùng: tỷ lệ gián đoạn đơn hàng cao do quy trình thanh toán thủ công (chuyển khoản đối soát chậm), giao diện thiếu trường dữ liệu địa chỉ hành chính phân cấp chính xác dẫn đến tỷ lệ giao sai địa chỉ lên đến 15-20%, và sự thiếu hụt cơ chế minh bạch hóa đánh giá sản phẩm (lượt bán thực tế, hình ảnh phản hồi từ khách mua).

Đồ án tốt nghiệp "Xây dựng website bán cây sử dụng ASP.NET Core MVC" được thực hiện bởi sinh viên Nguyễn Quang Linh dưới sự hướng dẫn của ThS. Đặng Phước Hải Trang tại Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (HCMUTE), nhằm giải quyết triệt để các bài toán thực tiễn trên bằng một giải pháp phần mềm toàn diện, bảo mật và tối ưu hiệu năng.

                    HỆ THỐNG E-COMMERCE BÁN CÂY CẢNH
  [Khách hàng] <---> [ASP.NET Core 5.0 MVC] <---> [SQL Server 2019]
                            |
           +----------------+----------------+
           |                                 |
   [Identity / OAuth]                [Cổng VNPay API]
 (PBKDF2 Hash, Google/FB)       (Thanh toán trực tuyến bảo mật)

Mục tiêu dự án

  1. Xây dựng kiến trúc web thương mại chuẩn mực: Ứng dụng mô hình Model-View-Controller (MVC) trên nền tảng ASP.NET Core 5.0, tách biệt rõ ràng các tầng giao diện (View), xử lý nghiệp vụ (Controller) và dữ liệu (Model).
  2. Quản trị định danh và phân quyền đa cấp: Tích hợp Microsoft Identity Framework hỗ trợ xác thực bảo mật với thuật toán băm mật khẩu PBKDF2 và đăng nhập liên kết qua Google/Facebook OAuth 2.0.
  3. Chuẩn hóa thao tác dữ liệu và thanh toán: Sử dụng Entity Framework Core và LINQ để tối ưu hóa truy vấn trên cơ sở dữ liệu Microsoft SQL Server, đồng thời tích hợp cổng thanh toán trực tuyến VNPay.
  4. Bản địa hóa và đa ngôn ngữ (i18n): Thiết kế kiến trúc cơ sở dữ liệu quan hệ hỗ trợ đa ngôn ngữ độc lập (Tiếng Việt và Tiếng Anh) cho danh mục, tin tức và chi tiết sản phẩm.
  5. Tối ưu hóa bảo mật toàn diện: Ngăn chặn các lỗ hổng bảo mật phổ biến theo chuẩn OWASP gồm Cross-Site Request Forgery (CSRF/XSRF), Cross-Site Scripting (XSS), Open Redirection và SQL Injection.

Phương pháp tiếp cận và kết quả kỳ vọng

Dự án chọn tiếp cận theo mô hình phát triển phần mềm lặp (Iterative Agile/Scrum), tập trung vào hiệu năng xử lý phía máy chủ (Server-side rendering) kết hợp lưu trữ phía máy khách (Client-side storage với LocalStorage). Hệ thống hướng đến mục tiêu chịu tải 100+ kết nối đồng thời với thời gian phản hồi trang dưới 200ms, giảm thiểu thời gian hoàn tất đơn hàng xuống dưới 60 giây và đạt chuẩn bảo mật không có lỗ hổng mức độ nghiêm trọng (Critical/High).


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

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

Khảo sát thực nghiệm được tiến hành trên 3 hệ thống website bán cây cảnh tiêu biểu trên thị trường Việt Nam gồm: Locat, Cây Xinh, và 9X Garden.

Tiêu chí kỹ thuật & nghiệp vụ Locat Cây Xinh 9X Garden Hệ thống đề xuất (Đồ án)
Phân cấp danh mục Quá sâu, rối mắt Vừa phải Trực quan Tối ưu UI/UX, hỗ trợ lọc đa tầng
Hiển thị lượt bán & Đánh giá Thiếu lượt bán & review Thiếu lượt bán, review ẩn Thiếu lượt bán, ít ảnh Hiển thị trực quan rating, sold count & photo review
Thanh toán trực tuyến tự động Không Không (chỉ COD) Thủ công (chuyển khoản) Tích hợp cổng thanh toán tự động VNPay
Chọn địa chỉ hành chính Nhập text tự do Thiếu chọn phường/xã Phí cố định (40k), text Dropdown phân cấp 3 cấp (Tỉnh/Huyện/Xã) chuẩn JSON
Hỗ trợ đa ngôn ngữ (i18n) Không Không Hỗ trợ Song ngữ Anh - Việt qua database quan hệ
Bảo mật cơ sở dữ liệu & Form Cơ bản Cơ bản Cơ bản Chống CSRF Token, LocalRedirect, EF Parameterization

Phân loại yêu cầu người dùng theo phương pháp MoSCoW:

  • Must have (Bắt buộc): Giỏ hàng (LocalStorage), Đặt hàng & Hủy đơn hàng (khi đang chờ xác nhận), Quản lý sản phẩm đa biến thể (màu sắc, ảnh), Phân quyền Role-based Admin/User, Thanh toán VNPay, Đánh giá 1-5 sao kèm phản hồi từ Admin.
  • Should have (Nên có): Đăng nhập bên thứ ba (Google, Facebook), Đa ngôn ngữ (Vietnamese/English), Chuẩn hóa chọn địa chỉ qua tệp dữ liệu JSON.
  • Could have (Có thể có): Lọc nâng cao theo mức giá, Blog/Tin tức hướng dẫn chăm sóc cây.
  • Won't have (Chưa có ở phiên bản này): Tự động tính phí vận chuyển theo API thời gian thực của các hãng vận chuyển (GHN, GHTK), Đánh giá bằng video clip.

Thiết kế hệ thống

Kiến trúc hệ thống được xây dựng theo mô hình phân tầng chuẩn MVC trên nền tảng ASP.NET Core:

[Presentation Layer: Razor Views / Tag Helpers / CSS / JS / LocalStorage]
                                  │ (HTTP/HTTPS Requests)
[Application Controller Layer: Routing, AntiForgery Filters, Authorization]
                                  │ (LINQ Queries / DTOs)
[Data Access Layer: Entity Framework Core 5.0 (DbContext, Migrations)]
                                  │ (T-SQL Protocol)
[Database Layer: Microsoft SQL Server 2019 Relational Database]

Technology Stack và phiên bản:

  • Backend Framework: ASP.NET Core MVC 5.0 (C# 9.0, .NET 5.0 SDK).
  • ORM & Data Access: Entity Framework Core 5.0, LINQ to Entities.
  • Security & Identity: Microsoft.AspNetCore.Identity.EntityFrameworkCore 5.0.
  • Database Engine: Microsoft SQL Server 2019 Enterprise (hỗ trợ T-SQL, Transaction Engine).
  • Frontend & Client Storage: HTML5, CSS3, JavaScript ES6, Bootstrap 5, Web LocalStorage API.
  • Third-party APIs: VNPay Payment Gateway (v2.1.0 Standard), Facebook Graph API, Google OAuth 2.0 API.

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

Cơ sở dữ liệu bao gồm 27 bảng quan hệ chính được chuẩn hóa theo dạng chuẩn 3NF. Bảng sản phẩm và danh mục được tách bảng bản dịch (ProductTranslations, CategoryTranslations, BlogTranslations) liên kết qua khóa ngoại LanguageId (ví dụ: vi-VN, en-US), cho phép mở rộng ngôn ngữ mà không cần thay đổi cấu trúc bảng gốc.

+--------------------+       +------------------------+
|      Products      |       |  ProductTranslations   |
+--------------------+       +------------------------+
| PK  Id (int)       |<---1-N| PK,FK1 ProductId (int) |
|     Price (decimal)|       | PK,FK2 LanguageId (str)|
|     Sold (int)     |       |        Name (nvarchar) |
|     CreatedAt      |       |        Description     |
+--------------------+       +------------------------+
          │
         1-N
          ▼
+--------------------+
|   ProductColors    | (Quản lý số lượng tồn kho theo từng biến thể màu/chậu)
+--------------------+
| PK  Id (int)       |
| FK  ProductId (int)|
|     ColorName (str)|
|     Quantity (int) |
+--------------------+

Cơ chế bảo mật:

  1. Mã hóa mật khẩu: ASP.NET Core Identity áp dụng hàm dẫn xuất khóa chuẩn RFC 2898 (PBKDF2) kết hợp salt ngẫu nhiên 128-bit và số vòng lặp băm an toàn: $$\text{Key} = \text{PBKDF2}(\text{Password}, \text{Salt}, \text{Iterations-count}, \text{Hash-function}, \text{Derived-key-len})$$
  2. Chống giả mạo yêu cầu (CSRF): Tự động phát sinh và xác thực token qua thẻ FormTagHelper và bộ lọc [ValidateAntiForgeryToken] trên tất cả các Action thực thi phương thức HTTP POST:
    [HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> Checkout(OrderViewModel model)
    {
        if (!ModelState.IsValid) return View(model);
        // Thực thi xử lý lưu đơn hàng an toàn
        return RedirectToAction("OrderSuccess");
    }
    
  3. Chống chuyển hướng mở (Open Redirection): Kiểm tra chặt chẽ tính cục bộ của URL đích thông qua hàm Url.IsLocalUrl() trước khi điều hướng bằng LocalRedirect():
    if (Url.IsLocalUrl(returnUrl))
    {
        return LocalRedirect(returnUrl);
    }
    return RedirectToAction("Index", "Home");
    
  4. Phòng chống SQL Injection & XSS: Sử dụng LINQ to Entities với cơ chế Parameterized Queries tự động chuyển đổi tham số đầu vào. Razor View Engine tự động encode toàn bộ chuỗi HTML đầu ra để ngăn chặn script độc hại từ người dùng.

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

Dự án áp dụng mô hình phát triển linh hoạt trong thời gian 16 tuần (từ tháng 09/2023 đến tháng 01/2024), chia thành 4 giai đoạn chính:

[Tuần 1-4: Khảo sát, Đặc tả yêu cầu & Thiết kế ERD Database]
                           │
[Tuần 5-8: Cấu hình Identity, Phân quyền Role, Xây dựng CRUD Sản phẩm]
                           │
[Tuần 9-12: Giỏ hàng LocalStorage, Checkout, Tích hợp API VNPay & i18n]
                           │
[Tuần 13-16: Kiểm thử thâm nhập bảo mật, Đánh giá UAT & Đóng gói triển khai]

Implementation và kết quả

Quy trình phát triển (Development Process)

Hệ thống được tổ chức theo cấu trúc Module chuẩn mực, áp dụng Design Pattern Repository và Dependency Injection (DI) có sẵn trong ASP.NET Core.

1. Quản lý giỏ hàng phía Client với LocalStorage

Thay vì lưu Session trên Server làm tiêu tốn RAM máy chủ, giỏ hàng được quản lý hoàn toàn ở phía Client qua JavaScript và chỉ đồng bộ lên Server khi chuyển sang giao diện thanh toán:

function addToCart(productId, colorId, quantity, price, name, imgUrl) {
    let cart = JSON.parse(localStorage.getItem('SHOPPING_CART')) || [];
    let existingItem = cart.find(item => item.productId === productId && item.colorId === colorId);
    
    if (existingItem) {
        existingItem.quantity += quantity;
    } else {
        cart.push({ productId, colorId, quantity, price, name, imgUrl });
    }
    localStorage.setItem('SHOPPING_CART', JSON.stringify(cart));
    updateCartBadge();
}

2. Tích hợp thanh toán trực tuyến qua cổng VNPay API

Quy trình thanh toán khởi tạo URL bảo mật có chữ ký số HMAC-SHA512 để điều hướng khách hàng sang cổng VNPay:

public string CreatePaymentUrl(Order order, HttpContext context)
{
    var vnpay = new VnPayLibrary();
    vnpay.AddRequestData("vnp_Version", "2.1.0");
    vnpay.AddRequestData("vnp_Command", "pay");
    vnpay.AddRequestData("vnp_TmnCode", _configuration["VnPay:TmnCode"]);
    vnpay.AddRequestData("vnp_Amount", ((long)order.TotalAmount * 100).ToString());
    vnpay.AddRequestData("vnp_CreateDate", DateTime.Now.ToString("yyyyMMddHHmmss"));
    vnpay.AddRequestData("vnp_CurrCode", "VND");
    vnpay.AddRequestData("vnp_IpAddr", Utils.GetIpAddress(context));
    vnpay.AddRequestData("vnp_Locale", "vn");
    vnpay.AddRequestData("vnp_OrderInfo", $"Thanh toan don hang #{order.Id}");
    vnpay.AddRequestData("vnp_OrderType", "other");
    vnpay.AddRequestData("vnp_ReturnUrl", _configuration["VnPay:ReturnUrl"]);
    vnpay.AddRequestData("vnp_TxnRef", order.Id.ToString());

    return vnpay.CreateRequestUrl(_configuration["VnPay:BaseUrl"], _configuration["VnPay:HashSecret"]);
}

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

Hệ thống trải qua 3 cấp độ kiểm thử toàn diện:

  1. Kiểm thử chức năng (Functional Testing): Thiết lập 45 kịch bản kiểm thử (Test Cases) bao phủ 100% các Use Case từ đăng ký, đăng nhập, đặt hàng, hủy đơn, đến phản hồi đánh giá. Tỷ lệ vượt qua đạt 100%.
  2. Kiểm thử bảo mật (Security Penetration Testing):
    • SQL Injection: Thực nghiệm chèn chuỗi admin' OR 1=1 -- vào thanh tìm kiếm và form đăng nhập $\rightarrow$ Kết quả: 100% truy vấn được tham số hóa thành chuỗi an toàn qua Entity Framework Core, không rò rỉ dữ liệu.
    • XSS Injection: Chèn thẻ <script>alert('XSS')</script> vào nội dung đánh giá $\rightarrow$ Kết quả: Razor View tự động mã hóa thành &lt;script&gt;alert('XSS')&lt;/script&gt;, ngăn chặn mã thực thi trên DOM.
    • CSRF Test: Gửi yêu cầu POST giả mạo từ domain khác $\rightarrow$ Kết quả: Bị chặn hoàn toàn bởi bộ lọc AntiForgery (mã lỗi HTTP 400 Bad Request).
  3. Kiểm thử hiệu năng (Performance Benchmark):
    • Sử dụng công cụ đo tải với 100 người dùng ảo đồng thời (Concurrent Users).
    • Thời gian phản hồi trung bình (Average Latency): 118ms cho các trang đọc dữ liệu (Read) và 185ms cho các tác vụ ghi dữ liệu (Write/Checkout).
    • Thông lượng (Throughput): Đạt 420 yêu cầu/giây trên môi trường máy chủ tiêu chuẩn (CPU 4 Cores, 8GB RAM).

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

Hệ thống đã hoàn thiện đầy đủ các chức năng thiết kế và đáp ứng trọn vẹn mục tiêu ban đầu:

  • Phía Người dùng (Client): Giao diện đáp ứng (Responsive), tìm kiếm theo danh mục đa cấp, xem chi tiết sản phẩm với nhiều góc ảnh và tùy chọn màu/chậu, giỏ hàng lưu tự động, đặt hàng với địa chỉ chuẩn hóa 3 cấp, thanh toán an toàn qua VNPay, quản lý lịch sử đơn hàng và đánh giá sản phẩm sau khi đơn hàng chuyển sang trạng thái "Giao thành công".
  • Phía Quản trị viên (Admin): Bảng điều khiển quản lý trực quan danh mục sản phẩm, biến thể màu sắc, tin tức đa ngôn ngữ, quản lý tài khoản người dùng, phân quyền Role động và theo dõi cập nhật trạng thái đơn hàng theo thời gian thực.

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

  1. Kiến trúc dữ liệu đa ngôn ngữ linh hoạt: Khắc phục nhược điểm nhân đôi bảng dữ liệu bằng việc thiết kế bảng trung gian *Translations liên kết với bảng Languages, giúp hệ thống hỗ trợ song ngữ Tiếng Việt và Tiếng Anh với chi phí truy vấn tối thiểu.
  2. Mô hình Giỏ hàng phi trạng thái (Stateless Client-side Cart): Tận dụng LocalStorage giúp giảm 45% mức chiếm dụng bộ nhớ RAM máy chủ so với cơ chế lưu Session truyền thống, đồng thời giữ nguyên trạng thái giỏ hàng khi người dùng vô tình đóng trình duyệt.
  3. Tối ưu hóa quy trình Checkout & Chuẩn hóa dữ liệu địa chỉ: Tích hợp bộ dữ liệu phân cấp hành chính chuẩn (Tỉnh/Thành phố, Quận/Huyện, Phường/Xã) từ tệp JSON, giảm thiểu 100% lỗi nhập sai địa chỉ và rút ngắn 42% thời gian điền thông tin thanh toán của khách hàng.
  4. Chu trình phản hồi khách hàng khép kín (Closed-loop Customer Feedback): Cho phép người mua đính kèm ảnh thực tế và chấm điểm sản phẩm chỉ sau khi đơn hàng được giao thành công; đồng thời cho phép Admin phản hồi công khai, tạo độ tin cậy xã hội (Social Proof) vượt trội so với các website đối thủ hiện hành.

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

Khả năng ứng dụng thực tiễn

Website có tính ứng dụng cao, sẵn sàng triển khai thực tế cho các mô hình kinh doanh cây cảnh văn phòng, vườn ươm cây mini, chuỗi cửa hàng hoa kiểng quà tặng hoặc chuyển đổi số cho các hộ kinh doanh truyền thống.

                  MÔ HÌNH TRIỂN KHAI THỰC TẾ
  [Internet User] ---> [Cloudflare WAF / CDN / SSL]
                                │
                     [Windows Server 2019 / IIS]
                                │
                    [ASP.NET Core Kestrel App]
                                │
                    [SQL Server 2019 Database]

Chiến lược triển khai và Yêu cầu hệ thống

  • Hạ tầng máy chủ Web (Production): Windows Server 2019/2022 cài đặt Internet Information Services (IIS) kết hợp ASP.NET Core Hosting Bundle 5.0 (hoặc triển khai qua Docker Container trên Linux Ubuntu Server).
  • Cấu hình phần cứng tối thiểu: CPU 2 Cores, RAM 4GB, Ổ cứng SSD 40GB.
  • Cấu hình cơ sở dữ liệu: Microsoft SQL Server 2016 trở lên.
  • Tên miền & Chứng chỉ số: Tên miền Internet có gắn chứng chỉ bảo mật SSL/TLS (Let's Encrypt hoặc Cloudflare SSL).

Phân tích chi phí - hiệu quả (Cost-Benefit & ROI)

  • Chi phí đầu tư ban đầu: Tiết kiệm khoảng 70% chi phí bản quyền phần mềm nhờ sử dụng nền tảng mã nguồn mở ASP.NET Core và hệ sinh thái thư viện .NET miễn phí.
  • Chi phí vận hành: Chi phí duy trì VPS/Hosting và tên miền ước tính khoảng 150.000 - 300.000 VNĐ/tháng.
  • Thời gian hoàn vốn (ROI): Tối ưu hóa chuyển đổi đơn hàng trực tuyến và tự động hóa thanh toán giúp doanh nghiệp hoàn vốn đầu tư chỉ sau 3 - 6 tháng vận hành thực tế.

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

Hạn chế kỹ thuật

  1. Hệ thống chưa tích hợp tính năng xác thực hai yếu tố (2FA) qua mã OTP SMS hoặc gửi email kích hoạt tài khoản tự động khi đăng ký.
  2. Chưa kết nối trực tiếp với API định tuyến và tính phí vận chuyển theo thời gian thực của các đối tác giao vận (như Giao Hàng Nhanh - GHN, Giao Hàng Tiết Kiệm - GHTK).
  3. Chức năng đánh giá sản phẩm chỉ mới hỗ trợ tải lên tệp hình ảnh, chưa hỗ trợ tải lên video ngắn do giới hạn về dung lượng máy chủ lưu trữ.

Hướng phát triển trong tương lai

  • Nâng cấp phiên bản nền tảng: Chuyển đổi và tối ưu hóa mã nguồn sang .NET 8 LTS nhằm nâng cao hiệu năng xử lý thêm 25-30% và kéo dài chu kỳ hỗ trợ bảo mật.
  • Tích hợp Logistics API: Kết nối API bưu điện/hãng vận chuyển để tự động tính toán phí ship dựa trên tọa độ địa lý và khối lượng cây cảnh, cho phép khách hàng tra cứu lộ trình đơn hàng theo thời gian thực.
  • Ứng dụng Trí tuệ nhân tạo (AI): Tích hợp mô hình Computer Vision (nhận diện hình ảnh) hỗ trợ khách hàng chụp ảnh lá cây để tự động chẩn đoán bệnh cây và gợi ý phân bón/sản phẩm phù hợp.
  • Đa nền tảng di động: Xây dựng ứng dụng di động cho khách hàng trên nền tảng .NET MAUI hoặc Flutter đồng bộ trực tiếp với hệ cơ sở dữ liệu hiện tại.

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

  • Sinh viên ngành CNTT / Kỹ thuật Máy tính: Nguồn tài liệu tham khảo thực tế về kiến trúc ASP.NET Core MVC chuẩn mực, cách thức phân quyền Identity Framework, xử lý cơ sở dữ liệu đa ngôn ngữ và kỹ thuật chống tấn công web.
  • Lập trình viên phần mềm (Developers): Cung cấp các mẫu mã nguồn (code patterns) hoàn chỉnh về tích hợp cổng thanh toán trực tuyến VNPay, giỏ hàng LocalStorage, và xử lý bất đồng bộ trong C#.
  • Chủ cửa hàng & Doanh nghiệp kinh doanh: Một nền tảng thương mại điện tử hoàn chỉnh, tự chủ công nghệ, tiết kiệm chi phí thuê nền tảng SaaS hàng tháng và nâng cao độ uy tín của thương hiệu.
  • Các nhà nghiên cứu ứng dụng: Cơ sở thực nghiệm về tối ưu hóa quy trình checkout và an ninh ứng dụng web thương mại điện tử quy mô vừa và nhỏ.

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai website lên môi trường thực tế là gì?

Để triển khai hệ thống (Production Deployment), bạn cần máy chủ chạy Windows Server (hỗ trợ IIS và ASP.NET Core Hosting Bundle) hoặc Linux Server (chạy Kestrel Server/Docker), cài đặt Microsoft SQL Server 2016 trở lên, cùng chứng chỉ SSL/HTTPS để kích hoạt cổng thanh toán VNPay và xác thực OAuth 2.0 an toàn.

2. Hệ thống xử lý thế nào khi có nhiều người cùng mua một sản phẩm có số lượng tồn kho giới hạn?

Hệ thống sử dụng cơ chế Transaction trong Entity Framework Core kết hợp với kiểm tra số lượng tồn kho tại bảng ProductColors ngay tại thời điểm thực thi Action thanh toán (Checkout). Nếu số lượng trong kho không đủ đáp ứng, giao dịch sẽ được Rollback và thông báo cho người dùng, ngăn ngừa hiện tượng đặt hàng vượt quá tồn kho (Overselling).

3. Website có thể tích hợp thêm các cổng thanh toán khác như MoMo hay ZaloPay không?

Hoàn toàn có thể. Kiến trúc Controller của hệ thống được thiết kế theo dạng mô-đun hóa độc lập. Lập trình viên chỉ cần triển khai thêm Service xử lý tạo mã yêu cầu và chữ ký băm (Signature) tương ứng theo tài liệu API của MoMo hoặc ZaloPay tương tự như mô-đun VnPayLibrary đã xây dựng.

4. Dữ liệu giỏ hàng lưu ở LocalStorage có bị mất khi người dùng tải lại trang không?

Không. LocalStorage là bộ nhớ cục bộ theo tên miền trên trình duyệt web của người dùng, dữ liệu giỏ hàng sẽ được lưu trữ bền vững (Persistent) ngay cả khi người dùng F5, tải lại trang, hoặc tắt trình duyệt và mở lại. Dữ liệu chỉ được xóa khi người dùng ấn nút xóa sản phẩm, hoàn tất đặt hàng, hoặc chủ động xóa cache trình duyệt.

5. Chi phí triển khai và thời gian vận hành thu hồi vốn (ROI) cho một cửa hàng thực tế ước tính thế nào?

Chi phí ban đầu chủ yếu là phí thuê VPS (khoảng 1.500.000 - 2.500.000 VNĐ/năm) và tên miền (khoảng 250.000 VNĐ/năm). Nhờ cắt giảm được chi phí sàn trung gian (chiết khấu 8-15% trên các sàn thương mại điện tử) và giảm thiểu tỷ lệ hoàn đơn do sai địa chỉ, cửa hàng có thể đạt điểm hòa vốn và tối ưu hóa lợi nhuận sau khoảng 3 đến 6 tháng hoạt động.


Kết luận

Đồ án tốt nghiệp "Xây dựng website bán cây sử dụng ASP.NET Core MVC" của tác giả Nguyễn Quang Linh đã giải quyết trọn vẹn bài toán xây dựng nền tảng thương mại điện tử chuyên biệt cho ngành hàng cây cảnh. Dự án không chỉ thể hiện năng lực làm chủ công nghệ web hiện đại của Microsoft (ASP.NET Core 5.0, Entity Framework Core, Identity Framework, SQL Server), mà còn mang lại giá trị thực tiễn cao qua việc tích hợp thanh toán VNPay, đa ngôn ngữ linh hoạt, tối ưu UI/UX và chuẩn hóa bảo mật theo tiêu chuẩn quốc tế.

Hệ thống là một giải pháp mẫu mực cho các doanh nghiệp và cửa hàng bán lẻ trong quá trình chuyển đổi số, đồng thời là tài liệu tham khảo giá trị cho cộng đồng lập trình viên và sinh viên ngành Công nghệ Kỹ thuật Máy tính. Hãy tham khảo và áp dụng các giải pháp kiến trúc trong đồ án này để xây dựng những ứng dụng web hiệu năng cao, an toàn và tối ưu cho thực tiễn kinh doanh.