チュートリアル : Address Editorのレンダリングのカスタマイズ
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
このチュートリアルでは、アドレス帳コンポーネントに新しいアドレス フィールドを追加して 、アドレス エディタ のレンダリングをカスタマイズする方法について説明します。

SXA Storefrontの基本的なMVCアーキテクチャを次の図に示します。他のMVCレンダリングと同様に、フロントエンドとバックエンドの両方のコンポーネントが含まれています。フロントエンドは、ViewファイルとJSスクリプト (Commerce基本テーマの一部) で構成されます。

このチュートリアルでは、次の方法について説明します。
Address Editorコンポーネントの拡張
Address Editorコンポーネントの拡張
レンダリングをカスタマイズするには、まずAddress Editorコンポーネントを拡張する必要があります (Address2という名前の新しいテキストフィールドを追加するなど)。
Address Editorコンポーネントを拡張するには:
-
Visual Studioで、種類がclass libraryの新しいプロジェクトを作成します。
-
Modelsフォルダに、標準のStorefront AddressEditorInputModelクラスを継承するMyAddressEditorInputModelという新しいクラスを作成し、次のコードを追加します。
このコード スニペットは、コンポーネントToPartyEntityメソッドを、元の実装を呼び出してからAddress2プロパティをマップする新しい実装でオーバーライドします。
-
AccountAddressControl.csファイルで、新しいビュー モデルを受け入れるエンドポイントを作成します。
メモこのコード スニペットには、基本コンストラクターの呼び出しが含まれています。
-
次のコードを含む パッチ ファイル (この例ではSitecore.Commerce.XA.Samples.AddressEditorExtensions.config) を使用して、新しいコントローラーとモデルをIoCに登録します。
-
ビューをカスタマイズするには、レンダリングに新しいフィールドを表示するマークアップを追加し、デフォルトのレンダリング/ビュー AddressEditor.cshtmlをカスタム ビュー フォルダにコピーして、以下を追加します。
-
基本テンプレートのScriptsフォルダーから、コンポーネントのJSファイルをダウンロードします。
コンポーネントのJSロジックは、/sitecore/media library/Base Themes/Commerce Components Themeにある基本テンプレートに含まれています。
-
account-address-editor-model.jsファイルを変更し、必要な変更を適用して、Address2フィールドバインディングをノックアウトビューモデルに追加します。これを行うには、AddressEditorItemViewModel (アドレス) を更新し、Address1フィールド初期化行の直後に次の行を追加します。
-
変更したファイルをアップロードし、ベーステーマの既存のファイルを上書きします。
レンダリングデータソースのカスタマイズ
レンダリングデータソースのカスタマイズ
新しいカスタムフィールドのラベルとツールチップを表示するには、レンダリングデータソースをカスタマイズする必要があります。
データソースをカスタマイズするには:
-
カスタマイズしたレンダリングを保存する新しいフォルダを作成するには、コンテンツ エディタでsitecore/Templates/Featureフォルダを右クリックし、Insert, Template folderをクリックします。
大事なSitecoreのアップグレードがインストールされたときにレンダリングが上書きされないように、カスタマイズされたレンダリング用に新しいフォルダーを作成することをお勧めします。
-
Messageウィンドウで、フォルダの名前を入力し、OKをクリックします。
-
コンテンツ ツリーで、新しく作成したフォルダを選択し、FolderタブでNew Templateをクリックします。
-
Nameフィールドで、テンプレートの名前を指定し、基本テンプレートとしてデフォルトのAddress Editorデータ ソース テンプレート (/sitecore/templates/Feature/Commerce Experience Accelerator/Account/Datasource/Address Editor) を選択し、Nextをクリックし、Locationページで、新しく作成したフォルダを場所として受け入れ、NextをクリックしてからCloseをクリックします。
-
手順5で作成したテンプレートを選択し、Builder タブで 住所2 の新しい簡易テキスト フィールドを追加します。
-
変更を保存します。
-
サイトのDataフォルダーで、新しく作成したデータ ソース テンプレートに基づいて新しいコンテンツ アイテムを作成し、それをデータ ソースとして使用するようにアドレス エディターのレンダリングを構成します。
プロパティ マッピングをViewモデルに追加する
プロパティ マッピングをViewモデルに追加する
アドレス帳コンポーネントのAddress2フィールドを表示するには、コンポーネントのビューモデルにプロパティマッピングを追加します。
プロパティマッピングをViewモデルに追加するには:
-
既定のSitecore.Commerce.XA.Feature.Account.Models.JsonResults.AddressItemJsonResultを継承するMyAddressItemJsonResultという新しいモデルを作成し、Initializeメソッドをオーバーライドします。
-
Sitecore.Commerce.XA.Feature.Account.Models.JsonResults.AddressItemListJsonResultを継承するAddressItemListJsonResultという別のモデル クラスを作成し、Initialize メソッドをオーバーライドします。
-
IoCのAddressItemListJsonResult登録をオーバーライドして、導入された新しい実装を使用し、以前に作成したパッチ ファイル(Sitecore.Commerce.XA.Samples.AddressEditorExtensions.config)に追加します。
-
プロジェクトをコンパイルします。
-
.dllファイルをサイトのbinフォルダーにコピーし、view .chtmlファイルを対応するカスタム ビュー フォルダーにコピーします。
-
カスタマイズしたコンポーネントを含むページを再読み込みします。