Import vị trí sản phẩm trong kho
Nhập liệu hàng loạt vị trí sản phẩm từ file Excel, tự động mapping nhà kho, vị trí kho theo mã hoặc tên.
Tính năng Import vị trí sản phẩm cho phép thêm hàng loạt vị trí lưu trữ sản phẩm từ file Excel (.xls, .xlsx) hoặc CSV. Hệ thống sẽ tự động tìm nhà kho và vị trí kho dựa trên mã hoặc tên, giúp tiết kiệm thời gian khi cần gán nhiều sản phẩm vào vị trí lưu trữ cùng lúc.
Giao diện tổng thể
- Chức năng import nằm ở cuối bảng danh sách trong trang Vị trí sản phẩm (truy cập từ trang Nhà kho → link Vị trí sản phẩm).
- Nhấn nút Import từ file Excel (.xlsx, .xls) để mở hộp thoại chọn file.
- Hệ thống sẽ đọc file, tự động mapping các cột, và cho phép bạn xem trước dữ liệu trước khi import.
Định dạng file import
File import có thể là Excel (.xls, .xlsx) hoặc CSV (.csv). Mỗi dòng trong file tương ứng với một vị trí sản phẩm cần thêm.
Các cột trong file Excel
| Tên cột | Bắt buộc | Mô tả | Mã code |
|---|---|---|---|
| SKU | Có | Mã SKU của phiên bản sản phẩm (product variant) | sku |
| Kho | Có | ID kho, mã kho hoặc tên kho. Hệ thống ưu tiên tìm theo ID → mã → tên | warehouse |
| Vị trí | Có | Mã hoặc tên vị trí kho. Hệ thống tìm trong phạm vi kho đã resolve | location |
| Ưu tiên | Không | Số thứ tự ưu tiên khi pick hàng (0 = ưu tiên cao nhất). Mặc định: 0 | priority |
| Cho phép pick | Không | Có hoặc Không. Mặc định: Có | is_pickable |
| Trạng thái | Không | Có hiệu lực hoặc Vô hiệu lực. Mặc định: Có hiệu lực | status |
| Ghi chú | Không | Ghi chú bổ sung | note |
Tên cột trong file không cần khớp chính xác. Hệ thống hỗ trợ nhận diện tên cột tương tự (synonyms). Ví dụ: cột "Mã SKU", "Variant SKU", "Mã phiên bản" sẽ được tự động mapping thành cột SKU.
Danh sách tên cột tương đương (synonyms)
| Cột | Tên tương đương được nhận diện |
|---|---|
| SKU | SKU, Mã SKU, Mã phiên bản, Variant SKU |
| Kho | Kho, Nhà kho, Tên kho, Mã kho, Warehouse |
| Vị trí | Vị trí, Vị trí kho, Mã vị trí, Tên vị trí, Location |
| Ưu tiên | Ưu tiên, Thứ tự ưu tiên, Priority |
| Cho phép pick | Cho phép pick, Pick, Pickable |
| Trạng thái | Trạng thái, Status |
| Ghi chú | Ghi chú, Note |
Quy tắc tìm nhà kho
Cột Kho trong file Excel có thể nhập bằng ID kho, mã kho hoặc tên kho, hệ thống sẽ tự động tìm nhà kho phù hợp theo thứ tự ưu tiên:
- Ưu tiên 1 – Tìm theo ID kho: Nếu giá trị là số, tìm nhà kho có ID khớp.
- Ưu tiên 2 – Tìm theo mã kho: So khớp chính xác giá trị với Mã nhà kho (không phân biệt hoa thường).
- Ưu tiên 3 – Tìm theo tên kho: So khớp chính xác giá trị với Tên nhà kho (không phân biệt hoa thường).
- Ưu tiên 4 – Tìm tương đối theo tên kho: Tìm nhà kho có tên chứa giá trị nhập vào hoặc ngược lại.
Ví dụ: Nếu nhà kho có ID = 47216, Mã = WS02 và Tên = Kho Bình Thạnh, bạn có thể nhập một trong các giá trị sau vào cột Kho:
47216→ Tìm theo ID kho ✅WS02→ Tìm theo mã kho ✅Kho Bình Thạnh→ Tìm theo tên kho ✅Bình Thạnh→ Tìm tương đối theo tên ✅
Quy tắc tìm vị trí kho
Cột Vị trí trong file Excel có thể nhập bằng ID, mã vị trí hoặc tên vị trí. Hệ thống chỉ tìm vị trí kho thuộc nhà kho đã resolve ở cột Kho:
- Ưu tiên 1 – Tìm theo ID vị trí: Nếu giá trị là số, tìm vị trí kho có ID khớp.
- Ưu tiên 2 – Tìm theo mã vị trí: So khớp chính xác với Mã vị trí (không phân biệt hoa thường).
- Ưu tiên 3 – Tìm theo tên vị trí: So khớp chính xác với Tên vị trí (không phân biệt hoa thường).
- Ưu tiên 4 – Tìm tương đối theo tên vị trí: Tìm vị trí có tên chứa giá trị nhập vào hoặc ngược lại.
Nếu không tìm thấy nhà kho hoặc vị trí kho phù hợp, dòng đó sẽ bị bỏ qua và hiển thị cảnh báo kèm số dòng trong file Excel.
File mẫu tải về
Tải file Excel mẫu để tham khảo định dạng cột và dữ liệu. Tải về, chỉnh sửa theo nhu cầu rồi dùng để import.
| File mẫu | Mô tả |
|---|---|
| productlocation_import_template.xlsx | File mẫu import vị trí sản phẩm với các cột SKU, Kho, Vị trí, Ưu tiên, Pick, Ghi chú. |
Các bước import
- Truy cập trang Nhà kho, nhấn link Vị trí sản phẩm trên header.
- Cuộn xuống cuối bảng danh sách, nhấn nút Import từ file Excel (.xlsx, .xls).
- Chọn file Excel hoặc CSV từ máy tính.
- Hệ thống hiển thị bảng mapping cột – kiểm tra và điều chỉnh mapping nếu cần.
- Nhấn Xử lý để bắt đầu import.
- Hệ thống hiển thị kết quả: số lượng thành công và lỗi (nếu có).
- Danh sách vị trí sản phẩm sẽ tự động refresh sau khi import hoàn tất.
Ví dụ file Excel mẫu
| SKU | Kho | Vị trí | Ưu tiên | Pick | Trạng thái | Ghi chú |
|---|---|---|---|---|---|---|
| SP-001-RED-M | 47216 | KV-HO-01 | 1 | Có | Có hiệu lực | Kệ chính sản phẩm bán chạy |
| SP-001-RED-L | Kho HO | Kệ A1 tầng 1 | 2 | Có | Có hiệu lực | Kệ phụ |
| SP-002-BLU-S | WS02 | KV-BT-01 | 1 | Không | Có hiệu lực | Vị trí lưu kho dự phòng |
| SP-003-WHT-XL | Kho Bình Thạnh | KV-BT-02 | 0 | Có | Có hiệu lực | Kệ tầng 2 |
Trong ví dụ trên, cột Kho được nhập bằng cả ID kho (47216), mã kho (WS02) lẫn tên kho (Kho HO, Kho Bình Thạnh). Cột Vị trí cũng hỗ trợ cả mã (KV-HO-01, KV-BT-01) và tên (Kệ A1 tầng 1). Hệ thống sẽ tự động resolve đúng.
Quy tắc xử lý giá trị
Cho phép pick
| Giá trị nhập | Kết quả |
|---|---|
Có, Co, Yes, 1, true | Cho phép pick |
Không, Khong, No, 0, false | Không cho phép |
| Để trống | Mặc định: Có |
Trạng thái
| Giá trị nhập | Kết quả |
|---|---|
Có hiệu lực, Enable, Active, 1 | Có hiệu lực |
Vô hiệu lực, Disable, Inactive, 3 | Vô hiệu lực |
| Để trống | Mặc định: Có hiệu lực |
Giới hạn
- Tối đa 500 dòng mỗi lần import. Nếu file có nhiều hơn 500 dòng, chỉ 500 dòng đầu tiên được xử lý, các dòng còn lại bị bỏ qua.
Danh sách lỗi
Import vị trí sản phẩm trải qua 2 giai đoạn xác thực: Frontend (resolve dữ liệu từ file Excel) và Backend (validate dữ liệu trước khi lưu). Dưới đây là danh sách đầy đủ các lỗi có thể xảy ra.
Lỗi Frontend (xử lý trên giao diện)
Các lỗi này xảy ra khi hệ thống đọc file Excel và resolve dữ liệu. Dòng bị lỗi sẽ không gửi lên server.
| Mã lỗi | Thông báo | Nguyên nhân | Cách khắc phục |
|---|---|---|---|
error_product_variant_id_required | SKU không được để trống (Dòng X) | Cột SKU để trống hoặc không có giá trị | Điền mã SKU vào cột SKU |
error_sku_not_found | Không tìm thấy SKU '[mã]' (Dòng X) | Mã SKU trong file không khớp với bất kỳ SKU nào trong hệ thống (tìm trong bộ nhớ frontend – dbm) | Kiểm tra lại mã SKU. Đảm bảo sản phẩm đã được tạo trong hệ thống |
error_warehouse_id_required | Kho không được để trống (Dòng X) | Cột Kho để trống | Điền ID kho, mã kho hoặc tên kho |
error_warehouse_not_found | Không tìm thấy kho '[tên/mã]' (Dòng X) | Giá trị cột Kho không khớp với bất kỳ nhà kho nào (theo ID, mã, tên chính xác hoặc tương đối) | Kiểm tra lại mã/tên kho. Xem Quy tắc tìm nhà kho |
error_warehouse_location_id_required | Vị trí kho không được để trống (Dòng X) | Cột Vị trí để trống | Điền mã hoặc tên vị trí kho |
error_location_not_found | Không tìm thấy vị trí kho '[tên/mã]' (Dòng X) | Giá trị cột Vị trí không khớp với bất kỳ vị trí nào thuộc kho đã resolve | Kiểm tra lại mã/tên vị trí. Đảm bảo vị trí thuộc đúng nhà kho |
warning_max_rows | File có {total} dòng, chỉ xử lý {max} dòng đầu tiên | File Excel có hơn 500 dòng | Chia nhỏ file thành nhiều lần import, mỗi lần tối đa 500 dòng |
no_import_data | Không có dữ liệu để import | Tất cả các dòng đều bị lỗi, không có dòng nào hợp lệ | Kiểm tra lại toàn bộ file Excel |
Lỗi Backend (xử lý trên server)
Các lỗi này xảy ra khi server nhận dữ liệu đã resolve và validate lần cuối trước khi lưu vào database.
| Mã lỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
error_empty_items | Danh sách items gửi lên server rỗng | Đảm bảo file Excel có ít nhất 1 dòng dữ liệu hợp lệ |
error_product_variant_id_required | product_variant_id = 0 hoặc không có | Lỗi resolve SKU ở frontend – kiểm tra lại SKU |
error_warehouse_id_required | warehouse_id = 0 hoặc không có | Lỗi resolve kho ở frontend – kiểm tra lại mã/tên kho |
error_warehouse_id_invalid | warehouse_id có giá trị nhưng không tồn tại trong hệ thống (có thể đã bị xoá) | Kiểm tra nhà kho vẫn còn tồn tại và chưa bị xoá |
error_warehouse_location_id_required | warehouse_location_id = 0 hoặc không có | Lỗi resolve vị trí kho ở frontend – kiểm tra lại vị trí |
error_warehouse_location_id_invalid | warehouse_location_id có giá trị nhưng không tồn tại trong hệ thống (có thể đã bị xoá) | Kiểm tra vị trí kho vẫn còn tồn tại |
error_add | Dòng dữ liệu hợp lệ nhưng không thể lưu vào database (lỗi hệ thống) | Thử lại hoặc liên hệ quản trị viên |
Lỗi chung (file Excel)
| Lỗi | Nguyên nhân | Cách khắc phục |
|---|---|---|
| File không đọc được | File bị hỏng, sai định dạng hoặc không có dòng tiêu đề | Kiểm tra file có đuôi .xls, .xlsx hoặc .csv. Đảm bảo dòng đầu tiên là tiêu đề cột |
| Cột không được nhận diện | Tên cột trong file không nằm trong danh sách synonyms | Đổi tên cột theo danh sách tên cột tương đương |
Cách đọc lỗi: Khi import thất bại, hệ thống hiển thị số dòng trong file Excel (bắt đầu từ dòng 2, vì dòng 1 là tiêu đề). Ví dụ: "Dòng 5" tương ứng với dòng thứ 5 trong file Excel (dữ liệu dòng thứ 4).
Phân quyền
- Xem vị trí sản phẩm: Cần quyền Xem kho hàng (
inventory.view). - Import vị trí sản phẩm: Cần quyền Quản lý kho hàng (
inventory.manage).