Sitecore Commerce 8.1 powered by Commerce Serverを使用してSitecore Reference Storefront サンプルコマースサイトを構築する part5

samatsu 8/24/2016 1207 N/A SCpbCS81Setup

前のパートでSitecore上に必要なアドオンモジュールもインストールしたので、インテグレーション作業を実施します。

1.Commerce Serverのサイトを作成

Commerce Server上でカタログなどのリソースを管理するサイトを定義します。今回は、デフォルトのCSSolutionStorefrontSiteという名前でサイトを定義します。今回のセットアップで使用するサイトの名前は SitecoreのWebsite\App_Config\CommerceServer.Core.config の siteName属性 に CSSolutionStorefrontSite という名前でSitecore Commerceのサイト名が指定されています。

PowerShellを起動して、サイトコアのWebsiteフォルダー(今回の例ではC:\inetpub\wwwroot\storefront\Website)に移動します。Initialize-CSSite コマンドレットを実行します。

Initialize-CSSite

Initilize-CSSiteの動作に関しては次のURLを参照
http://commercesdn.sitecore.net/SCpbCS81/SitecoreCommerceDeploymentGuide/en-us/index.html#c_SetupCS_Site_PowerShell.html
 

Initialize-CSSiteを使用すると Webサイトのフォルダーをチェックして自動的にリソースの作成やSitecore Webサイトのアプリケーションプールのユーザーに対してCommerce用のデータベースを含め適切な権限の設定を行ってくれます。サンプルサイトを構築する上で便利なコマンドレットです。

細かいステップで分けて詳細にコントロールしたい場合は次のURLのコマンドレットを参照します
http://commercesdn.sitecore.net/SCpbCS81/SitecoreCommerceDeploymentGuide/en-us/index.html#c_PowerShellCmdLets.html

2.Webサービスの作成

次に、Desktop Businessツールで使用するWebサービスを作成していきます。前回、 csservicesという名前でWebサービス用のフォルダーを作成したことを思い出してください。

次のコマンドレットを実行します。アプリケーションプールの名前やアプリケーションプールのユーザー名のアカウント、パスワードは適宜読み替えてください。本来は各リソース用に別々のアプリケーションプールとユーザーを使用するのがベストプラクティスですが、今回は CSIisWebSvcというユーザーとcsWebSvcAppPoolというアプリケーションプールを共通して使用します。

New-CSWebService -Name "CSSolutionStorefrontsite" -Resource Catalog -IISSite "csservices" -Identity "WIN-570DUEDSDHQ\CSIisWebSvc" -Password "XXXX" -AppPool "csWebSvcAppPool"
New-CSWebService -Name "CSSolutionStorefrontsite" -Resource Orders -IISSite "csservices" -Identity "WIN-570DUEDSDHQ\CSIisWebSvc" -Password "XXXX" -AppPool "csWebSvcAppPool"
New-CSWebService -Name "CSSolutionStorefrontsite" -Resource Profiles -IISSite "csservices" -Identity "WIN-570DUEDSDHQ\CSIisWebSvc" -Password "XXXX" -AppPool "csWebSvcAppPool"
New-CSWebService -Name "CSSolutionStorefrontsite" -Resource Marketing -IISSite "csservices" -Identity "WIN-570DUEDSDHQ\CSIisWebSvc" -Password "XXXX" -AppPool "csWebSvcAppPool"

Grant-CSManagementPermissions コマンドレットを実行して、アプリケーションプールのユーザーにデータベースなどへの適切な管理権限を付与します。

Grant-CSManagementPermissions -Name "CSSolutionStorefrontsite"  -Identity "WIN-570DUEDSDHQ\CSIisWebSvc"

これでWebサービスの準備が完了です。実際にはサンプルを動かす上では特にWebサービス必要ないのですが、せっかくなのでセットアップしました。

3.プロファイル情報を暗号化するキー情報の生成

プロファイルにセンシティブな情報を記録する場合に暗号化に使用するキー情報の登録を行います。

プロファイルを暗号化するキーのセットアップ手順について次のページも参照してください
http://commercesdn.sitecore.net/SCpbCS81/SitecoreCommerceDeploymentGuide/en-us/index.html#ConfigEncryptionKeysProfilesSystem.html
http://commercesdn.sitecore.net/SCpbCS81/SCpbCSRefSfGuide/en-us/index.html#GenerateProfileEncryptionKeys.html#concept_ybq_dlc_kt

Win+Q で検索画面を表示し、検索ボックスに Tooks command prompt を入力します。

コマンドプロンプトが起動するので、適当なディレクトリに移動します。今回はC:\Toolsフォルダを作業フォルダとしています。

次のコマンドを実行して暗号化に使用するキーを生成します。ここで生成したファイルは本番環境の場合は第三者に触れないように大切に保管してください。

ProfileKeyManager.exe /kn /o "profileEncryptionKeys.xml" /f

キーはDPAPIを使用して暗号化してレジストリに保存します。次のコマンドを実行します。

ProfileKeyManager.exe /ke /kf "profileEncryptionKeys.xml" /reg HKEY_LOCAL_MACHINE\SOFTWARE\CommerceServer\Encryption\Keys\CSSolutionStorefrontSite /f
ProfileKeyManager.exe /ke /kf "profileEncryptionKeys.xml" /reg HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\CommerceServer\Encryption\Keys\CSSolutionStorefrontSite /f

レジストリのパスをメモし、 Profiles Webサービスと、Sitecoreのサイトでレジストのエントリを使用するように設定を編集します。

C:\inetpub\wwwroot\csservices\CSSolutionStorefrontsite_ProfilesWebService 配下の Web.config を開きます。profileWebServiceタグに publicKey, publickKey1, keyIndex を追加します。レジストリのパスは適宜変更します。

publicKey="registry:HKEY_LOCAL_MACHINE\SOFTWARE\CommerceServer\Encryption\Keys\CSSolutionStorefrontSite,PublicKey"   
privateKey1="registry:HKEY_LOCAL_MACHINE\SOFTWARE\CommerceServer\Encryption\Keys\CSSolutionStorefrontSite,PrivateKey"    
keyIndex="1"

SitecoreのWebsite\App_Config\CommerceServer.Core.config を開いて、 profiles/encryption セクションが次のようになっていることを確認します。異なる場合は、レジストリのパスを適宜変更してください。

<keys keyIndex="1">
    <add type="publicKey" value= "registry:HKEY_LOCAL_MACHINE\SOFTWARE\CommerceServer\Encryption\Keys\CSSolutionStorefrontSite,PublicKey" />
   <add type="privateKey1" value="registry:HKEY_LOCAL_MACHINE\SOFTWARE\CommerceServer\Encryption\Keys\CSSolutionStorefrontSite,PrivateKey" />
</keys>

ここの keyIndex, publickKey, publicKey1 の値は、 ProfileWebServiceのWeb.configで指定した値と同じです。レジストリのパスを変更している場合は、適宜パスを変更してください。

4.プロファイルデータベースの拡張

Sitecoreとのインテグレーション用にprofileデータベースを拡張します。Reference Storefront のzipファイルに dacpac が用意されているのでこのdacpac を使用します。

コマンドプロンプトを起動して、次のコマンドを実行します。

"C:\Program Files (x86)\Microsoft SQL Server\120\DAC\bin\SqlPackage.exe" /Action:Publish /SourceFile:".\Commerce.Storefront.ProfileDatabase.dacpac" /TargetDatabaseName:CSSolutionStorefrontSite_profiles /TargetServerName:(local)

5.画像のアップロード

画像が格納されたパッケージをインストールします。Reference StorefrontのzipファイルのSCpbCS\Packages に Advanture Works Images.zip ファイルがあるので、インストールパッケージウィザードからインストールします。

6. web.configのマージ

SitecoreのWebsite\MergeFilesにWeb.configにマージする必要のあるファイルが配置されています。次のファイルを Website\Web.config にマージします。

  • Merge.CommerceServer.config
  • Merge.Commerce.Storefront.config

さらに、次のファイルを Website\Views\Web.config にマージします。

  • MergeFiles\Views\Merge.web.config

とりあえずここまででOKです。ほぼ完了です。

最後のパートでアイテムの修正などの後処理と動作確認を行います。