事前定義のCommerce Engineミニオン

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

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

Commerce Engineプラグインは、インデックス作成や注文フロー処理など、さまざまなタイプの処理で重要な役割を果たすデフォルトのミニオンを提供します。このトピックでは、デフォルトで定義されるミニオンについて説明します。

Sitecore Webインデックスとマスター インデックスのミニオンのインデックス作成

カタログ プラグインは、カタログ エンティティ (カタログ、カテゴリ、販売可能商品など) の完全または増分インデックス作成を担当するミニオンを定義します。Sitecoreが使用する検索プロバイダー (Solrなど) は、SitecoreのWebインデックスまたはマスター インデックスを再構築するときにCommerce Engineによってインデックス化されたカタログ エンティティを使用して、Sitecore Content Editorとストアフロント ユーザーに最新の検索結果を提供できます。

ItemFullIndexMiniオン

ItemFullIndexMinionミニオンは、Commerce Engineのすべてのカタログ エンティティのインデックスを再作成し、Sitecoreマスター インデックスとWebインデックスに含めることができるようにします。ミニオンは、ユーザーがSitecoreコントロール パネルまたはPostmanサンプル リクエストを使用してSitecoreマスターまたはWebインデックスの完全な再構築を要求したときに手動で呼び出されます。

ItemIncrementalIndexMiniオン

ItemIncrementalIndexMinionミニオンは10分ごとに実行され (デフォルトのインデックス更新戦略で定義)、Sitecoreマスター インデックスとWebインデックスを最新の状態に保つ役割を担い、Sitecoreアイテムの検索結果に新規、更新、または削除されたカタログ エンティティを含めることができるようにします。PostmanでRun IncrementalIndex Minion - Storefront (Master) 要求を呼び出して、増分インデックスの再構築を手動でトリガーできます。

Business Tools検索用のミニオンのインデックス作成

検索プラグインは、Commerceエンティティ (注文、顧客、カタログ アイテムなど) のインデックス作成のタスクを実行するミニオンを提供します。Business Toolsにサービスを提供する検索プロバイダー (Solrなど) は、Commerceインデックスを使用して検索結果をBusiness Toolsユーザーに返すことができます。

フルインデックスミニオン

FullIndexMinionミニオンは、リスト内のすべてのアイテムにインデックスを付けます。オンデマンドで実行され、IPrepareFullIndexMinionPipelineIFullIndexMinionPipelineを呼び出してインデックス作成機能を実行します。

FullIndexMinionミニオンは、CatalogsCategoriesSellableItemsの3つのリストを監視します。次に、PlugIn.Minions.PolicySet-1.0.0.jsonファイル内のFullIndexMinion定義の例を示します。

{
        "$type": "Sitecore.Commerce.Core.MinionPolicy, Sitecore.Commerce.Core",
        "ListsToWatch": [
          "Catalogs",
          "Categories",
          "SellableItems"
        ],
        "FullyQualifiedName": "Sitecore.Commerce.Plugin.Search.FullIndexMinion, Sitecore.Commerce.Plugin.Search",
        "ItemsPerBatch": 1000,
        "Entities":
 {          "$type":
 "System.Collections.Generic.List`1[[System.String, mscorlib]], mscorlib",
          "$values": [
            "Sitecore.Commerce.Plugin.Catalog.Catalogs, Sitecore.Commerce.Plugin.Catalog",
            "Sitecore.Commerce.Plugin.Catalog.Category,
 Sitecore.Commerce.Plugin.Catalog",
            "Sitecore.Commerce.Plugin.Catalog.SellableItem, Sitecore.Commerce.Plugin.Catalog"
          ]
     }
},

インクリメンタルインデックスミニオン

IncrementalIndexMinionミニオンは、インデックスで更新が必要な新しいアイテムを監視します。3分ごとに実行され、IPrepareIncrementalIndexMinionPipelineIncrementalIndexMinionPipelineを呼び出します。

DeleteIndexMinion (インデックスミニオン)

DeleteIndexDocumentsMinionミニオンはリストを監視します。3分ごとに実行され、IPrepareDeleteIndexDocumentsMinionPipelineパイプラインとIDeleteIndexDocumentsMinionPipelineパイプラインを呼び出します。

たとえば、DeletedCustomersIndexDeletedCatalogItemsIndexなど、すぐに使用できるその他のミニオンは、検索インデックスからさまざまなエンティティ リストを削除します。

コマース注文ミニオン

注文プロセス ミニオン は、注文が初期pendingステータスから最終注文completedステータスに移行するときに、注文をリストからリストに移動するという、注文プロセス フロー全体で重要な役割を果たします。

パージカートミニオン

PurgeCartsMinionミニオンは、放棄されたカートまたは空のカートが事前定義されたしきい値に基づいて削除の対象になった後、データベースからカートを削除するメンテナンス プロセスとして実行されます。

PurgeCartsMinionミニオンはカートのリストを監視し("ListsToWatch": "Carts")、24時間ごと("WakeupInterval": "01.00:00:00")に実行します。

PurgeCartsPolicy構成によって、ミニオンが空のカートまたは放棄されたカートをカート リストから削除するしきい値(日数)が決まります。次の例は、サンプルPlugin.AdventureWorks.CommerceMinions.jsonファイル (Sitecore.Commerce.Engine.SDKの一部としてパッケージ化) で定義されているポリシー設定を示しています。

{
 "$type":"Sitecore.Commerce.Plugin.Carts.PurgeCartsPolicy, Sitecore.Commerce.Plugin.Carts",
 "AbandonedCartsThreshold": 14,
 "EmptyCartsThreshold": 2
},

前述のポリシー定義に基づきます。

  • 放棄されたカートは、14日間操作がないと削除の対象となります。

  • 空のカートは、2日間操作がないと削除の対象となります。

PurgeCartsMinionミニオンはIPurgeCartsMinionPipelineパイプラインを呼び出します。

カタログ ミニオンのパージ

PurgeCatalogsMinionミニオンは、削除されたカタログをデータベースからパージするメンテナンス プロセスとして実行されます。カタログを削除すると (たとえば、Business Toolsユーザー・インターフェースを使用したり、Postmanのサンプル・Delete Catalog・リクエストを使用)、カタログは削除されたカタログのリストに配置されます。カタログのパージ ミニオンは、そのリストを監視し ("ListsToWatch": "PurgeCatalogs")、リストされた削除されたカタログのデータベースを一定の間隔でパージします。デフォルトでは、ミニオンは5分ごとに実行されます。

メモ

Sitecore XC Business Toolsでは、削除されたカタログは、パージ カタログ ミニオンが実行されてデータベースから効果的に削除されるまで、検索結果に表示され続けます。

削除されたカタログがデータベースからパージされると、次のようになります。

  • 削除されたカタログにのみ関連付けられているSellable商品は、データベースから削除されます。

  • 削除されたカタログに関連付けられているカテゴリも、データベースからパージされます。

次の例は、Plugin.Minions.PolicySet-1.*.*.jsonファイルで定義されているデフォルトのPurgeCatalogsMinionsポリシーを示しています。

{ 
  "$type": "Sitecore.Commerce.Core.MinionPolicy, Sitecore.Commerce.Core",
  "WakeupInterval": "00:05:00",
  "ListsToWatch": [
    "PurgeCatalogs"
  ],
  "FullyQualifiedName": "Sitecore.Commerce.Plugin.Catalog.PurgeCatalogsMinion, Sitecore.Commerce.Plugin.Catalog",
  "ItemsPerBatch": 10,
  "SleepBetweenBatches": 500
},
手記

PostmanでRun Purge Catalogs Minion要求を実行して、削除されたカタログをデータベースから強制的にパージできます。

大規模なカタログをパージする際の考慮事項

PurgeCatalogsMinionミニオンとPurgeCategoriesMinionミニオンは、トランザクション プロセスとして実行されます。これらはSystem.Transactions.TransactionScopeクラスに基づいており、データベースからカタログまたはカテゴリを削除するためにSitecore.Commerce.Core.Commands.CommerceCommand.PerformTransaction()メソッドを使用します。

MachineSettingsSection.MaxTimeoutプロパティは、トランザクションがタイムアウトするまでの最大時間を設定します。タイムアウトのデフォルト値は10分です。データベースから非常に多くのエンティティをパージすると、パージ操作が完了する前にトランザクションがタイムアウトする可能性があります。タイムアウト エラーを回避するには、MachineSettingsSection.MaxTimeoutプロパティの値を変更することを検討してください。パージ操作を実行する前にカタログからカテゴリを削除すると、タイムアウトエラーを回避するのにも役立ちます。

手記

replaceモードを使用してカタログのインポート要求を呼び出すと、コマンドはバックグラウンドでPurgeCatalogsMinionミニオンもトリガーします。これは、置き換えられる既存のカタログを削除するために必要です。大規模なカタログのインポート操作中にMachineSettingsSection.MaxTimeoutプロパティの値を変更すると、タイムアウト エラーを回避できます。

パージカテゴリミニオン

このPurgeCategoriesMinionは、削除されたカタログ・カテゴリをデータベースからパージする保守プロセスとして実行されます。カテゴリがカタログから削除されると (たとえば、Business Toolsユーザー インターフェイスを使用したり、PostmanのサンプルDelete Categoryリクエストを使用したり)、削除されたカテゴリのリストに配置されます。カテゴリのパージ ミニオンは、そのリストを監視し ("ListsToWatch": "PurgeCategories")、リストされた削除されたカテゴリのデータベースを一定の間隔でパージします。デフォルトでは、ミニオンは5分ごとに実行されます。

手記

Sitecore XC Business Toolsでは、削除されたカテゴリは、パージ カテゴリ ミニオンが実行されてデータベースから効果的に削除されるまで、検索結果に引き続き表示されます。

次に、Plugin.Minions.PolicySet-1.*.*.jsonファイルで定義されているデフォルトのPurgeCategoriesMinionポリシーの例を示します。

 {
   "$type": "Sitecore.Commerce.Core.MinionPolicy, Sitecore.Commerce.Core",
   "WakeupInterval": "00:05:00",
   "ListsToWatch": [
     "PurgeCategories"
   ],
   "FullyQualifiedName": "Sitecore.Commerce.Plugin.Catalog.PurgeCategoriesMinion, Sitecore.Commerce.Plugin.Catalog",
   "ItemsPerBatch": 10,
   "SleepBetweenBatches": 500
 },
手記

PostmanでRun Purge Categories Minion要求を実行して、削除されたカテゴリをデータベースから強制的に消去できます。

アーカイブエンティティミニオン

このArchiveEntitiesMinionは、キャンセルまたは完了した注文、古い注文仕訳入力など、適格性に基づいてCommerceエンティティをアーカイブ するメンテナンス プロセスとして実行されます。

PlugIn.Minions.PolicySet-1.0.0.jsonファイルでは、ArchiveEntitiesMinionミニオンの2つのインスタンスが定義され、それぞれがCommerceエンティティ タイプ (注文エンティティと仕訳入力エンティティ) のアーカイブを担当します。

サンプル ミニオン ポリシー セット ファイルへのパスはwwwroot/data/Environments/PlugIn.Minions.PolicySet-1.0.0.jsonです。

手記

エンティティのアーカイブはデフォルトで無効になっており、エンティティのアーカイブポリシーを更新することで、エンティティタイプごと、環境ごとに設定することができます。

大事な

デフォルトでは、エンティティ アーカイブ ミニオンは24時間ごとに実行するように構成されています。このデフォルトの動作を変更する前に、次の推奨事項とベストプラクティスを考慮してください。

ジャーナルエントリのアーカイブエンティティミニオン

ArchiveEntitiesMinionListsToWatch":"JournalEntries""WakeupInterval": "01.00:00:00")に実行され、設定可能な日数が経過した後に注文仕訳入力がアーカイブされます。

次に、タイプ "Sitecore.Commerce.Plugin.Journaling.JournalEntry, Sitecore.Commerce.Plugin.Journaling"のエンティティをアーカイブするように構成されたArchiveEntitiesMinionミニオン インスタンスの例を示します。

{
 "$type": "Sitecore.Commerce.Core.MinionPolicy, Sitecore.Commerce.Core",
 "WakeupInterval": "01.00:00:00",
 "ListsToWatch": [
    "JournalEntries"
    ],
 "FullyQualifiedName": "Sitecore.Commerce.Plugin.Archive.ArchiveEntitiesMinion, Sitecore.Commerce.Plugin.Archive",
 "ItemsPerBatch": 10, //NOT USED//
 "SleepBetweenBatches": 500,
 "Entities": {
    "$type": "System.Collections.Generic.List`1[[System.String, mscorlib]], mscorlib",
    "$values": [
    "Sitecore.Commerce.Plugin.Journaling.JournalEntry, Sitecore.Commerce.Plugin.Journaling"
    ]
  }
},
手記

古いジャーナル項目をアーカイブするアーカイブエンティティミニオンは、"ItemsPerBatch" プロパティを使用しません。代わりに、ミニオン環境ファイル( PlugIn.Habitat.CommerceMinions-1.*.*.json )で構成可能なArchiveOrderPolicyポリシーで定義された "BatchCount" プロパティを使用します。

非アクティブな注文のアーカイブエンティティミニオン

非アクティブなオーダーのアーカイブを担当するArchiveEntitiesMinionミニオンのインスタンスは、オーダーのリストを監視します("ListsToWatch":"Orders")。24時間ごと("WakeupInterval": "01.00:00:00")に実行され、完了またはキャンセルされた注文を設定可能な日数でアーカイブします。

次に、タイプ "Sitecore.Commerce.Plugin.Orders.Order, Sitecore.Commerce.Plugin.Orders"のエンティティをアーカイブするように設定されたArchiveEntitiesMinionミニオン インスタンスの例を示します。

{
 "$type": "Sitecore.Commerce.Core.MinionPolicy, Sitecore.Commerce.Core",
   "WakeupInterval": "01.00:00:00",
   "ListsToWatch": [
      "Orders"
      ],
   "FullyQualifiedName": "Sitecore.Commerce.Plugin.Archive.ArchiveEntitiesMinion, Sitecore.Commerce.Plugin.Archive",
   "ItemsPerBatch": 10, //NOT USED//
   "SleepBetweenBatches": 500,
   "Entities": {
   "$type": "System.Collections.Generic.List`1[[System.String, mscorlib]], mscorlib",
     "$values": [
      "Sitecore.Commerce.Plugin.Orders.Order, Sitecore.Commerce.Plugin.Orders" 
     ]
   }
},
手記

非アクティブな注文をアーカイブするアーカイブ エンティティ ミニオンは、"ItemsPerBatch" プロパティを使用しません。代わりに、ArchiveOrderPolicyポリシーで定義された "BatchCount" プロパティを使用します。このプロパティは、ミニオン環境ファイルで構成可能です (PlugIn.Habitat.CommerceMinions-1.*.*.jsonなど)。

エンティティ アーカイブの適格性基準を定義するポリシーは、ミニオン環境ファイル (PlugIn.Habitat.CommerceMinions-1.*.*.jsonなど) でも構成できます。

ミニオンのアーカイブ設定に関する推奨事項

エンティティ アーカイブが有効になっている場合、大量のデータをアーカイブ データベースに移動するプロセスは、SQLサービスのパフォーマンスに影響を与える可能性があります。アーカイブするデータの量を最小限に抑えることをお勧めします。

管理できないほど大量のデータをアーカイブしてSQLサービスに負担をかけないように、Sitecoreではアーカイブ ミニオンを毎日実行することをお勧めします。デフォルトのミニオン構成は、ミニオンが24時間ごとに実行するように設定されているこの推奨事項を反映しています ("WakeupInterval: "01.00:00:00")。

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