Next-Cart

Từ các module phức tạp đến storefront vận hành liền mạch: Một dự án Custom Migration nâng cao từ PrestaShop sang WooCommerce

Mỗi dự án migration eCommerce đều có những điểm phức tạp riêng, nhưng có những dự án vượt xa phạm vi chuyển dữ liệu tiêu chuẩn. Case study dưới đây là một ví dụ điển hình cho thấy các cửa hàng online hiện đại có thể phụ thuộc sâu vào module tùy chỉnh và cấu trúc dữ liệu riêng mà công cụ migration tiêu chuẩn không thể tự xử lý.

PrestaShop
WooCommerce

Khi migration tiêu chuẩn là chưa đủ

Mỗi dự án migration eCommerce đều có những điểm phức tạp riêng, nhưng có những dự án vượt xa phạm vi chuyển dữ liệu tiêu chuẩn. Case study dưới đây là một ví dụ điển hình cho thấy các cửa hàng online hiện đại có thể phụ thuộc sâu vào module tùy chỉnh và cấu trúc dữ liệu riêng mà công cụ migration tiêu chuẩn không thể tự xử lý.

Igli Balliu, nhà sáng lập FoxLio di Balliu Igli tại Ý, tìm đến Next-Cart với một yêu cầu rất cụ thể: chuyển cửa hàng từ PrestaShop sang WooCommerce nhưng vẫn phải giữ nguyên các chức năng tùy chỉnh nằm trong những module của bên thứ ba.

Dự án không chỉ đơn thuần là chuyển sản phẩm, khách hàng và đơn hàng. Đội ngũ còn phải xây dựng lại logic giữa hai nền tảng và các plugin liên quan. Những thách thức chính đến từ việc chọn lọc dữ liệu cần chuyển, hệ thống điểm thưởng tùy chỉnh, tài liệu đính kèm sản phẩm và các giới hạn của nền tảng. Dù vậy, migration vẫn được hoàn tất thành công và khách hàng rất hài lòng với kết quả cuối cùng.

Hãy cùng nhìn lại toàn bộ hành trình, từ yêu cầu và thách thức đến giải pháp và kết quả cuối cùng, để thấy cách một phương án được thiết kế riêng đã giúp xử lý một trong những dự án migration phức tạp nhất.

Hiểu đúng phạm vi dự án: Chuyển dữ liệu có chọn lọc với mức tùy chỉnh sâu

Các dự án migration thông thường thường chuyển toàn bộ dữ liệu. Nhưng với dự án này, mọi thứ cần được kiểm soát và chọn lọc kỹ hơn.

  • Igli yêu cầu chuyển toàn bộ dữ liệu ngoại trừ page và blog post. Vì vậy, hệ thống cần lọc chính xác để không mang sang những dữ liệu không cần thiết.

  • Ngoài ra, migration chỉ cần hỗ trợ tiếng Ý trong khi Source Store chứa dữ liệu đa ngôn ngữ. Điều này đòi hỏi phải tách và trích xuất đúng nội dung theo ngôn ngữ cần dùng.

  • Một yêu cầu quan trọng khác là xóa sạch dữ liệu hiện có trên cửa hàng WooCommerce đích trước khi migration. Việc này tạo một môi trường sạch, tránh xung đột với dữ liệu cũ, nhưng cũng cần được thực hiện cẩn thận để không để lại dữ liệu dư gây lỗi về sau.

  • Ngoài các yêu cầu nền tảng đó, phần phức tạp nhất nằm ở cấu trúc dữ liệu tùy chỉnh của hệ thống điểm loyalty và tài liệu đính kèm sản phẩm. Đây không phải tính năng native của cả hai nền tảng mà được triển khai thông qua module và plugin bên thứ ba, mỗi bên có schema dữ liệu và logic riêng.

Xây dựng lại hệ thống loyalty giữa hai nền tảng

Một trong những phần khó nhất của dự án là chuyển chính xác điểm thưởng của khách hàng. 

Trên PrestaShop, khách hàng sử dụng module “Loyalty, Referral and Affiliate Program (reward points)” của ETS-Soft. Trên WooCommerce, chức năng tương ứng được xử lý bằng “YITH WooCommerce Points and Rewards.”

Thoạt nhìn, đây có vẻ chỉ là một bài toán mapping đơn giản. Nhưng dữ liệu điểm thưởng trên PrestaShop lại được chia ở nhiều bảng database: một bảng lưu điểm đã tích lũy, bảng khác theo dõi điểm đã sử dụng thông qua voucher. Công cụ migration cần lấy được toàn bộ lịch sử điểm thưởng của từng khách hàng.

Trong lần migration đầu tiên, chỉ điểm đã tích lũy được chuyển sang. Vì chưa tính phần điểm đã sử dụng, số dư điểm của khách hàng bị sai. 

Bên cạnh đó, một lỗi về tỷ lệ khiến giá trị điểm bị phóng đại: con số đúng là 1.590 nhưng lại trở thành 159.000.

Để xử lý, đội kỹ thuật xây dựng logic cộng tổng điểm đã kiếm được rồi trừ đi điểm đã sử dụng để khôi phục đúng số dư thực tế của từng khách hàng. Đồng thời, lỗi tỷ lệ cũng được sửa.

Khi cả số dư và logic giao dịch được khôi phục đầy đủ, chương trình loyalty có thể tiếp tục hoạt động trên nền tảng mới mà không làm gián đoạn trải nghiệm hay ảnh hưởng đến niềm tin của khách hàng.  

Biến tài liệu đính kèm sản phẩm thành dữ liệu có thể sử dụng

Mỗi sản phẩm trên Source Store có thể đi kèm tối đa bốn tài liệu PDF, gồm tài liệu an toàn và thông số kỹ thuật. Các file này được quản lý qua module PrestaShop “Product Custom Field Module” của Webkul.

Vấn đề là các file gốc được lưu bằng tên đã hash theo MD5, khó đọc và không thể liên kết trực tiếp với sản phẩm trên WooCommerce. Sau đó, khách hàng đổi tên file sang định dạng có ý nghĩa và tải chúng lên đúng thư mục trong môi trường WooCommerce.

Khi các file đã sẵn sàng, đội ngũ phát triển logic tùy chỉnh để liên kết từng tài liệu với đúng sản phẩm tương ứng. 

Sau đó, khách hàng muốn mỗi tài liệu được hiển thị với nhãn rõ ràng, chẳng hạn “Scheda tecnica” hoặc “Safety data sheet.” Để làm được điều này, đội ngũ phải mapping các internal identifier từ module nguồn sang nhãn dễ đọc cho người dùng.

Kết quả cuối cùng là một hệ thống tài liệu đính kèm hoạt động đầy đủ: mỗi sản phẩm hiển thị đúng tài liệu, đúng nhãn và có link truy cập thuận tiện. Những thông tin quan trọng về sản phẩm vẫn luôn sẵn sàng cho khách hàng.

Ở bước này, sự phối hợp giữa khách hàng và đội migration đóng vai trò rất quan trọng. Việc khách hàng hỗ trợ chuẩn bị các file đính kèm đã góp phần trực tiếp vào thành công của hạng mục này.

Xử lý các vấn đề về cấu trúc và tính toàn vẹn dữ liệu

Trong quá trình migration, dự án còn phát sinh một số vấn đề về cấu trúc dữ liệu.

  • Vấn đề đầu tiên là cách xử lý dữ liệu thương hiệu.

Ban đầu, dữ liệu brand được import dưới dạng thuộc tính sản phẩm, nhưng cách này không đáp ứng yêu cầu của khách hàng. Dữ liệu cần được đưa vào một plugin brand riêng trên WooCommerce để tổ chức và lọc tốt hơn.

Đội ngũ sau đó điều chỉnh lại cấu trúc dữ liệu và import lại thông tin brand theo định dạng tương thích với plugin đã chọn. Cuối cùng, dữ liệu đã hoạt động đúng theo chức năng mong muốn.

  • Vấn đề thứ hai là đánh giá của khách hàng.

Các review của khách hàng bị thiếu trong lần migration đầu tiên. Ngay khi phát hiện vấn đề, đội ngũ đã bổ sung review vào lần migration thứ hai và khôi phục đầy đủ phần dữ liệu quan trọng này.

  • Vấn đề thứ ba là tính toàn vẹn của dữ liệu sản phẩm.

Một số thumbnail sản phẩm bị lỗi và hình ảnh của variation không chuyển đúng. Nguyên nhân được xác định là do gán hình ảnh sai. Sau khi gán lại hình cho đúng variation, chức năng đã hoạt động bình thường trở lại.

Xử lý giới hạn nền tảng và tìm phương án thay thế

Không phải vấn đề nào cũng có thể xử lý bằng cách migration trực tiếp. Một số xuất phát từ chính giới hạn của nền tảng.

  • Internal link trong phần mô tả sản phẩm

Các link này không thể được tự động chuyển đổi từ URL PrestaShop sang URL WooCommerce một cách an toàn. Việc cố chuyển tự động có thể tạo ra kết quả thiếu hoặc sai.

Đội ngũ triển khai giải pháp redirect bằng một plugin URL redirect, sau đó mapping toàn bộ link cũ sang URL mới tương ứng.

  • Quy tắc giảm giá

Source Store sử dụng các cart rule phức tạp dựa trên brand và quốc gia. Tuy nhiên, WooCommerce tổ chức hệ thống discount theo cách khác nên không thể tái tạo logic này một cách khả thi.

Một thử nghiệm ban đầu áp dụng discount ở cấp sản phẩm đã cho kết quả không đúng. Vì số lượng rule tương đối ít, khoảng 41 rule, phần này sau đó được xử lý thủ công.

Giải quyết xung đột giá và khả năng tương thích

Xung đột giữa sale price và plugin discount khiến giá sản phẩm hiển thị sai cho khách hàng.

Giải pháp là xóa toàn bộ sale price và để plugin discount xử lý hoàn toàn logic giá. Cách này giúp đơn giản hóa cấu trúc giá, loại bỏ xung đột và đảm bảo giá hiển thị nhất quán.

Migration mật khẩu cũng là một thách thức khác. PrestaShop và WooCommerce sử dụng phương thức mã hóa khác nhau nên không thể chuyển trực tiếp mật khẩu. 

Để xử lý, một plugin tương thích được cài đặt để khách hàng vẫn có thể đăng nhập bằng mật khẩu cũ. Người dùng không cần reset mật khẩu, giúp quá trình chuyển đổi diễn ra liền mạch hơn.

Bước cuối cùng: Re-Migration để đảm bảo dữ liệu chính xác khi go-live

Sau khi xử lý tất cả vấn đề lớn, đội ngũ thực hiện một lần Re-Migration đầy đủ để đồng bộ dữ liệu live, bao gồm đơn hàng, khách hàng và điểm thưởng đã cập nhật.

Quá trình bắt đầu bằng việc xóa dữ liệu hiện có trên cửa hàng WooCommerce. Sau đó, migration được chạy lại với toàn bộ logic đã hoàn thiện và các bản sửa lỗi. Điểm loyalty được tính lại và áp dụng chính xác.

Bước này đặc biệt quan trọng khi có khoảng cách thời gian giữa giai đoạn kiểm thử ban đầu và go-live như trong dự án này. Lần đồng bộ cuối giúp đảm bảo không bỏ sót giao dịch mới hay dữ liệu khách hàng phát sinh gần đây.

Kết quả là một cửa hàng WooCommerce vận hành đầy đủ và ổn định.

Kết luận

Case study này cho thấy ngay cả một dự án migration rất phức tạp vẫn có thể được xử lý tốt khi có phương án phù hợp. Đội ngũ Next-Cart kết hợp chuyên môn kỹ thuật, khả năng giải quyết vấn đề linh hoạt và sự phối hợp chặt chẽ với khách hàng. Cửa hàng WooCommerce cuối cùng hoạt động đầy đủ và toàn bộ business logic quan trọng đều được giữ lại.

Mỗi thách thức đều được xử lý bằng một giải pháp riêng, từ việc xây dựng lại hệ thống loyalty bị phân mảnh đến chuyển đổi cấu trúc file khó sử dụng thành dữ liệu có thể vận hành. 

Kết quả cuối cùng tạo ra một nền tảng ổn định, tối ưu hơn cho tăng trưởng trong tương lai.

Phản hồi của khách hàng thể hiện rất rõ kết quả đó:

“Trải nghiệm tuyệt vời. Hỗ trợ rất tốt. Đội ngũ Next-Cart đã xử lý toàn bộ các vấn đề không tương thích với plugin của tôi trong thời gian rất ngắn. Tôi cực kỳ hài lòng và chắc chắn sẽ tiếp tục sử dụng dịch vụ trong tương lai nếu có nhu cầu.”

Cuối cùng, case study này cho thấy giá trị của một dịch vụ migration vượt ra ngoài tự động hóa, đủ khả năng hiểu và thích ứng với yêu cầu riêng của từng cửa hàng. Khi hệ sinh thái eCommerce ngày càng phát triển và kết nối chặt chẽ hơn, một dự án migration thành công cần bảo toàn không chỉ dữ liệu mà cả tính toàn vẹn của toàn bộ hệ thống vận hành kinh doanh.

Lập kế hoạch di chuyển dữ liệu tương tự?
Mỗi dự án di chuyển dữ liệu đều có thách thức riêng. Hãy cùng thảo luận cách xây dựng lộ trình di chuyển an toàn và hiệu quả cho doanh nghiệp của bạn.