Kết luận nhanh: quản lý hạn dùng là ba ngưỡng và ba điểm chặn
Hầu hết bài viết tiếng Việt về “quản lý hàng theo lô, hạn sử dụng” dừng ở ba ý: FEFO là hết hạn trước xuất trước, phần mềm sẽ cảnh báo hàng sắp hết hạn, hàng cận date thì giảm giá, tặng kèm hoặc làm combo. Ba ý đó đúng nhưng không đủ để vận hành. Đội kho ecommerce cần biết “sắp hết hạn” là bao nhiêu ngày với từng nhóm hàng, ai được quyết định nhận một lô ngắn hạn, lô nào được phép đẩy tồn lên sàn, hệ thống làm gì khi nhân viên lấy nhầm lô mới, và hàng hoàn được ghi lô nào.
Mô hình trong bài này có hai phần:
- Ba ngưỡng tính theo phần trăm hạn dùng còn lại: ngưỡng nhận (receiving), ngưỡng bán bình thường (sellable), ngưỡng xả (clearance). Mỗi ngưỡng đổi trạng thái tồn của lô, và trạng thái tồn quyết định lô đó có được tính vào tồn khả dụng đẩy lên sàn hay không.
- Ba điểm chặn trong kho: nhập kho ghi lô và hạn dùng gắn với vị trí; lấy hàng quét lô và từ chối lô sai; hàng hoàn quét lại lô trước khi cộng tồn. Nếu thiếu một điểm chặn, dữ liệu lô trong hệ thống sẽ trôi khỏi thực tế trong vài tuần, và mọi cảnh báo hạn dùng sau đó đều sai.
Quy tắc quyết định hệ thống: quản lý hạn dùng bằng OMS cộng bảng kê giấy còn đủ khi mỗi SKU chỉ có một vị trí, thường chỉ một lô đang bán, đơn dưới khoảng 30 mỗi ngày và người lấy hàng cố định, quen kệ. Khi một SKU nằm ở hai vị trí trở lên với lô khác nhau, khi có nhân viên thời vụ, combo hoặc tỷ lệ hoàn trên khoảng 5%, FEFO chỉ đứng vững nếu WMS bắt quét lô tại bước lấy hàng. Các ngưỡng là gợi ý có công thức minh bạch, không phải số liệu khách hàng của JST ERP hay quy định pháp luật; mỗi doanh nghiệp cần tự kiểm với nhà cung cấp, cơ quan quản lý ngành và chính sách của từng sàn.
1. Thuật ngữ dùng trong bài
| Thuật ngữ | Định nghĩa | Ghi chú vận hành |
|---|---|---|
| Lô (lot/batch) | Một nhóm đơn vị sản xuất cùng điều kiện, cùng mã lô trên bao bì | Một SKU có thể có nhiều lô cùng lúc trong kho |
| NSX, HSD | Ngày sản xuất, hạn sử dụng in trên bao bì | Một số hàng chỉ in HSD hoặc chỉ in NSX + thời hạn; phải quy về HSD khi nhập |
| Tổng hạn dùng (TSL) | HSD − NSX, tính theo ngày | Mỹ phẩm thường 24–36 tháng, thực phẩm khô 6–18 tháng, sữa tươi vài ngày đến vài tuần |
| Hạn còn lại (RSL) | (HSD − hôm nay) / TSL, tính theo % | Đơn vị chung để so sánh các nhóm hàng |
| FEFO | First Expired, First Out — xuất lô hết hạn sớm nhất trước | Khác FIFO khi lô nhập sau có hạn ngắn hơn |
| Trạng thái tồn của lô | Bán được / cận date / cách ly / hết hạn / chờ trả NCC | Chỉ trạng thái “bán được” tính vào tồn khả dụng đẩy lên sàn |
| Tồn khả dụng | Tồn bán được − tồn đã giữ cho đơn chưa xuất | Xem thêm tồn khả dụng và tồn chiếm dụng |
Lý do dùng RSL theo phần trăm thay vì số ngày cố định: “còn 90 ngày” là rất dài với sữa chua nhưng rất ngắn với kem chống nắng hạn 36 tháng. Quy tắc theo phần trăm cho phép đặt một bảng ngưỡng theo nhóm hàng thay vì từng SKU, rồi chỉ ghi đè cho SKU ngoại lệ.
2. Vì sao câu trả lời “phần mềm cảnh báo hàng sắp hết hạn” chưa đủ
Cảnh báo là đầu ra cuối cùng. Nó chỉ đúng nếu ba dữ liệu đầu vào đúng: số lô và HSD được ghi khi nhập; lô nào đã xuất cho đơn nào; lô nào đang nằm ở vị trí nào. Trong thực tế kho ecommerce Việt Nam, ba dữ liệu này hỏng theo những cách lặp lại:
- Nhập kho chỉ đếm số lượng: phiếu nhập ghi SKU và số thùng, không ghi lô; hoặc ghi một lô cho cả lần nhập trong khi nhà cung cấp giao hai lô trộn nhau.
- Lấy hàng theo SKU, không theo lô: phiếu lấy hàng in “lô gợi ý”, nhân viên lấy hộp gần tay nhất. Hệ thống trừ tồn lô gợi ý, kệ thật trừ lô khác. Sau 4–6 tuần, tồn theo lô trên hệ thống không còn khớp kệ dù tổng số lượng SKU vẫn khớp.
- Hàng hoàn cộng lại theo SKU: kiện hoàn được nhập “+1” vào SKU, lô mặc định là lô mới nhất hoặc lô của đơn gốc, trong khi hộp thực tế có thể thuộc lô khác.
- Hai lô trên cùng một ô kệ: nhân viên bổ sung hàng đổ lô mới lên trên lô cũ. Lô cũ bị đẩy xuống dưới và hết hạn tại chỗ.
- Tồn đẩy lên sàn gồm cả lô cận date: khách mua theo giá thường, nhận hàng còn 2 tháng hạn, đánh giá thấp hoặc yêu cầu trả hàng.
Vì vậy câu hỏi đúng khi đánh giá hệ thống không phải “có cảnh báo hạn dùng không” mà là “ở bước lấy hàng, nếu nhân viên quét hộp thuộc lô không được chỉ định, hệ thống làm gì”. Câu trả lời phân loại ngay hệ thống vào một trong bốn mức kiểm soát ở mục 5.
3. Ba ngưỡng: cách tính thay vì đoán
3.1 Ngưỡng bán bình thường (quan trọng nhất)
Ngưỡng bán trả lời câu hỏi: khách nhận hàng hôm nay có đủ thời gian dùng hết trước HSD, cộng thời gian đổi trả, mà không cảm thấy bị bán hàng cận date không? Công thức:
Số ngày tối thiểu khi xuất = D_dùng + D_giao + D_đổi trả + D_đệm
- D_dùng: số ngày một khách điển hình dùng hết một đơn vị. Kem dưỡng 50 ml dùng hai lần mỗi ngày khoảng 60–90 ngày; hộp viên uống 60 viên, 2 viên/ngày là 30 ngày; gói bánh là vài ngày.
- D_giao: thời gian từ khi xuất kho đến khi khách nhận, ngoại tỉnh thường 2–5 ngày.
- D_đổi trả: thời gian khách được yêu cầu trả hàng theo chính sách sàn hoặc shop, cộng thời gian kiện hoàn về kho.
- D_đệm: kỳ vọng tâm lý khách. Khách mua mỹ phẩm online thường kiểm hạn ngay khi mở hộp; hàng còn dưới 6 tháng dễ bị đánh giá thấp dù vẫn trong hạn. Đệm 60–120 ngày là hợp lý cho mỹ phẩm, 15–30 ngày cho thực phẩm hạn ngắn.
Quy ra phần trăm: Ngưỡng bán (%) = Số ngày tối thiểu khi xuất / TSL, rồi làm tròn lên theo bước 5%. Ví dụ kem dưỡng TSL 1.095 ngày: 90 + 5 + 20 + 120 = 235 ngày, tương đương 21,5% → đặt 25%. Viên uống TSL 730 ngày, D_dùng 30: 30 + 5 + 20 + 60 = 115 ngày → 15,8%, nhưng với hàng sức khỏe khách nhạy cảm hơn với hạn dùng, nên đặt 30%. Bánh quy TSL 270 ngày, D_dùng 7: 7 + 5 + 10 + 30 = 52 ngày → 19%, làm tròn 20%; nếu bán sỉ cho đại lý thì đại lý còn cần thời gian bán lại, ngưỡng cho kênh sỉ phải cao hơn, thường 50–60%.
Điểm quan trọng: ngưỡng bán có thể khác theo kênh. Kênh B2C trên sàn dùng ngưỡng theo khách cuối; kênh đại lý, siêu thị hoặc nhà thuốc thường có yêu cầu RSL tối thiểu trong hợp đồng; kênh cận date (flash sale xả hàng, livestream cận date) dùng ngưỡng thấp hơn nhưng phải ghi rõ HSD trên listing.
3.2 Ngưỡng nhận hàng
Ngưỡng nhận bảo vệ thời gian bán. Nếu lô vào kho đã sát ngưỡng bán, shop chỉ còn vài tuần để bán hết. Công thức:
Ngưỡng nhận (%) = Ngưỡng bán (%) + (Số ngày cần để bán hết lô / TSL) × hệ số an toàn
Số ngày cần để bán hết lô = Số lượng lô / Tốc độ bán trung bình ngày (lấy 30–60 ngày gần nhất, loại ngày campaign đột biến). Hệ số an toàn 1,3–1,5 để phòng tốc độ bán chậm lại. Ví dụ: kem dưỡng ngưỡng bán 25%, nhập 1.200 hộp, bán 15 hộp/ngày → 80 ngày → 7,3% TSL × 1,5 = 11% → ngưỡng nhận khoảng 36%, làm tròn 40%. Trên thực tế, hợp đồng mua hàng thường đặt cao hơn (60–70%) để giữ khoảng trống cho chậm bán và hàng tồn từ lô trước. Nếu nhà cung cấp chỉ giao được lô thấp hơn ngưỡng nhận, nhập có duyệt kèm điều kiện: giảm giá, được trả lại phần không bán hết, hoặc giảm số lượng.
3.3 Ngưỡng xả
Ngưỡng xả là lúc lô rời kênh bán thường. Khi lô dưới ngưỡng bán, hệ thống đổi trạng thái sang “cận date”, tồn không còn được đẩy lên listing thường. Từ thời điểm đó còn một khoảng hữu hạn để thu hồi giá trị: bán ở listing cận date có ghi rõ HSD, đưa vào combo, làm quà tặng có công bố hạn, bán cho kênh nhân viên, trả nhà cung cấp nếu hợp đồng cho phép, hoặc hủy có biên bản. Đặt mốc xả cứng ở ngưỡng bán trừ đi 5–10 điểm phần trăm: dưới mốc này lô bị khóa khỏi mọi kênh bán cho khách cuối, chỉ được trả nhà cung cấp hoặc hủy.
3.4 Bảng ngưỡng mẫu theo nhóm hàng
| Nhóm hàng | TSL điển hình | Ngưỡng nhận gợi ý | Ngưỡng bán B2C gợi ý | Mốc khóa bán |
|---|---|---|---|---|
| Mỹ phẩm chăm sóc da, hạn dài | 24–36 tháng | 60–70% | 25–35% | 15–20% |
| Thực phẩm chức năng, viên uống | 24 tháng | 65–75% | 30–40% | 20% |
| Thực phẩm khô, bánh kẹo | 6–18 tháng | 70–80% | 30–50% | 15–25% |
| Đồ uống đóng chai, lon | 6–12 tháng | 70–80% | 35–45% | 20% |
| Sữa bột, đồ ăn dặm (mẹ và bé) | 12–24 tháng | 70–80% | 40–50% | 30% |
| Thức ăn thú cưng | 12–18 tháng | 65–75% | 30–40% | 20% |
Đây là khoảng gợi ý để bắt đầu thảo luận, không phải chuẩn ngành. Nhóm mẹ và bé đặt cao hơn vì khách nhạy cảm nhất với hạn dùng và tỷ lệ đánh giá xấu tăng mạnh khi hàng “còn ít hạn”. Sau 2–3 tháng, điều chỉnh theo dữ liệu: nếu tỷ lệ trả hàng hoặc đánh giá nhắc tới hạn dùng tăng ở một nhóm, nâng ngưỡng bán của nhóm đó lên 5 điểm.
4. Mô hình dữ liệu: SKU – lô – hạn – vị trí – trạng thái
Mọi quy tắc FEFO đều đứng trên một bản ghi tồn ở mức chi tiết: SKU × lô × vị trí × trạng thái. Nếu hệ thống chỉ giữ tồn ở mức SKU × kho, FEFO chỉ có thể là gợi ý in trên giấy.
| Trường dữ liệu | Ghi ở bước | Ai sở hữu | Lỗi khi thiếu |
|---|---|---|---|
| SKU có cờ “quản lý theo lô/hạn dùng” | Tạo SKU master | Quản trị dữ liệu sản phẩm | Một số SKU có hạn bị nhập như hàng thường, không bao giờ cảnh báo |
| TSL chuẩn của SKU | Tạo SKU master | Mua hàng | Không kiểm được lô có NSX/HSD đọc nhầm |
| Số lô, NSX, HSD | Nhận hàng, quét từng lô | Kho nhận hàng | Không có dữ liệu để FEFO và thu hồi |
| Vị trí kệ của lô | Cất hàng (putaway) | Kho | Biết lô nào cần xuất nhưng không biết nằm đâu |
| Trạng thái lô | Tự động theo ngưỡng hoặc QC | Hệ thống + QC | Lô cận date, cách ly vẫn đẩy lên sàn |
| Lô thực xuất trên mỗi dòng đơn | Quét lấy hàng/kiểm hàng | Kho xuất | Không thu hồi được theo lô, không đối chiếu khiếu nại |
| Lô trên kiện hoàn | Nhận hàng hoàn | Kho hàng hoàn | Tồn lô trôi, lô cũ quay lại kệ lô mới |
Hai quy tắc dữ liệu giúp tránh phần lớn lỗi:
- Một ô kệ chỉ chứa một lô của một SKU khi có thể. Nếu kệ nhỏ buộc phải chứa hai lô, dùng ngăn chia và mã vị trí con (ví dụ A-03-02-1 và A-03-02-2). Nguyên tắc đặt mã vị trí xem tại thiết kế mã vị trí kho.
- Mã lô quét được. Nếu bao bì nhà cung cấp chỉ in mã lô dạng chữ, dán nhãn nội bộ có barcode chứa SKU + lô + HSD lúc nhận hàng. Chi phí in nhãn thấp hơn nhiều chi phí một lần lấy sai lô hoặc một đợt thu hồi không truy được.
Chuẩn hóa SKU và barcode trước khi bật quản lý lô là bắt buộc; xem chuẩn hóa master data SKU, barcode và mapping đa sàn.
5. Bốn mức kiểm soát FEFO
Dùng bảng này để tự đánh giá hệ thống hiện tại và đánh giá nhà cung cấp phần mềm. Câu hỏi kiểm tra cho mỗi mức là một hành động cụ thể trên kho thật, không phải một tính năng trên slide.
| Mức | Hệ thống làm gì | Câu hỏi kiểm tra | Lỗi vẫn lọt |
|---|---|---|---|
| F0 – Ghi chú | HSD ghi trong Excel hoặc ghi chú sản phẩm | Hỏi: lô X còn bao nhiêu? Không trả lời được | Mọi lỗi: hết hạn tại kệ, giao lô cũ, không thu hồi được |
| F1 – Tồn theo lô | Phiếu nhập ghi lô, báo cáo tồn theo lô, cảnh báo sắp hết hạn | Báo cáo lô có khớp kệ sau 4 tuần không? | Lô trên hệ thống trôi khỏi kệ vì xuất không ghi lô thật |
| F2 – Gợi ý FEFO | Phiếu lấy hàng in lô và vị trí theo FEFO | Nhân viên lấy lô khác thì hệ thống có biết không? | Lấy sai lô không bị phát hiện; tồn lô lệch dần |
| F3 – Chặn tại quét | PDA quét lô; lô sai bị từ chối hoặc phải có lý do và người duyệt; lô thật ghi vào đơn | Cố tình quét lô mới hơn: PDA có chặn không? Đơn có lưu lô đã quét không? | Còn rủi ro nhập lô sai lúc nhận hàng; cần kiểm nhận hai người hoặc đối chiếu TSL |
Phần lớn công cụ bán hàng và POS dừng ở F1–F2: có cảnh báo, có báo cáo, có gợi ý. Mức F3 cần WMS biết vị trí và bắt quét ở bước lấy hàng; đây cũng là khác biệt chính giữa OMS-only và OMS + WMS với hàng có hạn dùng. Ở F3 vẫn nên cho phép ngoại lệ có kiểm soát: ví dụ lô FEFO bị kẹt dưới pallet trong giờ cao điểm, quản lý ca duyệt xuất lô kế tiếp, hệ thống ghi lý do và tự tạo việc chuyển lô cũ lên vị trí lấy hàng.
6. Quy trình vận hành theo từng bước
6.1 Nhận hàng
- Phiếu nhập dự kiến (ASN/PO) có số lượng theo SKU; nếu nhà cung cấp gửi trước lô và HSD, nhập vào phiếu để so.
- Nhân viên nhận quét barcode SKU, nhập hoặc quét lô và HSD cho từng lô thực tế. Một SKU giao hai lô là hai dòng nhận.
- Hệ thống kiểm tra: HSD − NSX có lệch quá 10% so với TSL chuẩn không (phát hiện nhập nhầm ngày/tháng); RSL có dưới ngưỡng nhận không.
- Lô dưới ngưỡng nhận vào trạng thái “chờ duyệt”, không cất lên kệ bán, không tính tồn khả dụng, cho đến khi mua hàng duyệt nhận có điều kiện hoặc trả lại.
- In nhãn lô nội bộ nếu bao bì không có barcode lô.
Thời gian thêm cho mỗi dòng nhận khi bắt nhập lô thường là 15–40 giây, tùy việc HSD có được quét hay phải gõ tay. Với lô nhập 40 dòng, đó là 10–25 phút mỗi lần nhận — chi phí đáng kể nhưng là chi phí duy nhất để mọi bước sau có dữ liệu. Chi tiết quy trình nhận và cất: quy trình nhập kho receiving và putaway.
6.2 Cất hàng và bổ sung
Hệ thống gợi ý vị trí cho lô mới: ưu tiên ô trống hoặc ô dự trữ, không đổ lên ô đang chứa lô cũ hơn của cùng SKU. Khi ô lấy hàng (pick face) hết, lệnh bổ sung lấy từ dự trữ theo FEFO, không theo “thùng gần cửa nhất”. Kiểm tra định kỳ: mỗi tuần lọc các vị trí có hai lô cùng SKU không có ô con — đó là nơi lô cũ sẽ bị chôn.
6.3 Phân bổ đơn và giữ tồn
OMS giữ tồn ở mức SKU khi đơn vào, nhưng việc chọn lô nên để WMS làm ở thời điểm tạo đợt lấy hàng, vì đến lúc đó trạng thái lô có thể đã đổi (lô vừa xuống dưới ngưỡng bán, lô vừa bị QC cách ly). Ngoại lệ: kênh có yêu cầu RSL riêng (đại lý, siêu thị) phải mang yêu cầu RSL tối thiểu trên đơn, để WMS chỉ chọn lô đạt. Nếu một kho không có lô đủ RSL cho đơn sỉ, OMS phải được báo để chuyển kho hoặc tách đơn — xem phân bổ đơn đa kho.
6.4 Lấy hàng, kiểm hàng, đóng gói
Phiếu hoặc PDA hiển thị vị trí và lô chỉ định. Nhân viên quét vị trí, quét sản phẩm (barcode chứa lô hoặc nhãn lô nội bộ). Nếu lô quét khác lô chỉ định:
- Lô quét có HSD sớm hơn lô chỉ định (nghĩa là dữ liệu vị trí đang sai): cho phép, ghi nhận, tạo việc kiểm đếm vị trí đó.
- Lô quét có HSD muộn hơn: chặn; chỉ cho phép khi quản lý ca duyệt với lý do.
- Lô quét ở trạng thái cận date, cách ly hoặc hết hạn: chặn tuyệt đối với đơn kênh thường.
Ở bàn kiểm/đóng gói, quét lại sản phẩm để xác nhận đúng SKU và số lượng; nếu bước lấy hàng chưa ghi lô (ví dụ lấy gom batch), bước kiểm hàng là nơi ghi lô thật vào từng đơn. Cách bố trí picking theo batch, wave có tác động lên việc ghi lô: lấy gom rồi chia đơn thì lô phải được ghi lúc chia — xem chiến lược lấy hàng theo đơn, batch, wave, zone.
6.5 Hàng hoàn
Hàng hoàn là nơi FEFO thường vỡ đầu tiên vì đội hàng hoàn chịu áp lực “cộng lại tồn cho nhanh”. Quy tắc:
- Quét mã vận đơn để gắn kiện vào đơn gốc; lấy danh sách lô đã xuất cho đơn đó.
- Quét lô trên từng hộp trả về; so với lô đã xuất. Nếu lô khác (khách trả nhầm hàng, hoặc bị đánh tráo), chuyển vào luồng kiểm tra — xem phát hiện hàng hoàn bị đánh tráo.
- Kiểm niêm phong, màng co, tem. Mỹ phẩm và thực phẩm đã mở không quay lại tồn bán được.
- Lô còn trên ngưỡng bán và nguyên vẹn → cất về đúng vị trí của lô đó. Dưới ngưỡng bán → trạng thái cận date. Mất niêm phong → khu cách ly.
Chi phí và quyết định xử lý hàng hoàn: quản lý hàng hoàn theo cost-to-recover.
6.6 Kiểm kê
Kiểm kê hàng có hạn dùng phải đếm theo lô, không chỉ theo SKU. Ưu tiên kiểm đếm vòng (cycle count) cho: SKU có nhiều lô đang mở, vị trí từng phát sinh lấy lô khác chỉ định, và lô sắp chạm ngưỡng bán trong 30 ngày tới. Chênh lệch theo lô cho biết quy trình lấy hàng có thực sự theo FEFO hay không, kể cả khi tổng SKU khớp. Xem độ chính xác tồn kho và cycle count.
7. Đồng bộ tồn lên sàn: chỉ đẩy lô “bán được”
Đây là lỗi tốn tiền nhất nhưng ít được nói nhất. Nếu tồn đẩy lên Shopee, TikTok Shop, Lazada là tổng tồn SKU, thì khi lô tốt bán hết, sàn vẫn hiện còn hàng nhờ lô cận date. Đơn đến, kho chỉ còn lô cận date: hoặc giao lô đó cho khách mua giá thường (rủi ro đánh giá xấu, trả hàng), hoặc hủy đơn (ảnh hưởng chỉ số hủy của shop).
Công thức đúng:
Tồn đẩy lên listing thường = Σ tồn các lô trạng thái “bán được” − tồn đã giữ − tồn an toàn
Tồn đẩy lên listing cận date = Σ tồn các lô trạng thái “cận date” − tồn đã giữ
Khi một lô chuyển trạng thái lúc 00:00, tồn đẩy lên sàn phải cập nhật trong cùng chu kỳ đồng bộ. Một listing cận date nên là listing riêng (hoặc biến thể riêng) ghi rõ HSD hoặc khoảng HSD, map sang cùng SKU nội bộ nhưng chỉ lấy tồn trạng thái cận date. Với quà tặng có hạn dùng, ghi rõ hạn dùng trong mô tả là yêu cầu được các hướng dẫn bán hàng phổ biến nhắc đến; không dùng lô dưới ngưỡng bán làm quà nếu chưa công bố. Về độ trễ đồng bộ chấp nhận được: SLA đồng bộ tồn kho đa sàn.
8. Bằng chứng định lượng: chi phí hết hạn và điểm xả tối ưu
8.1 Công thức chi phí hàng có hạn dùng theo tháng
| Khoản | Công thức | Nguồn dữ liệu |
|---|---|---|
| Hủy hàng hết hạn | Số lượng hủy × giá vốn + chi phí hủy | Biên bản hủy |
| Giảm giá xả cận date | Số lượng bán cận date × (giá thường − giá xả) | Đơn listing cận date |
| Khiếu nại do hạn dùng | Số đơn khiếu nại/trả vì hạn × (phí vận chuyển 2 chiều + giá trị hàng không bán lại + công xử lý) | Lý do trả hàng, đánh giá |
| Hủy đơn do tồn ảo | Số đơn hủy vì chỉ còn lô cận date × chi phí một đơn hủy (phạt, mất hạng, quảng cáo đã chi) | Lý do hủy |
| Công tìm lô thủ công | Giờ công tìm và đảo kệ × đơn giá giờ | Bấm giờ mẫu |
Tỷ lệ chính cần theo dõi: tỷ lệ hao hụt hạn dùng = (giá trị hủy + giá trị giảm giá xả) / giá vốn hàng bán có hạn dùng. Không có chuẩn chung công bố cho ecommerce Việt Nam; dùng chính số của shop ở tháng đầu làm mốc và đặt mục tiêu giảm. Đây là chỗ cần dữ liệu thật của khách hàng để đưa vào bài sau.
8.2 Ví dụ tính minh họa
Một shop mỹ phẩm giả định: 180 SKU có hạn dùng, giá vốn hàng bán có hạn 1,2 tỷ đồng mỗi tháng. Trong một tháng: hủy 40 triệu hàng hết hạn; bán xả 300 đơn vị với mức giảm trung bình 120.000 đồng (36 triệu); 25 đơn trả vì hạn ngắn, mỗi đơn mất trung bình 180.000 đồng (4,5 triệu); 12 đơn hủy vì tồn ảo, giả sử 200.000 đồng/đơn (2,4 triệu). Tổng khoảng 83 triệu, tương đương khoảng 6,9% giá vốn hàng có hạn. Trong đó phần “hủy hết hạn” và “tồn ảo” là phần FEFO bắt quét và tách trạng thái lô có thể tác động trực tiếp; phần giảm giá xả giảm được nhờ phát hiện sớm hơn và ngưỡng nhận chặt hơn.
8.3 Khi nào nên xả sớm: điểm hòa vốn
Nhiều shop chờ đến khi lô “sắp hết hạn” mới giảm giá sâu. Phép tính đơn giản cho thấy xả sớm thường thu được nhiều hơn:
- Số ngày còn bán được ở kênh thường = (RSL hiện tại − ngưỡng bán) × TSL.
- Số lượng bán được trong thời gian đó = Số ngày còn bán × tốc độ bán ngày.
- Phần dư dự kiến = Tồn lô − số lượng bán được.
Nếu phần dư dự kiến lớn hơn 0, phần đó chắc chắn sẽ rơi xuống cận date. Mức giảm giá để bán phần dư khi lô còn trên ngưỡng (ví dụ 10–15% qua combo, voucher nhắm khách mua lại) thường thấp hơn nhiều so với mức giảm 30–50% khi lô đã cận date, chưa kể phần không bán được phải hủy. Quy tắc gợi ý: chạy phép tính này mỗi tuần cho mọi lô; lô có phần dư dự kiến trên 10% số lượng lô thì đưa vào kế hoạch đẩy bán ngay trong tuần, trước khi chạm ngưỡng bán.
Ví dụ: lô kem chống nắng 800 hộp, RSL 42%, ngưỡng bán 25%, TSL 1.095 ngày → còn 186 ngày bán thường; tốc độ 3 hộp/ngày → bán được 558 hộp; dư dự kiến 242 hộp (30%). Đẩy bán 242 hộp bằng combo giảm 12% bây giờ tốn khoảng 242 × giá bán × 12%; chờ đến cận date phải giảm 40% và vẫn có thể hủy một phần. Tính tồn an toàn và điểm đặt hàng cho hàng có hạn dùng phải dùng chính phép tính này để không đặt mua quá khả năng bán trước ngưỡng — xem tồn kho an toàn và ROP mùa campaign.
8.4 Mốc thời gian một lô từ nhập đến xả
| Mốc (RSL) | Sự kiện | Hành động hệ thống | Người chịu trách nhiệm |
|---|---|---|---|
| ≥ ngưỡng nhận | Nhận hàng | Trạng thái bán được, cất kệ, tính tồn khả dụng | Kho nhận |
| Ngưỡng bán + 15 điểm | Cảnh báo sớm | Chạy phép tính phần dư dự kiến; đề xuất đẩy bán | Kế hoạch hàng hóa / marketing |
| Ngưỡng bán + 5 điểm | Cảnh báo cuối | Ưu tiên tuyệt đối trong FEFO; chặn nhập thêm cùng SKU nếu dư lớn | Mua hàng |
| Dưới ngưỡng bán | Chuyển cận date | Rút khỏi tồn listing thường; đẩy tồn sang listing cận date | Tự động |
| Dưới mốc khóa bán | Khóa | Chặn mọi kênh khách cuối; tạo đề xuất trả NCC hoặc hủy | Quản lý kho + kế toán |
| Quá HSD | Hết hạn | Chuyển khu hàng hủy; biên bản; ghi giảm tồn | Quản lý kho + kế toán |
9. Combo, quà tặng và bộ sản phẩm
Combo là nơi FEFO dễ sai vì nhân viên nhìn combo như một sản phẩm. Quy tắc:
- Lô được ghi trên từng SKU thành phần khi quét lấy hàng, không ghi trên mã combo. Hệ thống tách combo thành thành phần trước khi chọn lô — xem quản lý tồn kho combo theo SKU thành phần.
- Hạn dùng hiệu lực của combo là HSD ngắn nhất trong các thành phần. Combo có thành phần cận date phải bán ở listing có công bố.
- Combo đóng sẵn (kitting) mang lô riêng của bộ, nhưng hệ thống phải lưu lô của từng thành phần đã dùng để thu hồi được.
- Khi dùng combo để xả lô cận date của một thành phần, ghi rõ HSD của thành phần đó trên listing.
10. Thu hồi theo lô
Khi nhà sản xuất hoặc cơ quan quản lý yêu cầu thu hồi lô X, câu hỏi đầu tiên là phạm vi. Với dữ liệu ở mức F3, trả lời được trong vài phút:
- Còn bao nhiêu đơn vị lô X, ở vị trí nào → khóa ngay trạng thái cách ly, trừ khỏi tồn khả dụng.
- Bao nhiêu đơn đã giữ lô X nhưng chưa xuất → đổi lô hoặc giữ đơn.
- Bao nhiêu đã xuất, cho đơn nào, kênh nào, ngày nào → danh sách liên hệ khách.
- Bao nhiêu đang trên đường hoàn về → đánh dấu để khi kiện về không cộng lại tồn.
Ở mức F1–F2, “lô đã xuất” chỉ là lô gợi ý, nên phạm vi thật phải mở rộng ra toàn bộ SKU trong khoảng thời gian lô X có trong kho — chi phí liên hệ khách và hàng thu về lớn hơn nhiều. Quy trình chi tiết: thu hồi sản phẩm theo lô.
11. OMS-only hay OMS + WMS cho hàng có hạn dùng
| Dấu hiệu | OMS-only còn đủ | Cần OMS + WMS |
|---|---|---|
| Vị trí mỗi SKU | Một vị trí, người lấy cố định quen kệ | Nhiều vị trí, có dự trữ và ô lấy hàng |
| Số lô đang mở mỗi SKU | Thường một | Thường hai trở lên |
| Đơn mỗi ngày | Dưới khoảng 30 | Vài trăm trở lên, có đợt campaign |
| Nhân sự | 2–3 người cố định | Có thời vụ, nhiều ca |
| Kênh có yêu cầu RSL riêng | Không | Có đại lý, siêu thị, nhà thuốc |
| Combo, kitting | Ít | Nhiều combo, quà tặng |
| Rủi ro thu hồi | Thấp | Mẹ và bé, thực phẩm chức năng, thiết bị y tế |
| Kiểm tra lô thật / lô hệ thống | Lệch dưới khoảng 2% số lô kiểm | Lệch trên khoảng 5% số lô kiểm dù tổng SKU khớp |
OMS-only có thể làm tốt phần tồn theo lô ở mức kho, tách tồn bán được và cận date để đẩy lên sàn, và cảnh báo. Cái OMS không làm được là biết hộp nào nằm ở kệ nào và chặn nhân viên lấy sai — vì vậy OMS-only thực tế dừng ở F1–F2. Nếu đã có OMS và đang phân vân, xem khi nào chuyển từ OMS sang OMS + WMS.
12. Những sai lầm thường gặp (và câu trả lời mơ hồ cần sửa)
- “Hàng cận date là hàng còn vài ngày đến vài tháng”. Định nghĩa theo số ngày cố định làm mỹ phẩm hạn 36 tháng bị xả quá muộn và thực phẩm hạn ngắn bị xả quá sớm. Dùng RSL theo phần trăm và ngưỡng theo nhóm hàng.
- “Phần mềm tự động gợi ý FEFO là đủ”. Gợi ý không được kiểm chứng bằng quét là F2; dữ liệu lô sẽ trôi. Hỏi: lấy sai lô thì hệ thống có biết không.
- “Giảm giá, tặng kèm, combo để xử lý hàng cận date” mà không nói lúc nào. Xả sau khi đã cận date thường lỗ hơn đẩy bán sớm phần dư dự kiến. Chạy phép tính ở mục 8.3 hằng tuần.
- Tồn đẩy lên sàn là tổng tồn SKU. Lô cận date và cách ly phải nằm ngoài tồn listing thường.
- Hàng hoàn mặc định thuộc lô đã xuất. Quét lại lô; khách có thể trả hộp khác.
- Ghi lô trên mã combo. Lô thuộc về SKU thành phần.
- Chỉ kiểm kê tổng SKU. Tổng khớp không chứng minh FEFO đang chạy; phải kiểm theo lô.
- Nhập HSD bằng tay không kiểm. Nhập nhầm ngày/tháng (05/10 thành 10/05) tạo lô “còn hạn” sai; kiểm HSD − NSX so với TSL chuẩn.
- Mua theo giá tốt mà không theo RSL. Lô giá rẻ có RSL thấp thường đắt hơn sau khi tính phần phải xả.
13. Lộ trình triển khai 4 tuần
| Tuần | Việc chính | Tiêu chí xong |
|---|---|---|
| 1 | Gắn cờ SKU có hạn dùng, nhập TSL chuẩn; viết bảng ngưỡng theo nhóm hàng; kiểm kê theo lô toàn bộ SKU có hạn | 100% SKU có hạn có cờ và TSL; tồn theo lô khớp kệ |
| 2 | Bắt nhập lô và HSD khi nhận hàng; in nhãn lô nội bộ cho SKU thiếu barcode lô; quy tắc một lô một ô | Mọi phiếu nhập mới có lô; không còn ô hai lô không chia |
| 3 | Bật trạng thái lô tự động theo ngưỡng; tách tồn đẩy lên sàn; mở listing cận date; quét lô khi nhận hàng hoàn | Tồn listing thường không gồm lô cận date; kiện hoàn có lô ghi nhận |
| 4 | Bật chặn lô sai tại PDA lấy hàng/kiểm hàng; báo cáo ngoại lệ; kiểm đếm vòng theo lô | Lô thật ghi trên mỗi dòng đơn; ngoại lệ có lý do và người duyệt |
Không bật chặn ở PDA trước khi kiểm kê theo lô xong ở tuần 1: nếu dữ liệu lô ban đầu sai, PDA sẽ chặn nhân viên lấy đúng hộp đang có trên kệ, và đội kho sẽ đòi tắt chặn. Kế hoạch đưa kho vào hệ thống mà không dừng bán: triển khai OMS + WMS không gián đoạn.
14. Checklist 5 việc làm ngay trong tuần này
- Xuất danh sách SKU có hạn dùng kèm tốc độ bán 30 ngày và TSL; điền ngưỡng nhận, bán, khóa theo bảng mục 3.4, chỉnh cho nhóm hàng của shop.
- Kiểm 20 vị trí có SKU nhiều lô: đếm theo lô, so với hệ thống; ghi tỷ lệ lô lệch. Trên khoảng 5% là dấu hiệu quy trình lấy hàng không theo FEFO.
- Kiểm tồn đang đẩy lên sàn của 10 SKU có lô cận date: tồn listing thường có đang gồm lô cận date không.
- Chạy phép tính phần dư dự kiến (mục 8.3) cho 20 lô lớn nhất; lập kế hoạch đẩy bán cho lô dư trên 10%.
- Thử một bài kiểm tra trên hệ thống hiện tại: tạo đơn, cố tình quét lô mới hơn lô chỉ định. Ghi lại hệ thống đang ở mức F nào.
15. Câu hỏi nên đặt cho nhà cung cấp phần mềm
- Tồn được lưu ở mức SKU × lô × vị trí × trạng thái không? Trạng thái lô có đổi tự động theo ngưỡng RSL theo nhóm hàng không?
- PDA có chặn quét lô HSD muộn hơn lô chỉ định không? Ngoại lệ cần ai duyệt và có lưu lý do không?
- Lô thật đã quét có được lưu trên từng dòng đơn và xuất ra được để thu hồi không?
- Tồn đẩy lên từng listing có lọc theo trạng thái lô không? Listing cận date map vào cùng SKU được không?
- Đơn kênh sỉ có mang yêu cầu RSL tối thiểu để chọn lô không?
- Nhận hàng hoàn có bắt quét lô và so với lô đã xuất không?
Cách biến các câu hỏi này thành kịch bản POC có ngưỡng đạt: chọn và nghiệm thu OMS + WMS. Bài cùng chủ đề theo ngành: kho mỹ phẩm, kho thực phẩm chức năng, kho mẹ và bé, quản lý batch và hạn sử dụng.
16. Kết luận
Quản lý hạn sử dụng cho shop đa sàn là bài toán dữ liệu ở mức lô và vị trí, không phải bài toán cảnh báo. Đặt ba ngưỡng bằng công thức theo phần trăm hạn dùng còn lại; cho trạng thái lô quyết định tồn nào được đẩy lên sàn; bắt quét lô ở nhận hàng, lấy hàng và hàng hoàn; chạy phép tính phần dư dự kiến mỗi tuần để xả sớm thay vì xả muộn. OMS đủ cho shop nhỏ một vị trí một lô; khi nhiều lô, nhiều vị trí, có thời vụ hoặc combo, FEFO chỉ đứng vững với WMS chặn tại quét.
Để đánh giá sát doanh nghiệp, xem phạm vi sản phẩm OMS + WMS, giải pháp bán hàng đa kênh, giải pháp vận hành kho, cam kết dịch vụ và cách xác nhận phạm vi, câu hỏi thường gặp, rồi đăng ký tư vấn với JST ERP Việt Nam. Mọi khả năng sản phẩm cần được xác nhận trên phạm vi triển khai thật.
