Trang chủ › Blog › Giải pháp phát triển
Cách xây dựng hệ thống quản lý kho có khả năng mở rộng (kèm kiến trúc)
"Anh/chị còn cái này không? Có thể kiểm tra tồn kho giúp tôi không?"
Câu hỏi này của khách hàng đã là nỗi trăn trở của nhân viên bán lẻ suốt chiều dài lịch sử ngành bán lẻ.
Nhưng một câu hỏi từng dễ trả lời (dù có phần phiền phức) giờ đã trở nên vô cùng khó khăn trong thời đại số. Khi khách hàng online và offline đan xen nhau, cùng lấy sản phẩm từ kệ hàng thực tế và kệ hàng số theo thời gian thực, việc nắm rõ mình đang có bao nhiêu hàng tồn kho và chúng nằm ở đâu không hề đơn giản. Ngay cả các cửa hàng thương mại điện tử thuần online cũng có lúc chật vật trong việc xây dựng một hệ thống quản lý kho hiệu quả.
Vậy tại sao quản lý kho lại khó đến vậy? Hãy cùng xem cách thiết kế một hệ thống hiệu quả và đáng tin cậy.
1. Kiến trúc tham chiếu tổng thể cho quản lý kho
Vậy các nhà bán lẻ thành công thực hiện quản lý kho như thế nào? Trước tiên, hãy cùng xem một ví dụ tổng quan. Sơ đồ đã được ẩn danh này dựa trên kiến trúc thực tế của một nhà bán lẻ online và offline có doanh thu hàng năm lên tới hàng tỷ đô la.

Trong sơ đồ, các hình chữ nhật màu tím được sắp xếp theo chiều ngang ở giữa thể hiện các hành động của khách mua hàng online, từ đăng nhập đến mua hàng. Các hình trụ đại diện cho cơ sở dữ liệu, gồm 4 loại sau.
・Cơ sở dữ liệu khách hàng lưu trữ thông tin về người dùng. Bao gồm các bảng như PII (thông tin định danh cá nhân), lịch sử đơn hàng, lịch sử duyệt web.
・Cơ sở dữ liệu tồn kho lưu trữ toàn bộ metadata liên quan đến hàng tồn kho sản phẩm. Có các bảng như mô tả SKU, tình trạng còn hàng của sản phẩm, vị trí lưu kho. Đây là cơ sở dữ liệu nguồn chân lý (source of truth) cho việc quản lý kho.
・Cơ sở dữ liệu hình ảnh lưu trữ hình ảnh sản phẩm. Lưu trữ các hình ảnh sản phẩm hiển thị trên trang mô tả sản phẩm (PDP), kết quả tìm kiếm của khách hàng, v.v.
・Cơ sở dữ liệu hoặc API cung cấp thông số kỹ thuật sản phẩm cho PDP. Dữ liệu này thường đến từ nhà cung cấp bên thứ ba, và bản thân nhà bán lẻ có thể không theo dõi hay quản lý dữ liệu này.
Hãy cùng xem chi tiết quy trình mua hàng của người dùng.
- Khi người dùng đăng nhập, ứng dụng cần truy vấn cơ sở dữ liệu khách hàng.
- Khi người dùng xem trang chi tiết sản phẩm (PDP), ứng dụng cần truy vấn cơ sở dữ liệu tồn kho (tình trạng còn hàng, mô tả sản phẩm, v.v.), cơ sở dữ liệu khách hàng (thông tin gợi ý, thông tin riêng của người dùng, v.v.), cơ sở dữ liệu hình ảnh và cơ sở dữ liệu thông số kỹ thuật sản phẩm.
- Khi người dùng thêm sản phẩm vào giỏ hàng, cách xử lý sẽ do kiến trúc sư hệ thống quyết định, nhưng cách tiếp cận phổ biến là tạm thời đánh dấu sản phẩm là hết hàng (tạm giảm tồn kho) và giữ trạng thái đó cho đến khi hoàn tất giao dịch hoặc hết thời gian chờ. Nếu giao dịch hoàn tất thành công trước khi hết thời gian chờ, sản phẩm sẽ bị xoá vĩnh viễn khỏi kho. Nếu giao dịch không hoàn tất, sản phẩm sẽ bị xoá khỏi giỏ hàng của người dùng và được đánh dấu là còn hàng trở lại trong cơ sở dữ liệu tồn kho.
- Khi người dùng tiến hành thanh toán, ứng dụng cần truy vấn cơ sở dữ liệu khách hàng để hiển thị thông tin người dùng liên quan.
- Dù người dùng hoàn tất hay không hoàn tất giao dịch mua hàng, cơ sở dữ liệu tồn kho sẽ phản ánh vĩnh viễn các thay đổi về tồn kho đã nêu chi tiết ở bước 3.
Đây có vẻ là một quy trình tương đối đơn giản, nhưng để hiện thực hoá luồng này trong khi vẫn duy trì tính nhất quán ở quy mô lớn thì cần lựa chọn đúng công cụ. Việc thiếu tính nhất quán khi mở rộng quy mô đã dẫn đến tình trạng bán vượt quá số lượng tồn kho, làm giảm trải nghiệm khách hàng.
2. Các bước phát triển hệ thống quản lý kho
Thời gian và cách tiếp cận để thiết kế, phát triển hệ thống kho phụ thuộc vào nội dung nghiệp vụ tồn kho cụ thể cần giải quyết và quy mô của nó. Dưới đây, chúng tôi — Miichisoft — sẽ giải thích các bước thường thực hiện khi triển khai phần mềm quản lý kho vững chắc.
2.1. Xác định yêu cầu cho hệ thống quản lý kho
Thời gian: 4 tuần
Miichisoft bắt đầu một dự án triển khai hệ thống quản lý kho theo các bước sau. Chúng tôi làm rõ yêu cầu chức năng và phi chức năng của hệ thống quản lý kho, đồng thời xác định vai trò người dùng, các tích hợp cần thiết với hệ thống khác (ERP, CRM, hệ thống kế toán, v.v.) và hoạt động di chuyển dữ liệu (di chuyển dữ liệu từ bảng tính hoặc giải pháp quản lý kho đang sử dụng).
Chúng tôi xác định loại hình hệ thống quản lý kho: chỉ dùng phần mềm hay hỗ trợ barcode/RFID. Chúng tôi lựa chọn công nghệ phần mềm. Nếu cần, chúng tôi lập danh sách các thiết bị phần cứng cần thiết. Chúng tôi thiết kế kiến trúc tổng thể (high-level) của giải pháp cùng các thành phần chính và cách chúng tương tác với nhau. Chúng tôi tạo bản dựng thử (prototype) giao diện người dùng.
2.2. Lập kế hoạch dự án
Thời gian: 1–2 tuần
Các chuyên gia của Miichisoft tin chắc rằng một kế hoạch dự án chính xác chính là nền tảng cho việc triển khai thành công hệ thống kho. Giai đoạn này bao gồm các nội dung sau.
・Tổng quan phạm vi và thời gian thực hiện công việc, cùng các rủi ro liên quan và cách giảm thiểu.
・Tính toán Tổng chi phí sở hữu (TCO) và Tỷ suất hoàn vốn đầu tư (ROI) dự kiến của hệ thống kho.
・Xác định các mốc tiến độ, mục tiêu, và Chỉ số hiệu suất chính (KPI) của dự án triển khai hệ thống kho.
2.3. Phát triển hệ thống kho
Thời gian: 4–6 tháng
Ở giai đoạn này, Miichisoft thực hiện các công việc sau.
・Xây dựng phần backend của giải pháp kho, tích hợp và xử lý dữ liệu tồn kho do người dùng tải lên cũng như dữ liệu tồn kho được tạo ra bởi thiết bị theo dõi (đối với hệ thống hỗ trợ barcode/RFID). Điều này kích hoạt các hành động dựa trên dữ liệu để tự động hoá các thao tác kho.
・Xây dựng ứng dụng web và di động mà người dùng sử dụng.
・(Tuỳ chọn) Tối ưu hoá quy trình quản lý kho bằng cách triển khai mô-đun dự báo nhu cầu ứng dụng machine learning.
・Thực hiện quy trình đảm bảo chất lượng trước khi triển khai chính thức, kiểm chứng chất lượng phần mềm kho và sửa lỗi.
2.4. Tích hợp với hệ thống khác
Thời gian: 1–12 tuần
Ở giai đoạn này, đội ngũ Miichisoft hoàn thiện các mẫu và quy trình tích hợp đã được xác định trong giai đoạn thiết kế hệ thống kho. Chúng tôi triển khai và kiểm thử tích hợp với các hệ thống trọng yếu khác của doanh nghiệp (ví dụ: ERP, kế toán, CRM) và với công cụ Business Intelligence (BI) để báo cáo, trực quan hoá dữ liệu liên quan đến kho.
2.5. Di chuyển dữ liệu tồn kho
Thời gian: Tuỳ theo độ phức tạp của việc di chuyển
・Đối với việc di chuyển dữ liệu từ phần mềm quản lý kho hoặc bảng tính, Miichisoft hỗ trợ theo các bước sau.
・Xây dựng kịch bản di chuyển, tạo script dùng để tự động hoá quá trình di chuyển và ánh xạ dữ liệu (data mapping).
Trích xuất dữ liệu tồn kho từ hệ thống quản lý kho cũ hoặc bảng tính, kiểm chứng chất lượng dữ liệu, phát hiện và xử lý các vấn đề (ví dụ: dữ liệu bị mất hoặc hỏng).
・Nạp dữ liệu vào cơ sở dữ liệu tồn kho chuyên dụng và thực hiện quy trình kiểm tra dữ liệu để đảm bảo tính chính xác và nhất quán của dữ liệu.
2.6. Triển khai hệ thống quản lý kho
Thời gian: Từ tháng thứ 3 trở đi
Tại Miichisoft, việc triển khai hệ thống quản lý kho thường được thực hiện theo các giai đoạn sau.
Giai đoạn 1. Thiết lập hạ tầng phần mềm, cấu hình quy trình sao lưu và khôi phục sau sự cố. Lắp đặt và điều chỉnh phần cứng nếu cần (ví dụ: máy in/đầu đọc barcode, thẻ/đầu đọc RFID). Triển khai giải pháp tại một trong các cơ sở mục tiêu (kho hàng/trung tâm phân phối) để chạy thử nghiệm (pilot). Đối với hệ thống cần hỗ trợ phần cứng, thời gian thực hiện là 2 tuần.
Giai đoạn 2. Giám sát hoạt động của hệ thống trong môi trường thực tế. Xử lý các yêu cầu thay đổi và sự cố (ví dụ: liên quan đến barcode/RFID). Thời gian chạy thử nghiệm kéo dài 1–2 tháng.
Giai đoạn 3. Triển khai phiên bản cuối cùng của giải pháp tới toàn bộ các cơ sở mục tiêu. Việc triển khai hệ thống dựa trên RFID/barcode mất khoảng 2 tháng (thời gian có thể thay đổi tuỳ theo số lượng cơ sở và độ phức tạp của bố cục).
2.7. Đào tạo người dùng
Thời gian: 2–4 tuần
Tại Miichisoft, chúng tôi thực hiện các bước sau để nhân viên phụ trách các công việc liên quan đến kho có thể nhanh chóng ứng dụng giải pháp vào công việc hàng ngày.
・Lập kế hoạch tích hợp hệ thống kho mới vào quy trình làm việc của nhân viên (chuyên viên quản lý kho, thu mua, công nhân kho, v.v.).
・Biên soạn hướng dẫn quản trị viên và tài liệu hướng dẫn sử dụng cho phần mềm và phần cứng.
・Tổ chức workshop cho các nhóm người dùng liên quan (ví dụ: nhân viên kho thực hiện dán nhãn hàng tồn kho trên hệ thống mới).
2.8. Hỗ trợ, bảo trì và phát triển sau khi ra mắt
Thời gian: Tuỳ theo yêu cầu
Miichisoft cung cấp nhiều dịch vụ khác nhau để hệ thống kho vận hành trơn tru trong thời gian dài. Các dịch vụ này bao gồm:
・Cung cấp hỗ trợ người dùng liên tục.
・Thực hiện cập nhật hệ thống và mở rộng tính năng theo kế hoạch, dựa trên sự phát triển của doanh nghiệp và phản hồi từ người dùng — ví dụ: bổ sung loại báo cáo tồn kho mới, cải thiện giao diện người dùng.
・Đối với hệ thống hỗ trợ barcode/RFID, khắc phục lỗi phần cứng và bảo trì phần cứng (phối hợp với nhà cung cấp phần cứng). Cụ thể bao gồm dịch vụ thiết bị (như sửa chữa đầu đọc RFID) và cung cấp kịp thời vật tư tiêu hao (như thẻ RFID).
3. Những thách thức kỹ thuật của quản lý kho là gì?
Thách thức 1: Tính nhất quán

Một trong những thách thức kỹ thuật lớn nhất của quản lý kho là duy trì tính nhất quán theo thời gian thực. Điều này đặc biệt quan trọng khi vận hành ở quy mô lớn, vì có thể khiến doanh nghiệp mất tiền và tổn hại danh tiếng.
Ví dụ, nếu một sản phẩm hết hàng trong đợt sale Black Friday mà trang thương mại điện tử của doanh nghiệp không cập nhật ngay lập tức, hàng chục, hàng trăm, thậm chí hàng nghìn khách hàng có thể mua phải sản phẩm không tồn tại.
Để tránh tình trạng này, cần có một cơ sở dữ liệu tồn kho đóng vai trò nguồn chân lý (source of truth), có thể đồng bộ với các dịch vụ ứng dụng khác nhau cần dữ liệu tồn kho. Có thể bán hàng cho đến khi tồn kho về 0, nhưng không thể bán vượt quá 0 — và việc xây dựng, duy trì một hệ thống như vậy không hề dễ dàng, đặc biệt là phải duy trì hiệu năng cao ngay cả khi chịu tải lớn.
Thách thức 2: Khả năng mở rộng

Xu hướng ngành bán lẻ không phải lúc nào cũng dự đoán được. Nhưng ngay cả khi dự đoán được, vẫn cần khả năng mở rộng (tăng/giảm quy mô) nhanh chóng để duy trì hạ tầng hiệu năng cao mà không phải chi tiêu quá mức.
Nói cách khác, cần xây dựng một hệ thống có thể xử lý lượng truy cập khổng lồ như Black Friday, đồng thời tránh việc phải trả chi phí để xử lý lượng truy cập "như Black Friday" vào một ngày thứ Ba ngẫu nhiên trong tháng 1.
Thách thức 3: Độ trễ (Latency)

Để giảm độ trễ và cải thiện trải nghiệm khách hàng, việc đặt dữ liệu liên quan đến khách hàng ở cơ sở dữ liệu gần vị trí địa lý của họ là điều hợp lý. Tuy nhiên, việc phân chia cơ sở dữ liệu theo địa lý có thể khiến việc duy trì tính nhất quán trở nên khó khăn hơn (sẽ giải thích chi tiết ở phần sau), vì cần duy trì tính nhất quán giữa các phân vùng cơ sở dữ liệu ở các khu vực khác nhau.
Thách thức 4: Độ phức tạp của sản phẩm

Cho đến nay, chúng ta chủ yếu lấy việc bán hàng làm ví dụ, nhưng quản lý kho không đơn thuần chỉ là theo dõi xem sản phẩm đã được bán hay chưa. Sản phẩm có thể di chuyển từ kho này sang kho khác. Sản phẩm có thể bị thất lạc hoặc hư hỏng. Một số sản phẩm có thể hết hạn sử dụng.
Ngoài ra còn tồn tại giai đoạn mập mờ khi "sản phẩm nằm trong giỏ hàng". Trong giai đoạn này, một đơn vị tồn kho cụ thể chưa được bán, nhưng cũng không hẳn là còn khả dụng. Để duy trì tồn kho chính xác, cần theo dõi tất cả các yếu tố này.
Thách thức 5: Tính dễ sử dụng
Việc giải quyết tất cả các vấn đề nêu trên chắc chắn là khả thi, nhưng nhiều giải pháp lại phức tạp về mặt kỹ thuật và đòi hỏi đầu tư đáng kể — về thời gian kỹ thuật, đào tạo, v.v. Điều này có thể phát sinh nhiều vấn đề mới, chẳng hạn như chậm trễ tiến độ và chi phí vượt dự kiến.
4. Yêu cầu kỹ thuật của hệ thống quản lý kho hiện đại là gì?
Những thách thức nêu trên trên thực tế mới chỉ là phần nổi của tảng băng chìm, vậy doanh nghiệp nên tìm kiếm điều gì khi lựa chọn công cụ và thiết kế giải pháp quản lý kho của riêng mình?
Một hệ thống như vậy cần đáp ứng các yêu cầu sau.
・Tính sẵn sàng cao: Nếu hệ thống bị gián đoạn (offline) vào thời điểm không thích hợp — dù chỉ vài phút — cũng có thể khiến doanh nghiệp thiệt hại hàng triệu đô la. Hệ thống quản lý kho cần có tính sẵn sàng cao và đủ độ bền để dữ liệu không bao giờ bị mất.
・Tính nhất quán toàn cục: Hệ thống quản lý kho cần theo dõi nguồn chân lý về tồn kho sản phẩm và có khả năng cung cấp nguồn chân lý đó theo thời gian thực cho mọi dịch vụ ứng dụng cần đến, dù trực tiếp hay thông qua các giải pháp như changefeeds.
・Khả năng mở rộng linh hoạt: Mọi thành phần của backend bán lẻ, bao gồm cả quản lý kho, cần có khả năng mở rộng hoặc thu hẹp dễ dàng để xử lý tải lớn trong các giai đoạn bán hàng cao điểm. Đồng thời, cần tối thiểu hoá chi phí hạ tầng trong giai đoạn thấp điểm để tiết kiệm chi phí.
Ngoài ra, dù không phải là yêu cầu bắt buộc với mọi trường hợp sử dụng, một hệ thống quản lý kho lý tưởng cũng nên có các đặc điểm sau:
・Có thể mở rộng theo địa lý: Việc đặt dữ liệu theo vị trí địa lý giúp mang lại trải nghiệm khách hàng tốt hơn (và trong một số trường hợp, đây cũng có thể là yêu cầu về quy định).
・Dễ sử dụng (tương đối): Quản lý kho chưa bao giờ là việc dễ dàng, nhưng việc giảm độ phức tạp của hệ thống và tận dụng các dịch vụ được quản lý (managed service) bất cứ khi nào có thể sẽ giúp giảm chi phí nội bộ liên quan đến việc xây dựng và quản lý hệ thống.
Để đạt được những mục tiêu này, cần kết hợp giữa các công cụ được lựa chọn kỹ càng và một kiến trúc được tính toán chặt chẽ.
5. Các yếu tố chi phí khi triển khai hệ thống kho
Chi phí trung bình để xây dựng hệ thống quản lý kho dao động từ 10 triệu đến 30 triệu yên đối với doanh nghiệp cỡ vừa khi làm việc với nhà cung cấp offshore, và từ 20 triệu đến 50 triệu yên đối với doanh nghiệp lớn.
*Chi phí có thể cao hơn nếu phát triển bởi công ty Nhật Bản.
Các yếu tố chi phí chính như sau.
・Loại hình hệ thống kho: chỉ dùng phần mềm hay sử dụng công nghệ RFID/barcode (loại sau bao gồm chi phí thiết bị phần cứng và chi phí bảo trì).
・Số lượng và độ phức tạp của các tính năng trong phần mềm quản lý kho. Ví dụ, độ phức tạp của việc phân tích dữ liệu tồn kho phụ thuộc vào loại phân tích cần thiết, có sử dụng thuật toán machine learning hay không và số lượng thuật toán, khối lượng dữ liệu, số lượng và độ phức tạp của báo cáo.
・Số lượng nhóm người dùng và độ phức tạp của hệ thống phân quyền người dùng.
・Tính độc đáo và độ phức tạp của thiết kế giao diện.
・Độ phức tạp của quy trình di chuyển dữ liệu cần thiết (ví dụ: dựa trên số lượng bảng dữ liệu và loại dữ liệu).
・Số lượng và độ phức tạp của các tích hợp với hệ thống khác (ERP, phần mềm kế toán, CRM, v.v.).
・Yêu cầu của hệ thống về tính sẵn sàng, hiệu năng, bảo mật, dung lượng, khả năng mở rộng.
6. Tổng kết
Miichisoft là nhà cung cấp dịch vụ phát triển phần mềm có trụ sở chính tại Việt Nam. Chúng tôi có đội ngũ tư vấn IT tại pháp nhân Nhật Bản — Miichisoft Japan, cho phép hỗ trợ trọn gói từ giai đoạn xác định yêu cầu phát triển phần mềm cho đến phát triển, kiểm thử và vận hành.
Vì đã đạt chứng nhận ISO 9001 và ISO 27001, chúng tôi dựa trên một hệ thống quản lý chất lượng đã trưởng thành, và cam kết rằng việc hợp tác với chúng tôi sẽ không gây rủi ro nào cho bảo mật dữ liệu của quý khách. Để biết thêm chi tiết về cách tiếp cận phát triển của chúng tôi, vui lòng tham khảo dịch vụ phát triển phần mềm theo yêu cầu (custom software development).
Nếu quý khách có nhu cầu phát triển phần mềm, xin vui lòng liên hệ với chúng tôi.




