Đồng bộ sản phẩm
Đưa sản phẩm, giá và tồn kho từ KiotViet sang WooCommerce. Lần cài đầu tốn thời gian hơn cả, nhưng chỉ phải làm kỹ một lần; sau đó thay đổi tự về qua webhook.
Chạy qua hai giai đoạn
Plugin không đổ thẳng từ KiotViet vào WooCommerce mà đi qua một bảng tạm trên website.
- Giai đoạn 1 tải toàn bộ hàng hoá từ KiotViet về bảng tạm. Giai đoạn này chưa đụng gì tới sản phẩm WooCommerce.
- Giai đoạn 2 đọc bảng tạm rồi tạo mới hoặc cập nhật sản phẩm thật trên web.
Nhờ tách hai giai đoạn, bạn xem trước được sẽ nhận về những gì, lọc đúng phần cần rồi mới cho ghi vào website.
Giai đoạn 2 có thể tạo mới hoặc ghi đè hàng nghìn sản phẩm và không có nút hoàn tác. Sao lưu cơ sở dữ liệu trước.
Mở tab Đồng bộ sản phẩm
- Mở tab Đồng bộ sản phẩm. Toàn bộ nội dung bài này nằm trong tab đó.
Chọn dữ liệu nào được đồng bộ
Khối Tùy chọn đồng bộ quyết định trường nào của KiotViet được ghi sang WooCommerce. Bỏ chọn một ô thì plugin không đụng tới trường đó nữa. Chọn xong bấm Lưu tùy chọn ở cuối khối.
| Ô trên màn hình | Mặc định | Ghi chú |
|---|---|---|
| Tên sản phẩm, kèm ô "Ghi đè tên sản phẩm nếu sản phẩm đã có tên" | Bật, bật | Tự đặt tên trên web thì tắt ô ghi đè, plugin chỉ đặt tên cho sản phẩm tạo mới. |
| Đồng bộ giá | Bật | Giá thường và giá khuyến mãi lấy theo mục Mapping Giá ở cuối khối. |
| Ảnh đại diện, kèm ô ghi đè | Bật, tắt | Lấy ảnh thứ nhất của hàng hoá. Ảnh đã tải thì không tải lại, ảnh cũ không bị xoá khỏi thư viện. |
| Ảnh gallery, kèm ô ghi đè | Bật, tắt | Ảnh thứ hai trở đi. |
| Ảnh gallery cho biến thể, ô "Tên meta key:" | Bật, _ux_additional_variation_images | Lưu ảnh phụ của từng biến thể. Chỉ có tác dụng với theme đọc meta này, ví dụ Flatsome. |
| Mô tả đầy đủ, kèm ô ghi đè | Bật, tắt | Chỉ có mô tả đầy đủ, giữ định dạng HTML; không có mô tả ngắn. Mặc định chỉ điền khi sản phẩm trên web chưa có mô tả. |
| Trọng lượng | Bật | KiotViet để 0 thì không ghi đè. Không đổi đơn vị, không áp cho từng biến thể. |
| Tồn kho, kèm ô ghi đè tồn kho | Bật, bật | Plugin bật quản lý kho cho sản phẩm, tồn lớn hơn 0 là Còn hàng. Không đụng tới ô cho đặt hàng trước (backorder). |
| Bỏ qua kho âm khi cộng dồn tồn kho nhiều chi nhánh | Bật | Chi nhánh đang âm kho không bị trừ vào tổng. |
| Hỗ trợ tồn kho số lẻ (decimal) | Tắt | Tắt thì 13,66 thành 13. Bật thì giữ số lẻ, hợp với hàng bán theo kg, lít, mét; ô này đổi cách WooCommerce đếm tồn cho toàn website. |
| Trừ hàng tạm giữ (reserved) khỏi tồn kho | Tắt | Tồn trên web bằng tồn kho trừ số đang tạm giữ. Bật xong bấm Tải từ API KiotViet lại để bảng tạm có số tạm giữ. |
| Mã vạch (Barcode), ô "Lưu vào meta field:" | Tắt, _global_unique_id | Mặc định ghi vào ô GTIN, UPC, EAN, ISBN của WooCommerce. Chỉ áp cho sản phẩm đơn; mã đã thuộc sản phẩm khác thì bỏ qua. |
| Thương hiệu (Brand) | Tắt | Ghi vào mục Thương hiệu (Brands) của WooCommerce. Website không có mục này thì bỏ qua, không báo. |
| Giữ danh mục thủ công | Bật | Xem bài Ánh xạ danh mục. |
| Tự tạo danh mục khi chưa có mapping | Tắt | Tắt thì sản phẩm thuộc nhóm hàng chưa ánh xạ vào Chưa phân loại. |
| Đường dẫn sản phẩm mới (1.3.3) | Theo tên sản phẩm | Hai lựa chọn khác là "Chỉ mã hàng" (ví dụ sp000123) và "Mã hàng + chuỗi ngẫu nhiên" (ví dụ sp000123-k3x9ab). Hợp khi tên hàng là tiếng Nhật, tiếng Trung. Chỉ áp cho sản phẩm tạo mới; sản phẩm có biến thể dùng mã hàng của hàng hoá cha. |
| Số lượng mỗi batch | 10 | Số sản phẩm mỗi lượt khi đồng bộ, từ 1 tới 500. Hosting yếu thì để nhỏ. |
SKU trên web luôn lấy theo mã hàng KiotViet; sản phẩm cha của nhóm biến thể để trống SKU. "Hàng hoá cùng loại" trên KiotViet thành sản phẩm có biến thể trên web, thuộc tính tạo dạng thuộc tính dùng chung. Plugin không đồng bộ giá vốn, đơn vị tính, kích thước (dài, rộng, cao) và mô tả ngắn.
Ba ô ghi đè mô tả, ảnh đại diện, gallery mặc định đã tắt, nên công sức của bạn không bị thay. Riêng ô ghi đè tên mặc định bật; tự đặt tên thì tắt ô đó trước khi đồng bộ.
Mapping Giá
Mục Mapping Giá ở cuối khối có hai ô, mỗi ô chọn đúng một nguồn giá:
- Ô Giá thường: nhận "Giá niêm yết (Base Price)" (mặc định) hoặc một bảng giá của KiotViet.
- Ô Giá khuyến mãi: nhận "-- Không dùng --" (mặc định), "Giá niêm yết (Base Price)" hoặc một bảng giá.
Danh sách bảng giá chỉ hiện sau khi bạn bấm Kiểm tra kết nối ở tab Cài đặt API. Plugin không có giá riêng theo nhóm khách hay theo chi nhánh. Giá khuyến mãi chỉ được ghi khi lớn hơn 0 và nhỏ hơn giá thường; ngược lại ô giá khuyến mãi trên web bị xoá trống.
Ô Giá khuyến mãi để "-- Không dùng --" thì mỗi lần đồng bộ, giá khuyến mãi trên web về trống. Muốn chạy khuyến mãi: tạo bảng giá khuyến mãi trên KiotViet và chọn nó ở ô này, hoặc bật Không đồng bộ từ KiotViet cho những sản phẩm bạn tự đặt giá.
Xử lý hàng ngừng kinh doanh
Hàng hoá bị đánh dấu ngừng kinh doanh trên KiotViet được xử lý theo khối Xử lý sản phẩm / biến thể ngừng kinh doanh:
| Ô | Lựa chọn, mặc định in đậm |
|---|---|
| Khi sản phẩm ngừng kinh doanh | Không làm gì; Chuyển sang Bản nháp (Draft); Chuyển sang Riêng tư; Giữ Publish nhưng đặt Hết hàng; Ẩn khỏi Shop & Search; Chuyển vào Thùng rác; Skip (không tạo, không cập nhật). |
| Khi biến thể ngừng kinh doanh | Không làm gì; Disable biến thể (Enabled OFF); Đặt Hết hàng; Xoá biến thể (sản phẩm chỉ còn một biến thể thì xoá luôn sản phẩm cha); Skip. |
| Tự ngừng sản phẩm cha khi tất cả biến thể đã ngừng | Bật. Sản phẩm cha nhận cách xử lý chọn ở ô Khi sản phẩm ngừng kinh doanh. |
| Tự khôi phục khi sản phẩm hoạt động lại | Bật. KiotViet cho bán lại thì sản phẩm về Đã xuất bản, biến thể bật lại. |
Giai đoạn 1: tải về bảng tạm
Khối Thống kê Cache cho biết bảng tạm đang có bao nhiêu hàng hoá và lần tải cuối là khi nào.
- Nút Tải từ API KiotViet lấy toàn bộ hàng hoá về bảng tạm, mỗi trang 100 sản phẩm, kèm tồn kho từng chi nhánh và bảng giá. Cửa hàng nhiều hàng thì chạy vài phút, đừng đóng tab.
- Nút Làm mới thống kê chỉ đếm lại các con số đang hiện, không gọi sang KiotViet.
- Nút Xóa Cache dọn sạch bảng tạm. Sản phẩm WooCommerce còn nguyên, chỉ phải tải lại từ đầu.
- Nút Tạo lại bảng xoá hẳn bảng tạm rồi tạo mới. Chỉ dùng khi bảng lỗi và plugin báo không đọc được.
Bảng tạm không tự cập nhật theo KiotViet. Hàng hoá đã xoá trên KiotViet vẫn nằm trong đó, số tồn là số lúc bạn bấm tải. Trước khi đối soát tồn kho, luôn bấm Tải từ API KiotViet lại.
Giai đoạn 2: đưa sang WooCommerce
- Nút Đồng bộ đã chọn chạy ngay trong trình duyệt cho những dòng bạn tích ở bảng bên dưới. Lần đầu nên chọn vài sản phẩm, chạy thử, xem kết quả rồi mới làm hàng loạt.
- Nút Đồng bộ đã chọn trong nền giao cho website chạy ngầm, đóng tab vẫn chạy tiếp. Khung tiến trình có nút Hủy đồng bộ; quá 90 giây không thấy chạy thì hiện cảnh báo "Tiến trình có vẻ đang bị treo" kèm nút Tiếp tục đồng bộ. Mỗi lúc chỉ chạy một tiến trình.
- Nút Đồng bộ tất cả theo filter xử lý mọi dòng khớp bộ lọc hiện tại, kể cả những trang bạn chưa xem tới. Xem kỹ bộ lọc trước khi bấm.
- Nút Đồng bộ tồn kho chỉ cập nhật số tồn, mỗi lượt 50 sản phẩm. Hộp thoại hỏi phạm vi (Các SP đã chọn hoặc Tất cả sản phẩm) và nguồn (Từ WooCommerce hoặc Từ KiotViet). Cả hai nguồn đều lấy số trong bảng tạm, không gọi sang KiotViet, nên phải tải bảng tạm mới trước.
- Nút Auto Mapping tự nối sản phẩm sẵn có trên web với KiotViet theo KiotViet ID và SKU trùng mã hàng. Nút chỉ ghi KiotViet ID, không sửa tên, giá hay ảnh.
- Nút Auto Mapping theo tên mở trang riêng cho sản phẩm trên web chưa có SKU và chưa liên kết. Bấm Bắt đầu quét & mapping, xem cột Độ khớp từng cặp (chỉ hiện cặp từ 60% trở lên), bỏ bớt cặp sai bằng nút Bỏ chọn < 80% rồi bấm Lưu mapping đã chọn.
Nút Làm mới đã chọn từ API nằm giữa số 2 và số 3 trong ảnh: nó lấy lại dữ liệu mới từ KiotViet cho các dòng đã chọn, ghi vào bảng tạm.
Sản phẩm có SKU trùng mã hàng thì lần đồng bộ sẽ tự nối, không tạo trùng. Sản phẩm có SKU khác mã hàng thì chạy Auto Mapping theo tên trước, nếu không plugin coi là hàng mới và tạo thêm một sản phẩm nữa.
Lọc và chọn đúng sản phẩm cần làm
Cột bên trái bảng là bộ lọc. Lọc trước rồi mới chọn thì không phải cuộn qua hàng nghìn dòng.
Bộ lọc có Tìm kiếm, Danh mục (gồm cả danh mục con), Loại sản phẩm, Trạng thái, Tồn kho, Theo danh mục bị Skip và Liên kết WooCommerce. Chọn xong bấm Áp dụng bộ lọc; bấm Đặt lại để bỏ lọc. Hai ô hay dùng nhất là:
- Ô Liên kết WooCommerce chọn "Chưa liên kết (tạo mới)" để tìm hàng KiotViet chưa có trên web, hoặc "Đã liên kết (cập nhật)" để chỉ cập nhật hàng đã có.
- Ô Trạng thái mặc định là "Đang hoạt động", nên hàng ngừng kinh doanh không nằm trong danh sách. Muốn plugin áp cách xử lý hàng ngừng kinh doanh thì chọn "Tất cả" hoặc "Ngừng hoạt động".
Cột Hành động mỗi dòng có Tạo mới, Cập nhật, Bỏ qua lần này; sản phẩm đã liên kết tự chọn Cập nhật. Chọn Tạo mới cho hàng đã có trên web thì plugin bỏ qua, không tạo trùng. Ô "Thiết lập hành động hàng loạt" đặt một lựa chọn cho mọi dòng (Tất cả → Tạo mới, Tất cả → Cập nhật, Tất cả → Bỏ qua lần này). Các nút Chọn tất cả theo filter, Bỏ chọn tất cả, Xem đã chọn nằm ngay dưới hàng nút đồng bộ.
Cột WooCommerce Product có link Sửa kèm số ID của sản phẩm đã nối trên web; ghi "Chưa đồng bộ" là chưa liên kết. Từ bản 1.3.3 có thêm ba thứ:
- Nhãn Khớp SKU, chưa gán ID hiện ở sản phẩm có SKU trùng mã hàng nhưng chưa gán KiotViet ID. Lần đồng bộ sau plugin tự gán, trừ khi sản phẩm đang bật Không đồng bộ từ KiotViet.
- Nhãn Không đồng bộ hiện ở sản phẩm đang bật ô Không đồng bộ từ KiotViet. Đưa chuột vào nhãn để đọc giải thích.
- Link Huỷ liên kết dưới ô Hành động, chỉ có ở dòng đã liên kết. Xem mục kế tiếp.
Huỷ liên kết một sản phẩm
Bấm Huỷ liên kết ở một dòng, hộp thoại xác nhận nhắc ba điều:
- Plugin chỉ xoá KiotViet ID khỏi sản phẩm hoặc biến thể trên web. Tên, giá, tồn kho, ảnh, VAT giữ nguyên.
- Đơn hàng có sản phẩm này không đăng được lên KiotViet cho tới khi liên kết lại.
- SKU trên web trùng mã hàng KiotViet thì lần đồng bộ sau (bấm tay hay qua webhook) tự liên kết lại.
Dùng khi lỡ nối nhầm hai sản phẩm. Muốn ngừng đồng bộ hẳn một sản phẩm thì dùng ô ở mục kế tiếp.
Không đồng bộ từ KiotViet cho từng sản phẩm
Từ bản 1.3.3, mỗi sản phẩm trên web có ô chặn mọi cập nhật từ KiotViet.
- Trong trang sửa sản phẩm, khung Dữ liệu sản phẩm, mở tab Kiểm kê kho hàng (WooCommerce bản tiếng Anh ghi Inventory).
- Tích ô Không đồng bộ từ KiotViet, nằm dưới ô SKU và KiotViet ID, rồi bấm Cập nhật để lưu sản phẩm. Bật ở sản phẩm có biến thể thì cả sản phẩm cha và mọi biến thể đều bị bỏ qua.
Hai cách bật khác:
- Mỗi biến thể có ô Không đồng bộ KiotViet riêng, chỉ chặn đúng biến thể đó.
- Ở danh sách Sản phẩm, hành động hàng loạt KiotViet: Không đồng bộ và KiotViet: Đồng bộ lại bật, tắt cho nhiều sản phẩm một lúc. Bộ lọc "KiotViet: không đồng bộ" liệt kê các sản phẩm đang bật; tên sản phẩm có nhãn "Không đồng bộ KiotViet".
Ô này chặn đồng bộ bấm tay, đồng bộ trong nền, nút Đồng bộ tồn kho và các webhook sản phẩm, tồn kho, bảng giá, xoá sản phẩm. Nó không chặn việc đăng đơn có sản phẩm đó lên KiotViet, không chặn Auto Mapping và Chuyển ID từ plugin cũ. Hợp với sản phẩm bạn tự đặt giá khuyến mãi, sản phẩm muốn giữ ẩn, hoặc sản phẩm không muốn bị xoá theo KiotViet.
Sản phẩm trên web thiếu dữ liệu KiotViet
Cuối tab có khối liệt kê sản phẩm trên web thiếu KiotViet ID (không được cập nhật tồn kho, giá) hoặc thiếu thông tin VAT (đơn đăng lên KiotViet không kèm thuế). Chọn "Thiếu KiotViet ID hoặc VAT", "Chỉ thiếu KiotViet ID" hay "Chỉ thiếu thông tin VAT", bấm Tải danh sách, rồi bấm Đồng bộ tất cả để điền phần còn thiếu từ bảng tạm. Tích ô "Tra KiotViet ID qua API theo SKU khi cache chưa có (chỉ đọc)" để plugin hỏi KiotViet những SKU chưa có trong bảng tạm.
Chạy lần đầu nên làm theo thứ tự này
- Sao lưu website.
- Đang chuyển từ plugin KiotViet Sync cũ thì bấm Chuyển ID từ plugin cũ ở tab Cài đặt API.
- Chọn các ô ở khối Tùy chọn đồng bộ và Mapping Giá, bấm Lưu tùy chọn.
- Bấm Tải từ API KiotViet, đợi chạy xong.
- Website đã có sản phẩm cũ thì chạy Auto Mapping, rồi Auto Mapping theo tên cho phần còn lại.
- Lọc lấy 3 tới 5 sản phẩm, bấm Đồng bộ đã chọn, mở ngoài website xem tên, giá, ảnh, tồn kho đã đúng chưa.
- Đúng rồi mới chạy Đồng bộ tất cả theo filter, hoặc chọn hết rồi đồng bộ trong nền.
Lỗi thường gặp
| Hiện tượng | Nguyên nhân và cách xử lý |
|---|---|
| Website bị trùng sản phẩm | Sản phẩm cũ có SKU khác mã hàng KiotViet nên plugin tưởng là hàng mới. Lọc "Chưa liên kết (tạo mới)" để khoanh vùng, nối bằng Auto Mapping theo tên, xoá bản thừa. |
| Bấm Đồng bộ tồn kho mà số không đổi | Nút này đọc bảng tạm. Bấm Tải từ API KiotViet trước rồi chạy lại. |
| Mapping Giá không có bảng giá nào để chọn | Chưa bấm Kiểm tra kết nối ở tab Cài đặt API, hoặc bảng giá trên KiotViet đang ngừng hoạt động. |
| Sản phẩm để Bản nháp tự hiện lại | Mỗi lần KiotViet cập nhật sản phẩm, plugin đưa nó về Đã xuất bản. Bật Không đồng bộ từ KiotViet cho sản phẩm đó. |
| Thương hiệu không lên web | Website chưa có mục Thương hiệu (Brands) của WooCommerce, hoặc ô Thương hiệu (Brand) đang tắt. |
Đồng bộ lần đầu xong thì sang Đồng bộ đơn hàng, rồi đăng ký Webhook để những thay đổi sau tự về. Còn vướng thì xem Giải đáp thắc mắc.