レンダリング通信
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Commerce Foundationレイヤーは、ストアフロント ページ上のレンダリングがページ上の他のレンダリングと通信できるようにするメカニズムを提供します。このトピックでは、現在のバージョンのSXA Storefrontでのレンダリングの通信と、バージョン10.0より前のバージョンのSitecore XCでのレンダリングの通信方法について説明します。
レンダリング通信 - 現在
現在の実装には、メッセージングの効率化とスケーラビリティの向上のために導入されたCXAObservableというProductEventHandlerが含まれています。このObservableは、レンダリングとCXAObservable間の放出とサブスクリプションを管理します。CXAObservableサービスの導入は、1つのブローカー、1つのコンテキスト、1つのキューが存在することを意味します。次の図は、レンダリングがCXAObservableを介して通信する方法の例です。
この図は単なる例であり、CXAObservableを介して通信するすべてのレンダリングが含まれているわけではありません。詳細については、「 Scribanテンプレートの操作」を参照してください。

次の例では、買い物客が商品詳細ページにアクセスし、カートに商品を追加します。次の通信が行われます。
-
買い物客がバリアントを選択すると、Product VariantsレンダリングによってCXAObservableにメッセージが送信されます。
-
CXAObservableは、製品選択イベントをサブスクライブする次の4つのレンダリングに通知します。
-
製品価格レンダリングは、選択したバリアントの価格を反映するように価格を更新します。
-
製品インベントリのレンダリングでは、現在の在庫ステータスと在庫アイテムの数が更新されます。
-
「カートに追加」レンダリングは、選択したバリアントを認識し、買い物客が「 Add to Cart」をクリックするとすぐにショッピングカートに追加する準備ができています。
-
商品画像のレンダリングにより、選択したバリエーションに一致するようにヒーロー画像が更新されます。
-
-
買い物客がAdd to cartをクリックすると、カートに追加 レンダリングによってCXAObservableにメッセージが送信されます。Add-to-cartレンダリングは、カート数をAjax Serviceブローカーに渡し、Ajax ServiceブローカーはCXAObservableを介してMinicartレンダリングに渡します。エラーが発生した場合、CXAObservableはMessage brokerにメッセージを送信し、Message Summaryレンダリング (メッセージング イベントをサブスクライブする唯一のレンダリング) に通知します。
-
CXAObservableは、ミニカートレンダリング(カートイベントをサブスクライブする唯一のレンダリング)に通知します。
-
ミニカートのレンダリングにより、カートの内容が更新され、表示されるカートの数が増えます。
-
メッセージの概要レンダリングは、買い物客にユーザーフレンドリーなメッセージを出力します。
-
下位互換性のために、既存のイベントは引き続きレンダリングによって出力されますが、デフォルトでは現在のレンダリング通信を使用して処理されます。
レンダリング通信 - 前駆体
レンダリング通信の以前の実装 (現在もサポートされています) では、ページ上の各レンダリングは、ブローカーを介してページ上の他のレンダリングと通信します。基本的に、レンダリングはブローカーに登録され、レンダリング間でメッセージが渡されます。
次の例では、買い物客が商品詳細ページにアクセスしてカートに商品を追加すると、次の通信が行われます。

-
買い物客がバリアントを選択すると、Product VariantsレンダリングはProduct Selectionブローカー サービスにメッセージを送信します。
-
Product Selectionブローカー サービスは、製品選択イベントをサブスクライブする次の4つのレンダリングに通知します。
-
製品価格レンダリングは、選択したバリアントの価格を反映するように価格を更新します。
-
製品インベントリのレンダリングでは、現在の在庫ステータスと在庫アイテムの数が更新されます。
-
「カートに追加」レンダリングは、選択したバリアントを認識し、買い物客が「 Add to Cart」をクリックするとすぐにショッピングカートに追加する準備ができています。
-
商品画像のレンダリングにより、選択したバリエーションに一致するようにヒーロー画像が更新されます。
-
-
買い物客がAdd to cartをクリックすると、カートへの追加レンダリングからCartブローカーサービスにメッセージが送信されます。
-
Cartブローカーは、Minicartレンダリング (cartイベントをサブスクライブする唯一のレンダリング) に通知します。
-
ミニカート レンダリングは、Ajaxサービスを使用してCommerce Engineを呼び出し、結果に基づいてカートの内容を更新し、表示されるカート数を増やします。エラーが発生した場合は、Message brokerにメッセージを送信し、Message Summaryレンダリング (メッセージング イベントをサブスクライブする唯一のレンダリング) に通知します。
-
メッセージの概要レンダリングは、買い物客にユーザーフレンドリーなメッセージを出力します。
-
ブローカーサービスは全部で5つあります。この例では、次の4つを使用します。
-
Cart Broker - ブローカーは、買い物客のAdd-to-Cartリクエストからメッセージ (または発生したイベント) を受け取り、そのメッセージをサブスクライバー (ミニカートレンダリング) に転送します。
-
Message Broker - ブローカーはMinicartレンダリングからメッセージを受信し、そのメッセージまたはエラーをサブスクライバー (Message Summaryレンダリング) に転送します。
-
Ajax Service Broker - ブローカーはミニカートレンダリングからメッセージを受信し、そのメッセージをAJAX呼び出しとしてCommerce Engineに転送して、メッセージまたはリクエストを検証します。
-
Product Selection Broker - ブローカーは、買い物客の商品選択からメッセージを受信し、そのメッセージ(商品画像、商品価格、商品在庫、カートへの追加レンダリング)を購読者に転送します。これらの購読者は、買い物客がAdd to cartをクリックしたときに、表示する商品画像、価格、在庫、およびミニカートに追加する商品の詳細を知るためにメッセージを必要とします。