
Một mã hàng, một kho, ba sàn. Nghe đơn giản cho tới lúc khách đặt được một cái mà kho không có cái nào — rồi người bán phải tự huỷ đơn, và đơn huỷ do người bán thì vào thẳng chỉ số của gian hàng.
Bài vì sao tồn kho trên sàn luôn lệch với kho thật đã liệt kê bảy nguyên nhân và cách chốt lại con số đúng. Bài này đi sâu vào đúng một nguyên nhân trong số đó: nguyên nhân duy nhất không chữa được bằng cách đếm kỹ hơn.
Vấn đề không nằm ở chỗ có phần mềm hay không
Câu trả lời quen thuộc cho chuyện bán ba sàn là “lắp phần mềm đồng bộ”. Đúng, nhưng chưa đủ, vì nó ngầm coi đồng bộ là một cái công tắc: bật lên thì ba sàn luôn khớp nhau.
Thực tế đồng bộ là một chuỗi việc nối tiếp, và chuỗi nào cũng có độ trễ. Khách bấm mua ở sàn A, sàn A trừ tồn của riêng nó ngay lập tức. Tin đó phải chạy về phần mềm, phần mềm trừ con số chung, rồi đẩy ngược lên sàn B và sàn C. Mỗi chặng mất từ vài giây tới cả phút, tuỳ cách kết nối và tuỳ giờ.
Suốt khoảng đó, sàn B và sàn C vẫn đang bán bằng con số cũ. Phần mềm không xoá được cửa sổ ấy. Nó chỉ làm cho cửa sổ ngắn lại.
Hệ quả quan trọng hơn nhiều so với bản thân con số: bán vượt tồn không phải một lỗi thao tác của ai đó, mà là một xác suất. Và xác suất ấy không phụ thuộc vào việc kho cẩn thận đến đâu, mà phụ thuộc vào hai thứ — cửa sổ trễ dài bao nhiêu, và mã đó bán nhanh đến mức nào.
Mã bán hai đơn một ngày thì cửa sổ ba phút cũng chẳng sao. Mã đang lên sóng live bán năm đơn một phút thì cửa sổ hai mươi giây đã đủ để hai khách mua cùng một cái cuối cùng.
Ba con số tồn kho, và chỉ một con số được đẩy lên sàn

Trước khi bàn tới đệm, phải tách cho rõ ba con số mà nhiều nơi vẫn gọi chung là “tồn kho”. Gộp ba thành một là chỗ phần lớn ca bán vượt tồn bắt đầu.
| Con số | Tính từ đâu | Trả lời câu hỏi nào | Sai lầm thường gặp |
|---|---|---|---|
| Tồn vật lý | Đếm trên kệ, hoặc số trong hệ thống kho sau mỗi lần nhập xuất | Kho đang giữ bao nhiêu cái của mã này | Đẩy thẳng con số này lên cả ba sàn |
| Tồn khả dụng | Tồn vật lý trừ hàng đã có đơn chưa nhặt, hàng hỏng, hàng đang chờ xử lý | Còn bao nhiêu cái thật sự bán được | Quên trừ hàng đang nằm trên bàn đóng gói |
| Tồn đẩy lên sàn | Tồn khả dụng trừ đệm chống oversell | Con số khách nhìn thấy trên trang sản phẩm | Để bằng đúng tồn khả dụng cho “đỡ mất đơn” |
Bài chênh lệch tồn kho đã nói tới ba kho phụ mà chủ hàng phải nhìn thấy: kho lệch vị trí, kho hư hỏng, kho đóng gói. Ba kho đó chính là phần bị trừ ra khi đi từ tồn vật lý xuống tồn khả dụng. Nếu không ai đếm được chúng thì tồn khả dụng chỉ là một con số đoán.
Còn bước từ tồn khả dụng xuống tồn đẩy lên sàn là phần hoàn toàn do người bán quyết định. Đó là đệm.
Chia cứng cho từng sàn hay để ba sàn dùng chung

Có hai cách chia một kho cho ba sàn, và chúng trả giá theo hai kiểu khác nhau.
| Tiêu chí | Chia cứng cho từng sàn | Ba sàn dùng chung một pool |
|---|---|---|
| Rủi ro bán vượt tồn | Không có | Có, và dồn vào đúng lúc mã sắp hết |
| Đơn bị lỡ | Nhiều, ở sàn bán chạy nhất | Gần như không |
| Công chỉnh tay | Phải chia lại mỗi khi tỷ trọng giữa các kênh đổi | Chia một lần, phần mềm tự trừ |
| Hợp với | Hàng độc quyền theo kênh, hàng của một chiến dịch, hàng rất ít và giá trị cao | Phần lớn mã bán thường ngày |
| Lúc hết hàng | Một sàn hết trong khi hai sàn kia vẫn còn | Ba sàn hết cùng một lúc |
Chia cứng nghe an toàn, và đúng là an toàn — nhưng cái giá của nó hiện ra ngay trong ví dụ ở hình trên: sáu mươi cái trong kho, sáu mươi khách muốn mua, mà chỉ bán được bốn mươi. Hai mươi đơn bị lỡ ở sàn bán chạy trong khi hai mươi cái hàng vẫn nằm yên ở hai sàn kia.
Vì vậy chia cứng chỉ hợp với những trường hợp có lý do riêng: mã độc quyền của một kênh, hàng dành cho một chiến dịch đã cam kết số lượng, hoặc hàng chỉ còn vài cái mà giá trị lớn tới mức một ca bán vượt là mất cả tháng lãi.
Phần còn lại nên dùng chung. Và cách trả giá rẻ nhất cho rủi ro của pool chung không phải chia nhỏ nó ra, mà là giữ lại một phần rất nhỏ cho không sàn nào cả. Đó chính là đệm.
Đệm chống oversell tính theo tốc độ bán

Cách làm phổ biến là chọn một con số tròn rồi áp cho cả kho: giữ lại ba cái, hoặc giữ lại năm cái, mã nào cũng thế. Cách đó sai ở cả hai đầu — thừa ở mã bán chậm và thiếu ở mã đang nóng.
Đệm cần bao nhiêu thì tính được, vì câu hỏi thật sự chỉ là: trong lúc ba sàn còn đang chênh nhau, mã này bán hết được bao nhiêu cái?
Đệm = tốc độ bán giờ cao điểm × độ trễ đồng bộ, làm tròn lên, tối thiểu một cái.
Một mã bán 120 đơn mỗi giờ trong khung cao điểm, độ trễ đồng bộ khoảng một phút, thì trong một phút ấy có thể bán thêm hai cái. Đệm là hai. Cũng mã đó ở khung bình thường chỉ bán 12 đơn mỗi giờ thì đệm quay về một.
Điểm đáng nhớ nhất của công thức này không phải con số, mà là: đệm gắn với giai đoạn của mã, không gắn với bản thân mã. Một mã sắp lên sóng live cần đệm gấp mười lăm lần so với chính nó ngày hôm trước — và chỉ trong vài tiếng. Bài chuẩn bị kho trước phiên live gọi việc này là khoá tồn cho phiên; nhìn từ góc đồng bộ thì đó là một lần nâng đệm có thời hạn.
Đệm chống oversell không phải tồn kho an toàn
Hai khái niệm này hay bị cộng chung, và cộng chung thì hỏng cả hai.
Tồn kho an toàn là phần dự phòng để không đứt hàng trong lúc chờ nhà cung cấp giao đợt mới. Đơn vị của nó là ngày bán. Nó quyết định khi nào đặt hàng lại.
Đệm chống oversell là phần giữ lại để không bán vượt trong cửa sổ trễ giữa các sàn. Đơn vị của nó là giây. Nó quyết định con số đẩy lên sàn.
Một mã có thể có tồn an toàn hai mươi cái và đệm chống oversell hai cái, và hai con số ấy không liên quan gì nhau. Nhầm lẫn thường gặp theo cả hai chiều: có nơi nâng tồn an toàn lên thật cao với hy vọng hết oversell — vốn đọng mà vẫn oversell, vì cửa sổ trễ không đổi; có nơi coi tồn an toàn đã là đệm rồi nên không trừ gì thêm — và bán vượt vào đúng lúc mã chạy mạnh nhất.
Mã nào cần đồng bộ tự động, mã nào cập nhật tay vẫn đủ
Ngưỡng để cần phần mềm thường được đặt theo tổng số đơn mỗi ngày. Nhưng tổng số đơn không phải thứ sinh ra rủi ro. Thứ sinh ra rủi ro là số mã nóng — tạm định nghĩa là mã bán hơn một đơn mỗi giờ trong khung cao điểm.
Một shop hai trăm đơn mỗi ngày nhưng rải trên ba trăm mã thì hầu như không có mã nào nóng, và cập nhật tay hai lần mỗi ngày kèm đệm rộng vẫn chạy được. Một shop năm mươi đơn mỗi ngày nhưng dồn vào bốn mã thì ngược lại.
Cập nhật tay không phải là không có chi phí, chỉ là chi phí nằm chỗ khác: phải chấp nhận đệm rộng hơn nhiều, vì cửa sổ trễ lúc này không còn là một phút mà là nửa ngày. Và đệm rộng là vốn đọng.
Phép so sánh làm được trong mười phút: lấy số mã nóng nhân với số cái đệm phải cộng thêm, nhân với giá vốn một cái. Bốn mươi mã nóng, cộng thêm bốn cái đệm mỗi mã, giá vốn một trăm hai mươi nghìn một cái — gần mười chín triệu đồng vốn nằm im mỗi tháng. Đặt con số đó cạnh phí phần mềm là ra quyết định.
Thêm một kênh nữa thì phép tính đổi hẳn. Bài bán trên website riêng khác gì bán trên sàn có nói tới chuyện website riêng không có sẵn hệ thống của sàn để dựa; về tồn kho cũng vậy — website là kênh thứ tư phải tự nối vào cùng một con số chung, chứ không phải một kho riêng.
Sáu câu phải hỏi trên từng sàn trước khi tin vào con số
Mỗi sàn trừ tồn ở một thời điểm khác nhau và trả tồn về theo một cách khác nhau. Những quy tắc này thay đổi theo thời gian và theo từng loại gian hàng, nên cách chắc chắn nhất không phải đọc ở đâu đó mà là tự chạy thử một lần trên chính tài khoản của mình.
Cách thử tốn khoảng một buổi: tạo một mã thử, đặt tồn đúng hai cái, rồi lần lượt làm từng tình huống dưới đây và bấm giờ xem con số đổi lúc nào.
| Câu phải hỏi cho từng sàn | Vì sao nó đổi con số | Cách tự kiểm trong một buổi |
|---|---|---|
| Đơn chưa thanh toán có giữ tồn không, giữ bao lâu? | Nếu giữ, tồn khả dụng tụt xuống trước khi có doanh thu; nếu không giữ, hai khách có thể mua cùng một cái | Đặt một đơn chuyển khoản rồi để treo, xem con số trên trang sản phẩm |
| Khách tự huỷ thì tồn trả lại ngay hay chờ? | Chênh lệch giữa lúc huỷ và lúc tồn quay lại là khoảng thời gian mã bị khoá oan | Tự huỷ đơn vừa đặt, bấm giờ tới lúc con số đổi |
| Hàng trong giỏ hoặc trong phiên live có bị giữ tồn không? | Đây là lý do con số trên sàn thấp hơn kho mà không ai giải thích được | Bỏ hai cái vào giỏ, không thanh toán, xem tồn còn lại |
| Phần mềm đẩy số lên thì sàn ghi đè hay cộng dồn? | Ghi đè nhầm thành cộng dồn là cách tồn tự nhân đôi sau vài lần đồng bộ | Đẩy cùng một con số hai lần liên tiếp, xem kết quả |
| Sàn có giới hạn số lần cập nhật tồn trong một phút không? | Vượt giới hạn thì lệnh cập nhật bị bỏ, và không phải lúc nào cũng có báo lỗi | Đọc tài liệu kết nối của sàn, hoặc hỏi thẳng nhà cung cấp phần mềm |
| Combo và hàng bán theo bộ trừ tồn của mã lẻ thế nào? | Một combo bán ra phải trừ tồn của từng mã thành phần, nếu không thì mã lẻ vẫn hiện còn hàng | Bán thử một combo, kiểm tra tồn của từng mã lẻ bên trong |
Kết quả của một buổi thử ấy đáng giá hơn mọi bảng so sánh chung chung, vì nó cho ra cửa sổ trễ thật của chính hệ thống đang dùng — con số để thay vào công thức đệm ở trên.
Khi đã bán vượt tồn: ba mươi phút đầu là việc của kho
Chuyện đã xảy ra rồi thì thứ tự xử lý quan trọng hơn tốc độ, vì làm sai thứ tự sẽ sinh thêm đơn không có hàng trong lúc đang chữa.
Một, đặt tồn của mã đó về không trên cả ba sàn, bằng tay, ngay lập tức — không chờ phần mềm đồng bộ. Mỗi phút chậm là thêm đơn mới rơi vào đúng cái hố vừa phát hiện.
Hai, ra kệ đếm thật mã đó. Không lấy số trong hệ thống, vì số trong hệ thống chính là thứ vừa sai.
Ba, xếp danh sách đơn theo giờ đặt. Số hàng có thật được chia cho các đơn đặt sớm nhất, và chia tới đâu thì in vận đơn tới đó.
Bốn, báo bên bán hàng con số thật và số đơn không có hàng, trong vòng ba mươi phút. Phần việc sau đó — liên hệ khách, chọn huỷ hay hẹn giao muộn — là việc của bên bán hàng, nhưng họ chỉ quyết được khi có hai con số ấy trong tay.
Lý do phải nhanh nằm ở chỗ khác: chuẩn SLA của sàn tính đơn huỷ do người bán vào chỉ số của gian hàng, và chỉ số đó ảnh hưởng tới hiển thị của toàn bộ mã khác. Một ca bán vượt tồn xử lý chậm không chỉ mất một đơn.
Phép thử ba mươi giây
Mở mã bán chạy nhất đang bán trên cả ba sàn. Nhìn bốn con số: tồn trên sàn thứ nhất, sàn thứ hai, sàn thứ ba, và số đếm được trên kệ.
Nếu ba con số trên ba sàn giống hệt nhau và giống hệt số trên kệ, thì mã đó đang không có đệm nào cả — và việc chưa bán vượt tồn cho tới hôm nay là may, không phải là hệ thống.
Câu hỏi thứ hai còn ngắn hơn: mã này đang để đệm bao nhiêu, và con số đó dựa trên tốc độ bán nào? Nếu không trả lời được trong ba mươi giây thì đệm ấy không tồn tại trên thực tế, dù phần mềm có ô để điền.
Đồng bộ tồn kho ba sàn không phải bài toán chọn phần mềm. Nó là ba việc: tách cho rõ ba con số, biết cửa sổ trễ thật của mình dài bao nhiêu giây, và đặt đệm theo tốc độ bán của từng mã thay vì một con số tròn cho cả kho.
Bài liên quan
Nhận tư vấn miễn phí
