CXACartContextサービス

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

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

CXACartContextサービスは、カート関連のメソッドを処理し、カート数のキャッシュを管理します。

メモ

Sitecore XC 10で導入されたCXACartContextサービスは、CartContextサービスに代わるものです。TriggerCartUpdateEventSubscribeHandlerなど、以前はCartContextによって実行されていたイベントは、代わりにCXAObservableを消費するように移動されました。

CXACartContextサービスでは、次の方法を実行します。CXAObservableと対話し、さまざまな共有イベントを使用します。

方式

形容

コード

IsCartCountCached

カート数をキャッシュするかどうかを示すブール値を取得します。trueの場合、カート数はブラウザーのsessionStorageに保存されます。

CXACartContext.IsCartCountCached()

IsCachedCartCountAvailable

ブラウザsessionStorageでカート数が利用可能かどうかを示すブール値を取得します。trueの場合、キャッシュされたカート数はGetCachedCartCountメソッドを使用して取得されます。

CXACartContext. IsCachedCartCountAvailable()

GetCachedCartCount

カート数の値を取得します。

if (CXACartContext. IsCachedCartCountAvailable()) {

// ‘this’ is in the context of the minicart model

this.updateCartCount(CXACartContext.GetCachedCartCount());
}

UpdateCachedCartCount

ブラウザsessionStorageのカート数を更新します。

CXACartContext.UpdateCachedCartCount(cart.Lines.length);

DeleteCachedCartCount

キャッシュされたカート数をブラウザー sessionStorageから削除します。

CXACartContext.DeleteCachedCartCount();

AddCartLine

AddCartLine APIエンドポイントの呼び出し

CXACartContext.AddCartLine(cartLine,
function (data, success) {});

どこ:

cartLineは、AddCartLine APIの想定されるオブジェクトです

AddBundleCartLine

AddBundleCartLine APIエンドポイントの呼び出し。

CXACartContext.
AddBundleCartLine(bundleCartLine, function (data, success) {});

どこ:

bundleCartLineは、AddBundleCartLine APIの想定されるオブジェクトです

AddCartLinesWithSublines

AddCartLinesWithSublines APIエンドポイントの呼び出し。

CXACartContext.AddCartLinesWithSublines(cartLines,
function (data, success) {});

どこ:

bundleCartLineは、AddCartLinesWithSublines APIの想定されるオブジェクトです

RemoveCartLine

RemoveShoppingCartLine APIエンドポイントの呼び出し。

CXACartContext. RemoveCartLine(lineItemId, function (data,
success) {});

どこ:

lineItemIdは、カートの品目の既存の品目IDです

UpdateCartLineQuantity

UpdateCartLineQuantity APIエンドポイントの呼び出し。

CXACartContext. UpdateCartLineQuantity(lineItemId, quantity,
function (data, success) {});

どこ:

lineItemIdはカート品目の既存の品目IDで、数量はカート品目の新しい数量です

GetCart

GetCart APIエンドポイントへの呼び出し。

GetCartメソッドへの複数の呼び出しが同時に行われる場合、呼び出しはプールされ、GetCart APIエンドポイントに対して1つのAjax呼び出しのみが実行されます。CXACartContextサービスは、カートが最初に取得された後も、カート オブジェクトのコピーを保持します。その後、カート オブジェクトは、このメソッドが後で呼び出されるたびにコールバック関数に返されます。キャッシュされたカートオブジェクトは、プロモーションコードの適用など、カートメソッドが実行されるたびに無効になります。

CXACartContext.GetCart(function (data, success)
{});

GetMinicart

recalculateTotalsがtrueの場合、またはコンテキストがカートを取得しているか、キャッシュされたカートオブジェクトがある場合、GetCartメソッドへの呼び出しを転送します。それ以外の場合は、GetMinicart APIエンドポイントを呼び出します。

CXACartContext.GetMinicart(recalculateTotals,
function (data, success) {});

GetCartLinesCount

GetCartLinesCount APIエンドポイントの呼び出し。

CXACartContext. GetCartLinesCount(function
(data, success) {});

RemoveMinicartLine

RemoveMinicartLine APIエンドポイントの呼び出し。

CXACartContext.RemoveMinicartLine
(lineItemId, function (data, success) {});

どこ:

lineItemIdは、カートの品目の既存の品目IDです

GetPromoCodes

GetCartメソッドに呼び出しを転送します。これは、バックエンドが同じカートオブジェクトを返し、他のGetCart呼び出しと共有して不要なAjax呼び出しを減らすことができるためです。

CXACartContext.GetPromoCodes(function (data,
success) {});

ApplyPromotionCode

ApplyDiscount APIエンドポイントの呼び出し。

CXACartContext.ApplyPromotionCode(promotionCode,
function (data, success) {});

どこ:

promotionCodeは、カートに適用されるプロモーション コードです

RemovePromotionCode

RemoveDiscount APIエンドポイントの呼び出し。

CXACartContext.RemovePromotionCode(promotionCode,
function (data, success) {});

どこ:

promotionCodeは、カートから削除するプロモーション コードです

CXACartContextは、次のような特定のAjax呼び出しの応答でcartオブジェクトが受信されると、CXAObservableを介してイベントCXAEvent.CartUpdatedを発行します。

  • AddCartLine

  • AddBundleCartLine

  • AddCartLinesWithSublines

  • RemoveCartLine

  • UpdateCartLineQuantity

  • GetCart

  • GetMinicart

  • RemoveMinicartLine

  • GetPromoCodes

上記のすべてのメソッドは異なるAPIエンドポイントを呼び出している可能性がありますが、すべてのAPIエンドポイントは同じCartJsonResultモデルを返すため、cartオブジェクトをイベント引数としてイベントを生成できます。

SXA Storefrontは、いくつかの 共有イベントを使用します。次のセクションでは、カートモデルの詳細と、呼び出しシーケンスについて説明します。

更新されたカートモデル

次のクラス図は、cart-minicart-model.js cart-freeegiftselections-model.js、およびcart-lines-model.jsにあるCXAEvent.CartUpdatedイベントのモデルを示しています。無料ギフト選択レンダリング、ミニカートレンダリング、またはショッピングカートラインレンダリングがCXAEvent.CartUpdatedイベントにサブスクライブしている場合、返される応答は更新されたカートであるSitecore.Commerce.XA.Feature.Cart.Models.JsonResults.CartJsonResultです。

Class diagram for the CXAEvent.CartUpdated event

ミニカート更新の呼び出しシーケンス

次の図は、ミニカートの更新の呼び出しシーケンスを示しています。

Sequence diagram showing the Minicart update call sequence
この記事を改善するための提案がある場合は、 お知らせください!