BeelyWeb
06/09/2026

Đồng bộ tồn kho giữa website, sàn và cửa hàng tự động

Phong Nguyen
Đồng bộ tồn kho giữa website, sàn và cửa hàng tự động

Khách vừa đặt một chiếc áo trên Shopee, trong khi trên website chiếc áo y hệt vẫn hiển thị "còn hàng" dù kho thực tế đã hết sạch từ chiều hôm qua — rồi bạn phải gọi điện xin lỗi khách, huỷ đơn, và nhận thêm một đánh giá xấu chẳng liên quan gì tới chất lượng sản phẩm. Bài viết này sẽ giúp bạn dựng một luồng đồng bộ tồn kho tự động giữa website, các sàn thương mại điện tử và cửa hàng, để con số tồn kho luôn khớp nhau ở mọi nơi bạn đang bán nhé.

Cần chuẩn bị gì trước khi bắt đầu

Trước khi dựng luồng đồng bộ, bạn cần xác định rõ đâu là "nguồn sự thật" duy nhất về tồn kho — nghĩa là hệ thống nào sẽ giữ con số tồn kho chuẩn nhất, còn tất cả các kênh khác chỉ là nơi hiển thị lại con số đó.

  • Một phần mềm quản lý kho trung tâm (KiotViet, Sapo hoặc tương đương) đóng vai trò nguồn sự thật duy nhất về tồn kho, thay vì để mỗi kênh tự giữ một con số riêng.
  • Tài khoản nhà phát triển (developer account) đã được duyệt trên Shopee Open Platform, Lazada Open Platform hoặc TikTok Shop Partner Center — cả ba nền tảng này đều yêu cầu đăng ký ứng dụng và xin quyền truy cập trước khi gọi API cập nhật tồn kho.
  • Bảng mã sản phẩm (SKU) thống nhất giữa các kênh, vì nếu mỗi kênh đặt một mã khác nhau cho cùng một sản phẩm, hệ thống sẽ không biết đâu là "cùng một món hàng" để đồng bộ đúng.

Ba điều kiện trên nghe có vẻ là việc của riêng đội kỹ thuật, nhưng thực ra người quyết định quan trọng nhất lại là chủ shop hoặc quản lý vận hành, vì chỉ có bạn mới biết rõ kênh nào đang là kênh bán chính và nên được ưu tiên xử lý trước khi có xung đột. Việc thống nhất SKU giữa các kênh cũng nên làm sớm nhất có thể, bởi càng để lâu thì càng có nhiều sản phẩm mang mã khác nhau ở mỗi nơi, dọn lại càng mất công.

Hạn mức gọi API của các sàn cần biết trước

Đây là phần kỹ thuật quan trọng nhất mà nhiều shop bỏ qua khi tự dựng luồng đồng bộ: mỗi sàn thương mại điện tử đều đặt ra giới hạn về số lần gọi API trong một khoảng thời gian nhất định (rate limit), nhằm tránh hệ thống của họ bị quá tải. Shopee Open Platform, Lazada Open Platform và TikTok Shop Partner Center đều công bố chính sách hạn mức này trong tài liệu dành cho nhà phát triển, và mức hạn mức cụ thể có thể khác nhau tuỳ loại API, tuỳ cấp tài khoản đối tác, và có thể được điều chỉnh theo thời gian.

Mẹo nhỏ

Tính đến tháng 9/2026, cả ba sàn đều khuyến nghị nhà phát triển gộp nhiều sản phẩm vào một lần gọi API cập nhật tồn kho (batch update) thay vì gọi riêng lẻ từng sản phẩm một, vừa tiết kiệm hạn mức vừa giảm độ trễ tổng thể. Vì con số hạn mức chính xác thường được các sàn điều chỉnh theo từng giai đoạn, bạn nên tra cứu trực tiếp trong tài liệu Partner Center hoặc Open Platform tương ứng ngay trước khi bắt tay code, thay vì dựa vào con số đọc được từ một bài viết cũ.

Ngoài hạn mức về số lần gọi, bạn cũng cần lưu ý tới độ trễ đồng bộ — tức là khoảng thời gian từ lúc bạn gọi API cập nhật tồn kho cho tới lúc con số mới thực sự hiển thị trên trang sản phẩm mà khách nhìn thấy. Độ trễ này thường chỉ vài giây tới vài chục giây trong điều kiện bình thường, nhưng có thể kéo dài hơn vào giờ cao điểm khi lượng đơn trên sàn tăng đột biến, nên đừng thiết kế luồng theo kiểu tin tưởng tuyệt đối rằng cập nhật là "tức thời 100%".

Trước khi đưa luồng vào chạy thật, bạn nên yêu cầu đội kỹ thuật thử nghiệm gọi API cập nhật tồn kho liên tục trong một khoảng thời gian ngắn ở môi trường sandbox của từng sàn, để tự tay thấy được lúc nào hệ thống bắt đầu báo lỗi vượt hạn mức. Cách thử nghiệm thực tế này đáng tin hơn nhiều so với việc chỉ đọc số liệu trên giấy, vì mỗi tài khoản đối tác có thể được cấp hạn mức khác nhau tuỳ lịch sử hoạt động và loại hình kinh doanh đã đăng ký.

Các bước dựng luồng đồng bộ tồn kho hai chiều

  1. 1

    Chọn hệ thống trung tâm giữ tồn kho chuẩn

    Xác định phần mềm quản lý kho làm nguồn sự thật duy nhất, nơi mọi thay đổi tồn kho thật (nhập hàng, kiểm kê, trả hàng) đều phải được ghi nhận trước tiên, trước khi lan toả sang các kênh bán khác.

  2. 2

    Lắng nghe sự kiện bán hàng từ từng kênh

    Mỗi khi có đơn được chốt trên website, Shopee, Lazada hay TikTok Shop, hệ thống cần nhận được sự kiện này gần như ngay lập tức (qua webhook nếu kênh hỗ trợ, hoặc qua kiểm tra định kỳ nếu chưa hỗ trợ) để biết cần trừ đi bao nhiêu tồn kho cho sản phẩm nào.

  3. 3

    Trừ kho tại hệ thống trung tâm trước tiên

    Ngay khi nhận được sự kiện bán hàng, hệ thống trung tâm trừ tồn kho khả dụng trước, để mọi request tiếp theo (dù đến từ kênh nào) đều nhìn thấy con số tồn kho đã cập nhật, tránh tình trạng hai kênh cùng đọc một con số cũ.

  4. 4

    Đẩy tồn kho mới sang toàn bộ các kênh còn lại

    Sau khi có con số tồn kho mới nhất, hệ thống gọi API cập nhật tồn kho sang tất cả các kênh còn lại — nên gộp nhiều sản phẩm cùng lúc vào một lần gọi API như đã nói ở phần hạn mức, để không lãng phí hạn mức cho những thay đổi nhỏ lẻ.

  5. 5

    Ghi log và đối soát định kỳ

    Mỗi lần đồng bộ nên được ghi lại thành log, và định kỳ mỗi ngày nên có một lượt đối soát tự động so sánh tồn kho giữa hệ thống trung tâm và từng kênh, để phát hiện sớm nếu có kênh nào đó bị lệch do lỗi API mà luồng chính không nhận ra.

Xử lý xung đột khi hai kênh cùng trừ kho một lúc

Tình huống khó nhất trong đồng bộ tồn kho đa kênh là khi hai khách hàng ở hai kênh khác nhau cùng đặt mua sản phẩm cuối cùng trong kho gần như cùng một thời điểm. Nếu hệ thống xử lý không cẩn thận, cả hai đơn đều có thể được xác nhận thành công trong khi thực tế chỉ có một sản phẩm, dẫn tới việc buộc phải huỷ một trong hai đơn sau đó.

Cách xử lý an toàn nhất là để hệ thống trung tâm xử lý các lệnh trừ kho theo đúng thứ tự nhận được (tuần tự, không xử lý song song trên cùng một sản phẩm), và chỉ xác nhận đơn hàng thành công sau khi đã trừ kho thành công. Đơn nào tới sau khi kho đã về 0 sẽ được đánh dấu là "hết hàng tạm thời" ngay tại kênh đó, thay vì để khách đặt thành công rồi mới báo huỷ — cách làm này giúp trải nghiệm của khách dễ chịu hơn nhiều so với việc nhận được xác nhận rồi lại bị huỷ ngay sau đó.

Lỗi thường gặp

Một sai lầm phổ biến là để mỗi kênh tự trừ kho độc lập rồi mới đồng bộ ngược về trung tâm theo chu kỳ, thay vì trừ ở trung tâm trước. Cách làm này gần như chắc chắn sẽ gây ra tình trạng bán vượt tồn kho khi lượng đơn tăng cao, vì độ trễ giữa các lần đồng bộ tạo ra "khoảng hở" đủ để hai đơn cùng lọt qua.

Cảnh báo khi tồn kho xuống dưới ngưỡng

Ngoài chuyện đồng bộ chính xác, luồng automation còn có thể làm thêm một việc rất có giá trị: tự động cảnh báo khi tồn kho một sản phẩm nào đó xuống dưới một ngưỡng bạn đặt trước, ví dụ còn dưới 10 sản phẩm. Đặc biệt, nếu bạn đặt ngưỡng cảnh báo dựa trên cả tốc độ bán trung bình gần đây của từng sản phẩm (thay vì một con số cố định áp dụng chung cho mọi mặt hàng), bạn sẽ có đủ thời gian đặt hàng nhập kho trước khi sản phẩm bán chạy nhất rơi vào cảnh cháy hàng giữa mùa cao điểm.

Cảnh báo này nên được gửi thẳng vào nhóm chat hoặc email của người phụ trách nhập hàng, kèm theo thông tin về sản phẩm, số lượng còn lại và tốc độ bán gần đây, để người nhận không cần mở thêm phần mềm nào khác mới quyết định được có cần nhập thêm hay không.

Ví dụ dễ hình dung: một mẫu túi xách bán trung bình 8 chiếc mỗi ngày mà tồn kho chỉ còn 15 chiếc, hệ thống có thể tự tính ra chỉ còn khoảng hai ngày là hết hàng và gửi cảnh báo ngay hôm nay, thay vì chờ tới khi tồn kho chạm mốc 0 mới báo — lúc đó thì đã trễ mất vài ngày bán hàng vì thời gian nhập thêm hàng từ xưởng hoặc nhà cung cấp thường không thể có ngay lập tức.

Checklist nghiệm thu trước khi chạy thật

  • Đã xác định rõ hệ thống nào là nguồn sự thật duy nhất về tồn kho, và mọi thay đổi thủ công (kiểm kê, huỷ hàng lỗi) đều đi qua hệ thống này trước.
  • Đã kiểm tra hạn mức gọi API thực tế của từng sàn và thiết kế luồng gộp lô để không vượt hạn mức khi vào mùa cao điểm.
  • Đã test tình huống hai đơn cùng đặt sản phẩm cuối cùng gần như cùng lúc, để chắc chắn chỉ một đơn được xác nhận.
  • Đã bật cảnh báo tồn kho thấp và có người phụ trách nhận và xử lý cảnh báo đó mỗi ngày.
  • Có lượt đối soát tự động hằng ngày giữa hệ thống trung tâm và từng kênh để phát hiện lệch sớm.
  • Đã thử nghiệm hạn mức API thật trong môi trường sandbox của từng sàn trước khi áp dụng cho toàn bộ danh mục sản phẩm.

Luồng đồng bộ tồn kho này thường được dựng ngay sau khi luồng xử lý đơn hàng từ website về kho và vận chuyển đã chạy ổn định, vì cả hai đều dùng chung dữ liệu tồn kho gốc. Sau khi tồn kho đã đồng bộ chuẩn, bạn có thể tiếp tục với báo cáo vận hành hằng ngày tự động để nhìn được cả bức tranh đơn hàng và tồn kho mỗi sáng, hoặc quay lại bài Tự động hoá vận hành và bán hàng online: toàn cảnh quy trình nếu muốn xem lại bức tranh chung của cả cụm.

Câu hỏi thường gặp

Có cần đồng bộ tồn kho theo thời gian thực tuyệt đối không?

Không nhất thiết phải tuyệt đối tức thời, vì bản thân hạn mức API và độ trễ mạng của các sàn cũng không cho phép điều đó. Mục tiêu thực tế nên là đồng bộ trong vòng vài giây tới một phút sau mỗi sự kiện bán hàng, đủ nhanh để giảm gần hết rủi ro bán vượt tồn kho.

Nếu bán trên 4-5 kênh cùng lúc, luồng có phức tạp hơn nhiều không?

Logic cốt lõi vẫn giữ nguyên dù bạn bán trên 2 hay 5 kênh, chỉ khác là cần thêm phần kết nối API riêng cho mỗi kênh mới. Vì vậy nếu thiết kế luồng trung tâm đủ tốt ngay từ đầu, việc thêm một kênh bán mới sau này sẽ không phải làm lại toàn bộ hệ thống.

Có cách nào rẻ hơn cho shop nhỏ chưa đủ ngân sách dựng automation không?

Nhiều phần mềm quản lý bán hàng đa kênh hiện nay đã tích hợp sẵn tính năng đồng bộ tồn kho cơ bản trong gói dịch vụ, phù hợp cho shop nhỏ chưa cần luồng tuỳ biến phức tạp. Khi lượng đơn và số kênh bán tăng lên, lúc đó dựng automation riêng mới thực sự đáng công đầu tư.

Nếu shop bạn đang bán trên nhiều kênh và không còn tin tưởng vào con số tồn kho hiển thị, đội AI & Automation của BeelyWeb có thể khảo sát đúng các kênh shop đang dùng và dựng luồng đồng bộ phù hợp với hạn mức API thực tế của từng sàn. Đăng ký tư vấn miễn phí để bắt đầu nhé.