InventoryProductエンティティの拡張

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

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

InventoryProductエンティティは、外部コマースシステム(ECS)で製品/在庫情報を一意に識別するために使用されます。 デフォルトのInventoryProductエンティティが在庫情報を識別するのに十分でない場合は、このエンティティと、インベントリシステム内のいくつかのプロバイダクラスを拡張する必要があります。

InventoryProductエンティティを拡張するには:

  1. ECSの株式情報を識別するために必要な情報を含むエンティティから派生するInventoryProductEcsInventoryProductクラスを作成します。

  2. ECSの在庫情報を識別するために必要な追加情報を表すプロパティを公開するCommerceContextBaseクラスから派生するEcsCommerceContextクラスを作成します。 クライアントの状態に基づいてこれらのプロパティを設定するのは、クライアント サイト/アプリケーションの責任です。

  3. InventoryProductBuilderから派生したEcsInventoryProductBuilderクラスを作成し、基本クラスのすべてのメソッドをオーバーライドして、EcsInventoryProductを適切に処理します。 特に、CreateInventoryProduct() 内の新しいEcsCommerceContextを使用して、EcsInventoryProductの追加プロパティを設定する必要があります。 例えば:

    var ecsProductInfo = ((EcsCommerceContext)this.CommerceContext).EcsProductInfo;
  4. InventoryAutomationProviderから派生したEcsInventoryAutomationProviderクラスを作成し、GetProductNotificationsGetExpiredNotificationsGetProductsBackInStockの各メソッドをオーバーライドします。 これらのメソッドは、StockNotificationRequest.ProductプロパティのEcsInventoryProductを返す必要があります。 インベントリ システムの自動化状態データはJSONシリアル化された文字列として格納されるため、通常はカスタムの逆シリアル化コードが必要になります。

  5. EcsInventoryProductエンティティをsitecore/commerce.Entities/InventoryProductに登録します。

  6. sitecore/commerceContextEcsCommmerceContextを登録します。

  7. sitecore/inventoryProductBuilderEcsInventoryProductBuilderを登録します。

  8. sitecore/inventoryAutomationProviderEcsInventoryAutomationProviderを登録します。

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