Skip to main content
Cart items ブロックはカート内のラインアイテムのリストで、購入者が追加した各商品を、画像、タイトル、バリエーション、価格、数量ステッパー、削除ボタンとともに表示します。必須ブロックであり、カートのサブブロック(Product 行、Subscription upgradeCustom code)をホストするコンテナとして、行ごとのサブブロックが取り付けられる構造を提供します。
商品画像、タイトル、バリエーション、価格、数量ステッパー、削除ボタン付きのラインアイテムを表示するCart itemsブロック

Product行

Cart itemsの中には Product サブブロック(実際のラインアイテム行)があります。ロックされていて自動的に追加されるため、すべてのCart itemsブロックには常にちょうど1つの削除できないProduct行があり、他のサブブロックはその周りに配置します。その設定では、各行の価格表示を制御します。 行自体は、商品画像(可能な場合は商品ページへのリンク付き)、タイトル、バリエーション、価格と取り消し線付きのcompare-at価格、数量ステッパー、削除ボタンを表示します。バンドル行は、その構成品の開閉式リストを表示します。

テキストスタイリング

Product行のDesign設定には Text セクションがあります。各ラインアイテム内の個々のテキスト要素のタイポグラフィを制御するために使用します。ピッカーからテキスト要素を選択して、その設定を調整します。 スタイリングできるテキスト要素はカテゴリごとにグループ化されています。 Product
  • Product title — 各行の商品名。カスタムフォントファミリーにも対応。
  • Variant — バリエーションラベル(例: Size: Medium)。
  • Subscription plan — サブスクリプション行に表示される読み取り専用のプランラベル。
Pricing
  • Price — 行の現在価格。
  • Compare-at price — 取り消し線付きの元の価格。
  • Savings — 節約ラベル(例: Save $5.00)。サイズと行の高さのみ設定可能 — 太字と色は上のリッチテキストエディタで設定します。
Bundle
  • Bundle toggle — バンドルの構成品リストを展開する開閉ヘッダー。
  • Bundle item title — バンドル内の各構成品のタイトル。
  • Bundle item variant — 各バンドル構成品のバリエーションラベル。
いずれかのフィールドを空欄のままにすると、その要素はデフォルト値のままになります。
カートプレビュー内のテキスト要素を直接クリックすると、その要素がハイライトされ、パネルのコントロールが自動的に開きます。

割引タグのデザイン

Product行のDesign設定には Discount tags セクションがあります。各ラインアイテムに表示される割引タグのピルをスタイリングするのに使用します。 これらの設定は、Cart itemsブロック内のラインアイテムの割引タグにのみ適用されます。Summaryブロックの割引コードタグは別途スタイリングします。

サブブロックとその配置

Cart itemsは、サブブロックをホストする唯一のブロックです。サブブロックは行ごとに1回、すべての商品行の中にレンダリングされ、固定されたProduct行を基準に配置されます。
  • Product行よりに並べたサブブロックは、各行の商品コンテンツのに表示されます。
  • Product行よりに並べたサブブロックは、各行の商品コンテンツのに表示されます。
そのため、Product行の後に配置したSubscription upgradeは、リスト全体の一番下に1回表示されるのではなく、対象となる各行の下に表示されます。

動作

  • カートにアイテムがない場合、ドロワーは空の状態に切り替わり、このブロックは表示されません。
  • カートの変更は一度に1つずつ実行されます。 数量の更新や削除が処理中の間、カートの整合性を保つため行のコントロールは無効になり、変更が確定すると再び有効になります。
  • 行の数量を1未満に下げると、その行は削除されます。ストアが拒否する数量(たとえば在庫を超える数量)は、最後の有効な値に再同期されます。
  • バンドルは一体として変化します。 バンドルのアンカー行の数量を調整すると、バンドル全体が1回の操作でスケールします。子アイテムがアンカー1つにつき3個含まれている場合、アンカーを1から2にするとその子アイテムは6になります。アンカーを削除すると、バンドルのすべてのメンバーが一度に削除されます。
  • 一部のバンドルは数量を変更できません。 バンドルの子アイテムのいずれかが小数の割合(たとえばアンカー1つにつき1.5個)で含まれている場合、そのバンドルの数量ステッパーはロックされます。+/−ボタンと数量フィールドは両方とも無効になり、入力された数量も受け付けられません。バンドルの削除は引き続き可能です。
  • サブスクリプション行にはプランが表示されます。 行に販売プランがあり、Subscription upgradeサブブロックがオフまたは未追加の場合、Product行はバリエーションの下に読み取り専用のプランラベル(たとえば Delivers every month (save 30%))を表示します。そのサブブロックが有効な場合は、独自のピッカーでプランを表示するため、読み取り専用ラベルは重複せずに非表示になります。

配置と制限

  • リージョン: 本体(body)。
  • 最大数: カート状態ごとに1つ。
  • 状態: 商品が入ったカートのみ。
  • ロックされており、デフォルトで追加されます。 Cart itemsは削除や非表示にできず、位置の変更のみ可能です。

カスタムテンプレート

Codeタブからカスタムテンプレートに対応しており、このブロックの組み込みマークアップを独自のJSXに置き換えます。受け取るpropsは次のとおりです。 Cart items コンテナ自体にはカスタムテンプレートがありません。その中の Product 行にはあり、カート内で最も豊富な情報を持つ画面です。テンプレートは行ごとに1回レンダリングされます。

行のコンテンツ

pricecompareAtPrice はフォーマット済みの文字列で、line 上のすべての値はセント単位です。 price で計算を行わないでください。line.finalLinePrice などから計算し、結果を formatMoney に通してください。

数量と削除

バンドルのレンダリング

バンドルのアンカー行では、bundle.children にその内容が入っています。子アイテムが独立した行として表示されることはないため、レンダリングしないと購入者はバンドルの中身を確認できません。
Shopifyネイティブバンドルのコンポーネントでは子アイテムの keynull になるため、上記のようにインデックスにフォールバックしてください。

デザイン

このブロックのスタイルは、設定パネルの Design セクションで調整します。これらはブロックごとのオーバーライドで、グローバルデザインの上に重なり、空欄の場合はグローバルデザインにフォールバックします。 デザイン設定とは何でしょうか? 詳しくはこちら: デザイン設定