Khi EShop by Ossolution Team được chọn làm Nền tảng đích, mô hình dữ liệu cần được hiểu qua hai lớp liên kết nhưng không thể trộn lẫn. EShop sở hữu catalog, Customers, Orders, pricing, discounts, tax, shipping, payment và checkout records; Joomla cung cấp danh tính website, routing, modules, ngôn ngữ, templates và bối cảnh vận hành rộng hơn. Một phương án chuyển đổi dữ liệu tốt phải giữ rõ ranh giới này, đồng thời phân biệt dữ liệu thương mại đã phát sinh với cấu hình sẽ điều khiển hoạt động tương lai.
Những các trường có tên tương tự ở Cửa hàng nguồn không nhất thiết cần cùng cách biểu diễn trong EShop. Một “attribute” ở nguồn có thể thực chất là option để khách hàng lựa chọn, attribute mang tính mô tả, trường tùy chỉnh của Products, tab của Products, trường trong checkout hoặc external identifier. Một nhóm Customers ở nguồn có thể điều khiển pricing thay vì quyền truy cập. Một đường dẫn trang có thể phụ thuộc Joomla Menu Items chứ không thuộc trực tiếp về Products. Vì vậy, quyết định mô hình dữ liệu cần bắt đầu từ ý nghĩa và chủ sở hữu, không phải từ nhãn trường.
EShop kết hợp dữ liệu thương mại với cấu trúc website Joomla
EShop sở hữu các bản ghi cửa hàng chính. Joomla sở hữu danh tính website, điều hướng, modules, templates, ngôn ngữ, access và hạ tầng extensions. Payment, shipping, import, reporting và plugins phục vụ tích hợp có thể bổ sung thêm dữ liệu hoặc tham chiếu.
| Lớp sở hữu | Bản ghi thường gặp | Hệ quả khi chuyển đổi |
|---|---|---|
| Catalog EShop | Products, Categories, Manufacturers, options, attributes, các trường tùy chỉnh, attachments, prices và stock | Giữ các quan hệ của Products và phân biệt lựa chọn có thể mua với thông tin mô tả. |
| Lịch sử thương mại EShop | Customers, groups, addresses, Orders, các mặt hàng trong Orders, coupons, vouchers, tax, shipping, payment và statuses | Giữ ảnh chụp giao dịch đã phát sinh cùng các quan hệ giúp giải thích từng giao dịch. |
| Joomla core | Users, Menu Items, modules, languages, aliases, templates và access | Duy trì routing, danh tính và bối cảnh trình bày mà không biến chúng thành dữ liệu catalog EShop. |
| EShop/Joomla plugins | Payment, shipping, imports, modules, các trường chuyên biệt và các tích hợp | Xác định plugin sở hữu dữ liệu và phân biệt bản ghi lịch sử, cấu hình vận hành hoặc dữ liệu thuộc hệ thống bên ngoài. |
| Hệ thống bên ngoài | ERP, CRM, POS, fulfillment, accounting và hệ thống quản lý thông tin Products | Giữ stable identifiers trên bản ghi EShop mà hệ thống bên ngoài thực sự nhận diện. |
Bản đồ quyền sở hữu này giúp tách bản ghi Products khỏi trang Joomla dùng để hiển thị Products, đồng thời tách payment reference của một bản ghi Orders đã phát sinh khỏi cấu hình payment plugin sẽ xử lý giao dịch tương lai.
Products, Categories, Manufacturers và các quan hệ catalog
Một bản ghi Products trong EShop có thể tham gia nhiều quan hệ: vị trí trong Categories, Manufacturer, media, pricing, stock, tax class, measurements, options, attributes, các trường tùy chỉnh, tabs, attachments, related Products, metadata, aliases và giá trị theo từng ngôn ngữ. Nền tảng nguồn có thể kết hợp hoặc tách các khái niệm này theo cách khác.
Categories có thể tạo thành hierarchy và nhận Products assignments. Manufacturers là một loại dữ liệu riêng mang ý nghĩa gần với brand. Related Products, comparison data, wishlists, filters, modules và search có thể phụ thuộc vào nhận diện Products mà không trở thành các trường của Products.
| Khái niệm ở Cửa hàng nguồn | Cách biểu diễn có thể phù hợp trong EShop | Quan hệ cần giữ |
|---|---|---|
| Nhóm Products có các child SKUs riêng | Một bản ghi Products cha có options, hoặc những bản ghi Products riêng liên kết bằng quan hệ merchandising | Nhận diện mặt hàng bán được, stock, price, media và external IDs ở đúng cấp |
| Brand hoặc vendor | Manufacturer | Quan hệ Products-to-Manufacturer mà không gộp Manufacturer vào taxonomy của Categories |
| Department tree | Hierarchy Categories của EShop | Parent-child structure, Products assignment, aliases, metadata và language context |
| Sản phẩm liên quan hoặc bổ trợ | Quan hệ related Products | Hướng và mục đích của quan hệ Products-to-Products |
| Download, manual hoặc specification sheet | Attachment hoặc tab của Products | Quyền sở hữu file, quan hệ với Products, title, language và visibility |
| Thông tin kỹ thuật của Products | Attribute, trường tùy chỉnh hoặc tab của Products | Giữ ý nghĩa mô tả mà không tạo thêm lựa chọn mua hàng không cần thiết |
Cách biểu diễn ở Nền tảng đích cần giữ được cách catalog được quản lý ở nguồn. Hai Products có SKUs và warehouse identities khác nhau không nên bị gộp chỉ vì cùng title. Ngược lại, nếu Nền tảng nguồn tạo một bản ghi riêng cho mỗi size nhưng các lựa chọn đó thực chất thuộc cùng một merchandising parent, EShop options có thể là mô hình đích phù hợp hơn.
Options, attributes, các trường tùy chỉnh và tabs của Products không thể thay thế lẫn nhau
EShop phân biệt lựa chọn khách hàng thực hiện khi mua với thông tin mô tả Products. Options thể hiện những lựa chọn trước khi thêm Products vào cart, chẳng hạn size hoặc color. Attributes mô tả thông tin dùng trên trang chi tiết Products hoặc phục vụ so sánh. các trường tùy chỉnh có thể lưu thêm dữ liệu riêng của Products. Tabs và attachments có thể cung cấp nội dung mở rộng, videos, documentation hoặc files.
| Cấu trúc EShop | Ý nghĩa chính | Ví dụ ở nguồn |
|---|---|---|
| Option của Products | Lựa chọn của khách hàng có thể ảnh hưởng mặt hàng được mua | Size, color, packaging, finish, service level |
| Option value | Giá trị cho phép trong một option | Small, medium, blue, gift box |
| Attribute của Products | Đặc điểm thông tin dùng để mô tả hoặc so sánh | Material, processor, capacity, compatibility |
| trường tùy chỉnh của Products | Giá trị có cấu trúc bổ sung ngoài các trường của Products thông thường | Regulatory code, internal classification, external reference |
| Tab của Products | Khu vực nội dung mở rộng trên trang Products | Specifications, warranty, video, care instructions |
| Attachment | File được liên kết với Products | Manual, certificate, datasheet, downloadable document |
Một option ở nguồn chỉ nên trở thành EShop option khi lựa chọn của khách hàng là một phần của mặt hàng thực tế được mua. Một technical specification không thay đổi lựa chọn bán được phù hợp hơn với attribute, trường tùy chỉnh hoặc content section. Nếu làm phẳng các cấu trúc này, Cửa hàng đích có thể xuất hiện tổ hợp option không hợp lệ, các trang Products bị nhân đôi hoặc các mặt hàng trong Orders không còn cho biết chính xác người mua đã chọn gì.
Ý nghĩa thương mại ở cấp option cũng cần được giữ cùng nhau. Khi lựa chọn ở nguồn ảnh hưởng price, SKU, weight, image, stock hoặc availability, cách biểu diễn ở Nền tảng đích phải duy trì những quan hệ đó. Chỉ chuyển nhãn option mà mất hành vi thương mại đi kèm không tạo ra mô hình dữ liệu tương đương.
Customers, Joomla Users, nhóm Customers và addresses có ý nghĩa khác nhau
Customers của EShop có thể liên kết với Joomla User identities, nhưng dữ liệu Customers còn có các quan hệ thương mại như addresses, Orders, wishlists, reward context và group assignment. Guest checkout có thể tạo dữ liệu người mua và address phục vụ lịch sử giao dịch mà không cần tạo một tài khoản đăng ký lâu dài.
Nhóm Customers đặc biệt quan trọng vì EShop có thể dùng nhóm này cho pricing khác nhau. Joomla User group thường phục vụ quyền và access. Vì vậy, một “group” từ Nền tảng nguồn phải được phân loại theo chức năng trước khi chọn cấu trúc đích.
| Bản ghi ở nguồn | Ý nghĩa đích trong EShop hoặc Joomla |
|---|---|
| Tài khoản đăng nhập đã đăng ký | Joomla User identity được liên kết với bản ghi Customers phù hợp trong EShop khi được hỗ trợ |
| Customers thương mại | Hồ sơ người mua EShop, addresses, quan hệ Orders và ngữ cảnh nhóm thương mại |
| Guest buyer | Danh tính và address gắn với lịch sử đơn hàng mà không tạo thêm tài khoản thường trực |
| Wholesale hoặc price tier | Nhóm Customers trong EShop khi nhóm này điều khiển pricing hoặc eligibility thương mại |
| Administrator hoặc content role | Joomla User group và permission structure, không phải nhóm Customers trong EShop |
| Tổ chức và contacts | Thiết kế organization/contact riêng khi một bản ghi Customers đơn giản không đủ giữ mối quan hệ |
Việc chuyển addresses cũng cần phân biệt address có thể dùng lại của Customers với address snapshot trong Orders. Customers có thể thay đổi address sau khi mua, nhưng Orders trước đây vẫn cần giữ billing/shipping details đã ghi nhận tại thời điểm giao dịch.
Orders cần giữ lựa chọn Products, dữ liệu checkout và lịch sử thương mại
Một bản ghi Orders trong EShop có thể lưu Customers hoặc guest identity, billing/shipping addresses, Products đã mua, option values đã chọn, quantities, prices, discounts, coupons, vouchers, taxes, shipping, payment references, currency, statuses, các trường tùy chỉnh trong checkout, notes và timestamps. Những dữ liệu này giải thích giao dịch đã diễn ra như thế nào; chúng không phải chỉ dẫn để Cửa hàng đích tính toán giao dịch tương lai.
| Thành phần của Orders | Ý nghĩa lịch sử |
|---|---|
| Mặt hàng Products trong đơn | Nhận diện và mô tả Products tại thời điểm bán |
| Option values đã chọn | Cấu hình Products thực tế người mua đã chọn |
| trường tùy chỉnh trong checkout | VAT number, delivery instruction, pickup detail, company reference hoặc giá trị khác đã được thu thập |
| Price, discount, coupons, vouchers và tax | Số liệu tiền tệ đã ghi nhận và không nên được tính lại theo quy tắc mới |
| Shipping method và amount | Lựa chọn fulfillment và chi phí đã ghi trên Orders |
| Payment method và transaction reference | Thông tin payment của giao dịch trước đây, không phải cấu hình gateway đang hoạt động |
| Currency | Currency của giao dịch và totals đã ghi nhận |
| Status history | Dòng trạng thái đã phát sinh, tạo cơ sở cho chăm sóc khách hàng và reporting |
các trường tùy chỉnh trong checkout cần được mapping theo ý nghĩa riêng. Một số values mô tả Customers, một số thuộc address, một số chỉ áp dụng cho một bản ghi Orders, và số khác là mã định danh của công ty hoặc delivery workflow bên ngoài. Đưa mọi checkout value vào hồ sơ Customers có thể tạo dữ liệu cũ hoặc sai; ngược lại, giữ mọi giá trị chỉ như text trên Orders có thể làm các business identifiers cần dùng lại trở nên khó truy cập.
Pricing, discounts, tax, shipping và payment có cả lớp bản ghi và lớp cấu hình
EShop hỗ trợ giá Products, pricing theo nhóm Customers, quantity discounts, coupons, vouchers, tax rates, geographic zones, currencies, shipping plugins và payment plugins. Mỗi khái niệm có hai vai trò khác nhau trong mô hình dữ liệu.
Thứ nhất, Orders trước đây chứa kết quả thương mại đã xảy ra: price đã tính, discount đã áp dụng, tax đã ghi nhận, shipping đã chọn, payment reference và currency totals. Thứ hai, Cửa hàng đích chứa các quy tắc và plugin configuration sẽ quyết định hành vi cho giao dịch mới.
| Khu vực thương mại | Bản ghi đã phát sinh | Cấu trúc vận hành hiện tại |
|---|---|---|
| Giá theo nhóm Customers | Price hoặc discount đã phản ánh trên mặt hàng trong Orders trước đây | Quan hệ pricing hiện tại giữa Products và group |
| Coupons hoặc vouchers | Code và tác động discount đã ghi trên Orders | Định nghĩa coupons/vouchers, eligibility, dates và remaining use |
| Tax | Tax amount và label đã ghi trên Orders | Tax class, tax rate, geo zone và current calculation rules |
| Shipping | Method label, charge, address và tracking context | Shipping plugin được bật và điều kiện tính phí hiện tại |
| Payment | Method label, transaction reference và status | Payment plugin được bật, credentials và cấu hình xử lý hiện tại |
| Currency | Currency và totals đã ghi trên Orders | Currencies đang publish và cách exchange rate vận hành hiện tại |
Tách hai lớp này giúp dữ liệu giao dịch trước đây không bị điều chỉnh theo các quy tắc hiện tại, đồng thời tránh coi một đơn hàng trước đây là cấu hình vận hành đầy đủ cho cửa hàng tương lai.
Dữ liệu thương mại đa ngôn ngữ và Joomla routes tạo thành một mô hình kết hợp
EShop hỗ trợ dữ liệu cửa hàng đa ngôn ngữ, còn Joomla cung cấp các quan hệ rộng hơn về content language, Menus, modules và routes. Products, Categories, Manufacturers, options, attributes, các trường tùy chỉnh, labels và storefront text có thể chứa giá trị riêng theo từng ngôn ngữ. Joomla Menu Items và modules có thể mở các routes hoặc nội dung hỗ trợ khác nhau cho mỗi ngôn ngữ.
Nếu Nền tảng nguồn lưu toàn bộ bản dịch trên một bản ghi Products, EShop có thể cần các giá trị riêng cho từng ngôn ngữ trên cùng bản ghi. Nếu nguồn dùng những bản ghi Products riêng cho mỗi ngôn ngữ, cần xác định association hoặc identifier giúp duy trì quan hệ tương đương. Interface translations và language overrides phải được tách khỏi nội dung nghiệp vụ đã dịch.
| Bản ghi ngôn ngữ hoặc route | Ý nghĩa ở Nền tảng đích |
|---|---|
| trường của Products/Categories đã dịch | Nội dung thương mại dành cho khách hàng trong một ngôn ngữ cụ thể |
| Joomla content language | Language assignment của website và component records |
| Menu Item theo ngôn ngữ | Điểm truy cập công khai, alias và navigation context của một ngôn ngữ |
| Module theo ngôn ngữ | Khối storefront hỗ trợ, chỉ hiển thị trong ngữ cảnh ngôn ngữ đã chọn |
| Interface language string | Text của extension/template, không phải nội dung Products/Categories |
| Alias và metadata của Products | Giá trị liên quan SEO/routing gắn với bản ghi thương mại tương ứng |
Bản ghi Products và route dùng để hiển thị Products cần tiếp tục được phân biệt. Joomla Menu Item có thể trỏ tới một EShop view và ảnh hưởng đường dẫn công khai, còn alias của Products và EShop router đóng góp phần route riêng. Chỉ dịch title của Products không đủ để duy trì mô hình kết hợp này.
Modules, templates, themes và layout overrides là các quan hệ trình bày
EShop có thể hiển thị Products qua component pages, Joomla modules, Joomla Articles, search, filters và custom layouts. Templates và overrides có thể thay đổi cách Products, Categories, cart, checkout và account được hiển thị mà không làm thay đổi bản ghi thương mại bên dưới.
| Đối tượng trình bày | Cách diễn giải trong mô hình dữ liệu |
|---|---|
| Module Products/Categories | Khối hiển thị có thể dùng lại và truy vấn dữ liệu EShop |
| Joomla Article nhúng đầu ra Products | Bản ghi nội dung chứa hoặc gọi một quan hệ với EShop |
| Template override | Cách render nội dung, không phải trường của Products có thể di chuyển trực tiếp |
| Theme hoặc layout setting | Cấu hình trình bày tách khỏi quyền sở hữu catalog |
| Filter hoặc search module | Giao diện khám phá dùng attributes của Products, Categories, Manufacturers hoặc dữ liệu đã index khác |
| Custom landing page | Nội dung Joomla/builder tham chiếu Products và Categories của EShop |
Sự phân tách này giúp catalog vẫn là nguồn dữ liệu chính ngay cả khi Nền tảng đích dùng page builder, template hoặc storefront layout khác.
Plugins, imports, custom tables và hệ thống bên ngoài mở rộng mô hình lõi
EShop hỗ trợ payment/shipping plugins, imports/exports, modules, các tích hợp, các trường tùy chỉnh và custom layouts. Cửa hàng vận hành lâu năm cũng có thể chứa modified tables, các kết nối SQL trực tiếp, scheduled synchronization, custom reports hoặc identifiers từ ERP, CRM, POS, accounting và fulfillment systems.
| Dấu hiệu dữ liệu do extension sở hữu | Cách cần diễn giải |
|---|---|
| Payment transaction reference | Quan hệ giữa Orders/payment trước đây có thể cần cho support hoặc reconciliation |
| Carrier hoặc fulfillment identifier | Quan hệ shipment/Orders được hệ thống bên ngoài sử dụng |
| Import key của Products | Stable identifier của Products hoặc option dùng cho đồng bộ lặp lại |
| Custom checkout table | Values thuộc Orders, Customers, address hoặc organization cần xác định chủ sở hữu rõ |
| External ID của Products hoặc Customers | Identifier phải tiếp tục gắn với bản ghi đích mà hệ thống kết nối nhận diện |
| Status hoặc metadata do plugin tạo | Ý nghĩa do plugin định nghĩa, không phải một trường của EShop thông thường |
Nền tảng đích không cần sao chép mọi table ở nguồn. Nhưng mỗi giá trị quan trọng với nghiệp vụ phải có chủ sở hữu rõ và có quyết định cụ thể về việc giá trị đó sẽ trở thành trường của EShop tiêu chuẩn, bản ghi do plugin sở hữu, quan hệ Joomla hay external-system reference.
Kết luận
Chuyển đổi sang EShop là quá trình chuyển ý nghĩa giữa các lớp catalog, giao dịch, Joomla, trình bày, plugins và hệ thống bên ngoài. Products, options, attributes, các trường tùy chỉnh, Customers, groups, addresses, Orders, các trường trong checkout, pricing, tax, shipping, payment, languages, Menu routes và modules đều có quyền sở hữu và quan hệ khác nhau.
Một mô hình đích nhất quán phải giữ những khác biệt này trước khi dữ liệu được biến đổi. Nhờ đó, lựa chọn của người mua vẫn gắn với đúng mặt hàng Products trong Orders; totals trước đây vẫn thuộc Orders tương ứng; nhóm thương mại không bị trộn với quyền Joomla; bản dịch vẫn gắn đúng commerce records; và external identifiers vẫn gắn với bản ghi mà các hệ thống kết nối sử dụng.
Câu hỏi thường gặp
Options và attributes của Products có giống nhau trong EShop không?
Hai cấu trúc này phục vụ mục đích khác nhau. Options thể hiện lựa chọn khách hàng có thể chọn và có thể xuất hiện trên mặt hàng đã mua. Attributes mô tả thông tin Products dùng cho chi tiết hoặc so sánh. các trường tùy chỉnh, tabs và attachments phục vụ các vai trò mô tả bổ sung.
Mọi variation của Products ở nguồn có nên trở thành EShop option không?
Chỉ nên dùng EShop option khi các bản ghi nguồn thực chất là những lựa chọn nằm trong một merchandising Products. Các SKUs riêng có URL, vòng đời, inventory, media hoặc external identity độc lập có thể cần tiếp tục là Products riêng hoặc cần thiết kế quan hệ parent-child có chủ đích hơn.
Joomla User groups có tương đương nhóm Customers của EShop không?
Hai loại group này không tương đương. Joomla User groups thường kiểm soát permission và access, còn nhóm Customers của EShop có thể thể hiện phân khúc thương mại như pricing khác nhau. Group từ Nền tảng nguồn cần được mapping theo chức năng thực sự được nhóm đó kiểm soát.
các trường tùy chỉnh trong checkout nên được lưu ở đâu?
Đích lưu phụ thuộc vào ý nghĩa. Giá trị nhận diện có thể dùng lại có thể thuộc Customers hoặc organization; giá trị địa chỉ thuộc address; còn instructions hoặc references chỉ liên quan một giao dịch nên thuộc Orders.
Orders trước đây có quyết định cách tax, shipping và payment hoạt động trong tương lai không?
Orders trước đây chỉ giữ amounts, labels, references và lựa chọn đã ghi nhận tại thời điểm mua. Cách tính và xử lý giao dịch tương lai phụ thuộc vào các quy tắc hiện tại và plugins được bật ở Nền tảng đích.
Joomla Menu Items quanh Products và Categories của EShop nên được xử lý như thế nào?
Menu Items nên tiếp tục là bản ghi routing và navigation trỏ tới EShop views. Chúng có thể ảnh hưởng aliases, hierarchy, language, access và template context, nhưng không thay thế bản ghi Products hoặc Categories bên dưới.