Bỏ qua tới nội dung
WooCommerce· ·12 phút đọc

Chuyển lịch sử đơn hàng cũ sang WooCommerce mà không vỡ dữ liệu

Nguyen Hien
Chuyển lịch sử đơn hàng cũ sang WooCommerce mà không vỡ dữ liệu
Cỡ chữ

Khi dời shop từ Shopify, Haravan hay một WordPress cũ sang WooCommerce, phần sản phẩm và khách hàng thường đưa qua khá êm. Cái khiến nhiều người mắc kẹt là khối lịch sử đơn hàng đã tích lũy nhiều năm. Bài này giải thích vì sao chuyển đơn cũ lại khó, công cụ nào làm được, mã đơn có giữ nguyên được không, và một quyết định thực tế ít người dám đặt thẳng: bạn có thật sự cần ôm hết đơn cũ không.

Vì sao chuyển đơn hàng cũ khó hơn chuyển sản phẩm

Một sản phẩm đứng một mình. Một khách hàng cũng đứng một mình. Nhưng một đơn hàng là một mắt xích buộc nhiều thứ lại với nhau cùng lúc, và mỗi liên kết đều có thể đứt khi đưa sang hệ thống mới:

  • Đơn gắn với khách: mỗi đơn phải trỏ về đúng tài khoản khách trong shop mới. WooCommerce nối bằng email hoặc user ID. Nếu khách chưa được nhập trước, hoặc email lệch một ký tự, đơn sẽ rớt thành đơn khách vãng lai (guest).
  • Đơn gắn với sản phẩm: từng dòng hàng trong đơn cần khớp với một sản phẩm đang tồn tại, thường khớp qua SKU (mã hàng) hoặc product_id. Sản phẩm cũ đã ngừng bán hoặc bị xóa thì dòng hàng đó treo lơ lửng, không tính được giá đúng.
  • Đơn gắn với trạng thái: “đã giao”, “đang xử lý”, “đã hủy”… mỗi nền tảng đặt tên trạng thái khác nhau, phải ánh xạ (map) sang đúng trạng thái của WooCommerce, nếu không đơn cũ sẽ hiện sai tình trạng.
  • Đơn gắn với thời điểm: ngày đặt hàng gốc phải được giữ. Nếu công cụ import gán ngày hôm nay cho toàn bộ đơn cũ, mọi báo cáo doanh thu theo tháng/năm coi như hỏng.

Bốn ràng buộc này phải đúng cùng một lúc trong từng đơn. Đó là lý do một file xuất ra trông gọn gàng vẫn có thể nhập vào lệch tùm lum nếu không kiểm tra trước.

WooCommerce không nhập đơn sẵn, bạn cần plugin import

Điểm dễ gây bất ngờ: WooCommerce có sẵn công cụ nhập sản phẩm bằng CSV, nhưng không nhập đơn hàng bằng CSV theo mặc định. Để đưa đơn cũ vào, bạn phải dùng plugin chuyên cho việc import order. Vài lựa chọn phổ biến tại thời điểm hiện tại:

  • Customer / Order / Coupon CSV Import Suite (của chính WooCommerce) — đọc đơn từ file CSV, nối đơn với khách qua customer ID/email/username, nối dòng hàng với sản phẩm qua SKU hoặc product_id.
  • Order Import & Export for WooCommerce (WebToffee) — xuất/nhập đơn hàng loạt, bản trả phí xử lý được hàng nghìn đơn và cả đơn thuê bao (subscription).
  • WP All Import — linh hoạt khi cấu trúc file nguồn lộn xộn, cho phép ánh xạ thủ công từng cột vào từng trường đơn, tự nối về khách và sản phẩm đã có.

Cách hoạt động chung: bạn chuẩn bị một file (CSV/XML) trong đó mỗi đơn có ít nhất email khách, danh sách dòng hàng (SKU + số lượng + thành tiền), trạng thái và ngày tạo. Plugin đọc file, tạo đơn mới, rồi cố gắng nối các mắt xích đó về dữ liệu sẵn có trong shop.

Sơ đồ so sánh ôm hết đơn hàng cũ hay chỉ migrate khách và sản phẩm
Hai lựa chọn khi chuyển đơn cũ, cân theo nhu cầu thật của shop.

Mã đơn cũ có giữ nguyên được không

Đây là câu hỏi gần như ai cũng hỏi, và câu trả lời thật thà là: không giữ nguyên được mã đơn gốc một cách trực tiếp. WooCommerce dùng ID nội bộ của WordPress làm số đơn, và ID này do hệ thống tự sinh khi tạo bản ghi, không thể ép bằng tay qua import thông thường (chỉ làm được nếu can thiệp thẳng vào bảng cơ sở dữ liệu).

Cách đi vòng được thừa nhận rộng rãi: lưu mã đơn cũ vào trường order number (số hiển thị) thay vì ép vào ID. Khi đó số đơn nội bộ vẫn chạy mới, nhưng số bạn cho khách và nhân viên nhìn thấy vẫn là mã cũ. Muốn hiển thị nhất quán, người ta thường ghép thêm plugin đặt số đơn theo dãy tuần tự. Nếu bạn cần truy mã cũ về sau, plugin import thường lưu lại nó dưới dạng ghi chú đơn (order note) hoặc metadata, nên dữ liệu không mất, chỉ là không nằm ở đúng cột ID nữa.

Một lưu ý kỹ thuật nên biết: WooCommerce hiện lưu đơn trong các bảng riêng tối ưu cho tốc độ, gọi là HPOS (High-Performance Order Storage — lưu đơn hiệu năng cao), bật mặc định cho shop mới. Việc này không cản trở import, nhưng nếu bạn nhập đơn rồi sau đó bật/tắt chế độ đồng bộ, hãy để WooCommerce chạy đồng bộ giữa các bảng cho xong trước khi kiểm tra số liệu.

Ôm hết đơn cũ hay chỉ migrate khách và sản phẩm

Đây là phần nhiều người bỏ qua nhưng lại quyết định công sức của cả dự án. Không phải shop nào cũng cần khuân toàn bộ đơn cũ sang. Hãy cân nhắc thẳng hai hướng:

Hướng điHợp khiĐánh đổi
Chỉ migrate khách + sản phẩm, để lại đơn cũĐơn cũ ít giá trị vận hành, bạn chỉ cần khách còn đăng nhập được và sản phẩm còn nguyên SKUMất lịch sử mua trên giao diện shop mới; cần giữ nền tảng cũ ở chế độ chỉ-xem để tra cứu khi cần
Migrate cả lịch sử đơnBạn cần báo cáo doanh thu liền mạch, chương trình tích điểm/hạng thành viên dựa trên chi tiêu, hoặc bảo hành theo đơnTốn nhiều thời gian làm sạch và kiểm thử; rủi ro lệch dữ liệu cao hơn hẳn

Một phương án trung dung hợp với nhiều shop Việt: chỉ migrate đơn trong khoảng gần (ví dụ 12–24 tháng gần nhất, vùng còn phát sinh đổi trả/bảo hành), còn đơn quá cũ thì lưu trữ dạng xuất file để tra cứu chứ không nhồi hết vào shop mới. Đơn càng cũ thì sản phẩm và khách đi kèm càng dễ đã biến mất, công nối lại càng tốn mà giá trị càng thấp.

Sơ đồ quy trình thực tế chuyển đơn hàng cũ sang WooCommerce không vỡ dữ liệu
Quy trình từng bước giúp chuyển đơn cũ mà không vỡ dữ liệu.

Quy trình thực tế để không vỡ dữ liệu

  1. Nhập khách trước, sản phẩm trước, đơn sau cùng. Đơn cần có khách và sản phẩm sẵn để nối vào. Đảo thứ tự là cách nhanh nhất tạo ra đơn khách vãng lai và dòng hàng treo.
  2. Chuẩn hóa SKU và email. Đảm bảo SKU ở file đơn trùng khít SKU sản phẩm trong shop mới, và email khách viết thường, không khoảng trắng thừa. Đây là hai khóa nối quan trọng nhất.
  3. Chạy thử với vài đơn trước. Nhập 5–10 đơn, mở ra xem khách, dòng hàng, tổng tiền, trạng thái, ngày đặt có đúng không, rồi mới chạy hàng loạt.
  4. Sao lưu cơ sở dữ liệu trước khi nhập hàng loạt. Import sai trên hàng nghìn đơn rất khó gỡ; có bản backup thì quay lui được.
  5. Đối soát con số tổng. So tổng số đơn và tổng doanh thu giữa nền tảng cũ và shop mới sau khi nhập xong. Lệch là dấu hiệu có nhóm đơn rớt nối.

Nếu đang dời từ nền tảng đóng, bạn có thể đọc thêm cách chuyển shop Shopify sang WooCommerce hoặc đưa cửa hàng Haravan sang WooCommerce để xuất dữ liệu nguồn đúng cấu trúc trước khi nhập đơn. Khi đổi tên miền hoặc cấu trúc URL trong lúc dời, đừng quên bước cài redirect để không mất thứ hạng khi migrate.

Câu hỏi thường gặp

Đơn cũ nhập vào có còn gắn đúng tài khoản khách không?

Có, nếu khách đã được nhập trước và bạn nối đơn qua đúng email hoặc user ID. Nếu khóa nối sai hoặc khách chưa có, đơn sẽ thành đơn khách vãng lai và không hiện trong lịch sử mua của tài khoản đó.

Có cách nào ép số đơn mới trùng số đơn cũ không?

Không ép trực tiếp qua import thông thường vì số đơn dựa trên ID tự sinh của WordPress. Cách phổ biến là lưu mã cũ vào trường order number và dùng thêm plugin đánh số đơn để hiển thị nhất quán cho khách và nhân viên.

Tôi có bắt buộc phải ôm hết đơn cũ không?

Không. Nhiều shop chỉ cần migrate khách và sản phẩm, hoặc chỉ ôm đơn trong khoảng còn phát sinh đổi trả/bảo hành, còn đơn quá cũ thì lưu file để tra cứu. Quyết định nên dựa trên việc bạn có thật sự dùng lịch sử đơn cho báo cáo, tích điểm hay bảo hành hay không.

Việc nối lại đúng từng đơn, khách và sản phẩm khi dời shop là phần tỉ mỉ và dễ sai nhất của cả dự án. Nếu bạn muốn có người làm gọn khâu này, Web22 nhận dựng và tối ưu shop WooCommerce kèm xử lý dữ liệu khi chuyển nền tảng.

Đọc tiếp

Bài viết
cùng chủ đề.

Tất cả bài viết