VAS Printing
Nền tảng thương mại điện tử in ấn theo yêu cầu cho thị trường Bắc Mỹ, vận hành như một execution engine điều phối toàn bộ vòng đời đơn hàng qua mạng lưới nhà in đối tác.

Tổng quan
VAS Printing là nền tảng thương mại điện tử ngành in ấn cho thị trường Bắc Mỹ — không phải một website in online thông thường, mà là hệ thống điều phối sản xuất (execution engine). Doanh nghiệp không sở hữu xưởng in mà bán các sản phẩm nội bộ đã chuẩn hoá, tự động định tuyến từng đơn tới nhà in phù hợp nhất trong mạng lưới đối tác, tối ưu theo giá vốn, thời gian sản xuất và vùng giao hàng.
Hệ thống phục vụ đồng thời hai nhóm khách: khách lẻ (retail) và đại lý/reseller — đặt sỉ, giá riêng, giao hàng ẩn danh (blind shipping).
Sản phẩm gồm ba ứng dụng: WebStore cho khách hàng và đại lý, Admin CMS 16 phân hệ vận hành, và Core Engine xử lý nghiệp vụ bất đồng bộ. Quy mô: monorepo TypeScript khoảng 190k dòng code, 77 entity dữ liệu, 291 API endpoint, 9 vai trò phân quyền, bộ E2E kiểm thử nghiệp vụ đầu-cuối và pipeline CI/CD tự động hoá hoàn toàn.
Bài toán cần giải
Vận hành mô hình print-broker thủ công gặp bốn điểm nghẽn: giá không kiểm soát được vì giá vốn mỗi nhà in thay đổi liên tục theo bậc số lượng, chất liệu và thời gian sản xuất — tính giá bằng bảng tính dẫn tới bán lỗ hoặc mất đơn; đơn hàng 'trôi' khi giá và phí ship đổi sau lúc khách đã đặt, gây tranh chấp và sai lệch doanh thu; sản xuất phân mảnh khi một đơn nhiều mặt hàng phải chia cho nhiều nhà in và nhiều lô giao, không thể theo dõi thủ công khi quy mô tăng; và thiếu dữ liệu điều hành — không đo được biên lợi nhuận thực, tỷ lệ giao đúng hạn của từng nhà in, hay hoa hồng đại lý.
Cách chúng tôi tiếp cận
- Kiến trúc nghiệp vụ tổ chức thành sáu lớp tuyến tính, mỗi lớp có ranh giới dữ liệu rõ ràng và không được phép nhảy cóc.
- Product Normalization: chuẩn hoá danh mục sản phẩm in nội bộ và ánh xạ sang sản phẩm của các nhà in đối tác.
- Pricing Decision: tính giá từ giá vốn thực cộng biên lợi nhuận, rồi publish dưới dạng snapshot giá bất biến.
- Order Lock: khoá toàn bộ giá, phí ship và nhà in được chọn trong một transaction nguyên tử ngay tại checkout.
- Fulfillment & Supplier Execution: đẩy đơn tự động qua API nhà in, hoặc rơi về hàng đợi xử lý thủ công có kiểm soát.
- Shipping & Tracking: vận chuyển theo nhóm sản xuất, hợp nhất tracking từ nhiều hãng.
- Finance / Marketing / Reports: dòng tiền, hoa hồng, chiến dịch, báo cáo — chỉ đọc từ dữ liệu đã khoá.
- Nguyên tắc bất di bất dịch: frontend chỉ đọc snapshot giá và không bao giờ tự tính; marketing không được sửa giá ngoài Pricing Engine — loại bỏ hoàn toàn class lỗi 'giá hiển thị khác giá tính tiền'.
Sản phẩm làm được gì
WebStore đa đối tượng
Một cửa hàng cho cả khách lẻ và đại lý: đại lý có giá riêng, đặt sỉ và giao hàng ẩn danh (blind shipping).
Admin CMS 16 phân hệ
Toàn bộ vận hành trong một hệ quản trị: sản phẩm, định giá, đơn hàng, nhà in, vận chuyển, tài chính, hoa hồng và báo cáo.
Định tuyến nhà in tự động
Mỗi đơn tự động định tuyến tới nhà in phù hợp nhất theo giá vốn, thời gian sản xuất và vùng giao hàng.
Khoá điều kiện đơn tại checkout
Giá, phí ship và nhà in được khoá cứng ngay lúc đặt, không thể trôi về sau.
Thử thách kỹ thuật
Vấn đề
Trong mô hình print-broker, giá vốn và phí ship biến động liên tục. Nếu giá hiển thị lúc khách xem khác giá tính lúc thanh toán, hoặc giá đổi sau khi đặt, hệ thống sẽ bán lỗ, gây tranh chấp và sai lệch đối soát — một class lỗi phải loại bỏ hoàn toàn, không phải giảm thiểu.
Cách giải
Checkout chạy trong một transaction duy nhất: tạo snapshot giá và snapshot vận chuyển bất biến, khoá các bản ghi biến thể sản phẩm theo một thứ tự khoá cố định để loại trừ deadlock, và xác thực lại toàn bộ cam kết giá trước khi commit. Kết hợp với nguyên tắc frontend chỉ đọc snapshot chứ không tự tính giá, mọi con số khách thấy đều đúng bằng con số được tính tiền và đối soát — trên dữ liệu không thể sửa hồi tố.
Kết quả
- Loại bỏ hoàn toàn class lỗi 'giá hiển thị khác giá tính tiền' nhờ khoá snapshot giá tại checkout.
- Không mất sự kiện nghiệp vụ kể cả khi service chết giữa chừng, nhờ outbox pattern ghi cùng transaction nghiệp vụ.
- Vận hành trên 12+ hàng đợi bất đồng bộ với retry và exponential backoff riêng cho từng loại tác vụ.
- Chuẩn hoá và tự động hoá toàn bộ vòng đời đơn hàng — định giá, sản xuất, vận chuyển, đối soát — trong một hệ thống duy nhất.
Điểm nổi bật
- Monorepo TypeScript ~190k LOC · 77 entity · 291 API endpoint
- 3 ứng dụng: WebStore, Admin CMS 16 phân hệ, Core Engine bất đồng bộ
- Atomic Snapshot Lock — khoá giá bất biến tại checkout
- Outbox pattern trên 12+ hàng đợi — không mất sự kiện nghiệp vụ
Khám phá sản phẩm khác
Manufacturing / OutsourceCAD Auto
Biến số đo thực địa thành bản vẽ cắt kính chuẩn CNC chỉ trong vài phút, thay cho dựng hình thủ công trên CAD.
Content Creation / Nội bộVideo Overlays
Engine tự sinh video overlay (alpha .mov) từ kịch bản: AI chọn điểm nhấn, Remotion render — giảm thời gian làm overlay từ vài tiếng xuống ~5 phút.
Personal Tracker
Dashboard cá nhân tối giản đặt làm new-tab Chrome — gộp Kanban, Pomodoro, ghi chú, bookmark và thói quen, lưu local-first không cần backend.