Skip to main content
購入者に見せるべきでないラインを非表示にし、読みづらいラインの名前を変更し、すべてのレンダリング順序を制御します。これらはすべて、カートの実際の中身に触れることなく行えます。 これは、CSSやstyle.display = 'none'でカート要素を隠す従来のパターンに代わるものです。ライントランスフォームはカートがレンダリングされるたびに適用されるため、更新、再レンダリング、ドロワーの再オープンをまたいで維持されます。

ラインを非表示にする

非表示は削除ではありません。 非表示のラインは購入者のカートに残り、合計にも含まれ、チェックアウトまで引き継がれます。単にドロワーに描画されないだけです。ただしgetCart().itemsitemCountからは外れるため、あなた自身のコードからも見えなくなります。本当に取り除きたい場合はremoveItemを使用してください。
非表示にする価値のある一般的なケース:

ラインのラベルを変更する

ラインで使用できる4つのセッター:

順序を制御する

コンパレーターはArray.prototype.sortが期待するのと同じ形式で、非表示化とリネームの後に実行されます。
関心のないペアには0を返してください。コンパレーターはタイブレーカーとして合成されるため、最初に非ゼロ値を返したものがそのペアを決定し、0を返すと順序を強制せず次のコンパレーターに判断を委ねます。

ラインではなくブロック全体を非表示にする

ライントランスフォームはカートラインに対して機能します。国、マーケット、通貨に応じて異なるブロック設定を表示するには(たとえば異なるRewardsティア)、カートエディターの条件を使用してください。コードは不要で、カートの再デザイン後も維持されます。カート合計とカートの内容は、エディターの条件タイプには含まれません 条件では表現できないルール(カート内の商品ID、カスタム合計など)の場合はSDKを使用してください。その場合は、shadow rootからパブリックなcart-external-*クラスをクエリします。
これは各レンダリングの後に実行されるため、コードが非表示にする前にブロックが一瞬表示されることがあります。条件付きレンダリングにはこの問題がないため、適用できる場面ではそちらを優先してください。

注意すべきポイント

  • トランスフォームはセットアップの呼び出しです。 Initializationスクリプトの先頭で登録してください。ready()は不要です。
  • すべてのトランスフォームが実行されます。 あなたのものは、他のアプリが登録したものと合成されます。他のアプリのものを置き換えることはできず、他のアプリもあなたのものを取り除くことはできません。
  • トランスフォームは価格、数量、アイデンティティを変更できません。 レンダリング内容を変更するだけです。実際の変更にはアクションを使用してください。
  • エラーをスローしたトランスフォームは静かにスキップされます。 残りは引き続き実行されます。開発中はaftersellCartDebugEventsを確認してください。
  • registerLineTransformは登録解除関数を返します。 後で元に戻す必要がある場合に使用してください。

次に読むべきページ