trong.
Full-stack2026

Teika

Đại lý đặt hàng trong Zalo Mini App, giá theo hạng.

teika.ts
export const project = {
  type: "fullstack",
  stack: [
    "React",
    "zmp-ui",
    "jotai",
    "Vite",
    "Tailwind CSS",
    "Express",
    "MongoDB",
    "pnpm + Turborepo",
    "Zalo Mini App SDK",
    "Zalo OA",
  ],
  shipped: true,
};
Năm
2026
Khách hàng
Teika
Vai trò
Làm một mình
Thời gian
2 tháng

Kiến trúc

01

Mini App

  • React + zmp-ui + jotai
  • Đăng nhập Zalo không mật khẩu
  • Giá không bao giờ rời server ở dạng chưa tính
02

Backend

  • 16 module: đơn hàng, thanh toán, công nợ, sản phẩm, tra cứu thuế
  • Express + MongoDB
  • Tích hợp Zalo OA và Mini App
03

Quản trị

  • React + Vite + Tailwind cho đội nội bộ
  • Danh mục, hạng đại lý, công nợ và cấu hình
Điểm nhấn 01
16
module backend trên một API
Điểm nhấn 02
4
hạng đại lý, giá tính ở server
Điểm nhấn 03
0
mật khẩu — Zalo chính là danh tính

Ghi chú kỹ thuật

Đề bài

Teika bán ngũ kim và vật liệu xây dựng cho các đại lý đặt lại đúng những món đó mỗi tuần. Đơn hàng tới qua tin nhắn Zalo, được nhân viên tính giá bằng tay theo một hạng phải tự nhớ, rồi gõ vào bảng tính hai lần. Đề bài là để chính đại lý tự đặt, đúng giá của họ, mà không phải học thêm bất cứ thứ gì.

Cách làm

Một Zalo Mini App, vì cuộc trò chuyện vốn đã diễn ra ở đó. Đăng nhập không mật khẩu — danh tính Zalo chính là tài khoản, nên đại lý mở app lên là đã ở trong đó.

Giá mới là phần thú vị. Mỗi đại lý thuộc một hạng — Đồng, Bạc, Vàng, Bạch Kim — và hạng quyết định họ thấy gì. Hạng nằm ở backend, giá được tính ở server, và Mini App không bao giờ nhận về một mức giá mà đại lý đó không có quyền thấy. Phía sau: một backend Express + MongoDB với 16 module, một trang quản trị React cho đội nội bộ, tất cả trong một monorepo pnpm.

Chỗ khó

Công nợ. Vị thế tín dụng của đại lý quyết định đơn có được đặt hay không, mà con số đó nhảy theo từng hoá đơn và từng lần thanh toán. Đưa nó thành một module chính thức thay vì một báo cáo là thứ cho phép Mini App từ chối đơn đúng khoảnh khắc cần từ chối, kèm lý do — thay vì nhận đơn rồi để sale dọn sau.