Nếu dự án chọn Zen Cart làm Nền tảng đích, bước chuẩn bị phải giúp đội ngũ hiểu rõ cửa hàng nguồn đang được cấu thành như thế nào trước khi chốt cấu hình di chuyển dữ liệu. Một cài đặt Zen Cart hoạt động lâu năm có thể đồng thời chứa Products gốc, linked Categories, attributes, downloads, nhóm giá Customers, các dòng tổng tiền trong Orders, EZ-Pages, define pages, templates, plugins, overrides, language files và các trường cơ sở dữ liệu tùy chỉnh. Storefront có thể trông nhất quán trong khi dữ liệu và chức năng phía dưới lại do nhiều nhóm kỹ thuật và nghiệp vụ khác nhau quản lý.
Mục tiêu của giai đoạn chuẩn bị là chuyển môi trường đó thành nguồn thông tin có thể kiểm chứng. Với mỗi hạng mục quan trọng, cần xác định việc phải hoàn thành, người chịu trách nhiệm trả lời, tài liệu/dữ liệu cần cung cấp và điều kiện để xem hạng mục đã sẵn sàng. Cách làm này giúp tách bản ghi thông thường, cấu hình nền tảng, dữ liệu do plugin sở hữu và mã tùy chỉnh trước khi bắt đầu cấu hình di chuyển dữ liệu.
Xác định chính xác môi trường Zen Cart nguồn và quyền truy cập
Bắt đầu bằng việc nhận diện đúng cài đặt Zen Cart đang được sử dụng. Ghi lại phiên bản Zen Cart, môi trường hosting, cơ sở dữ liệu, document root, đường dẫn quản trị, language packs đang hoạt động, tiền tệ, tax zones, templates, plugins, overrides và các đồng bộ với hệ thống ngoài. Hai cửa hàng nhìn giống nhau trên storefront có thể vận hành khác nhau nếu một cửa hàng dùng chức năng gốc của phiên bản mới còn cửa hàng kia phụ thuộc vào plugins cũ hoặc files đã sửa trực tiếp.
Chuẩn bị đúng loại quyền truy cập cần cho lộ trình chuyển đổi đã chọn. Quyền database, hosting, admin hoặc file không nên được coi là các lựa chọn có thể thay thế tùy ý cho nhau. Người phụ trách kỹ thuật cần cung cấp quyền phù hợp với cài đặt thực tế và sẵn sàng làm rõ permissions, allowlists, đường dẫn file hoặc database prefix khi cần.
| Việc cần hoàn thành | Người phụ trách | Thông tin cần xác nhận | Điều kiện sẵn sàng |
|---|---|---|---|
| Ghi lại chính xác môi trường Zen Cart và PHP | Người phụ trách hosting/kỹ thuật | Ảnh chụp phiên bản, ghi chú môi trường, phiên bản cơ sở dữ liệu | Cài đặt nguồn và bối cảnh tương thích được xác định rõ |
| Xác nhận quyền truy cập nguồn | Người quản lý quyền truy cập | Trạng thái kết nối, allowlist, database prefix và document root | Kết nối cần thiết truy cập đúng Cửa hàng nguồn |
| Kiểm kê templates, overrides và plugins | Developer hoặc agency | Template đang hoạt động, danh sách plugins, thư mục override, danh sách files đã sửa | Có thể tách dữ liệu gốc khỏi chức năng phụ thuộc code |
| Ghi lại ngôn ngữ, tiền tệ, tax zones và đơn vị | Đội vận hành thương mại | Thiết lập và danh sách ngôn ngữ đang dùng | Các giá trị toàn cửa hàng ảnh hưởng đến Products/Orders đã được ghi nhận |
| Xác định imports và đồng bộ hệ thống ngoài | Đội phụ trách tích hợp | Lịch chạy feed, danh sách hệ thống ngoài và thời điểm chạy gần nhất | Giá trị còn thay đổi trong giai đoạn chuẩn bị có nguồn quản lý rõ ràng |
Sau khi chốt bộ thông tin này, cần duy trì một change log. Hoạt động bán hàng thường ngày có thể tiếp tục, nhưng plugin mới, thay đổi cơ sở dữ liệu, chỉnh sửa lớn cấu trúc attributes hoặc thay đổi URLs cần được ghi lại để mô hình nguồn đã chuẩn bị không trở nên lỗi thời mà không ai nhận biết.
Chuẩn bị Products, attributes, downloads và các quan hệ về giá
Zen Cart dùng attributes để biểu diễn lựa chọn, text khách hàng nhập, file upload, thông tin chỉ đọc, điều chỉnh giá/trọng lượng và downloadable files. Option Names, Option Values và quan hệ attribute được gán vào Products là những bản ghi riêng. Một số cài đặt còn dùng cơ chế tồn kho variants hoặc dependent attributes từ chức năng gốc của phiên bản hiện tại hoặc plugin.
Hãy lập danh sách Products gồm ID Products, model/SKU, trạng thái, giá, tax class, số lượng, cách quản lý tồn kho, trọng lượng, loại Products, manufacturer, Categories được đặt làm master, linked Categories, hình ảnh, Specials, Featured state, quantity discounts, nhóm giá Customers, attributes và tham chiếu download khi có. Bộ thông tin phải cho thấy giá trị nào xác định một lựa chọn có thể mua và giá trị nào chỉ để mô tả hoặc được khách hàng nhập khi mua.
| Mẫu dữ liệu nguồn | Việc cần chuẩn bị | Thông tin cần xác nhận | Điều kiện sẵn sàng |
|---|---|---|---|
| Size, color hoặc format có thể chọn | Ghi Option Name, Option Value, attribute assignment, thứ tự sắp xếp và trạng thái required/default | các ID Products đại diện và dữ liệu attributes xuất từ nguồn | Từ vựng lựa chọn và quan hệ với Products đã đầy đủ |
| Attribute làm thay đổi giá/trọng lượng | Ghi mức điều chỉnh, prefix, include-in-base-price, cách discount áp dụng và Products sở hữu | Mẫu tính giá cùng thiết lập attribute | Ảnh hưởng thương mại được ghi rõ thay vì suy ra từ nhãn |
| Text hoặc file do khách hàng nhập | Tách dữ liệu chỉ xuất hiện theo từng giao dịch khỏi option values dùng lại | Danh sách Products và chi tiết Orders đại diện | Dữ liệu khách hàng nhập không bị nhầm thành variant có tồn kho |
| Products dạng download | Ghi file, attribute, expiry days, số lần download và vị trí lưu file | Manifest Products/files và các file gốc còn truy cập được | Quan hệ Products-download và file nguồn đều sẵn sàng |
| Tồn kho theo variants hoặc quy tắc phụ thuộc | Xác định chức năng gốc/plugin sở hữu, tổ hợp, SKU và số lượng | Bảng tổ hợp hoặc dữ liệu export của plugin | Quan hệ tồn kho độc lập và phụ thuộc được ghi nhận |
| Giá theo nhóm Customers hoặc số lượng | Ghi Products, nhóm, ngưỡng, giá trị và thời gian áp dụng | Danh sách quan hệ giá | Giá có điều kiện không bị rút gọn thành giá cơ bản của Products |
Không nên chuẩn hóa tên attributes hoặc gộp option values nếu chưa có phê duyệt nghiệp vụ. Những tên gần giống nhau vẫn có thể mang ảnh hưởng khác về giá, tồn kho, download hoặc cách lựa chọn được ghi vào Orders.
Ghi lại Categories, linked Products, manufacturers và cách khách hàng tìm Products
Mỗi Products trong Zen Cart có Categories chính đóng vai trò master và có thể được liên kết tới các Categories khác. Cấu trúc phân cấp, linked Products, duyệt theo manufacturer, Specials, Featured Products, New Products và search đều ảnh hưởng đến cách khách hàng tìm thấy catalog. Bộ chuẩn bị cần tách phân loại catalog khỏi menu/template/sidebox dùng để trình bày.
Lập cây Categories với ID, quan hệ cha-con, trạng thái, nội dung theo ngôn ngữ, hình ảnh, thứ tự sắp xếp, giới hạn theo loại Products và các URLs quan trọng. Với mỗi Products xuất hiện ở nhiều Categories, ghi rõ Categories được đặt làm master cùng tất cả linked Categories. Vị trí liên kết không được nhầm thành bản ghi Products trùng lặp.
| Hạng mục liên quan đến khả năng tìm Products | Người phụ trách | Thông tin cần xác nhận | Điều kiện sẵn sàng |
|---|---|---|---|
| Cấu trúc Categories | Đội quản lý catalog | Dữ liệu cha-con và danh sách Categories cần giữ | Mỗi Categories giữ lại có parent và mục đích rõ ràng |
| Master/linked Categories | Merchandising | Quan hệ Products-to-Categories | Các vị trí dùng chung được thể hiện mà không tạo Products trùng |
| Manufacturers | Đội phụ trách brand | Danh sách manufacturers, quan hệ Products và routes công khai | Ý nghĩa brand đối với khách hàng được tách khỏi dữ liệu supplier nội bộ |
| Specials, Featured và New listings | Merchandising | Danh sách Products đang hoạt động cùng date rules | Merchandising phụ thuộc thời gian/trạng thái đã được nhận diện |
| Menus và sideboxes | Đội phụ trách storefront | Screenshots và ghi chú layout/modules | Phần trình bày được tách khỏi quan hệ catalog |
Chuẩn bị Customers, nhóm giá, địa chỉ và lịch sử đơn hàng
Với Customers, cần phân biệt danh tính tài khoản, các địa chỉ trong address book, authorization state, tùy chọn newsletter, nhóm giá, wholesale level nếu có, số dư gift certificate, Reviews và định danh bên ngoài. Nhóm giá Customers có thể tác động trực tiếp đến thương mại nên cần ghi như một quan hệ với quy tắc giá, không chỉ lưu tên nhóm.
Với Orders, mục tiêu là giữ được thông tin lịch sử có thể giải thích. Chọn các đơn hàng đại diện cho guest/registered checkout, attributes, downloads, discounts, Coupons hoặc gift certificates, Tax, nhãn shipping/payment, comments, status history, billing/shipping khác nhau và các dòng tổng tiền do plugin tạo. Địa chỉ và mô tả Products tại thời điểm đặt hàng phải được tách khỏi dữ liệu Customers và catalog hiện tại.
| Nhóm bản ghi | Việc cần chuẩn bị | Thông tin cần xác nhận | Điều kiện sẵn sàng |
|---|---|---|---|
| Danh tính Customers | Xác định duplicates, authorization states, nhóm giás và external keys | Danh sách ngoại lệ Customers | Mỗi ngoại lệ danh tính có người xử lý và quyết định rõ |
| Address books | Tách địa chỉ Customers hiện tại khỏi bản chụp trong Orders | Ví dụ địa chỉ Customers và Orders | Dữ liệu tài khoản hiện tại và lịch sử giao dịch không bị gộp |
| Nhóm giá/wholesale | Ghi tình trạng thuộc nhóm và từng quan hệ Products/giá bị ảnh hưởng | Bảng đối chiếu nhóm và quy tắc | Ý nghĩa thương mại được mô tả đầy đủ thay vì chỉ giữ tên nhóm |
| Trạng thái và comments của Orders | Ghi nhãn, thứ tự, khả năng hiển thị cho khách hàng và Orders đại diện | Danh sách trạng thái | Trạng thái lịch sử có thể được hiểu mà không chỉ dựa vào tên |
| Các dòng tổng tiền Orders | Nhận diện subtotal, Tax, shipping, discount, gift certificate, fee và dòng plugin | Các bộ tổng tiền đại diện | Mỗi điều chỉnh quan trọng có nguồn sở hữu rõ |
| Lịch sử download | Ghi attributes liên quan tới file đã mua, quyền truy cập còn lại và quan hệ Orders | Các Orders có download | Bối cảnh mua Products số được đưa vào thông tin nguồn |
Không nên chỉnh sửa dữ liệu lịch sử chỉ để làm cho mọi bản ghi đồng nhất. Những ngoại lệ cần được ghi riêng nếu chúng giải thích đúng giao dịch đã phát sinh.
Kiểm kê plugins, overrides, templates và dữ liệu tùy chỉnh
Plugins của Zen Cart có thể bổ sung fields, tables, quy tắc giá, cách quản lý tồn kho, dòng tổng tiền Orders, routes SEO, thuộc tính Customers, báo cáo, feeds hoặc tích hợp. Overrides và thay đổi trực tiếp cũng có thể làm khác cách cửa hàng hoạt động mà không tạo một bản ghi plugin rõ ràng. Giai đoạn chuẩn bị phải xác định dữ liệu kinh doanh nào do từng thành phần sở hữu.
Tạo bảng theo dõi phụ thuộc gồm tên plugin, phiên bản, mục đích, trạng thái đang dùng, loại dữ liệu bị ảnh hưởng, bổ sung cơ sở dữ liệu, files đã sửa/override, hệ thống bên ngoài và người có thể xác nhận chức năng còn cần hay không. Khi nói về phần mở rộng nền tảng, dùng plugin Zen Cart hoặc tên thành phần cụ thể để tránh nhầm với Add-ons của Dịch vụ chuyển đổi dữ liệu.
| Dạng phụ thuộc | Thông tin cần chuẩn bị | Điều kiện sẵn sàng |
|---|---|---|
| Plugin cho attributes/tồn kho variants | Bản ghi tổ hợp, khóa Products, SKU và trường số lượng | Mỗi tổ hợp đang hoạt động có chủ sở hữu dữ liệu nguồn rõ |
| Module tổng tiền hoặc checkout | Tóm tắt cấu hình và các đơn hàng trước đây mang tính đại diện | Giá trị lịch sử được tách khỏi cấu hình cửa hàng hiện tại |
| Plugin SEO/URL | Rewrite settings, route examples và redirect tables | Các đường dẫn nguồn quan trọng có thể được tái tạo |
| Phần mở rộng Customers/loyalty | Fields, balances, lịch sử giao dịch và khóa Customers | Dữ liệu tài khoản đang dùng có quyết định đích rõ ràng |
| Tích hợp ERP, marketplace hoặc xử lý đơn hàng | External IDs, hướng đồng bộ và hệ thống nào là nguồn chính | Hệ thống tiếp tục sử dụng có thể nhận diện cùng Products, Customers hoặc Orders |
| Nội dung phụ thuộc template | Đường dẫn template, screenshots và nguồn tạo nội dung | Nội dung kinh doanh được tách khỏi code trình bày |
Chuẩn bị EZ-Pages, define pages, media và thông tin URLs
Nội dung Zen Cart có thể xuất hiện qua EZ-Pages, define pages, mô tả Products/Categories, banners, sideboxes, template files và language files. Lập danh sách ghi rõ người phụ trách nội dung, ngôn ngữ, route hiện tại, vị trí menu/sidebox, embedded links, hình ảnh và phương án xử lý trên đích.
Ghi các URLs ưu tiên của Products, Categories, manufacturers, EZ-Pages, trang chính sách, liên hệ và trang thông tin. Routes Products/Categories gốc có thể dùng IDs hoặc đường dẫn Categories, trong khi plugin SEO có thể thay bằng URLs đã rewrite. Vì vậy, danh sách routes cần cho biết từng đường dẫn là native, do plugin tạo, static hay redirect từ bên ngoài.
Sao lưu hình ảnh gốc và download files cùng đường dẫn. Cơ sở dữ liệu có thể chỉ chứa tên file chứ không chứa file thực. Đánh dấu file thiếu, external image URLs, khác biệt về chữ hoa/thường trong path và các thumbnails được tạo tự động mà không phải file gốc.
Tạo gói nguồn Zen Cart có thể khôi phục
Trước khi dọn cấu trúc hoặc bắt đầu di chuyển dữ liệu, lưu một trạng thái nguồn có thể phục hồi. Gói này nên gồm cơ sở dữ liệu, cây file liên quan, thư mục download, tham chiếu cấu hình, bằng chứng template/plugin và ghi chú môi trường gắn với cùng một trạng thái cửa hàng.
| Thành phần gói | Người phụ trách | Thông tin cần xác nhận | Điều kiện sẵn sàng |
|---|---|---|---|
| Database backup | Database administrator | File dump có timestamp và ghi chú database prefix | Dump đầy đủ và thuộc đúng cửa hàng cần chuyển |
| Files và downloads | Người phụ trách hosting/kỹ thuật | File archive hoặc cây nguồn có thể truy cập | Hình ảnh gốc, downloads, templates, overrides và plugins sẵn sàng |
| Thông tin môi trường | Người phụ trách kỹ thuật | PHP, database, server và phiên bản Zen Cart | Có thể giải thích chức năng phụ thuộc phiên bản |
| Danh sách quyền truy cập | Người phụ trách dự án | Người quản lý quyền và trạng thái kết nối | Quyền cần thiết đã sẵn sàng mà không ghi credentials trong tài liệu |
| Change log | Store administrator | Các thay đổi sau thời điểm chốt dữ liệu | Thay đổi cấu trúc phát sinh muộn có thể được đưa vào kế hoạch có chủ đích |
Chọn bộ dữ liệu đại diện để kiểm thử di chuyển dữ liệu
Chuẩn bị một danh sách mẫu kiểm thử gọn, ghi các ID nguồn, lý do nghiệp vụ, tệp liên kết và các quan hệ dự kiến ở nguồn. Bộ mẫu phải có cả bản ghi thông thường lẫn những quan hệ dễ bị hiểu sai. Danh sách mẫu kiểm thử của Zen Cart chỉ sẵn sàng khi từng kỳ vọng nguồn, phụ thuộc plugin/attribute, tệp liên kết và định danh đều đầy đủ và đã có người phụ trách rà soát.
Tối thiểu nên gồm:
- một bản ghi Products đơn giản, một bản ghi Products không hoạt động và một bản ghi Products được liên kết tới nhiều Categories;
- một bản ghi Products có nhiều attributes ảnh hưởng đến giá hoặc trọng lượng;
- text/file input, tồn kho variants hoặc dependent attributes nếu cửa hàng sử dụng;
- một bản ghi Products dạng download kèm tệp nguồn và lịch sử mua hàng;
- Products có Specials, cơ chế giá theo số lượng hoặc giá theo nhóm Customers;
- Customers thuộc các nhóm giá/authorization có ý nghĩa;
- Orders có attributes, comments, billing/shipping khác nhau, gift certificates, tổng tiền bất thường và downloads;
- URLs quan trọng gồm cả native và rewritten routes;
- một bản ghi do plugin đang hoạt động sở hữu và một nội dung phụ thuộc template.
Kiểm tra điều kiện sẵn sàng cuối cùng
Zen Cart chỉ sẵn sàng cho bước di chuyển dữ liệu tiếp theo khi đội ngũ có thể giải thích cửa hàng nguồn mà không dựa vào giả định chưa được kiểm chứng.
| Câu hỏi sẵn sàng | Kết quả bắt buộc |
|---|---|
| Đã xác định chính xác cài đặt chưa? | Phiên bản, hosting, database, ngôn ngữ, template, overrides và plugins đều được ghi lại |
| Quan hệ Products đã đầy đủ chưa? | Attributes, downloads, Categories, giá, media và các phần mở rộng tồn kho đã được biểu diễn |
| Customers và Orders có thể diễn giải được chưa? | Groups, addresses, statuses, totals, comments và external IDs đều có người phụ trách |
| Plugins và dữ liệu tùy chỉnh đã được phân loại chưa? | Mỗi phụ thuộc đang hoạt động có mục đích kinh doanh và quyết định trên đích |
| Nội dung và routes đã được kiểm kê chưa? | EZ-Pages, define pages, media và các URLs native/rewrite quan trọng đã được ghi nhận |
| Backup và quyền truy cập đã sẵn sàng chưa? | Gói nguồn có thể khôi phục và quyền cần thiết đang hoạt động |
| Bộ mẫu có thực sự đại diện không? | Bản ghi thông thường và phức tạp đều có các ID nguồn cùng quan hệ dự kiến |
Các mục chưa giải quyết cần nằm trong decision log với người phụ trách và thời hạn. Giai đoạn chuẩn bị chưa hoàn tất nếu bảng plugin quan trọng, download file, liên kết Categories, quan hệ giá hoặc external identifier vẫn chỉ được mô tả là “chưa rõ”.
Kết luận
Chuẩn bị Zen Cart hiệu quả nhất khi Cửa hàng nguồn được xem như một catalog có quan hệ cùng lịch sử giao dịch, không phải file xuất Products phẳng. Attributes, downloads, linked Categories, nhóm giá Customers, tổng tiền Orders, EZ-Pages, plugins, overrides, templates và files gốc đều cần có người phụ trách cùng bộ thông tin kiểm chứng rõ ràng.
Một gói nguồn có thể khôi phục, bộ mẫu đại diện và cổng kiểm tra sẵn sàng cụ thể sẽ tạo nền tảng đáng tin để bước sang cấu hình di chuyển dữ liệu.
Câu hỏi thường gặp
Vì sao attributes của Zen Cart cần được chuẩn bị riêng với các trường Products?
Attributes liên kết Option Names/Option Values với Products và có thể ảnh hưởng đến giá, trọng lượng, lựa chọn bắt buộc, dữ liệu người mua nhập, downloads hoặc tồn kho. Một bản ghi Products dạng phẳng không thể thể hiện đầy đủ những quan hệ này.
Categories được đặt làm master khác Categories liên kết như thế nào?
Mỗi Products có Categories chính đóng vai trò master và có thể được liên kết tới các Categories bổ sung. Cần ghi cả hai quan hệ để vị trí bổ sung không bị nhầm thành Products trùng hoặc bị mất khi chuẩn bị catalog.
Database backup của Zen Cart có bao gồm hình ảnh và download files không?
Database thường chỉ lưu tham chiếu. Hình ảnh gốc, downloads, templates, overrides và plugin files vẫn phải được chuẩn bị từ file system.
Dữ liệu của plugin Zen Cart nên được ghi nhận như thế nào?
Ghi tên plugin, phiên bản, loại dữ liệu bị ảnh hưởng, fields/tables, các ID nguồn đại diện, phụ thuộc hệ thống ngoài và mục đích kinh doanh còn tiếp tục. Dữ liệu đang hoạt động cần có chủ sở hữu rõ; dữ liệu cũ có thể được đánh dấu để lưu trữ hoặc loại khỏi di chuyển dữ liệu.
Nên chọn Orders nào vào bộ dữ liệu nguồn đại diện?
Nên có Orders thông thường và Orders chứa attributes, discounts, gift certificates, billing/shipping khác nhau, comments, tổng tiền bất thường, downloads và external references. Những trường hợp này làm lộ các quan hệ mà Orders đơn giản không thể hiện.
URLs đã được rewrite trên Zen Cart có nên được xem như URL Products gốc không?
Không nên mặc định như vậy. Với từng route quan trọng, cần ghi rõ đó là route native, do plugin SEO tạo, static hay external redirect. Quyền sở hữu route quyết định loại thông tin cần giữ để tái tạo đúng quan hệ đường dẫn.