Product Management
Đăng nhập
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Bài 7 — Agent quản lý & cảnh báo tồn kho chủ động

Đã đọc 0/9 mục · còn khoảng 3 phút
Cách chúng tôi ghi nhận

Một mục được tính là đã đọc khi nó nằm giữa màn hình đủ lâu so với độ dài của nó (bảng và sơ đồ tính một nửa), bạn vẫn đang cuộn hoặc bấm phím, và bạn đã thấy tới cuối mục. Lướt nhanh hoặc để tab mở không được tính. Chúng tôi chỉ lưu thời gian đọc từng mục — không lưu gì khác.

Hết hàng bán chạy = mất doanh thu; tồn đọng hàng ế = chôn vốn. Agent tồn kho không chỉ trả lời số tồn mà còn chủ động cảnh báo, đề xuất nhập, và phát hiện bất thường.

Từ bị động sang chủ động

Agent tư vấn (bài 4) chỉ phản hồi khi khách hỏi. Agent tồn kho chạy theo lịch (cron/scheduled): mỗi ngày quét tồn, so ngưỡng, dự báo ngày hết hàng, rồi gửi cảnh báo cho chủ shop. Đây là dạng agent "proactive".

Các bước xây dựng

  • Định nghĩa ngưỡng tồn kho theo tốc độ bán.
  • Tính tốc độ bán & dự báo ngày hết (days of supply).
  • Lập lịch quét định kỳ.
  • Sinh cảnh báo có ưu tiên + đề xuất số lượng nhập.
  • Phát hiện bất thường (bán vọt/tụt bất thường).

Bước 1 & 2 — Ngưỡng động theo tốc độ bán

Ngưỡng cố định (vd "dưới 10 thì báo") kém: món bán 50/ngày với món bán 1/tháng không thể chung ngưỡng. Dùng days of supply:

def days_of_supply(sku):
    qty = get_stock(sku)["qty"]
    velocity = avg_daily_sales(sku, days=14)  # trung bình 14 ngày
    if velocity == 0:
        return None  # hàng không bán (xét tồn đọng riêng)
    return qty / velocity

def needs_reorder(sku, lead_time_days=5, safety=3):
    dos = days_of_supply(sku)
    return dos is not None and dos <= (lead_time_days + safety)

Ý tưởng: nếu số ngày còn bán được ≤ thời gian nhập hàng cộng đệm an toàn → phải đặt nhập ngay.

Bước 3 & 4 — Lịch quét + cảnh báo ưu tiên

def daily_inventory_scan():
    alerts = []
    for sku in all_active_skus():
        if needs_reorder(sku):
            qty_suggest = reorder_qty(sku)  # đủ bán 30 ngày
            alerts.append({"sku": sku, "level": priority(sku),
                           "suggest": qty_suggest})
    # LLM soạn bản tóm tắt dễ đọc cho chủ shop
    return summarize_for_owner(sorted(alerts, key=lambda a: a["level"]))

Bước 5 — Bất thường

Bán vọt gấp 5 lần bình thường có thể là viral (nhập gấp) hoặc lỗi giá/khuyến mãi (cần kiểm tra). Agent nêu cảnh báo kèm giả thuyết để người quyết.

Khung tư duy: vòng tồn kho khỏe mạnh

  • Quan sát — quét tồn + tốc độ bán định kỳ.
  • Dự báo — days of supply, ngày hết hàng.
  • Cảnh báo — theo mức ưu tiên, kèm đề xuất số lượng.
  • Hành động — người duyệt lệnh nhập (hoặc auto với nhà cung cấp tin cậy).
  • Phản hồi — cập nhật lại tốc độ bán sau khuyến mãi/mùa vụ.

Checklist agent tồn kho

  • [ ] Ngưỡng theo tốc độ bán, không dùng số cố định cho mọi SKU?
  • [ ] Có tính lead time + đệm an toàn khi đề xuất nhập?
  • [ ] Cảnh báo có ưu tiên (bán chạy sắp hết lên đầu)?
  • [ ] Có tách nhóm hàng tồn đọng (velocity = 0) để xả?
  • [ ] Có phát hiện bất thường bán vọt/tụt?
  • [ ] Đề xuất nhập vẫn cần người duyệt trước khi đặt tiền thật?

Sai lầm thường gặp

  • Ngưỡng cố định cho mọi mặt hàng. Bỏ sót hàng bán nhanh, báo thừa hàng bán chậm.
  • Bỏ quên lead time. Báo khi đã sắp hết thì nhập về cũng không kịp; phải trừ thời gian giao của nhà cung cấp.
  • Cảnh báo không ưu tiên. Dội 200 cảnh báo mỗi sáng, chủ shop bỏ đọc → mất tác dụng.
  • Auto đặt hàng không người duyệt. Lỗi tốc độ bán (do khuyến mãi) khiến agent nhập thừa, chôn vốn.
  • Không xử lý hàng tồn đọng. Chỉ lo hết hàng mà quên hàng ế cũng là chôn vốn — cần đề xuất xả/giảm giá.
  • Bỏ qua mùa vụ. Tết/sale lớn làm tốc độ bán nhảy vọt; mô hình phải tính đến hoặc cảnh báo con người điều chỉnh.
Bài cuối sẽ ghép mọi phần lại: triển khai, giám sát, đo lường và cải tiến agent trong vận hành thật.

Học xong bài này rồi? Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu, và học hết khóa thì có chứng chỉ. Lưu tiến độ của tôi