1. Top
  2. ブログ一覧
  3. ShopifyでCart attributesを使い、カート全体にカスタム情報を追加する
Eコマース

ShopifyでCart attributesを使い、カート全体にカスタム情報を追加する

公開日

2024.12.11

ShopifyでCart attributesを使い、カート全体にカスタム情報を追加するのサムネイル

Shopifyでは、Line Item Propertiesを用いて商品単位でカスタム情報を付与できる一方で、Cart attributes(カート属性)を使うことで、カート全体に対して特定の情報を保持することも可能です。たとえば、顧客がチェックアウトへ進む前に入力してほしい共通のメッセージや、全体としてのギフト梱包指示、特別なキャンペーンコード入力欄など、カート全体に作用する情報を付与する際に有効です。

本記事では、Cart attributesの基礎的な考え方から実装例、運用上のヒントまで、Line Item Propertiesと並べて理解できるようわかりやすく解説します。

Cart attributesとは?

Cart attributesは、カートページやチェックアウト手前のプロセスで、顧客から追加情報を取得し、カート全体に紐づける機能です。これらは商品個別の情報ではなく、カート全体を対象とするため、次のような用途が考えられます。

  • カート全体に適用されるギフトラッピング有無の指示
  • 注文全体に関する顧客からの要望(例:「配送時は不在時に宅配BOXに入れてください」)
  • 全体割引コードや特別キャンペーンの適用状況
  • 特定の配送日時指定(可能な範囲で)
  • 法的要件や利用規約への同意チェックなど、共通の確認事項取得

Line Item Propertiesが「商品別のカスタム情報」を扱うのに対して、Cart attributesは「カート全体」に関する指示や情報を扱う点が大きな違いです。

ユースケース

全体ギフト梱包の指示

顧客が複数商品をまとめてギフトとして贈る場合、各商品に個別指定するのは煩雑です。ここでCart attributesを利用すれば、「カート内の商品すべてをギフト用ラッピングで包む」といった一括指定が可能となります。

配送指示・メッセージ

顧客がストアに対して特定の配送指示を伝えたい場合や、受取人に対する共通メッセージを付与したい場合、Cart attributesを通じてその要望をまとめて受け取れます。これにより、顧客満足度向上や後処理の効率化が期待できます。

全体的なカスタムオプション

期間限定のキャンペーンやセール時に、顧客が該当コードを入力することで全体的な割引や特典付与を自動化でき、内部ロジックでの判定を容易にします。こうした共通オプションをCart attributesで扱うことで、ストア運営者は特別な条件下の受注処理をスムーズに行えます。

Cart attributesの設定方法

Cart attributesは、カートページ(cart.liquidなど)で追加することが多いです。基本的にはformタグ内にname="attributes[...]"形式でinputを追加することで、カート全体に紐づく情報を格納できます。

基本的な実装例

Line Item Propertiesがproperties[...]だったのに対し、Cart attributesはattributes[...]を使います。

例として、顧客がカート全体に対するギフトメッセージを入力できる欄を設けるには、テーマファイルからカートテンプレートのformタグを探し、タグ内に以下のようなコードを追加します。

<input type="text" name="attributes[ギフトメッセージ]" placeholder="ギフトメッセージ入力してください" value="{{ cart.attributes['ギフトメッセージ'] }}">

もしくはform="cart"を指定して、カート画面の任意の場所に配置することも可能です。

<textarea form="cart" name="attributes[ギフトメッセージ]" placeholder="ギフトメッセージ入力してください">{{ cart.attributes['ギフトメッセージ'] }}</textarea>

このattributes[ギフトメッセージ]に顧客が入力した情報は、チェックアウト以降でも参照可能となります。

実際にテーマのカスタマイズでカスタムLiquidを使い埋め込んでみます。

alt text

alt text

メッセージが注文詳細画面で確認できました。

alt text

複数のCart attributes

複数の属性を付与する場合は、attributes[...]を複数個用意します。たとえば、配送希望日時とギフト希望の2つの属性を追加する場合は以下のようになります。

<input type="text" name="attributes[配送希望日時]" placeholder="例:12月25日午前中">
<input type="checkbox" name="attributes[ギフト希望]" value="はい"> ギフト用ラッピングを希望する

顧客がこれらを入力すれば、チェックアウトや注文管理画面で確認し、それに合わせた対応ができます。

[補足]:内部向けプロパティを設定したいとき

Line Item Propertiesと違い、こちらはアンダースコア2つで始まるキーを使うと、顧客画面には表示されない内部用情報を保持できます。たとえば、ギフト注文IDを裏側で記録したい場合は以下のような差分で設定できます。

<input form="cart" type="hidden" name="attributes[__gift_order_id]" value="123456">

alt text

これにより顧客には不要な情報をカート全体へ付与し、出荷管理や後追い分析に活用することが可能です。

[補足]:単なる注文メモを追加したいとき

特定の属性を持たない単なるメモを追加したい場合は、noteを使うこともできます。これは注文メモとして扱われ、注文詳細画面のメモ欄に表示されます。

<textarea name="note" form="cart" placeholder="注文メモ"></textarea>

alt text

運用のヒント

  • 顧客体験向上:不在時の対応や共通メッセージを顧客自身が指定することで、受取時の満足度やトラブル回避が期待できます。
  • 業務効率化:顧客全体共通のキャンペーンや梱包指示をまとめて取得することで、受注処理がスムーズになり、オペレーションコストを削減できます。
  • データ分析:内部向けのCart attributesを活用すれば、顧客には見えない形でキャンペーンコードや内部管理情報を記録でき、後日集計や改善に繋げられます。

まとめ

Cart attributesを理解すれば、カート全体に関わる情報管理が容易になり、顧客と店舗側双方にメリットをもたらすことができます。Line Item Propertiesとの組み合わせによって、商品単位の詳細なカスタマイズと、カート全体における総合的な設定を同時に実現可能です。これにより、より多様なEC体験を提供するための土台が整います。

参考