cartとline_item
カートのデータ構造を理解し、明細・合計・付帯情報の表示を実装できる
最終確認: 2026-09
解説
受託の現場でなぜ必要か: この回では、カート(cart)と明細(line_item)のデータ構造を使って、明細・合計・付帯情報を表示できるようになります。
受託では「配送希望日」「熨斗の種類」のような日本の商習慣への対応が、この2つの使い分けで大半できます。
cartとは、カート全体の情報
カートに入っている商品と合計をまとめたオブジェクトです。items(明細の一覧)/ item_count / total_price / items_subtotal_price / total_discount / currency / note / attributes / empty? / requires_shipping / taxes_includedがあります。
空のときはcart.empty?が真になるので、まずこれで分岐します。
line_itemとは、カートの1行分の情報
商品×数量の1行です。product / variant / quantity / final_price / final_line_price / original_price / title / image / url / key / properties / discount_allocationsがあります。keyは、数量の変更や削除で対象の行を指定するのに使います。
同じ商品でもpropertiesが違えば別の行になるからです。
propertiesとattributesはどう使い分けるか
`properties`は明細ごと(名入れ・熨斗の種類)、`attributes`はカート全体(配送希望日・ギフトメッセージ)です。
どちらも注文に引き継がれ、管理画面の注文詳細に出ます。
通知メールに出すには、メールテンプレートがattributes / line.propertiesを参照している必要があります。
既定テンプレートの扱いは、公式で確認してください。
発展:割引の内訳と税込の表示
割引コードや自動割引は、cart.discount_applicationsと各明細のdiscount_allocationsに分かれて入ります。
合計だけでなく内訳も出すと、「合計が合わない」という問い合わせが減ります。cart.total_priceが税込かどうかは、ストアの税設定次第です。cart.taxes_includedを見て、ラベルを切り替えます。
※ ShopifyはShopify Inc.の商標です。本サイトは個人が制作した非公式の学習教材であり、同社の承認・提携・後援を受けていません。記載内容は2026-09時点のものです。料金・上限値・管理画面のラベルは変わるため、作業の前に公式ドキュメントで確認してください。