Conexa · Nền tảng cho agency thương mại điện tử
Nền tảng vận hành thương mại điện tử tích hợp Shopee
Backend đồng bộ đơn hàng, tồn kho, quảng cáo và báo cáo của nhiều shop Shopee, console quản trị cho đội vận hành và website công khai — backend Node.js được nâng cấp dần sang Go mà không gián đoạn hệ thống.
- Vai trò
- Lead developer — backend, admin console (cùng một developer khác), website
- Thời gian
- 2025 – 2026
- Công nghệ
- TypeScriptNode.jsGoNext.jsReactMUIPostgreSQLRedisClaude APIDockerGitHub ActionsNginx
note: Dự án riêng tư — mô tả ở mức kiến trúc, không kèm mã nguồn hay dữ liệu khách hàng.
Shopee
đơn hàng, tồn kho, quảng cáo, báo cáo
0
gián đoạn khi nâng cấp backend
2
ngôn ngữ trên console và website
Log
mọi thay đổi đều ghi lại
Bài toán
Agency quản lý quảng cáo và vận hành cho nhiều shop Shopee cùng lúc. Họ cần một nơi để xem đơn hàng, tồn kho, hiệu quả quảng cáo và báo cáo của từng shop, đặt lịch thay đổi ngân sách, và nhận cảnh báo khi có vấn đề.
Hệ thống ban đầu tôi viết bằng Node.js chạy trong một tiến trình duy nhất. Khi số shop và số tác vụ chạy nền tăng lên, nó tốn tài nguyên và khó mở rộng — nhưng hệ thống đang chạy thật và ghi thẳng vào ngân sách quảng cáo của khách, nên không thể dừng để viết lại.
Cách giải
- 01
Tích hợp Shopee
Đồng bộ đơn hàng, tồn kho, sản phẩm, chiến dịch quảng cáo và báo cáo của từng shop vào PostgreSQL. Khi Shopee giới hạn số lần gọi thì chờ rồi thử lại, khi phiên đăng nhập hết hạn thì tự đăng nhập lại.
- 02
Nâng cấp từng phần, không viết lại một lần
Backend được tách thành các service Go nhỏ theo từng mảng (tài khoản, chiến dịch, báo cáo, nội dung) và chuyển dần từng phần. Trong lúc chuyển, bản cũ và bản mới chạy song song, kết quả của hai bên được so với nhau trước khi tắt bản cũ.
- 03
Job chạy nền an toàn
Các tác vụ theo lịch (cập nhật ngân sách, thu thập số liệu, xuất báo cáo) chạy nền, có khoá để không chạy trùng hai lần và tự thử lại khi lỗi. Báo cáo lớn chạy thành job có tiến độ, người dùng đóng tab vẫn quay lại tải được.
- 04
Console quản trị theo vai
Console Next.js cho đội vận hành: chiến dịch, lịch chạy, quy tắc ngân sách, cảnh báo, báo cáo, song ngữ Việt/Anh. Quyền chia theo cấp (quản lý, leader, nhân viên) và theo từng shop; API key chỉ nằm phía server, không ra tới trình duyệt.
- 05
AI đề xuất, người duyệt
Mỗi giờ, Claude xem số liệu và đề xuất tăng hay giảm ngân sách. Quy tắc trong code quyết định đề xuất đó được tự áp dụng hay phải chờ người duyệt, và mọi quyết định đều được ghi log kèm lý do.
- 06
Vận hành production
Log, cảnh báo vào nhóm chat khi có lỗi, health check cho từng service, deploy tự động bằng GitHub Actions. Khi cần chuyển sang máy chủ mới, dữ liệu được đồng bộ trước theo runbook nên chỉ mất vài phút downtime; database được sao lưu hằng đêm.
Kiến trúc
admin console
Next.js · phân quyền · vi/en
website
render phía server · blog
API gateway
JWT, định tuyến
accounts
tài khoản, đăng nhập
campaigns
lịch chạy, ngân sách
reporting
số liệu, báo cáo
content
nội dung website
workers
job theo lịch
AI suggestions
Claude + người duyệt
PostgreSQL
Redis
cache, khoá
Kết quả
- Đội vận hành làm việc hằng ngày trên console song ngữ, mỗi người thấy đúng các shop và dữ liệu thuộc quyền của mình.
- Backend Node.js đã được thay bằng các service Go mà không dừng hệ thống; tác vụ nền chạy được trên nhiều worker thay vì dồn vào một tiến trình.
- Đề xuất ngân sách bằng AI chạy thật nhưng luôn trong khuôn khổ quy tắc, việc cần người duyệt thì chờ người duyệt.
- Website công khai và blog song ngữ lấy nội dung từ cùng backend, render phía server để Google đọc được.
- Chi tiết nghiệp vụ và mã nguồn thuộc về khách hàng; phần trình bày ở đây dừng ở mức kiến trúc và cách làm.