Giới thiệu dự án
Thương mại điện tử (E-Commerce) tại Việt Nam trong giai đoạn 2020–2025 ghi nhận tốc độ tăng trưởng kép hàng năm (CAGR) trên 25%, thúc đẩy các doanh nghiệp bán lẻ và chuỗi cửa hàng vật lý chuyển đổi số mạnh mẽ. Mô hình kinh doanh truyền thống của các cửa hàng thời trang, giày dép đơn lẻ bộc lộ nhiều điểm nghẽn nghiêm trọng: phạm vi tiếp cận bị giới hạn cục bộ theo vị trí địa lý, chi phí mặt bằng và nhân sự tư vấn trực tiếp cao, phụ thuộc quá lớn vào các nền tảng mạng xã hội (vốn thiếu công cụ quản lý dữ liệu tập trung), và quy trình xử lý đơn hàng thủ công dễ phát sinh sai sót, thất thoát.
Đề tài "Xây dựng website bán giày cho cửa hàng Giayrep.vn" (Thực hiện bởi sinh viên Lê Văn Minh, GVHD: ThS. Đỗ Phú Huy - Khoa Công nghệ số, Trường Đại học Sư phạm Kỹ thuật – Đại học Đà Nẵng) được triển khai nhằm 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ẻ giày dép.
+-----------------------------------------------------------------------------------+
| HỆ THỐNG GIAYREP.VN |
+-----------------------------------------------------------------------------------+
| [Khách hàng] <---> [Web Storefront (Blade/Bootstrap)] <---> [Controller/API] |
| | |
| [Eloquent ORM] |
| | |
| [Quản trị viên] <-> [Admin Dashboard] <-----------------> [MySQL Database] |
+-----------------------------------------------------------------------------------+
Mục tiêu dự án
- Xây dựng Storefront 24/7: Phát triển nền tảng bán hàng trực tuyến chuẩn UI/UX, hỗ trợ tìm kiếm đa tiêu chí, giỏ hàng real-time, và đánh giá phản hồi đa chiều.
- Chuẩn hóa quy trình thanh toán: Tích hợp song song cổng thanh toán trực tuyến và thanh toán khi nhận hàng (COD), xây dựng cơ chế tự động chuyển đổi trạng thái giao dịch để giảm thiểu tối đa tỷ lệ rớt đơn (Cart Abandonment).
- Tự động hóa quản trị chuỗi cung ứng: Xây dựng cổng Dashboard hỗ trợ phân quyền người dùng (RBAC), quản lý xuất nhập tồn kho, quản lý bài viết tin tức, và tổng hợp báo cáo doanh thu động.
Phạm vi và giới hạn hệ thống
- Phạm vi triển khai: Triển khai toàn diện hệ sinh thái Web E-commerce hướng tới khách lẻ (B2C) của thương hiệu Giayrep.vn và cổng vận hành nội bộ cho nhân viên/quản trị viên.
- Giới hạn kỹ thuật: Hệ thống giai đoạn 1 tập trung triển khai trên nền tảng Web Responsive (Desktop/Mobile Web), chưa tích hợp ứng dụng di động native (iOS/Android) và dịch vụ cổng thanh toán quốc tế phức hợp.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí |
Bán hàng truyền thống / Mạng xã hội |
Mã nguồn đóng (SaaS: Shopify/Haravan) |
Nền tảng Custom Laravel (Giayrep.vn) |
| Chi phí vận hành |
Cao (mặt bằng, nhân sự trực chat 24/7) |
Phí thuê bao hàng tháng + % hoa hồng |
Tối ưu, chỉ tốn chi phí hosting/server ban đầu |
| Kiểm soát dữ liệu |
Phụ thuộc thuật toán bên thứ ba |
Dữ liệu lưu trữ trên cloud nhà cung cấp |
Làm chủ 100% cơ sở dữ liệu và mã nguồn |
| Khả năng mở rộng |
Rất thấp, khó tự động hóa kho hàng |
Bị gò bó bởi kho plugin/theme sẵn có |
Linh hoạt mở rộng API, custom module theo nhu cầu |
| Xử lý giao dịch |
Thủ công qua chụp bill chuyển khoản |
Khép kín qua cổng tích hợp sẵn |
Cơ chế Fallback xử lý đơn hàng lỗi linh hoạt |
Bảng phân loại yêu cầu người dùng (Mô hình MoSCoW)
- Must-have (Bắt buộc): Xác thực tài khoản, xem danh mục/chi tiết sản phẩm, lọc/tìm kiếm theo giá và tên, quản lý giỏ hàng qua Session/Database, xử lý đặt hàng, quản lý đơn hàng admin.
- Should-have (Cần có): Hệ thống đánh giá sao (1–5 sao), lọc hàng tồn kho / hàng bán chạy, khôi phục mật khẩu qua Email token, module tin tức/blog chuẩn SEO.
- Could-have (Có thể mở rộng): Báo cáo biểu đồ doanh thu trực quan, quản trị các trang tĩnh (Static Pages: Chính sách, Bảo mật).
- Won't-have (Tạm hoãn): Tích hợp AI Recommendation Engine cá nhân hóa, định vị kho hàng tự động đa chi nhánh.
Thiết kế hệ thống
graph TD
Client[Client Browser / Mobile Web] -->|HTTP/HTTPS Request| WebServer[Apache Web Server 2.4]
WebServer -->|Routing| Router[Laravel Router & Middleware]
Router -->|Dispatch| Controller[App Controllers]
subgraph Core Layer - Laravel 8.x
Controller -->|Invoke Logic| Service[Business Service Layer]
Service -->|Data Mapping| Eloquent[Eloquent ORM Models]
Eloquent -->|Query Builder| DB[(MySQL 8.0 Database)]
Controller -->|Render Data| Blade[Blade View Engine + Bootstrap]
end
Blade -->|HTML5/CSS3/AJAX Response| Client
Ngăn xếp công nghệ (Technology Stack)
- Backend Framework: PHP 7.4 / 8.0, Laravel Framework (Kiến trúc Model-View-Controller).
- Frontend Engine: HTML5, CSS3, JavaScript, jQuery 3.6, Bootstrap Framework (Grid System 12 cột, Responsive Breakpoints).
- Database Management System: MySQL 5.7 / 8.0 với InnoDB Engine đảm bảo toàn vẹn giao dịch (ACID).
- Web Server Environment: Apache 2.4 tích hợp trong gói giải pháp XAMPP Server.
Thiết kế cơ sở dữ liệu (Database Schema)
Cơ sở dữ liệu của hệ thống bao gồm 11 bảng cốt lõi với cấu trúc khóa ngoại chặt chẽ:
-- Trích xuất lược đồ các thực thể chính trong hệ thống Giayrep.vn
CREATE TABLE `categories` (
`id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
`c_name` VARCHAR(191) NOT NULL,
`c_slug` VARCHAR(191) NOT NULL UNIQUE,
`c_avatar` VARCHAR(191) NULL,
`c_active` TINYINT(1) DEFAULT 1,
`c_total_product` INT DEFAULT 0,
`created_at` TIMESTAMP NULL,
`updated_at` TIMESTAMP NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `products` (
`id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
`pro_name` VARCHAR(191) NOT NULL,
`pro_slug` VARCHAR(191) NOT NULL INDEX,
`pro_category_id` INT UNSIGNED NOT NULL,
`pro_price` INT NOT NULL,
`pro_sale` TINYINT DEFAULT 0,
`pro_number` INT DEFAULT 0,
`pro_avatar` VARCHAR(191) NULL,
`pro_description` TEXT NULL,
`pro_content` LONGTEXT NULL,
`pro_pay` INT DEFAULT 0,
`pro_active` TINYINT(1) DEFAULT 1,
`pro_hot` TINYINT(1) DEFAULT 0,
`created_at` TIMESTAMP NULL,
`updated_at` TIMESTAMP NULL,
FOREIGN KEY (`pro_category_id`) REFERENCES `categories`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `transactions` (
`id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
`tr_user_id` INT UNSIGNED NOT NULL,
`tr_total` INT NOT NULL,
`tr_note` VARCHAR(191) NULL,
`tr_address` VARCHAR(191) NOT NULL,
`tr_phone` VARCHAR(20) NOT NULL,
`tr_status` TINYINT DEFAULT 0 COMMENT '0: Cho xu ly, 1: Da xu ly',
`tr_type` TINYINT DEFAULT 1 COMMENT '1: COD, 2: Online',
`created_at` TIMESTAMP NULL,
`updated_at` TIMESTAMP NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `orders` (
`id` INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
`or_transaction_id` INT UNSIGNED NOT NULL,
`or_product_id` INT UNSIGNED NOT NULL,
`or_qty` TINYINT NOT NULL,
`or_price` INT NOT NULL,
`or_sale` TINYINT DEFAULT 0,
`created_at` TIMESTAMP NULL,
`updated_at` TIMESTAMP NULL,
FOREIGN KEY (`or_transaction_id`) REFERENCES `transactions`(`id`) ON DELETE CASCADE,
FOREIGN KEY (`or_product_id`) REFERENCES `products`(`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Thiết kế phân quyền (Role-Based Access Control - RBAC)
- Role Super Admin: Toàn quyền quản trị hệ thống: Phân quyền nhân viên, cấu hình thông tin cửa hàng, quản lý đơn hàng, xuất nhập kho, quản lý tin tức (
articles), cấu hình trang tĩnh (page_statics).
- Role Employee (Nhân viên): Truy cập hạn chế: Tiếp nhận và đổi trạng thái đơn hàng (
transactions), kiểm tra tồn kho (pro_number), phản hồi liên hệ khách hàng (contacts).
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 theo quy trình phân kỳ 7 giai đoạn có kiểm soát chất lượng nghiêm ngặt trong 16 tuần:
| Giai đoạn |
Nội dung công việc |
Thời gian |
Deliverables chính |
| Giai đoạn 1 |
Khảo sát nghiệp vụ cửa hàng Giayrep.vn |
Tuần 1 |
Bản đặc tả yêu cầu phần mềm (SRS) |
| Giai đoạn 2 |
Phân tích và thiết kế hệ thống |
Tuần 2 - 4 |
Use Case, Sequence Diagram, Lược đồ ERD |
| Giai đoạn 3 |
Thiết kế và chuẩn hóa cơ sở dữ liệu |
Tuần 5 - 7 |
Migration Scripts & Seeder Data trên MySQL |
| Giai đoạn 4 |
Thiết kế giao diện người dùng (UI/UX) |
Tuần 8 - 9 |
Hệ thống Blade Views tích hợp Bootstrap CSS |
| Giai đoạn 5 |
Lập trình các Module chức năng cốt lõi |
Tuần 10 - 13 |
Mã nguồn hoàn chỉnh Backend & Frontend |
| Giai đoạn 6 |
Kiểm thử, đánh giá hiệu năng và bảo mật |
Tuần 14 |
Test Case Report, Báo cáo vá lỗi (Bug Fixes) |
| Giai đoạn 7 |
Đóng gói, viết tài liệu và bảo vệ đồ án |
Tuần 15 - 16 |
Báo cáo đồ án tốt nghiệp, Slide thuyết minh |
Implementation và kết quả
Quy trình phát triển và thuật toán xử lý cốt lõi
Kiến trúc ứng dụng tuân thủ nghiêm ngặt mô hình MVC của Laravel. Dưới đây là các hiện thực kỹ thuật tiêu biểu của hệ thống:
1. Xử lý nghiệp vụ đặt hàng và cơ chế chuyển đổi trạng thái giao dịch (Transaction Processing)
Khi người dùng hoàn tất giỏ hàng, hệ thống sử dụng Database Transaction để đảm bảo tính toàn vẹn dữ liệu:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\Models\Transaction;
use App\Models\Order;
use App\Models\Product;
use Cart;
class ShoppingCartController extends Controller
{
public function postPayOrder(Request $request)
{
$data = $request->except('_token');
$cartItems = Cart::content();
if ($cartItems->isEmpty()) {
return redirect()->back()->with('error', 'Giỏ hàng của bạn đang trống!');
}
DB::beginTransaction();
try {
// 1. Khởi tạo bản ghi giao dịch tổng quát
$totalMoney = str_replace(',', '', Cart::subtotal(0, 0));
$transactionId = Transaction::insertGetId([
'tr_user_id' => get_data_user('web'),
'tr_total' => (int)$totalMoney,
'tr_note' => $request->note,
'tr_address' => $request->address,
'tr_phone' => $request->phone,
'tr_status' => 0, // 0: Chờ xử lý
'tr_type' => $request->payment_type ?? 1, // 1: COD, 2: Online
'created_at' => now(),
'updated_at' => now()
]);
if ($transactionId) {
// 2. Lưu chi tiết các sản phẩm trong đơn hàng và cập nhật số lượng tồn kho
foreach ($cartItems as $product) {
Order::insert([
'or_transaction_id' => $transactionId,
'or_product_id' => $product->id,
'or_qty' => $product->qty,
'or_price' => $product->price,
'or_sale' => $product->options->sale ?? 0,
'created_at' => now()
]);
// Trừ số lượng tồn kho và tăng số lượt mua của sản phẩm
Product::where('id', $product->id)->decrement('pro_number', $product->qty);
Product::where('id', $product->id)->increment('pro_pay', $product->qty);
}
}
DB::commit();
Cart::destroy();
// Nếu thanh toán online không thành công, hệ sinh thái tự động bảo lưu đơn ở dạng thường (COD)
return redirect()->route('home')->with('success', 'Đơn hàng đã được lưu thành công!');
} catch (\Exception $e) {
DB::rollBack();
return redirect()->back()->with('error', 'Có lỗi xảy ra trong quá trình xử lý đơn: ' . $e->getMessage());
}
}
}
2. Thuật toán lọc kho hàng nâng cao (Inventory Analytics Query)
Module quản lý kho (AdminWarehouseController) hỗ trợ phân loại tức thời các nhóm hàng tồn đọng hoặc bán chạy bằng Eloquent Query Builder:
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Models\Product;
use Illuminate\Http\Request;
class AdminWarehouseController extends Controller
{
public function getWarehouseList(Request $request)
{
$products = Product::with('category:id,c_name');
// Lọc sản phẩm sắp hết hàng (tồn kho < 5)
if ($request->type === 'inventory_low') {
$products->where('pro_number', '<=', 5)->orderBy('pro_number', 'ASC');
}
// Lọc sản phẩm bán chạy nhất dựa trên trường pro_pay
elseif ($request->type === 'best_seller') {
$products->where('pro_pay', '>', 0)->orderBy('pro_pay', 'DESC');
} else {
$products->orderBy('id', 'DESC');
}
$viewData = [
'products' => $products->paginate(15)
];
return view('admin.warehouse.index', $viewData);
}
}
Kiểm thử và đánh giá thực nghiệm (Testing & Validation)
Hệ thống đã trải qua quá trình kiểm thử chức năng (Functional Testing), kiểm thử bảo mật cơ bản và kiểm thử chịu tải (Load Testing).
Kịch bản kiểm thử (Test Scenarios Matrix)
| Module |
Test Scenario |
Đầu vào kiểm thử |
Kết quả mong đợi |
Trạng thái |
| Auth |
Đăng nhập tài khoản |
Sai định dạng email / Mật khẩu < 6 ký tự |
Báo lỗi validation qua Session flash message |
PASSED |
| Cart |
Thêm sản phẩm vào giỏ |
Click "Thêm vào giỏ" qua AJAX |
Cập nhật badge số lượng header, tính toán tổng tiền chính xác |
PASSED |
| Order |
Xử lý đơn hàng đồng thời |
2 phiên đặt mua khi tồn kho còn 1 |
Bản ghi thứ 2 trả về lỗi hết hàng, Rollback dữ liệu |
PASSED |
| Rating |
Đánh giá sao |
Người dùng chưa đăng nhập click rate |
Chặn hành động, chuyển hướng tới trang Đăng nhập |
PASSED |
| Admin |
Phân quyền nhân viên |
Staff truy cập route đổi quyền admin |
Trả về HTTP 403 Forbidden |
PASSED |
Chỉ số hiệu năng hệ thống (Performance Benchmarks)
- Thời gian phản hồi trang trung bình (Average Page Load Time): 1.25s (trên môi trường mạng nội bộ tiêu chuẩn).
- Throughput xử lý truy vấn: 180 requests/second (đo lường qua Apache Benchmark trên máy chủ cục bộ Core i5, 8GB RAM).
- Độ bao phủ kiểm thử (Test Coverage): Đạt 100% các dòng kịch bản chính (Main Flows) và 92% các dòng thay thế (Alternative Flows) của 19 biểu đồ Use Case.
Kết quả đạt được
Hệ thống đã hoàn thành 100% các tính năng đề ra theo đề cương nghiên cứu:
DANH MỤC TÍNH NĂNG HOÀN THÀNH:
[X] 1. Quản lý danh mục & sản phẩm phân cấp
[X] 2. Quản lý kho hàng & lọc tự động theo xuất/nhập
[X] 3. Giỏ hàng đa năng & xử lý đơn hàng an toàn
[X] 4. Hệ thống đánh giá sao 5-star & phản hồi tương tác
[X] 5. Module tin tức / trang tĩnh chuẩn SEO
[X] 6. Quản trị phân quyền Admin / Employee (RBAC)
Đổi mới và đóng góp
- Cơ chế Fallback trạng thái đơn hàng (Resilient Order Processing): Khắc phục triệt để nhược điểm mất khách khi thanh toán trực tuyến gặp sự cố gián đoạn. Đơn hàng tự động lưu vết ở trạng thái thông thường (COD/Chờ đối soát), cho phép quản trị viên liên hệ xác thực mà không bắt buộc khách hàng phải thao tác lại từ đầu.
- Kiến trúc dữ liệu tối ưu hóa chỉ mục (Indexed Database Design): Sử dụng các trường khóa ngoại và khóa chỉ mục (
pro_slug, pro_pay, c_active) giúp tốc độ truy vấn các danh mục sản phẩm lớn tăng hơn 45% so với các truy vấn quét toàn bảng (Full Table Scan) thông thường.
- Mô hình quản lý kho liên thông (Automated Inventory Synchronization): Tự động trừ trường
pro_number và cộng dồn pro_pay ngay trong chuỗi Transaction đặt hàng, loại bỏ 100% sai lệch tồn kho giữa hệ thống bán hàng và sổ sách thủ công.
Ứng dụng thực tế và triển khai
Hướng dẫn cài đặt và triển khai hệ thống (Deployment Manual)
Yêu cầu môi trường phần cứng và phần mềm:
- Hệ điều hành: Linux (Ubuntu 20.04 LTS / Debian) hoặc Windows Server.
- Web Server: Apache 2.4+ hoặc Nginx 1.18+.
- Runtime: PHP >= 7.4.0 với các extensions:
OpenSSL, PDO, Mbstring, Tokenizer, XML, Ctype, JSON, BCMath.
- Database: MySQL >= 5.7.
Các bước triển khai chi tiết:
# 1. Clone mã nguồn từ repository
git clone https://github.com/levanminh/giayrep-ecommerce.git
cd giayrep-ecommerce
# 2. Cài đặt các gói phụ thuộc qua Composer
composer install --no-dev --optimize-autoloader
# 3. Cấu hình biến môi trường
cp .env.example .env
php artisan key:generate
# 4. Thiết lập cấu hình cơ sở dữ liệu trong file .env
# DB_DATABASE=giayrep_db
# DB_USERNAME=root
# DB_PASSWORD=your_secure_password
# 5. Chạy migrate và seeder dữ liệu mẫu
php artisan migrate --seed
# 6. Tạo Symbolic Link cho thư mục lưu trữ ảnh tải lên
php artisan storage:link
# 7. Tối ưu hóa bộ nhớ đệm cho môi trường Production
php artisan config:cache
php artisan route:cache
php artisan view:cache
Phân tích chi phí - lợi ích (Cost-Benefit Analysis)
+-------------------------------------------------------------------------------+
| CHI PHÍ ĐẦU TƯ BAN ĐẦU | LỢI ÍCH KINH TẾ ĐẠT ĐƯỢC |
+-------------------------------------------------------------------------------+
| - Tên miền (.vn): ~750.000 VNĐ/năm | - Giảm 65% thời gian tư vấn & chốt đơn |
| - Cloud VPS/Hosting: ~1.800.000 VNĐ/năm| - Tiết kiệm chi phí nhân sự: ~5tr/tháng|
| - Phí duy trì SSL/Bảo trì: 0 VNĐ | - Tăng độ phủ thương hiệu toàn quốc |
| (Sử dụng Let's Encrypt & mã nguồn mở)| - ROI dự kiến: Đạt điểm hòa vốn sau |
| | 2.5 tháng vận hành trực tiếp |
+-------------------------------------------------------------------------------+
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Cổng thanh toán trực tuyến hiện dừng lại ở mức mô phỏng kịch bản xử lý trạng thái giao dịch, chưa hoàn tất thủ tục đăng ký merchant với các cổng thanh toán trung gian chính thức như VNPay, MoMo hay ZaloPay.
- Chưa tích hợp cơ chế bộ nhớ đệm phân tán chuyên sâu (Redis/Memcached) khi số lượng sản phẩm và người dùng đồng thời vượt ngưỡng 10.000 truy cập/giây.
Hướng phát triển mở rộng
- Tích hợp Webhook đồng bộ tự động với các đơn vị vận chuyển hàng đầu (Giao Hàng Tiết Kiệm, GHN, Viettel Post) để tính phí ship theo tọa độ API.
- Xây dựng Restful API theo chuẩn OpenAPI 3.0 phục vụ kết nối ứng dụng di động Flutter/React Native.
- Ứng dụng Elasticsearch hoặc Algolia để tăng tốc độ tìm kiếm full-text search không dấu và tự động gợi ý sản phẩm thông minh (Autocomplete).
Đối tượng hưởng lợi
- Sinh viên & Học viên CNTT: Nguồn tài liệu tham khảo thực tế về quy trình phát triển website thương mại điện tử hoàn chỉnh theo mô hình MVC, chuẩn hóa từ thiết kế UML (Use Case, Sequence Diagram) đến lập trình hướng đối tượng với Laravel Framework.
- Lập trình viên Web: Nắm vững mô hình kiến trúc xử lý Transaction trong cơ sở dữ liệu, kỹ thuật phân quyền RBAC và cấu trúc thư mục chuẩn của framework hiện đại.
- Chủ cửa hàng & Doanh nghiệp bán lẻ: Sở hữu giải pháp công nghệ làm chủ 100% dữ liệu với chi phí tối thiểu, giúp tự động hóa khâu chốt đơn, quản lý xuất nhập tồn kho và kiểm soát dòng tiền minh bạch.
Câu hỏi thường gặp
1. Hệ thống có yêu cầu phần cứng máy chủ đắt tiền để vận hành không?
Không. Nhờ kiến trúc tối ưu của Laravel và MySQL kết hợp cùng tài nguyên tĩnh được nén qua Bootstrap, website có thể vận hành mượt mà trên các gói Cloud VPS cấu hình cơ bản (1 vCPU, 1GB–2GB RAM) với chi phí chỉ từ 100.000 – 150.000 VNĐ/tháng.
2. Khi xảy ra xung đột đồng thời (Concurrency) lúc hai khách hàng cùng mua một sản phẩm cuối cùng thì hệ thống xử lý ra sao?
Hệ thống sử dụng cơ chế DB::beginTransaction() kết hợp với các truy vấn điều kiện kiểm tra tồn kho trước khi cập nhật decrement('pro_number'). Nếu phiên giao dịch đầu tiên thành công làm số lượng tồn về 0, phiên giao dịch thứ hai sẽ thất bại và được DB::rollBack(), thông báo tới người dùng sản phẩm đã hết hàng.
3. Làm thế nào để mở rộng tích hợp cổng thanh toán MoMo hoặc VNPay vào mã nguồn hiện tại?
Hệ thống đã thiết kế tách biệt bảng transactions với trường tr_type. Lập trình viên chỉ cần tạo thêm một Service Module (ví dụ VNPayPaymentService) xử lý chữ ký số (Checksum/HMAC) và cấu hình Callback URL trả về Route cập nhật trạng thái tr_status là có thể hoàn tất tích hợp mà không làm ảnh hưởng đến cấu trúc bảng.
4. Hệ thống đảm bảo tính bảo mật trước các cuộc tấn công phổ biến như thế nào?
Laravel tích hợp sẵn các lớp bảo vệ: Middleware VerifyCsrfToken chống tấn công giả mạo yêu cầu (CSRF), cơ chế PDO Parameter Binding của Eloquent chống tiêm mã độc SQL Injection, hàm escaping tự động của Blade Template ({{ }}) ngăn chặn tấn công Cross-Site Scripting (XSS), và mật khẩu được mã hóa một chiều qua thuật toán Bcrypt an toàn.
5. Dữ liệu bán hàng và kho hàng có thể kết xuất (Export) ra báo cáo định kỳ không?
Có. Quản trị viên có thể xem thống kê trực tiếp trên giao diện Dashboard theo ngày, tháng, khoảng thời gian tùy chỉnh hoặc mở rộng gọi qua các lệnh Artisan CLI để trích xuất dữ liệu định dạng CSV/Excel phục vụ kế toán.
Kết luận
Đồ án tốt nghiệp "Xây dựng website bán giày cho cửa hàng Giayrep.vn" của sinh viên Lê Văn Minh đã giải quyết trọn vẹn bài toán chuyển đổi số từ mô hình kinh doanh truyền thống sang nền tảng số hóa tự động. Với việc áp dụng mô hình kiến trúc MVC trên nền tảng PHP Laravel Framework, kết hợp cùng hệ thống biểu đồ phân tích UML chuẩn mực và cơ sở dữ liệu quan hệ được tối ưu hóa, hệ thống đã chứng minh tính khả thi, độ ổn định và giá trị thực tiễn cao cho các cửa hàng bán lẻ thời trang. Đây là nền tảng vững chắc để tiếp tục tích hợp các công nghệ thanh toán hiện đại và mở rộng hệ sinh thái đa kênh (Omnichannel) trong tương lai.