Nhập / Xuất bảng giá
Xuất bảng giá ra file CSV để sửa ngoài Excel, rồi nhập ngược lại bằng file .csv hoặc Excel .xlsx để cập nhật hàng loạt giá thương mại, lắp đặt, đại lý, giá nhập, đơn vị tính, bảo hành, thông số, số lượng, thuế và công tắc báo giá. Có bước xem trước "cũ → mới", báo lỗi từng dòng, ghi nền theo lô và lịch sử nhập.
Mở màn hình
Vào Báo giá → Nhập / Xuất bảng giá. Màn này dùng quyền sửa sản phẩm của WooCommerce (quản trị viên, Quản lý cửa hàng); không có quyền thì hiện "Bạn không có quyền vào trang này."
- Xuất bảng giá — tải file đang có, hoặc file mẫu.
- Nhập bảng giá — đưa file đã sửa lên.
- Lịch sử nhập — các lượt nhập gần đây. Chưa có thì ghi "Chưa có lượt nhập nào."
Xuất bảng giá
- Phạm vi xuất — Toàn bộ sản phẩm (mặc định), một danh mục trong nhóm Theo danh mục sản phẩm (gồm danh mục con), hoặc một hạng mục trong nhóm Theo hạng mục báo giá (các danh mục gắn với hạng mục đó).
- Xuất CSV — tải file
bang-gia-<ngày giờ>.csv. - Tải file mẫu — tải
mau-nhap-bang-gia.csv: dòng tiêu đề + một dòng ví dụ (SP-001, giá thương mại 1250000, giá lắp đặt 1450000, giá đại lý 1100000, giá nhập 950000, Cái, 12 tháng, thuế 10).
Plugin ghi: "Mỗi dòng là một sản phẩm đơn hoặc một biến thể. Sửa ngoài Excel rồi nhập lại ở khung bên cạnh. Các cột tên, giá web, danh mục chỉ để đối chiếu — khi nhập sẽ được bỏ qua." Cụ thể:
- Gồm sản phẩm ở trạng thái Đã đăng, Riêng tư, Nháp, Chờ duyệt, Đã lên lịch. Sản phẩm có biến thể xuất thành từng dòng biến thể; sản phẩm nhóm không xuất.
- Cột giá thương mại / lắp đặt / đại lý / giá nhập là giá gõ tay đang lưu. Ô trống nghĩa là sản phẩm đó đang theo công thức hoặc giá web — file không chứa giá đã tính theo công thức.
- Số ghi không có dấu phân cách nghìn, phần lẻ dùng dấu chấm. File UTF-8, phân cách bằng dấu phẩy.
- Không có quyền xem giá nhập thì file không có cột giá nhập (plugin báo ngay trên khung).
- Ô bắt đầu bằng
=,+,-,@được thêm dấu nháy đơn ở đầu để Excel không hiểu nhầm là công thức; khi nhập lại plugin tự bỏ dấu nháy đó. - Chọn một hạng mục chưa gắn danh mục nào thì báo "Hạng mục này chưa gắn danh mục sản phẩm nào nên không có gì để xuất."
Các cột của file
Dòng 1 là tiêu đề. File mẫu dùng tên kỹ thuật (cột đầu bảng dưới). Khi nhập, plugin nhận cả tên kỹ thuật, tên tiếng Việt lẫn tên viết tắt, không phân biệt hoa thường, có dấu hay không, có khoảng trắng hay không — ví dụ Giá TM, gia thuong mai, ĐVT đều được. Thứ tự cột không quan trọng.
| Cột | Tên khác cũng nhận | Giá trị hợp lệ khi nhập |
|---|---|---|
sku | Mã SKU, mã hàng | Mã SKU của sản phẩm / biến thể. Cột khoá. |
id | ID sản phẩm, mã sản phẩm, mã biến thể | Số ID. Cột khoá, chỉ dùng khi ô SKU trống. |
ten · gia_web · danh_muc | Tên sản phẩm · Giá web, giá bán · Danh mục | Chỉ để đối chiếu, bỏ qua khi nhập. |
bat_bao_gia | Bật báo giá, báo giá | yes/no, có/không, bật/tắt, 1/0, true/false. |
gia_thuong_mai | Giá thương mại, giá TM | Số không âm. Nhận 1.234.567, 1,234,567, kèm đ / ₫ / vnđ. |
gia_lap_dat | Giá lắp đặt, giá LĐ | Như trên. |
gia_dai_ly | Giá đại lý | Như trên. |
gia_nhap | Giá nhập, giá vốn | Như trên. Người không có quyền xem giá nhập: cả cột bị bỏ qua. |
don_vi_tinh | Đơn vị tính, ĐVT, đơn vị | Chữ, tối đa 50 ký tự (dài hơn bị cắt). |
bao_hanh | Bảo hành | Chữ, tối đa 100 ký tự. |
thong_so | Thông số rút gọn | Chữ nhiều dòng, tối đa 1000 ký tự. |
sl_mac_dinh | Số lượng mặc định | Số lớn hơn 0, cho phép số lẻ. |
buoc_nhay | Bước nhảy, bước nhảy số lượng | Số lớn hơn 0, cho phép số lẻ. |
thue_suat | Thuế suất (%), thuế, VAT, thuế GTGT | Số 0–100 (có thể kèm %), hoặc none / KCT / "không chịu thuế". |
Ảnh dùng cho báo giá không có cột trong file — đặt ở trang sản phẩm.
Nhập bảng giá
- File bảng giá (.csv hoặc .xlsx) — file .csv, .txt hoặc Excel .xlsx, tối đa 10 MB (nhỏ hơn nếu máy chủ giới hạn tải lên), tối đa 20.000 dòng dữ liệu.
- Bỏ qua ô trống (khuyên dùng) — mặc định. Ô để trống trong file giữ nguyên giá trị đang có; chỉ ô có dữ liệu mới được ghi.
- Ghi đè toàn bộ — ô để trống trong file sẽ XOÁ giá trị đang có: ô giá trống thì giá quay về tính theo công thức, ô chữ trống thì bị xoá. Chỉ áp cho các cột có trong file.
- Kiểm tra file — đọc và soát, chưa ghi gì.
Ở chế độ này, ô trống thuộc một cột có trong file sẽ xoá giá trị đang có của sản phẩm. Plugin ghi rõ chế độ "chỉ áp cho các cột có trong file" — cột nào không có trong file thì không bị đụng tới.
Plugin đọc file thế nào
Plugin ghi: "Nhập theo mã SKU (sản phẩm / biến thể không có SKU thì dùng cột id). Luôn chỉ cập nhật sản phẩm đã có — không tạo sản phẩm mới. Số tiền nhận cả 1.234.567 lẫn 1,234,567. File .csv, .txt hoặc Excel .xlsx (đọc trang tính đầu tiên, cùng cột như file CSV; ô số đọc thẳng giá trị số), tối đa …; file CSV của Excel bản Việt dùng dấu chấm phẩy cũng đọc được."
- File .xlsx: chỉ đọc trang tính đầu tiên, cùng cột như file CSV. Ô số đọc thẳng giá trị số (không theo cách Excel hiển thị), ô định dạng phần trăm đọc thành số phần trăm (10% → 10), ô công thức lấy kết quả Excel đã lưu, ô TRUE / FALSE thành 1 / 0. Dòng trống nhưng đã định dạng cũng được tính vào giới hạn 20.000 dòng.
- File Excel đời cũ .xls và các đuôi khác bị từ chối (xem bảng lỗi cuối bài).
- File CSV: tự nhận bảng mã — UTF-8 (có hoặc không có BOM), Unicode (UTF-16) của Excel, còn lại đọc theo bảng mã Windows tiếng Việt.
- File CSV: tự nhận dấu phân cách — dấu phẩy, dấu chấm phẩy (Excel bản Việt) hoặc tab.
- Khớp sản phẩm: ô SKU có giá trị thì chỉ tra theo SKU (không phân biệt hoa thường, bỏ khoảng trắng hai đầu), tìm cả sản phẩm lẫn biến thể chưa vào thùng rác; ô SKU trống thì tra theo cột
id. Không bao giờ tạo sản phẩm mới. - Một ô sai là bỏ cả dòng đó; các dòng khác vẫn được ghi.
- Hai dòng cùng mã mà giống hệt nhau thì giữ một, bỏ bản trùng. Cùng mã (hoặc cùng trỏ một sản phẩm) mà khác dữ liệu thì mọi dòng đó đều bị bỏ.
- Giá trị mới bằng giá trị đang lưu thì không tính là thay đổi; dòng không có thay đổi nào được đếm vào "dòng không đổi".
- Van an toàn 30%: quá 30% số dòng bị lỗi thì dừng hẳn, không ghi dòng nào.
Kết quả kiểm tra
- Số liệu — dòng dữ liệu, dòng sẽ ghi, dòng không đổi, dòng bỏ qua vì lỗi (và dòng lặp giống hệt nếu có).
- Dấu phân cách · Chế độ — file .xlsx thì chỗ dấu phân cách ghi "File Excel — đọc trang tính đầu tiên "…"". Kèm hộp nhắc lại ý nghĩa chế độ đang chọn và câu "Chỉ cập nhật sản phẩm đã có, không tạo sản phẩm mới." Có cảnh báo (cột không nhận ra, cột giá nhập bị bỏ) thì hiện thêm hộp vàng.
- Thay đổi sẽ ghi — cột Dòng, Sản phẩm, Cột, Giá trị cũ, Trong file (ô gốc), Giá trị mới (đã đọc). Hiện tối đa 50 dòng; còn lại ghi "… và N dòng nữa cũng sẽ được ghi."
- Giá trị mới (đã đọc) — con số plugin hiểu được. Ở chế độ Ghi đè toàn bộ, ô bị xoá hiện nhãn Xoá — quay về công thức / mặc định.
- Dòng bị bỏ qua — số dòng trong file và lý do (tối đa 500 dòng; còn lại xem trong file lỗi).
- Tải file lỗi —
loi-<tên file>.csv: đúng cột, đúng thứ tự, đúng dấu phân cách của file gốc, thêm hai cộtdong_loivàly_do. File gốc là .xlsx thì file lỗi vẫn là CSV. - Xác nhận ghi N dòng — chỉ hiện khi không bị chặn và có dòng cần ghi. Bấm rồi chọn Ghi dữ liệu trong hộp "Ghi dữ liệu vào sản phẩm?".
Đổi file hoặc đổi chế độ sau khi kiểm tra thì kết quả bị xoá kèm nhắc "Đã đổi file hoặc chế độ — bấm "Kiểm tra file" để xem trước lại." Chỉ người đã bấm Kiểm tra file mới xác nhận ghi được.
Plugin nói: "Việc ghi chạy nền theo lô và không hoàn tác được." Với chế độ Ghi đè toàn bộ, một cột để trống cả cột sẽ xoá giá trị cột đó của mọi sản phẩm có trong file.
Tiến độ và lịch sử nhập
- Thanh tiến độ — "Đang ghi dữ liệu…" rồi "Đã nhập xong". Ghi theo lô 200 dòng, mỗi lô trọn vẹn hoặc không ghi gì (lô gặp lỗi CSDL được hoàn lại cả lô, các lô trước vẫn giữ). Dòng chữ dưới thanh: "Lô x/y · N dòng đã ghi · M dòng lỗi".
- Tải file lỗi — có khi còn dòng lỗi.
- Lịch sử nhập — 20 lượt gần nhất: Thời điểm, Người nhập, File, Chế độ, Thành công, Lỗi, File lỗi (link Tải). File của mỗi lượt nhập được giữ 30 ngày, quá hạn thì link file lỗi không còn.
Việc ghi chạy nền nên không lo hết thời gian chờ; plugin nhắc "Để trang này mở giúp các lô chạy liền mạch hơn." Mở lại trang khi đang có lượt chạy thì tiến độ tự hiện. Mỗi lúc chỉ một lượt nhập được ghi. Ghi xong, chỉ mục giá của các sản phẩm vừa đổi được dựng lại chạy nền.
Thông báo "Thư viện xuất Excel…"
Ở mọi màn của plugin, quản trị viên có thể thấy hộp vàng "Thư viện xuất Excel chưa được khởi tạo." (hoặc "…cần khởi tạo lại") kèm nút Khởi tạo thư viện xuất Excel. Thư viện này dùng cho nút xuất Excel báo giá và để đọc file .xlsx khi nhập bảng giá. Plugin ghi: "Trong lúc này nút xuất Excel được ẩn và chưa nhập được bảng giá từ file .xlsx (nhập file CSV vẫn được); mọi tính năng khác vẫn chạy bình thường." Trên màn này, dưới ô chọn file còn có câu "Chưa đọc được file .xlsx vì thư viện Excel (PhpSpreadsheet) chưa sẵn sàng trên website này…" (người không phải quản trị viên đọc "…Nhờ quản trị viên khởi tạo, hoặc trong Excel chọn Lưu thành → CSV UTF-8 rồi nhập file CSV."). Nếu máy chủ chưa đủ điều kiện, hộp vàng ghi lý do (phiên bản PHP, phần mở rộng PHP còn thiếu) thay cho nút.
Kiểm tra đã đúng chưa
- Dòng mới nhất ở Lịch sử nhập có số Thành công bằng số "dòng sẽ ghi" lúc kiểm tra.
- Mở Bảng giá sản phẩm, tìm vài mã trong file: số đúng, nhãn nguồn Nhập tay.
Lỗi thường gặp
| Thông báo | Ý nghĩa và cách xử lý |
|---|---|
| Chỉ nhận file .csv, .txt hoặc .xlsx. File Excel đời cũ (.xls): trong Excel chọn Lưu thành → Excel Workbook (.xlsx) hoặc CSV UTF-8. | Đang chọn file .xls hoặc đuôi khác. |
| Chưa đọc được file .xlsx vì thư viện Excel (PhpSpreadsheet) chưa sẵn sàng… | Quản trị viên bấm Khởi tạo thư viện xuất Excel ở thông báo vàng đầu trang (thông báo ghi máy chủ thiếu điều kiện thì nhờ nhà cung cấp hosting), hoặc lưu file thành CSV UTF-8 rồi nhập. |
| Không đọc được file .xlsx (file hỏng, có mật khẩu hoặc không phải file Excel)… | Mở bằng Excel rồi lưu lại thành .xlsx, hoặc lưu thành CSV UTF-8. Không ghi gì. |
| Trang tính đầu tiên có hơn 20.000 dòng (tính cả dòng trống đã định dạng)… | Xoá dòng thừa hoặc chia nhỏ file rồi nhập từng phần. |
| File lớn hơn giới hạn … Hãy chia nhỏ file rồi nhập từng phần. | Vượt 10 MB hoặc giới hạn tải lên của máy chủ. |
| File có hơn 20.000 dòng… | Chia file làm nhiều phần. |
| Không đọc được file (file rỗng hoặc hỏng). / File không có dòng dữ liệu nào dưới dòng tiêu đề. | File trống hoặc chỉ có dòng tiêu đề. Không ghi gì. |
| File thiếu cột khoá: cần có cột "sku" (mã SKU) hoặc "id"… | Plugin gợi ý: có thể file dùng sai dấu phân cách hoặc sai dòng tiêu đề. |
| Cột "…" xuất hiện hai lần trong file… | Hai cột cùng nghĩa (ví dụ sku và Mã SKU). Xoá bớt một cột. |
| File không có cột dữ liệu nào để ghi… | File chỉ có cột khoá và cột đối chiếu (tên, giá web, danh mục). |
| Dừng: x/y dòng bị lỗi, quá 30%… | Van an toàn — không dòng nào được ghi. Xem bảng lỗi, sửa file rồi kiểm tra lại. |
| Thiếu cả mã SKU lẫn ID… | Dòng không có mã nào. |
| ID "…" không hợp lệ. | Cột id phải là số nguyên dương. |
| Không tìm thấy sản phẩm có mã SKU "…" / có ID … (nhập bảng giá không tạo sản phẩm mới). | Mã không khớp sản phẩm nào. |
| Mã SKU "…" đang dùng cho N sản phẩm… | Trùng SKU (kể cả chỉ khác hoa thường) — plugin không đoán, bỏ dòng. |
| Mã SKU "…" thuộc sản phẩm ID … nhưng cột ID ghi … | SKU và ID trong dòng chỉ hai sản phẩm khác nhau. |
| Sản phẩm này có biến thể — cần nhập theo mã của từng biến thể. / Sản phẩm nhóm không có giá riêng… | Dùng mã của biến thể / sản phẩm con. |
| "…" xuất hiện ở nhiều dòng với dữ liệu khác nhau… | Một mã có nhiều dòng khác nhau; giữ một dòng. |
| …: "…" không phải số. / là số âm — giá không được âm. / phải lớn hơn 0. / nằm ngoài khoảng 0–100… | Giá trị ô sai kiểu; sửa ô đó. |
| Đang có một lượt nhập khác chạy… | Đợi lượt đó xong. |
| Lượt kiểm tra này đã hết hạn hoặc đã được ghi. Hãy kiểm tra file lại. | Bấm Kiểm tra file lại. |
Cách làm từng bước cho người mới: Nhập giá từ Excel.