Connect製品データモデル
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Connect製品データモデルのアーキテクチャの背後にある理論的根拠は次のとおりです。
-
特定されたエンドユーザーシナリオを満たす製品データモデルを持つこと。
-
使用する外部コマースシステム(ECS)に関係なく、単一の共通の商品データモデルを持つこと。
-
異なるソリューション間で同じモデルを持つことで、ソリューション開発者にとってより簡単になります。
-
データモデルは外部のコマースシステム間で同じままであるため、UIコンポーネント開発者にとって構築と保守が容易なコンポーネントを持つこと。
製品データは複雑で、ConnectではSitecoreの1つの製品と1つのアイテムの間に1対1のマッピングはありません (ECSの製品データが1つのSQLテーブルに保存されないのと同じです)。
1つの製品のデータは、複数のSitecoreアイテムで構成されます。CMSアイテムと混同しないように、このドキュメントとConnectではCMSアイテムをentities と呼びます。
Connectでは、製品データモデルは次のように設計されています。
-
一般的なeコマース シナリオの強固な基盤を提供します。
製品データをSitecoreに取り込む主な理由は、データを強化し、メディア、Web、モバイル、印刷物などのさまざまなショップやチャネルで提示することです。
製品データは、有効性を確保し、シナリオを構築するための健全な基盤を提供し、シナリオを実現できるように、正規化する必要があります。
製品のデータは、複合構造として格納されます。製品を表す製品テンプレートに基づくメインコンテンツアイテムがあり、ID、名前、説明、タイプなどの共有汎用フィールドのみが含まれます。製品アイテムの下には、仕様、リレーションシップ、およびリソースを含むサブツリー構造があります。さらに、製品がリンクするいくつかの関連リポジトリ (製造元、製品の種類など) があります。
-
冗長な製品データを避ける
冗長なデータが多すぎる (たとえば、1つの製品のすべてのデータを1つのSitecoreアイテムに保存するなど) と、Sitecoreでデータを手動で同期して更新する必要があり、これを維持するのが難しくなります。
代わりに、メーカー情報、部門、仕様などの共有データには個別のリポジトリが使用され、リンクによって参照されます。これは、正規化された製品データがSQLデータベース内の別々のテーブルに格納され、外部キーを持つ参照に格納される方法と似ています。
-
製品データの同期を最小限に
冗長なデータを避けることで、同期するデータの量が最小限に抑えられます。また、ECSからすべての製品データが必要なわけではありません。次のセクションで説明するシナリオを実行するために必要な製品データのみが同期され、Sitecoreに保存されます。
-
一般的なカスタムモデルの実装の問題を回避する
製品データを複合製品構造に分割し、データを別々のリポジトリに配置することで、最も一般的な実装の問題を回避できます。次のような問題があります。
-
フラットモデル
フラットモデルでは、1つのアイテムが製品を表します。製品データを構成するために複数のアイテムを構成しない場合、モデルは次のことを行います。
-
シンプルに、必要な情報をたくさん見逃してしまいます。
-
未使用のフィールドを多数用意するか、多数のテンプレートを使用して、さまざまな製品タイプをすべてカバーします。どちらもベストプラクティスではありません。
-
類似の商品やバリエーションの冗長なデータが多数ある。
-
データをカスタムフィールドタイプに強制するか、カスタムスキームを使用してデータをエンコードします。
-
-
冗長データ
共有情報を格納するための個別のリポジトリがなければ、冗長な情報は避けられません。
-
テンプレートが多すぎます
商品タイプごとに個別のテンプレートを使用すると、多数の異なる商品ではすぐに管理しにくくなります。
-
拡張が難しい
1つの商品に対して1つのアイテムがあり、複数のアイテムを組み合わせて商品データを構成しない場合、カスタムデータでの拡張が難しくなります。
-
冗長なデータのコンテンツ編集には時間がかかります
CMS 7の新機能を活用することで、カスタム製品インデックスに対するLinqベースの検索などのバケットや機能を使用し、新しいハイドレーションモデルを通じて製品オブジェクトを返すことができます。HydrationモデルはNHydrateとNhibernateに似ています。詳細については、最新バージョンのSitecoreのデータ定義APIクックブックを参照してください。
製品データを人工的な構造の単一のアイテムに強制するのではなく、ECSの統合、カスタマイズ、拡張を容易にする複合構造により、データをより自然な方法で保存します。