Bán hàng online · 10 phút đọc · 2026-09-17
Phần mềm quản lý kho miễn phí OSPOS: nhập, chuyển, báo cáo tồn
Mình nhập 50 ly cà phê, chuyển 20 ly sang kho phụ, ghi 2 ổ bánh mì hỏng trên OSPOS rồi đối chiếu báo cáo tồn 2.336.310 ₫ với tính tay. Kèm bốn chỗ dễ làm sai số liệu: tên nhà cung cấp, giá vốn, số lẻ và mức đặt lại.

Tìm phần mềm quản lý kho miễn phí để tự cài, bạn sẽ gặp Open Source Point of Sale (OSPOS): một phần mềm quản lý kho mã nguồn mở theo giấy phép MIT, có sẵn nhập hàng, nhiều kho, điều chỉnh tồn và báo cáo tồn. Mình dùng đúng bản OSPOS 3.4.1 đã cài và chuyển sang tiếng Việt ở bài Phần mềm quản lý bán hàng mã nguồn mở, rồi làm một vòng kho thật: nhập 50 ly cà phê từ nhà cung cấp, chuyển 20 ly sang kho phụ, ghi 2 ổ bánh mì hỏng, sau đó đối chiếu báo cáo với phép tính tay.
Báo cáo tổng thể tồn kho ra 2.336.310 ₫, khớp tính tay. Nhưng trên đường đi mình gặp bốn chỗ dễ làm sai số liệu mà OSPOS không hề cảnh báo:
- Tên nhà cung cấp có dấu bị in thành mã HTML trên phiếu nhập.
- Nhập hàng với giá khác, giá vốn vẫn giữ nguyên.
- Tiền đặt 0 chữ số thập phân thì chỉ cần sửa một mặt hàng là mất phần lẻ của giá vốn.
- Mức đặt hàng lại gắn theo mặt hàng, nên kho trống nào cũng hiện trong báo cáo tồn thấp.
Máy thử là Windows chạy Laragon, PHP 8.3.30, MySQL 8.4.3. Số liệu bắt đầu: Cà phê sữa đá (giá vốn 12.000, giá bán 25.000) tồn 98; Bánh mì trứng (giá vốn 10.000, giá bán 20.000) tồn 49.
Đặt tên kho và thêm kho thứ hai
Với phần mềm quản lý kho nhiều kho, việc đầu tiên là đặt tên kho cho rõ. Vào Văn phòng → Cấu hình → tab Kho. Bản cài mới có đúng một kho, tên là stock.
Tên này hiện ở nhiều chỗ nên đổi trước. Dòng nhỏ dưới tên hàng trên màn hình bán và nhập hàng ghi "[98 in stock]": chữ "in" viết cứng trong giao diện, còn "stock" chính là tên kho. Ô số lượng trong form hàng hoá cũng ghép từ chữ "Số lượng" với tên kho.
- Sửa ô kho đầu tiên thành Kho chính.
- Bấm dấu + bên cạnh để thêm dòng, gõ Kho phụ.
- Bấm Gửi. Trang báo "Cấu hình được lưu thành công."
Sau khi lưu, dòng dưới tên hàng đổi thành "[98 in Kho chính]". OSPOS cũng tự tạo dòng tồn bằng 0 ở Kho phụ cho mọi mặt hàng đang có.
Nhập hàng từ nhà cung cấp trong phần mềm quản lý kho miễn phí OSPOS
Tạo nhà cung cấp và lỗi tên có dấu
Vào Nhà cung cấp → Nhà cung cấp mới. Các ô bắt buộc là Tên công ty, Thể loại, Tên và Họ. Mình tạo "Công ty Cà phê Mẫu" với người liên hệ Nguyễn An.
Bảng nhà cung cấp hiện đúng chữ. Nhưng trong cơ sở dữ liệu, tên công ty bị lưu thành Công ty Cà phê Mẫu, và màn hình Nhập hàng cùng biên lai nhập hàng in nguyên chuỗi đó. Họ "Nguyễn" của người liên hệ thì lưu bình thường. Trong mã nguồn, app/Controllers/Suppliers.php lọc riêng trường tên công ty bằng FILTER_SANITIZE_FULL_SPECIAL_CHARS.
Nếu phiếu nhập cần in ra hoặc gửi cho nhà cung cấp, bạn nên biết trước lỗi này. Mình chưa thử cách sửa nào nên không đưa cách vá ở đây.
Lập phiếu nhập hàng
Vào Nhập hàng. Ô Chế độ nhập hàng có ba lựa chọn: Nhập hàng, Trả hàng và Yêu cầu. Giữ chế độ Nhập hàng, Kho nguồn là Kho chính, rồi làm theo thứ tự:
- Ở khung bên phải, chọn nhà cung cấp.
- Gõ mã hàng
1vào ô "Tìm hay quét Hàng hóa", nhấn Enter. - Sửa ô Chi phí thành 11.000 (giá nhập lần này) và Số lượng thành 50, nhấn Enter để cập nhật dòng.
- Kiểm Tổng cộng là 550.000 ₫, rồi bấm Kết thúc.


Kết quả: phiếu RECV 1, tồn Cà phê sữa đá ở Kho chính từ 98 lên 148.
Nhập giá khác, giá vốn không tự đổi
Mở cơ sở dữ liệu ra xem, giá vốn của Cà phê sữa đá vẫn là 12.000 dù lô vừa nhập giá 11.000. Lý do: ô "Tính giá tb (Nhập hàng)" ở Cấu hình → tab Chung mặc định tắt. Khi ô này tắt, báo cáo lợi nhuận về sau vẫn trừ giá vốn 12.000 cho mọi ly bán ra.
Mình bật ô đó, lưu, rồi nhập tiếp 10 ổ Bánh mì trứng với giá 9.000 (phiếu RECV 2). Trước lần nhập, bánh mì tồn 49 với giá vốn 10.000. Giá vốn mới OSPOS lưu là 9.830,50. Tính tay:
(49 × 10.000 + 10 × 9.000) ÷ 59 = 580.000 ÷ 59 = 9.830,508…
Như vậy OSPOS tính bình quân gia quyền theo tổng tồn của mọi kho chưa xoá (hàm change_cost_price trong app/Models/Item.php), rồi cắt phần lẻ sau hai chữ số chứ không làm tròn.
Bẫy khi đặt tiền 0 chữ số thập phân
Ở bài cài đặt, mình đặt số chữ số thập phân của tiền bằng 0 cho gọn. Với giá vốn bình quân thì đây là bẫy:
- Mở form sửa Bánh mì trứng. Ô Giá bán buôn (tức giá vốn) hiện 9.830, đã mất phần lẻ khi hiển thị.
- Chỉ đổi ô "Mức đặt mua bổ xung" từ 5 thành 60, không đụng ô giá, bấm Gửi.
- Giá vốn trong cơ sở dữ liệu từ 9.830,50 thành 9.830,00.
Mỗi lần mất 0,50 ₫ thì không đáng kể, nhưng nó cho thấy form ghi lại đúng con số đang hiện trên màn hình. Nếu bạn bật tính giá bình quân, hãy để tiền ít nhất 2 chữ số thập phân, hoặc chấp nhận sai lệch nhỏ này.
Chuyển hàng sang kho phụ bằng chế độ "Yêu cầu"
Bản tiếng Việt dịch chế độ requisition thành "Yêu cầu", nhưng thực chất đây là chuyển kho.
- Ở Nhập hàng, đổi Chế độ nhập hàng thành Yêu cầu.
- Chọn Kho nguồn là Kho chính, Kho đích là Kho phụ.
- Gõ mã
1, sửa số lượng thành 20. - Bấm Kết thúc.

Ở chế độ này, cột Chi phí hiện 12000 và không cho sửa. Biên lai vẫn mang tên "Biên lai nhập hàng", mã RECV 3, gồm hai dòng: −20 ở Kho chính (−240.000 ₫) và +20 ở Kho phụ (240.000 ₫), tổng 0 ₫. Tồn Kho chính từ 148 còn 128, Kho phụ từ 0 lên 20.
Ghi hàng hỏng, hàng mất: điều chỉnh tồn có ghi chú
Vào Hàng hóa, bấm biểu tượng ghim ở dòng Bánh mì trứng. Hộp thoại mở ra có tiêu đề "Cập hàng tồn kho" (bản dịch thiếu chữ).

- Chọn Vị trí kho là Kho chính. Ô Số lượng hiện tại đang là 59.
- Ô "Hàng tồn kho để thêm hay bớt." nhập -2. Số âm là bớt, số dương là thêm.
- Ghi chú: "Hỏng 2 ổ bánh mì". Bấm Gửi.
Trang báo "Bạn đã cập nhật hàng hóa thành công Bánh mì trứng", tồn từ 59 còn 57. Luôn điền ghi chú, vì đó là thứ duy nhất giải thích con số −2 khi bạn đọc lại lịch sử vài tháng sau.
Xem lịch sử nhập xuất của từng mặt hàng
Cũng ở danh sách Hàng hóa, bấm biểu tượng danh sách ở dòng Cà phê sữa đá để mở hộp Chi tiết số lượng tồn kho.

Đây là phần giúp OSPOS dùng được như một phần mềm quản lý xuất nhập tồn kho miễn phí: mỗi thay đổi là một dòng có ngày giờ, nhân viên, số lượng vào ra và ghi chú. Dòng 100 đầu tiên ghi "Sửa số lượng bằng tay" là tồn nhập lúc tạo hàng. Cộng lại: 100 − 2 + 50 − 20 = 128, khớp số hiện tại.
Cách ghi này giống cấu trúc nhật ký nhập xuất trong bài File Excel quản lý kho. Nếu bạn đang chuyển từ bảng tính sang, có thể đối chiếu từng dòng giữa hai bên trong vài tuần đầu.
Đọc hai báo cáo tồn kho
Tồn kho thấp: kho trống nào cũng hiện
Mình đặt mức đặt hàng lại của Bánh mì trứng là 60, rồi mở Báo cáo → Tồn kho thấp.

Báo cáo có hai dòng: 57 ở Kho chính và 0 ở Kho phụ. Mức đặt lại gắn theo mặt hàng, không theo kho, nên một kho phụ không bao giờ chứa bánh mì vẫn luôn nằm trong báo cáo này. Cà phê ở Kho phụ còn 20, trên mức 10, nên không hiện.
Tổng thể tồn kho: kiểm bằng tính tay
Mở Báo cáo → Tổng hợp tồn kho, chọn tất cả kho.

Tính tay giá trị tồn theo giá vốn:
- Bánh mì trứng, Kho chính: 57 × 9.830 = 560.310 ₫.
- Cà phê sữa đá, Kho chính: 128 × 12.000 = 1.536.000 ₫.
- Cà phê sữa đá, Kho phụ: 20 × 12.000 = 240.000 ₫.
- Cộng: 2.336.310 ₫, khớp báo cáo.
Giá trị theo giá bán: 57 × 20.000 + 128 × 25.000 + 20 × 25.000 = 4.840.000 ₫, cũng khớp. Hai lỗi hiển thị nhỏ: tiêu đề cột "Slượng bán thấp" bị cắt chữ, và dòng "Tổng số lượng hàng bán ít: 205 ₫" gắn nhầm ký hiệu tiền vào một con số đếm.
Kiểm nhanh số tồn bằng SQL
Báo cáo đúng hôm nay chưa chắc đúng sau vài tháng sửa tay. Hai câu truy vấn dưới đây cho bạn đối chiếu tồn hiện tại với tổng nhật ký nhập xuất, theo từng kho:
SELECT i.name, l.location_name, q.quantity
FROM ospos_item_quantities q
JOIN ospos_items i ON i.item_id = q.item_id
JOIN ospos_stock_locations l ON l.location_id = q.location_id
ORDER BY i.name, l.location_name;SELECT i.name, l.location_name, SUM(v.trans_inventory) AS tong_nhat_ky
FROM ospos_inventory v
JOIN ospos_items i ON i.item_id = v.trans_items
JOIN ospos_stock_locations l ON l.location_id = v.trans_location
GROUP BY i.name, l.location_name
ORDER BY i.name, l.location_name;Trên máy thử, hai kết quả khớp nhau: bánh mì 57 ở Kho chính, cà phê 128 ở Kho chính và 20 ở Kho phụ. Câu thứ hai không có dòng Bánh mì trứng ở Kho phụ vì kho đó chưa từng có giao dịch; tồn 0 ở câu đầu là đúng. Dòng nào lệch giữa hai câu là dòng cần tra lại lịch sử.
Phần mềm quản lý kho miễn phí cho shop nhỏ: hợp với ai
Miễn phí ở đây là giấy phép MIT: không thu tiền và không có thời hạn, nên nếu bạn tìm phần mềm quản lý kho miễn phí vĩnh viễn thì phần giấy phép đáp ứng được. Máy chạy, người cài và việc sao lưu vẫn là chi phí của bạn. Dựa trên những gì đo được, OSPOS hợp khi bạn:
- Có một đến vài kho, cần nhập hàng theo nhà cung cấp, chuyển kho, ghi hàng hỏng và xem lịch sử từng mặt hàng.
- Chấp nhận kiểm tay các lỗi hiển thị kể trên, và tự quyết định có bật tính giá vốn bình quân hay không.
- Có người đọc báo cáo tồn định kỳ và chạy hai câu SQL đối chiếu.
Những gì mình chưa kiểm
- Chế độ Trả hàng cho nhà cung cấp.
- Kiểm kê bằng máy quét mã vạch, nhập hàng loạt từ CSV.
- Nhiều người dùng cùng lúc, phân quyền theo từng kho.
- Quản lý lô, hạn sử dụng hay FIFO: mình không thấy trong các màn hình đã dùng và chưa tìm hiểu thêm, nên bài không khẳng định OSPOS có hay không.
- Tác giả
- Quản trị viên
- Đăng ngày
- 2026-09-17
- Cập nhật
- 2026-09-17
- Thời gian đọc
- 10 phút đọc
- Tất cả bài viết