Đồng bộ tồn kho đa kênh hoạt động khi chỉ có một nơi giữ con số tồn gốc, mọi kênh bán (Shopee, Lazada, TikTok Shop, website, cửa hàng) chỉ nhận số từ nơi đó, và mỗi sự kiện làm thay đổi tồn (đơn mới, huỷ, hoàn, nhập hàng, kiểm kê) đều được ghi lại rồi đẩy đi trong vài phút. Phần lớn shop bán vượt tồn không phải vì thiếu phần mềm, mà vì mã SKU giữa các kênh không khớp và không có tồn đệm cho độ trễ đồng bộ.
Tóm tắt: Chọn nơi giữ số gốc (phần mềm bán hàng đa kênh hoặc hệ thống kho), lập bảng ghép mã SKU cho từng kênh, đặt tồn đệm cho mặt hàng bán chạy, và định nghĩa rõ đơn ở trạng thái nào thì giữ hàng, trạng thái nào thì trả hàng về kho. Shop dưới vài chục đơn mỗi ngày và ít mã hàng có thể chưa cần tự động hoá.
Vì sao tồn kho lệch giữa các kênh?#
Bán vượt tồn (overselling) xảy ra khi một kênh vẫn hiển thị còn hàng trong khi hàng đã bán ở kênh khác. Trên sàn thương mại điện tử, đơn bị người bán huỷ vì hết hàng có thể bị tính vào tỷ lệ đơn không thành công và điểm phạt theo chính sách của từng sàn, ảnh hưởng đến hiển thị của gian hàng. Qua các dự án DsAI đã tham gia, nguyên nhân thường rơi vào sáu nhóm:
- Cập nhật tay. Nhân viên sửa số tồn trên từng sàn sau mỗi đợt nhập hàng hoặc cuối ngày. Giữa hai lần sửa, mọi kênh đều hiển thị số cũ.
- Độ trễ đồng bộ. Ngay cả khi có phần mềm, số tồn được đẩy theo chu kỳ. Trong đợt khuyến mãi, vài phút trễ đủ để bán ra nhiều hơn số đang có.
- Mã SKU không khớp. Cùng một chiếc áo, trên Shopee mã là "AO-TRANG-M", trên Lazada là "ATM01", trên POS là mã vạch. Phần mềm không ghép được thì không trừ được.
- Hàng combo, quà tặng. Bán một combo gồm ba sản phẩm nhưng hệ thống chỉ trừ mã combo, không trừ ba mã thành phần.
- Đơn huỷ, đơn hoàn không quay về kho. Đơn huỷ trước khi giao đã được trả lại số tồn, nhưng hàng hoàn sau khi giao thì chưa ai kiểm tra và nhập lại.
- Kho thực tế sai từ đầu. Lâu không kiểm kê, số trên hệ thống khác số trên kệ. Đồng bộ nhanh một con số sai vẫn là con số sai.
Chỉ một nơi giữ con số gốc#
Nguyên tắc quan trọng nhất: chọn một hệ thống làm "nguồn sự thật" (source of truth) cho tồn kho, và không sửa tồn trực tiếp trên sàn nữa.
| Lựa chọn | Ví dụ | Hợp với | Lưu ý |
|---|---|---|---|
| Phần mềm bán hàng đa kênh | Sapo, KiotViet, Haravan, Nhanh.vn | Shop bán lẻ có cửa hàng và 2–4 sàn, vài trăm đến vài nghìn mã | Kiểm tra gói có hỗ trợ đúng các sàn bạn bán và tần suất đồng bộ |
| Hệ thống kho hoặc ERP | Odoo, phần mềm WMS của đơn vị fulfillment | Nhiều kho, có quy trình nhập xuất phức tạp | Cần kết nối thêm tới sàn qua phần mềm trung gian hoặc API |
| Bảng tính trung tâm kèm kịch bản | Google Sheets với n8n hoặc Make | Rất ít mã hàng, giai đoạn thử nghiệm | Dễ vỡ khi số đơn tăng; không nên dùng lâu dài |
Khi đã chọn, mọi thao tác nhập hàng, chuyển kho, kiểm kê đều làm trên hệ thống đó. Nhân viên vận hành sàn vẫn sửa giá, mô tả, hình ảnh trên sàn, nhưng không chạm vào ô số lượng.
Luồng đồng bộ hoạt động thế nào?#
Mỗi thay đổi tồn được coi là một sự kiện. Hệ thống trung tâm nhận sự kiện, cập nhật số khả dụng, rồi đẩy số mới lên các kênh khác.
Sự kiện → Tác động lên tồn trung tâm
--------------------------------------------------------------
Đơn mới trên kênh bất kỳ → Giữ hàng (giảm số khả dụng)
Đơn huỷ trước khi giao → Trả lại số khả dụng
Đơn giao thành công → Trừ tồn thực tế, bỏ giữ hàng
Hàng hoàn về, đã kiểm tra → Cộng lại nếu bán được, hoặc chuyển kho lỗi
Nhập hàng từ nhà cung cấp → Cộng tồn
Kiểm kê, điều chỉnh → Ghi nhận chênh lệch, có lý do
--------------------------------------------------------------
Sau mỗi thay đổi → đẩy "số khả dụng trừ tồn đệm" lên từng kênh
Có hai cách nhận sự kiện từ sàn. Webhook (sàn chủ động gọi về khi có đơn) cho độ trễ thấp; Shopee Open Platform, Lazada Open Platform và TikTok Shop Partner Center đều có cơ chế thông báo đơn hàng cho ứng dụng đối tác. Hỏi định kỳ (polling) đơn giản hơn nhưng chậm hơn. Hệ thống tốt thường dùng cả hai: webhook để nhanh, hỏi định kỳ để vá những sự kiện bị lỡ.
Cửa hàng offline dùng POS của cùng phần mềm thì đơn tại quầy trừ tồn ngay. Nếu POS là hệ thống khác, cần kết nối riêng hoặc ít nhất đồng bộ cuối mỗi ca.
Ghép mã SKU giữa các kênh#
Bước này tốn công nhất khi bắt đầu và quyết định độ chính xác về sau.
- Một mã nội bộ cho mỗi biến thể. Áo trắng size M là một mã, áo trắng size L là mã khác. Mã nội bộ không nên chứa ký tự đặc biệt hay khoảng trắng.
- Điền mã nội bộ vào ô SKU người bán trên từng sàn. Shopee, Lazada, TikTok Shop đều cho người bán nhập mã SKU riêng cho từng phân loại. Khi mã trên sàn trùng mã nội bộ, phần mềm tự ghép được.
- Bảng ghép cho trường hợp không sửa được. Sản phẩm đang chạy quảng cáo hoặc có nhiều đánh giá, sửa sợ ảnh hưởng, thì giữ nguyên mã cũ và ghi vào bảng ghép: mã sàn, kênh, mã nội bộ.
- Combo khai báo thành phần. Combo "Bộ ba áo thun" gồm mã A ×1, B ×1, C ×1. Bán một combo trừ ba mã thành phần; tồn combo được tính bằng số lượng thành phần ít nhất.
- Quy đổi đơn vị. Nhập theo thùng, bán theo chai: khai báo hệ số quy đổi một lần. Nguyên tắc này giống bài toán chuẩn hoá đơn vị nguyên vật liệu trong F&B.
Tồn đệm và phân bổ theo kênh#
Đồng bộ luôn có độ trễ, nên đẩy lên sàn số khả dụng trừ đi một phần đệm, thay vì đẩy toàn bộ.
- Tồn đệm cố định cho mặt hàng bán chạy: còn 50, chỉ hiển thị 47 trên mỗi sàn. Mức đệm phụ thuộc tốc độ bán trong khoảng thời gian bằng độ trễ đồng bộ.
- Ngưỡng tắt bán: khi tồn khả dụng xuống dưới mức đặt trước (ví dụ 2 cái), ngừng bán trên sàn và chỉ bán tại cửa hàng, nơi nhân viên nhìn thấy hàng thật.
- Phân bổ cho chiến dịch: một số chương trình khuyến mãi trên sàn yêu cầu đăng ký số lượng riêng cho chiến dịch. Số này nên được trừ khỏi số khả dụng chung trong suốt chiến dịch để kênh khác không bán trùng.
Dùng phần mềm có sẵn hay tự kết nối API?#
| Tiêu chí | Phần mềm đa kênh có sẵn | Tự kết nối qua API (n8n, Make hoặc mã riêng) |
|---|---|---|
| Thời gian bắt đầu | Vài ngày, chủ yếu là ghép SKU | Vài tuần, gồm đăng ký ứng dụng đối tác với từng sàn |
| Chi phí | Phí thuê bao theo gói | Chi phí phát triển và máy chủ, bảo trì khi sàn đổi API |
| Linh hoạt | Theo tính năng nhà cung cấp | Tuỳ biến quy tắc đệm, phân bổ, combo theo ý |
| Hợp với | Phần lớn shop bán lẻ | Shop có quy tắc đặc thù hoặc đã có hệ thống kho riêng |
Với đa số SME, phần mềm có sẵn là điểm khởi đầu hợp lý. Tự kết nối đáng cân nhắc khi phần mềm không hỗ trợ một kênh quan trọng, hoặc khi bạn cần quy tắc phân bổ mà gói phần mềm không cho cấu hình.
Triển khai theo từng bước#
- Kiểm kê thực tế trước. Đếm hàng trên kệ, nhập số chuẩn vào hệ thống trung tâm. Không đồng bộ khi chưa có số đúng.
- Ghép SKU cho nhóm mặt hàng bán chạy nhất trước. Thường một nhóm nhỏ mã hàng chiếm phần lớn đơn; ghép xong nhóm này đã giảm được phần lớn rủi ro.
- Chạy song song một đến hai tuần. Bật đồng bộ nhưng nhân viên vẫn đối chiếu số trên sàn với số trung tâm mỗi ngày, ghi lại mọi chênh lệch và nguyên nhân.
- Tắt quyền sửa số lượng trên sàn cho nhân viên vận hành, nếu sàn cho phân quyền tài khoản phụ.
- Thiết lập cảnh báo: đồng bộ thất bại, một mã có tồn âm, chênh lệch giữa tồn trung tâm và tồn sàn vượt ngưỡng.
- Mở rộng sang toàn bộ mã hàng và quy trình hoàn hàng.
Khi tồn kho đã đáng tin, bước tiếp theo thường là tự động xác nhận đơn Shopee, vì quy tắc xác nhận phụ thuộc trực tiếp vào số tồn đúng.
Lỗi thường gặp#
- Đồng bộ hai chiều không có quy tắc ưu tiên. Cho phép sửa tồn ở cả sàn và hệ thống trung tâm, hai nơi ghi đè lẫn nhau theo vòng lặp.
- Giữ hàng cho đơn chưa thanh toán quá lâu. Đơn chuyển khoản chưa trả tiền vẫn giữ hàng nhiều ngày, trong khi khách khác muốn mua. Đặt thời hạn giữ hàng cho từng loại thanh toán.
- Quên nhập lại hàng hoàn. Hàng hoàn nằm ở góc kho nhiều tuần, hệ thống báo hết hàng trong khi trên kệ còn.
- Không ghi lý do khi điều chỉnh tồn. Mỗi lần sửa tay mà không ghi lý do làm mất khả năng truy vết hao hụt.
- Đẩy toàn bộ tồn lên mọi kênh trong đợt sale lớn. Đợt 11.11 hay 12.12, tốc độ bán vượt xa độ trễ đồng bộ; cần tăng tồn đệm hoặc phân bổ cứng theo kênh.
Khi nào KHÔNG nên đồng bộ tồn kho tự động#
- Mỗi kênh có kho vật lý riêng. Hàng bán online để ở kho fulfillment của sàn, hàng cửa hàng để ở cửa hàng. Khi không dùng chung hàng, đồng bộ chung chỉ gây nhầm; quản lý từng kho riêng và theo dõi chuyển kho.
- Hàng làm theo đơn hoặc đặt trước. Bánh làm theo đơn, nội thất đóng theo kích thước không có "tồn" theo nghĩa thông thường. Cần quản lý công suất sản xuất, không phải số lượng trên kệ.
- Rất ít mã hàng và ít đơn. Shop bán vài chục mã, mỗi ngày vài chục đơn, nếu một người cập nhật cuối mỗi ca vẫn kiểm soát được, chi phí và công ghép SKU chưa đáng.
- Kho chưa có kỷ luật nhập xuất. Hàng ra vào không ghi nhận, kiểm kê lệch nhiều. Đồng bộ tự động sẽ đẩy con số sai lên mọi kênh nhanh hơn. Sửa quy trình kho trước; bài xuất nhập tồn tự động cho F&B mô tả cách nhìn tương tự ở ngành nhà hàng.
Câu hỏi thường gặp#
Đồng bộ tồn kho nên chạy bao lâu một lần?#
Càng gần thời gian thực càng tốt với mặt hàng bán chạy; webhook kèm hỏi định kỳ vài phút một lần là cấu hình phổ biến. Với mặt hàng bán chậm, chu kỳ dài hơn vẫn chấp nhận được. Điều quan trọng là tồn đệm phải đủ bù cho độ trễ đó.
Bán trên TikTok Shop và Shopee cùng lúc thì có cần phần mềm riêng không?#
Không bắt buộc phần mềm riêng, nhưng cần một nơi giữ số gốc có kết nối với cả hai sàn. Nhiều phần mềm bán hàng đa kênh tại Việt Nam đã hỗ trợ các sàn phổ biến; hãy kiểm tra danh sách kênh và giới hạn của gói trước khi đăng ký.
Hàng combo nên quản lý tồn thế nào?#
Khai báo combo là tập hợp các mã thành phần với số lượng cụ thể. Khi bán combo, hệ thống trừ từng mã thành phần, và tồn combo hiển thị trên sàn bằng số combo tối đa có thể ghép từ thành phần còn lại. Không nên quản lý combo như một mã độc lập có tồn riêng.
Đơn hoàn hàng nên cộng lại tồn khi nào?#
Chỉ cộng lại sau khi kho đã nhận và kiểm tra hàng. Hàng còn bán được thì nhập về kho bán; hàng lỗi chuyển sang kho lỗi hoặc kho chờ xử lý. Cộng tồn ngay khi sàn báo hoàn dễ dẫn đến bán một món hàng đang còn trên đường về.
Nếu shop của bạn đang bán trên nhiều kênh và vẫn sửa tồn bằng tay, DsAI có thể cùng bạn rà soát mã SKU, chọn nơi giữ số gốc và thiết kế quy tắc đồng bộ trong một buổi tư vấn vận hành đa kênh.



