← inaro.devShopify学習ツール
08-05

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が違えば別の行になるからです。

propertiesattributesはどう使い分けるか

`properties`は明細ごと(名入れ・熨斗の種類)、`attributes`はカート全体(配送希望日・ギフトメッセージ)です。
どちらも注文に引き継がれ、管理画面の注文詳細に出ます。
通知メールに出すには、メールテンプレートがattributes / line.propertiesを参照している必要があります。
既定テンプレートの扱いは、公式で確認してください。

発展:割引の内訳と税込の表示

割引コードや自動割引は、cart.discount_applicationsと各明細のdiscount_allocationsに分かれて入ります。
合計だけでなく内訳も出すと、「合計が合わない」という問い合わせが減ります。
cart.total_priceが税込かどうかは、ストアの税設定次第です。
cart.taxes_includedを見て、ラベルを切り替えます。

ステップ1 / 2

ShopifyはShopify Inc.の商標です。本サイトは個人が制作した非公式の学習教材であり、同社の承認・提携・後援を受けていません。記載内容は2026-09時点のものです。料金・上限値・管理画面のラベルは変わるため、作業の前に公式ドキュメントで確認してください。