Đồ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.

Bắt buộc Bước 6 / 10 Cập nhật 12.10.2026
Đồng bộ sản phẩm KiotViet về WooCommerce: danh mục, giá, Auto Mapping
Video khoảng hai phút: ánh xạ danh mục, ô ghi đè, Mapping Giá, Tạo mới hay Cập nhật, Auto Mapping và hàng ngừng kinh doanh.

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.

  1. 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.
  2. 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.

Sao lưu trước khi chạy giai đoạn 2 lần đầu

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

Thanh tab với chấm số 1 chỉ vào tab Đồng bộ sản phẩm
Tab Đồng bộ sản phẩm nằm giữa thanh tab.
  1. 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.

Nửa trên khối Tùy chọn đồng bộ: các trường dữ liệu từ Tên sản phẩm tới Tự tạo danh mục khi chưa có mapping
Nửa trên khối "Tùy chọn đồng bộ", các ô để đúng mặc định khi mới cài. Bấm vào ảnh để đọc rõ.
Nửa dưới khối Tùy chọn đồng bộ: xử lý hàng ngừng kinh doanh, Đường dẫn sản phẩm mới, Số lượng mỗi batch, Mapping Giá và nút Lưu tùy chọn
Nửa dưới cùng khối: xử lý hàng ngừng kinh doanh, Đường dẫn sản phẩm mới, Số lượng mỗi batch, Mapping Giá và nút Lưu tùy chọn. Mọi giá trị đều là mặc định.
Ô trên màn hìnhMặc địnhGhi 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ậtTự đặ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ậtGiá 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ắtLấ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_imagesLư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ắtChỉ 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ượngBậtKiotViet để 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 khoBật, bậtPlugin 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ánhBậtChi nhánh đang âm kho không bị trừ vào tổng.
Hỗ trợ tồn kho số lẻ (decimal)TắtTắ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 khoTắtTồ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_idMặ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ắtGhi 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ôngBậtXem bài Ánh xạ danh mục.
Tự tạo danh mục khi chưa có mappingTắtTắ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ẩmHai 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 batch10Số 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.

Tự viết mô tả, tự chọn ảnh trên web thì giữ các ô ghi đè ở trạng thái tắt

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 đặt tay trên web bị xoá ở lần đồng bộ sau

Ô 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 doanhKhô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 doanhKhô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ừngBậ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ạiBậ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.

Khối Thống kê Cache với bốn nút được đánh số
Bốn nút điều khiển bảng tạm.
  1. 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.
  2. 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.
  3. 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.
  4. 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 giữ số liệu của lần tải cuối

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

Hàng nút đồng bộ với sáu vị trí được đánh số
Các cách chạy đồng bộ. Bấm vào ảnh để phóng to.
  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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.

Website đã có sẵn sản phẩm thì nối trước, đồng bộ sau

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 sản phẩm với các ô tìm kiếm, danh mục, trạng thái, tồn kho
Bộ lọc sản phẩm.

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".
Bảng danh sách sản phẩm với dữ liệu mẫu, ba vị trí được đánh số ở cột WooCommerce Product và cột Hành động
Bảng danh sách sản phẩm. Dữ liệu trong ảnh là mẫu minh hoạ.

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ứ:

  1. 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.
  2. 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.
  3. 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.

Khung Dữ liệu sản phẩm ở tab Kiểm kê kho hàng, ô Không đồng bộ từ KiotViet đã tích, hai vị trí được đánh số
Trang sửa sản phẩm, khung Dữ liệu sản phẩm. SKU, KiotViet ID và số lượng trong ảnh là số mẫu.
  1. 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).
  2. 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

  1. Sao lưu website.
  2. Đang chuyển từ plugin KiotViet Sync cũ thì bấm Chuyển ID từ plugin cũ ở tab Cài đặt API.
  3. Chọn các ô ở khối Tùy chọn đồng bộ và Mapping Giá, bấm Lưu tùy chọn.
  4. Bấm Tải từ API KiotViet, đợi chạy xong.
  5. 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.
  6. 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.
  7. Đú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ượngNguyên nhân và cách xử lý
Website bị trùng sản phẩmSả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 đổiNú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ọnChư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ạiMỗ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 webWebsite 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.

Hỗ trợ Zalo