Đây là Full Source Code hệ thống thương mại điện tử đa nền tảng, bao gồm website bán hàng, trang quản trị và ứng dụng giao hàng dành cho shipper. Hệ thống được xây dựng nhằm quản lý xuyên suốt quy trình từ quản lý sản phẩm, đặt hàng, thanh toán, quản lý kho đến giao hàng và theo dõi đơn hàng.
Chức năng chính
Website khách hàng
-
Đăng ký, đăng nhập và quản lý tài khoản.
-
Xem danh sách và chi tiết sản phẩm.
-
Tìm kiếm và lọc sản phẩm.
-
Quản lý giỏ hàng.
-
Đặt hàng.
-
Quản lý nhiều địa chỉ giao hàng.
-
Thanh toán đơn hàng.
-
Hỗ trợ thanh toán COD và thanh toán online.
-
Sử dụng mã giảm giá/voucher.
-
Theo dõi trạng thái đơn hàng.
-
Theo dõi quá trình giao hàng.
-
Xem lịch sử mua hàng.
-
Nhắn tin với hệ thống.
-
Cập nhật thông tin cá nhân.
Trang quản trị Admin
-
Quản lý sản phẩm.
-
Quản lý danh mục.
-
Quản lý người dùng và tài khoản.
-
Quản lý đơn hàng.
-
Quản lý kho hàng và tồn kho.
-
Quản lý nhà cung cấp.
-
Quản lý phiếu nhập hàng.
-
Quản lý phương thức vận chuyển.
-
Quản lý chương trình khuyến mãi/voucher.
-
Quản lý nội dung.
-
Duyệt thanh toán.
-
Theo dõi đơn hàng và quá trình giao hàng.
-
Quản lý tin nhắn.
-
Theo dõi và quản lý thông tin người giao hàng.
-
Dashboard thống kê hoạt động và doanh thu.
Ứng dụng giao hàng cho Shipper
-
Đăng nhập tài khoản shipper.
-
Nhận đơn hàng cần giao.
-
Xem thông tin khách hàng và địa chỉ giao hàng.
-
Xem vị trí và hỗ trợ chỉ đường.
-
Cập nhật trạng thái giao hàng.
-
Theo dõi lịch sử giao hàng.
-
Xem thống kê đơn hàng.
-
Chat với khách hàng/admin.
-
Ghi nhận lý do giao hàng thất bại.
-
Chụp ảnh minh chứng khi giao hàng.
-
Nhận thông báo khi có đơn hàng mới.
Công nghệ sử dụng
-
Frontend Web: Next.js
-
Backend: PHP
-
Database: MySQL
-
Mobile: React Native
-
API: RESTful API
-
Authentication: JWT
-
Real-time: WebSocket
-
Notification: Firebase Cloud Messaging (FCM)
-
Payment: PayOS
-
Map/Geocoding: Mapbox
-
Email: PHPMailer
-
Deployment: Docker
XEM THÊM ==> Hướng dẫn cài đặt chi tiết
HƯỚNG DẪN CÀI ĐẶT
YÊU CẦU HỆ THỐNG
PHP >= 8.0 (đã bật extension: pdo, pdo_mysql, curl, mbstring, openssl)
MySQL >= 5.7 (hoặc MariaDB), có thể dùng XAMPP/Laragon
Composer
Node.js >= 18 (cho phần web Next.js)
(Tuỳ chọn) Expo CLI + Android Studio nếu build app mobile shipper
BƯỚC 1 — CÀI ĐẶT BACKEND (PHP API)
Vào thư mục ecommerce/, chạy: composer install
Copy .env.example thành .env, điền các thông tin: DB, JWT_SECRET, PayOS, SMTP, Mapbox... (xem chú thích trong từng dòng)
Import database: mở phpMyAdmin, tạo database mới, import file database/migrations/vivienie_final.sql
Chạy backend: php -S localhost:8000 -t public
Kiểm tra: mở http://localhost:8000/api/v1/products — nếu trả JSON là thành công
BƯỚC 2 — CHẠY WEBSOCKET (chat & thông báo realtime)
Chạy: php websocket_server.php
Server chạy ở cổng 8080 (ws://localhost:8080)
BƯỚC 3 — CÀI ĐẶT WEB (Next.js — trang khách hàng + trang quản trị)
Vào thư mục web/, chạy: npm install
Copy .env.example thành .env.local, điền BACKEND_URL_LOCAL=http://localhost:8000 và các biến còn lại (Mapbox token...)
Chạy: npm run dev
Truy cập: http://localhost:3000
BƯỚC 4 (TUỲ CHỌN) — CÀI ĐẶT APP MOBILE SHIPPER (Expo/React Native)
Vào thư mục mobile-app-delivery-new/, chạy: npm install
Copy .env.example thành .env, điền EXPO_PUBLIC_API_URL = IP LAN máy chạy backend (vd: http://192.168.1.x:8000)
Tạo project Firebase riêng, tải google-services.json đè vào file mẫu để dùng push notification
Chạy: npx expo start
LƯU Ý
Cần tạo Firebase project riêng để lấy firebase-service-account.json (backend) và google-services.json (mobile) — hướng dẫn chi tiết có ghi chú _comment ngay trong 2 file mẫu.
PayOS/Mapbox/Gmail SMTP đều cần tài khoản riêng của bạn, đăng ký miễn phí theo link ghi trong .env.example
Nguồn: Topcode.vn