SirPhire: Nền Tảng Thương Mại Điện Tử PHP Chuyên Nghiệp Tự Xây Dựng Từ Đầu
SirPhire là một nền tảng thương mại điện tử mã nguồn mở, được xây dựng từ đầu bằng PHP 8.3 kết hợp MySQL 8, Redis, Nginx và Stripe. Bài viết chia sẻ chi tiết kiến trúc, thiết kế cơ sở dữ liệu, tích hợp thanh toán, cũng như kinh nghiệm xây dựng một hệ thống eCommerce gọn nhẹ, dễ mở rộng và bảo trì.

SirPhire là một nền tảng thương mại điện tử (eCommerce) được phát triển từ đầu, hoàn toàn tùy chỉnh và đạt chuẩn production, xây dựng trên nền PHP 8.3 cùng các công nghệ hiện đại như MySQL 8, Redis, Nginx, vanilla JavaScript và Tailwind CSS. Qua bài viết này, lập trình viên và người quan tâm có thể hiểu sâu về cách thiết kế một backend thương mại điện tử thực tế — từ kiến trúc tổng quan, thiết kế database, tích hợp thanh toán Stripe, đến môi trường Docker và testing với PHPUnit.
Tại sao lại xây dựng SirPhire?
Tác giả là một developer backend với kinh nghiệm hơn 6 năm, đã từng làm việc với WooCommerce, Shopify và Magento. Tuy nhiên, mỗi khi ứng dụng gặp yêu cầu đặc thù, các nền tảng này lại khiến anh "đánh vật" với đống plugin phức tạp, tùy biến template hay phải trả tiền cho các gói doanh nghiệp mà không thật sự cần. Vì vậy, anh đã xây dựng SirPhire để kiểm soát hoàn toàn code, đảm bảo sự trong sáng, dễ hiểu, dễ gỡ lỗi và mở rộng mà không cần phụ thuộc tài liệu quá đồ sộ hay framework nặng nề.
Kiến trúc & Công nghệ sử dụng
SirPhire áp dụng mô hình MVC nhẹ, không dùng full framework. Router của ứng dụng chỉ khoảng 120 dòng mã, kết hợp PHP PDO làm lớp truy cập database, template đơn giản dùng include kèm output buffering cho phép code dễ đọc và bảo trì.
Các thành phần chính của stack gồm:
- PHP 8.3: Ngôn ngữ chính xử lý backend logic
- MySQL 8.0: Lưu trữ dữ liệu sản phẩm, đơn hàng, người dùng
- Redis 7: Lưu cache, session và giỏ hàng với tốc độ cao
- Nginx 1.25: Server web xử lý yêu cầu HTTP/S
- Tailwind CSS 3.4 + Vanilla JS (ES2024): Giao diện và tính năng tương tác phía client
- Stripe API: Thanh toán, hoàn tiền, đăng ký dịch vụ
- Docker & Docker Compose: Đóng gói và triển khai ứng dụng
- JWT (Firebase): Hệ thống xác thực bảo mật cho API
- PHPUnit 11: Thử nghiệm tự động
- PHPMailer/SES: Gửi email xác nhận đơn hàng, khôi phục mật khẩu
Thiết kế cơ sở dữ liệu MySQL 8
Bảng được chuẩn hóa đến tầng 3 (3NF) cho hầu hết, trừ bảng order_items được phân tách khéo léo nhằm lưu snapshot giá cả lịch sử khi đơn được tạo. SirPhire tận dụng những tính năng mới của MySQL 8 như hàm cửa sổ (window functions), CTEs, và cột kiểu JSON.
Một số bảng quan trọng:
users: Lưu thông tin người dùng, hỗ trợ trường JSON cho địa chỉproducts: Hỗ trợ full-text search trên tên và mô tả, có trường JSON lưu attributes sản phẩm như màu sắc, kích thướcordersvàorder_items: Ghi nhận đơn hàng với snapshot giá cả và thông tin thanh toán Stripe PaymentIntent ID
Hệ thống xác thực JWT
SirPhire dùng phương pháp xác thực lai: PHP session truyền thống dùng cookie cho frontend, kết hợp JWT cho API REST. Gói firebase/php-jwt thực hiện việc tạo và xác thực token giúp bảo mật tốt và hỗ trợ đa nền tảng.
Quản lý sản phẩm và tồn kho
Mô hình sản phẩm hỗ trợ cả các sản phẩm đơn giản (ví dụ ốp iPhone 15 trong màu cố định) và sản phẩm cấu hình được (ví dụ ốp tùy chỉnh tải ảnh lên, chọn chất liệu, model thiết bị). Dữ liệu thuộc tính biến thể được lưu trong cột JSON, thuận tiện cho mở rộng.
Phương thức decrementStock đảm bảo đồng bộ tồn kho khi đơn hàng thành công.
Giỏ hàng lưu Redis
Dữ liệu giỏ hàng được lưu dưới dạng JSON trong Redis với thời gian tồn (TTL) 7 ngày, giúp truy xuất và ghi cực nhanh, xử lý trường hợp khách hàng bỏ giỏ hàng giữa chừng.
Tích hợp thanh toán Stripe hiện đại
SirPhire sử dụng Stripe Payment Intents API, ưu điểm hỗ trợ 3D Secure, tuân thủ SCA và mô hình webhook rõ ràng. Quy trình bao gồm tạo PaymentIntent phía server, xác nhận qua Stripe.js client-side, và webhook phản hồi khi thanh toán thành công hoặc thất bại.
API REST & caching
API phục vụ truy vấn sản phẩm hỗ trợ lọc, phân trang và cache kết quả trên Redis trong 5 phút để giảm tải hệ thống.
Frontend tối giản
Giao diện frontend xây dựng trên HTML5, Tailwind CSS và vanilla JS thuần, với module AJAX cho giỏ hàng giúp trải nghiệm người dùng nhanh, mượt mà.
Server Nginx và Docker
Cấu hình Nginx chú trọng hiệu suất (gzip, cache tĩnh), bảo mật (header HTTP) và phục vụ PHP-FPM qua socket. Docker Compose kết hợp các service như nginx, php-fpm, mysql, redis và worker xử lý hàng đợi, giúp phát triển và triển khai nhanh chóng.
Testing và bổ trợ bảo mật
SirPhire viết test unit với PHPUnit 11, dùng Mockery để mock các service và kiểm thử logic. Các cơ chế bảo mật như rate limiter hoạt động qua Redis ngăn chặn tấn công brute force, quá tải yêu cầu.
SirPhire thể hiện một cách tiếp cận hoàn toàn custom, nhẹ, tối ưu dành cho lập trình viên muốn nền tảng eCommerce đơn giản, dễ hiểu và kiểm soát toàn bộ stack từ backend đến frontend, cơ sở dữ liệu và vận hành trong môi trường container. Bài viết chia sẻ minh bạch cùng đầy đủ mã nguồn mẫu rất phù hợp để làm tài liệu tham khảo hoặc khởi đầu cho dự án thương mại điện tử riêng của bạn.
Bài viết liên quan

Phần mềm
Anthropic ra mắt Claude Opus 4.7: Nâng cấp mạnh mẽ cho lập trình nhưng vẫn thua Mythos Preview
16 tháng 4, 2026

Công nghệ
Qwen3.6-35B-A3B: Quyền năng Lập trình Agentic, Nay Đã Mở Cửa Cho Tất Cả
16 tháng 4, 2026

Công nghệ
Spotify thắng kiện 322 triệu USD từ nhóm pirate Anna's Archive nhưng đối mặt với bài toán thu hồi
16 tháng 4, 2026
