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.
- Đế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.
- 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ý.
- 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".
- 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.
- 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.