Mục tiêu chính
- Tách biệt hoàn toàn quản lý Sản phẩm (tên, mô tả, giá bán, danh mục) với Tồn kho thực tế (quản lý theo Lô).
- Quản lý hàng hóa theo từng lô nhập, theo dõi giá nhập, ngày nhập kho, số lượng và hạn sử dụng.
- Triển khai chiến lược xuất kho FEFO tự động
- Ghi log bất biến toàn bộ biến động kho với khả năng truy xuất đầy đủ
Workflow Diagram
Các luồng Xuất/Nhập kho (Inventory Flows)
Hệ thống cho phép tác động vào tồn kho qua 3 luồng chính:- Nhập hàng từ Nhà cung cấp (Purchase Order): Tạo lô hàng mới, ghi nhận ngày nhập, giá nhập và hạn sử dụng. Tồn kho tăng lên tương ứng.
- Điều chỉnh kho thủ công (Inventory Adjustment): Sử dụng khi kiểm kê thực tế phát hiện sai lệch (mất mát, hư hỏng) hoặc khi Merchant bán lẻ trực tiếp tại cửa hàng (offline) không qua App. Tồn kho sẽ tăng/giảm một lượng tương ứng (Mức chênh lệch) dựa trên lô được chọn và bắt buộc phải ghi rõ lý do.
- Xuất bán tự động (Sales Order): Khi có đơn hàng thành công, hệ thống tự động trừ kho theo chiến lược FEFO. Merchant không cần và không được phép xuất kho thủ công cho luồng bán lẻ.
Quy tắc nghiệp vụ
- Bất biến log kho: Không được phép chỉnh sửa hay xóa bất kỳ bản ghi log nào đã tạo
- Chiến lược xuất kho mặc định: FEFO (Hạn dùng sớm nhất xuất trước) cho tất cả sản phẩm có hạn sử dụng
- Giá vốn tính toán: Giá vốn xuất kho luôn lấy giá chính xác theo lô hàng xuất ra
-
Trạng thái Sản phẩm:
-
Trạng thái lô hàng (Batch Status):
active: Lô hàng đang mở và số lượng > 0. Đủ điều kiện để bán.expired: Lô hàng đã quá hạn sử dụng (hệ thống tự động khoá). Số lượng còn lại trong lô không được phép xuất bán.closed: Lô hàng đã xuất hết (số lượng = 0) hoặc bị Merchant chủ động đóng (không muốn bán lô này nữa).
Quy tắc đặt tên sản phẩm (Thay cho SKU)
Tên sản phẩm = [Tên món hàng] + [Thương hiệu] + [Đặc điểm chính]
- Ví dụ: thay vì đặt SKU HAT-RC-01, ta ghi thẳng: Hạt Royal Canin Kitten 400g.
- Ví dụ: Cát đậu nành Tofu hương Trà Xanh 6L.