← Back to writing
Writing · migration

Con số không ai đối soát khi migrate

By Leo Nguyen · Sep 24, 2026 · 4 min read
Con số không ai đối soát khi migrate
Nhảy tới mục

Phần lớn post-mortem của một lần replatform là về theme. Cái thật sự làm đau lại là về con số — những sản phẩm, biến thể và khách hàng lặng lẽ không về, và không ai đi tìm cho tới khi một người mua tìm ra.

Trong một lần migrate PrestaShop → Shopify gần đây cho một store thời trang châu Âu — khoảng 4.000 sản phẩm, vài chục nghìn khách — lần import đầu trông ổn. Dev store load được, trang chủ render, collection có đủ. Rồi chúng tôi đếm.

#"Import thành công" không phải là một con số

Công cụ import báo thành công khi nó ghi xong các dòng. Nó không nói cho bạn đáng lẽ phải ghi bao nhiêu dòng. Đó là hai sự thật khác nhau, và khoảng cách giữa chúng là chỗ migration mục ruỗng.

Đây là cái các con số thật sự nói ở lần đầu:

  • Sản phẩm: 3.477 / 4.173 về tới dev store. Thiếu 696 — khoảng 1 trên 6, mất mà không một dòng lỗi.
  • Active vs archived: trong số về được, 2.078 bị archived so với 1.399 active. Một catalog mà shopper — và AI agent — đọc thành "phần lớn bị ẩn", dù sản phẩm vẫn tồn tại.
  • Khách hàng: 4.065 / 27.878. Tức −85%. Không phải lệch làm tròn. Một lần import mà nếu để nguyên sẽ mở một store đã quên gần hết những người từng mua.

Không cái nào lộ ra trên storefront. Bạn không thể nhìn bằng mắt để thấy 696 sản phẩm thiếu giữa 4.000. Càng không thể nhìn bằng mắt một bảng khách hàng bạn chẳng bao giờ mở. Thứ duy nhất bắt được nó là một phép đếm.

#Bước đối soát bắt buộc (reconciliation gate)

Trước khi một store đã migrate được phép tới gần cutover, nó qua một cửa: một script đếm nguồn và đích cho mọi object đã migrate, và in ra delta.

  1. Đếm cả hai phía, theo từng object. Sản phẩm, biến thể, ảnh, khách, đơn. Hệ nguồn và store đích, cùng truy vấn, cùng ngày.
  2. In delta, không in tổng. "3.477 / 4.173 (−696)" là một finding. "3.477 đã import" là một thông cáo báo chí. Delta mới là con số một con người phải ký.
  3. Tách archived khỏi active. Một sản phẩm import về ở trạng thái archived không phải là thắng. Đếm cả trạng thái, không chỉ sự tồn tại — AI shopping agent đọc một PDP archived thành "không có hàng".
  4. Giải thích mọi khoảng trống, hoặc sửa. −696 sản phẩm có thể là cố ý (dòng ngừng bán khách yêu cầu bỏ) hoặc một cột CSV vỡ. Kiểu gì cũng phải có người ghi rõ là cái nào, theo dải SKU. Im lặng không phải là giải thích.
  5. Viết verdict sạch hay bẩn. Một câu, có ký: store đã migrate là sạch, hoặc bẩn và đây là danh sách. Không verdict, không cutover.

#Vì sao đây cũng là vấn đề AI-visibility, không chỉ là vấn đề dữ liệu

Một store mở ra với 85% khách bị thiếu là mất lịch sử lifecycle — abandoned-cart, win-back, lịch sử phân khúc. Nhưng nó cũng mở ra với một catalog mà hai phần ba sản phẩm bị archived, và sản phẩm archived thì vô hình với các AI shopping agent giờ đang đọc storefront thay cho người mua. Bước đối soát bảo vệ cả con số doanh nghiệp vận hành lẫn bề mặt trợ lý của người mua nhìn thấy. Chúng hỏng cùng nhau, và bị cùng một phép đếm bắt được.

#Luật

Coi chữ "thành công" của công cụ import là một lời khẳng định, không phải một kết quả. Kết quả là delta, và delta là cái một con người ký. Đếm cả hai phía, theo từng object, trước khi ai đó gõ chữ cutover.


Gửi cho chúng tôi một URL store và chúng tôi sẽ chạy một bản đọc AI-correctness async miễn phí: hỏi các AI agent thật về sản phẩm của bạn, kiểm tra cái nào chúng thấy là có hàng, và gửi lại một punch-list có tên chỉ rõ chỗ catalog của bạn vô hình hoặc bị đọc sai — và, giữa lúc migrate, liệu các con số có đối soát khớp trước cutover không: luma-e.com/ai-readiness. Không cần gọi.

Frequently asked
Công cụ import không báo cho tôi biết sản phẩm nào lỗi à?
Nó báo số dòng đã ghi, không phải số dòng đáng lẽ phải ghi. Một khoảng trống im lặng — một cột CSV vỡ, một status bị lọc — vẫn kết thúc là "thành công". Chỉ một phép đếm nguồn-vs-đích mới bắt được.
Nên đối soát những object nào?
Tối thiểu là sản phẩm, biến thể, ảnh, khách và đơn — đếm mỗi cái trên cả hai hệ, cùng ngày, và ghi lại delta theo từng object.
Vì sao archived-vs-active lại quan trọng với AI visibility?
AI shopping agent đọc một trang sản phẩm archived thành "không có hàng". Một catalog import về "phần lớn archived" thì vô hình với agent dù dữ liệu vẫn tồn tại.
Khi nào chạy đối soát?
Trước cutover, như một cửa cứng — một verdict sạch/bẩn có ký. Không có verdict thì store chưa sẵn sàng launch.
NEWSLETTER

More like this, only when it's worth it

Occasional email on AI x ecommerce - how agents read stores, what breaks, what we shipped. No weekly filler.

No spam, no sequence-drip. Unsubscribe anytime.