1. 足場

Commerceテナントとサイトのスキャフォールディングのカスタマイズ

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

テナントとサイトのスキャフォールディングに 用意されているテンプレートとスクリプト を追加または変更できます。これにより、たとえば、テナントまたはサイトを作成するときに、新しいモジュールを選択するだけで、新しいページを追加したり、新しいスクリプトを自動的に実行したりできます。テナントまたはサイトに新しいモジュールを追加することで、既存のサイトに同じ更新を行うことができます。

スキャフォールディング計画の管理

スキャフォールディング プランは、PowerShell Script Resultsダイアログ ボックスのコマンドを使用して管理します。

スキャフォールディング プランを管理するには、次のようにします。

  1. コンテンツ エディターで、更新するスキャフォールディング プランに移動します。たとえば、Storefront Components Scaffolding Planを変更するには、/sitecore/System/Settings/Feature/Commerce Experience Accelerator/Storefront Components/Storefront Components Scaffolding Planに移動します。

  2. スキャフォールディング プランを右クリックし、Scripts, Edit Scaffolding Planをクリックします。

    プランで管理されている項目は、PowerShell Script Resultsダイアログ ボックスに表示されます。

    Powershell Script Results dialog box showing available commands.
  3. スキャフォールディング プラン エディタ (PowerShell Script Resultsダイアログ ボックス) で、次のいずれかのコマンドを使用します。

    • View- フィールドと関連する値を表示します。次の例では、Habitat Catalog Scaffolding Planの Catalog Configuration ソース項目を表示します。Reference Value列には、ブランチ テンプレート ノードの下の元のフィールド値が表示されます。 Dynamic Value列には、参照値のトークン化された形式が表示されます。トークン化は、相対リンクと相対値を解決するために使用されます。

      Powershell Script Results
    • Add - 新しいスナップショット項目を追加します。ソース アイテム (ブランチ テンプレートの下のアイテム) と参照アイテム (サイトの下の対応するアイテム) を定義する必要があります。たとえば、Addを使用して、新しいページをスキャフォールディングに追加します。「 Add」をクリックすると、ソース・アイテムと参照アイテムを指定するよう求められます。また、標準フィールドを含めるかどうか、スナップショットに含めるフィールドとスナップショットから除外するフィールドを指定するよう求められます。

    • Remove - スナップショット項目を削除します。

    • Update Item - 既存のスナップショット アイテムのフィールドと関連する値を更新する。たとえば、ログイン ページ (参照アイテム) を変更し、プラン (ソース アイテム) のログイン ページを新しいバージョンに置き換える場合は、Update itemを使用します。

    • Update Plan - 既存のプランに含まれるアイテムを更新する。 Update Planをクリックすると、プランを更新するテナントまたはサイトを選択するように求められます。

    • Deploy Plan - プラン内のアイテムを実行するため、つまり、新しいサイトにアイテムを追加するか、すでにアイテムが存在する場合はそれらを置き換えることを意味します。 Deploy Planをクリックすると、プランをデプロイするテナントまたはサイトを選択するように求められます。

サイトのスキャフォールディング プランに新しいページを追加する

この手順では、新しいページをサイト スキャフォールディング プランに追加する方法の例を示し、Storefrontサイト テンプレートとHabitatカタログを使用します。

サイトのスキャフォールディング プランに新しいページを追加するには:

  1. コンテンツエディターで、sitecore/Content/<tenant>/Storefront/Home/Landing Pagesに移動し、ランディングページを右クリックしてInsert, From templateをクリックし、/sitecore/templates/Project/<tenant> に移動して使用するページテンプレートを選択し、Insertをクリックします。

  2. 新しいページをブランチ テンプレートにコピーするには、ツリー ビューで新しいページを右クリックしてCopying, Copy Toをクリックし、/sitecore/Templates/Branches/Project/Commerce Experience Accelerator/<site>/Pages/<site> Pages/Home/Landing Pagesに移動してCopyをクリックします。

  3. この新しくコピーしたアイテムのテンプレートを /sitecore/Templates/Branches/Foundation/Commerce Experience Accelerator/Commerce Foundation/Tenant Templates/Pageに変更します。

  4. 新しいページをサイトのスキャフォールディングに追加するには、コンテンツ エディターで /sitecore/System/Settings/Project/Commerce Experience Acceleratorに移動し、Storefront Template Scaffolding Planを右クリックしてScripts, Edit Scaffolding Planをクリックします。

    新しいページの場所 ( FoundationFeature、またはProjectフォルダー内) は 、ヘリックス の原則によって決定されます。

  5. Powershell Script Resultsダイアログ ボックスのリボン メニューで、Addをクリックします。

  6. Create New Item Snapshotダイアログボックスで、Source Itemフィールドをクリックし、Branches/Project/Commerce Experience Accelerator/Storefront/Pages/Storefront Pages/Home/Landing Pages/<New page>に移動します。

  7. Reference Itemフィールドをクリックしてsitecore/Content/Sitecore/Storefront/Home/Landing Pages/<New page>に移動し、Createをクリックします。

    次に新しいサイトを作成すると、新しいページが自動的にサイトに追加されます。

    New page displayed in the Content Editor for the new site.

カスタムのスキャフォールディングプランを作成する

以下の大まかな手順に従って、カスタマイズされたアイテムを含むスキャフォールディング プランを作成し、それを新規または既存のサイトに配置します。

カスタム・スキャフォールディング・プランを作成するには:

  1. コンテンツ エディタで、sitecore/System/Settings/<Feature or Foundation>/Project/<module> に移動します。

  2. /sitecore/Templates/Foundation/Commerce Experience Accelerator/Scaffolding/Scaffolding Planテンプレートに基づいて、スキャフォールディング・プラン定義アイテムを作成します。

    プランに、一般的な機能または目的を示す適切な名前があることを確認します。次の例では、Demo Scafffolding PlanはCommerce Experience Acceleratorフォルダにあります。

    Scaffolding Plan definition item
  3. プラン展開スクリプトを作成し、/sitecore/System/Modules/PowerShell/Script Library/Commerce Experience Accelerator/Functions/Commerce Site Features/Scriptsフォルダーに配置します。

  4. 次のコードをプラン展開スクリプトに貼り付けます。

    メモ

    コード内の[ID of Scaffolding plan definition]を、作成したプラン定義アイテムのIDに置き換えます。

    Import-Function Deploy-ScaffoldingPlan
    
    function Invoke-ModuleScriptBody {
        [CmdletBinding()]
        param(
            [Parameter(Mandatory = $true, Position = 0 )]
            [Item]$Tenant,
            
            [Parameter(Mandatory = $true, Position = 1 )]
            [Item[]]$TenantTemplates
            )
     
            begin {
                Write-Verbose "Cmdlet Invoke-ModuleScriptBody - Begin"
            }
     
            process {
                Write-Verbose "Cmdlet Invoke-ModuleScriptBody - Process"
                $Plan = Get-Item master: -ID [ID of Scaffolding plan definition]
                $result  = Deploy-ScaffoldingPlan $Plan $Tenant
            }
            
            end {
                Write-Verbose "Cmdlet Invoke-ModuleScriptBody - End"
            }
    }

    スキャフォールディング プラン定義のIDは、次の図に示すように、デプロイ スクリプトで処理されます。

    Example of a scaffolding plan deployment script
  5. このアクションを含めるスキャフォールディング プランの下にタイプExecuteScriptの新しいスキャフォールディング アクションを作成するには、モジュールを右クリックしてInsert, Execute Site Scriptをクリックします。

    次の図では、新しいスキャフォールディング プランはDemo Scaffolding Moduleと呼ばれ、新しいアクションはDeploy scaffolding planです。

    Demo scaffolding module and plan
  6. ツリー ビューで、スキャフォールディング アクション (スキャフォールディング プランのデプロイ など) をクリックし、ContentタブのScriptセクションで スキャフォールディング プランのデプロイ スクリプトの場所に移動し、ダブルクリックしてSelectedリストに移動します。

    Deployment script selected
  7. 変更を保存します。

この記事を改善するための提案がある場合は、 お知らせください!