Tồn kho theo lô
Vận hành tồn kho cho sản phẩm Retail quản lý theo tình trạng & lô — xem tồn kho 3 cấp, lọc theo tình trạng/HSD, nhập hàng, chuyển kho, điều chỉnh, chuyển đổi tình trạng và quy tắc lô hết hạn.
Sau khi đã bật quản lý tình trạng & lô cho sản phẩm, toàn bộ nghiệp vụ tồn kho (xem tồn, nhập hàng, chuyển kho, điều chỉnh) sẽ được quản lý đến từng lô. Trang này hướng dẫn các thao tác vận hành đó.
Chỉ áp dụng cho sản phẩm Retail đã bật Quản lý tình trạng sản phẩm. Các sản phẩm thường vẫn hoạt động như cũ.
Xem tồn kho theo tình trạng & lô
Truy cập Thương hiệu → Sản phẩm → Tồn kho.

Với sản phẩm có quản lý tình trạng, màn hình tồn kho hiển thị 3 cấp mở rộng:
- Sản phẩm / phiên bản — dòng tổng, tồn kho = tổng của tất cả lô.
- Tình trạng — mở rộng cấp 1, hiển thị tổng tồn của từng tình trạng.
- Lô — mở rộng cấp 2, hiển thị từng lô với Mã lô, Hạn sử dụng và tồn kho theo từng kho.

Sản phẩm chưa có lô nhập nào sẽ hiển thị nhắc "Sản phẩm chưa có lô nhập nào, vui lòng tạo phiếu nhập cho sản phẩm". Lô chỉ xuất hiện sau khi nhập hàng.
Mỗi dòng lô hiển thị các loại tồn kho:
| Cột | Ý nghĩa |
|---|---|
| Tồn kho có thể bán | Số lượng sẵn sàng để bán. |
| Tồn kho thực tế | Số lượng thực có trong kho. |
| Tồn kho đang giao dịch | Số lượng đang bị giữ trong các giao dịch chưa hoàn tất. |
Hạn sử dụng được tô màu để cảnh báo: đỏ nếu đã hết hạn, vàng nếu còn ≤ 30 ngày. Các lô không có HSD được xếp xuống cuối danh sách.
Bộ lọc theo tình trạng và hạn sử dụng
Bấm "Bộ lọc" để lọc danh sách tồn kho:

- Danh mục sản phẩm — lọc theo danh mục.
- Tình trạng sản phẩm — chọn một hoặc nhiều tình trạng.
- Hạn sử dụng — Tất cả / Đã hết hạn / Sắp hết hạn (≤ 30 ngày) / Còn hạn.
Điều chỉnh tồn kho theo lô
Trên dòng lô, bạn có thể điều chỉnh tồn kho trực tiếp (Đặt lại hoặc Tăng/Giảm). Khi lưu, hộp thoại Thay đổi tồn kho yêu cầu nhập Lý do (tối đa 256 ký tự), hiển thị Tồn kho cũ và Tồn kho mới.
Điều chỉnh chỉ tác động đến đúng lô được chọn, không ảnh hưởng các lô khác cùng tình trạng. Với lô đã hết hạn, chỉ được giảm / đưa về 0, không được tăng — xem Quy tắc lô hết hạn.
Nhập hàng (tạo lô)
Phiếu nhập hàng là nơi lô được tạo ra. Truy cập Thương hiệu → Sản phẩm → Nhập hàng → Tạo phiếu nhập.

Khi thêm một sản phẩm có quản lý tình trạng vào phiếu, dòng sản phẩm yêu cầu thêm:
| Trường | Bắt buộc | Quy tắc |
|---|---|---|
| Tình trạng | Có | Chọn trong các tình trạng đã khai báo cho sản phẩm. |
| Mã lô | Có | Mã lô nhà sản xuất, tối đa 32 ký tự. |
| Hạn sử dụng | Không | Chọn ngày (DD/MM/YYYY), chỉ cho phép ngày trong tương lai. |
Quy tắc tạo lô theo bộ ba Sản phẩm + Tình trạng + Mã lô:
- Nếu lô đã tồn tại → cộng dồn số lượng vào lô đó.
- Nếu lô mới → tạo lô mới (yêu cầu nhập Hạn sử dụng nếu có).
- Giá nhập lấy theo Giá vốn của tình trạng (không phải giá vốn sản phẩm gốc).
- Trong cùng một phiếu, không được trùng cùng sản phẩm + tình trạng + mã lô. Nếu trùng, hệ thống báo lỗi.
Không thể nhập thêm hàng vào lô đã hết hạn — hệ thống chặn với thông báo "Lô {mã lô} đã hết hạn, không thể nhập thêm hàng".
Xem thêm hướng dẫn chung tại Nhập hàng.
Chuyển kho theo lô
Truy cập Chuyển kho → Tạo phiếu chuyển kho. Với sản phẩm quản lý tình trạng, dòng sản phẩm yêu cầu chọn:
- Tình trạng — tình trạng cần chuyển.
- Lô — danh sách lô của tình trạng đó tại kho gửi, hiển thị dạng "Mã lô | HSD | Tồn kho".
Hệ thống kiểm tra tồn theo từng lô tại kho gửi; nếu không đủ sẽ báo "Không đủ tồn kho lô {mã lô} để chuyển". Khi xác nhận, hệ thống trừ tồn ở kho gửi và cộng tồn ở kho nhận theo đúng lô.
Lô đã hết hạn không được chuyển kho (chỉ có thể chuyển đổi tình trạng hoặc điều chỉnh về 0).
Xem thêm tại Chuyển kho.
Phiếu điều chỉnh theo lô
Truy cập Thương hiệu → Tồn kho → tab "Điều chỉnh tồn kho". Danh sách phiếu điều chỉnh bổ sung cột Tình trạng và Mã lô, kèm bộ lọc theo tình trạng và tìm theo mã lô.
Tạo phiếu điều chỉnh
Chọn loại điều chỉnh (Nhập hoặc Xuất), chọn kho và sản phẩm. Với sản phẩm quản lý tình trạng, chọn thêm Tình trạng và Lô (danh sách lô của tình trạng đó tại kho đã chọn, hiển thị "Mã lô | HSD | Tồn hiện tại").
Nhập số lượng điều chỉnh
Tồn hiện tại lấy theo từng lô tại kho đã chọn. Hệ thống tính Tồn sau điều chỉnh cho từng lô. Trong một phiếu, không trùng cùng sản phẩm + tình trạng + lô.
- Với Xuất điều chỉnh: số lượng xuất không vượt quá tồn hiện có của lô — nếu vượt sẽ báo "Số lượng xuất vượt quá tồn kho hiện có của lô {mã lô}".
Xác nhận
Nhập cộng thêm vào lô; Xuất trừ khỏi lô (không bao giờ xuống dưới 0). Hệ thống ghi lại lịch sử thay đổi tồn kho theo lô.
Với lô đã hết hạn: được phép Xuất điều chỉnh (giảm / đưa về 0) nhưng không được Nhập điều chỉnh — "Lô {mã lô} đã hết hạn, không thể nhập thêm". Lô hết hạn hiển thị nhãn "Đã hết hạn" và chỉ chọn được cho phiếu Xuất điều chỉnh.
Xem thêm tại Phiếu điều chỉnh tồn kho.
Chuyển đổi tình trạng
Khi hàng hóa đổi tình trạng trong cùng một kho (ví dụ hàng mới bị hư nhẹ chuyển sang Lỗi nhẹ, hoặc hàng gần hết hạn chuyển sang Thanh lý), dùng chức năng Chuyển đổi tình trạng thay vì tạo hai phiếu điều chỉnh.
Chuyển đổi tình trạng dành cho việc đổi tình trạng trong cùng kho. Để chuyển hàng giữa các kho, dùng Chuyển kho.
Mở chức năng chuyển đổi
Tại Thương hiệu → Sản phẩm → Tồn kho, mở rộng dòng lô cần chuyển và bấm biểu tượng "Chuyển tình trạng" (chỉ hiện ở lô có tồn kho có thể chuyển > 0).
Khai báo thông tin chuyển
Hộp thoại Chuyển đổi tình trạng gồm:
| Trường | Ý nghĩa |
|---|---|
| Sản phẩm, Kho | Chỉ xem (kho hiện tại của lô). |
| Từ tình trạng | Tình trạng nguồn, hiển thị Tồn thực tế, Tồn đang giao dịch và Tồn có thể chuyển = thực tế − đang giao dịch. |
| Sang tình trạng | Chọn tình trạng/lô đích đã có của sản phẩm tại cùng kho. |
| Số lượng chuyển | Tối thiểu 1, tối đa = tồn có thể chuyển. |
| Lý do chuyển đổi | Hư hỏng trong kho / Gần hết hạn sử dụng / Trưng bày / mở hộp / Kiểm tra chất lượng / Khác (chọn Khác thì nhập ghi chú, tối đa 256 ký tự). |
Xác nhận
Bấm "Xác nhận". Hệ thống trừ tồn ở lô nguồn, cộng vào lô đích, ghi lịch sử cho cả hai lô với loại giao dịch "Chuyển đổi tình trạng", và báo "Chuyển đổi tình trạng thành công. Đã chuyển {số lượng} SP từ {tình trạng cũ} sang {tình trạng mới}".
Một số trường hợp đặc biệt:
- Tình trạng đích chưa có lô → không cho phép, cần tạo tình trạng/lô trước.
- Số lượng vượt quá tồn có thể chuyển → "Số lượng chuyển vượt quá tồn kho có thể chuyển ({số lượng})".
- Toàn bộ tồn đang trong giao dịch (tồn có thể chuyển = 0) → biểu tượng bị vô hiệu, chú thích "Toàn bộ tồn kho đang trong giao dịch, không thể chuyển đổi".
- Sản phẩm chỉ có một lô tình trạng → biểu tượng bị vô hiệu, chú thích "Cần ít nhất 2 lô tình trạng để chuyển đổi".
- Lô đã hết hạn vẫn được chuyển đổi tình trạng — đây là cách xử lý hàng hết hạn (ví dụ chuyển sang tình trạng Thanh lý để bán giảm giá).
Quy tắc lô hết hạn
Khi một lô vượt quá hạn sử dụng, hệ thống áp dụng nhất quán các quy tắc sau trên toàn bộ nghiệp vụ:
| Nghiệp vụ | Lô đã hết hạn |
|---|---|
| Bán hàng (Storefront) | Không hiển thị, không mua được |
| Bán hàng (POS) | Bị vô hiệu trong danh sách chọn lô (nhãn Đã hết hạn) |
| Đơn đang xử lý | Đơn tạo trước khi hết hạn vẫn xử lý bình thường, không tự hủy |
| Nhập hàng | Không cho phép — "Lô {mã lô} đã hết hạn, không thể nhập thêm hàng" |
| Chuyển kho | Không cho phép — "Lô {mã lô} đã hết hạn, không thể chuyển kho" |
| Chuyển đổi tình trạng | Cho phép (cách duy nhất để xử lý hàng hết hạn) |
| Điều chỉnh tồn kho | Cho phép giảm / về 0, không cho tăng |
Cảnh báo hạn sử dụng
Trên màn hình tồn kho, lô sắp hết hạn (≤ 30 ngày) được tô vàng kèm nhãn Sắp hết hạn; lô đã hết hạn được tô đỏ kèm nhãn Đã hết hạn. Dùng bộ lọc Hạn sử dụng để lọc nhanh nhóm Sắp hết hạn hoặc Đã hết hạn, và sắp xếp theo HSD để xử lý các lô gần hết hạn trước.
Để bán hàng từ một lô đã hết hạn, trước tiên hãy chuyển đổi tình trạng sang một tình trạng phù hợp (ví dụ Thanh lý) hoặc điều chỉnh lại hạn sử dụng.
Tình trạng & lô sản phẩm
Quản lý sản phẩm Retail theo tình trạng (mới, lỗi nhẹ, gần hết hạn…) và theo lô nhập hàng với hạn sử dụng riêng — danh sách tình trạng, kích hoạt cho sản phẩm, quy tắc bật/tắt và phân quyền.
Bán hàng theo tình trạng
Bán sản phẩm Retail theo tình trạng tại POS và Storefront — chọn lô theo tình trạng ở POS, tự động trừ tồn FEFO trên Storefront, giỏ hàng và đơn hàng theo tình trạng, hoàn hàng về đúng lô.