カート内データタグ

EC サイトのカート内データの情報を Sprocket に連携して、接客のセグメント条件に活用するための JavaScript 形式のデータ連携タグです。

主な活用方法

・カートが空でないユーザーにお得なセール情報を表示して、アップセル訴求する
・送料無料が適用されていないユーザーに送料無料条件を表示して、アップセル訴求する
・カートの金額が一定金額に達していないユーザーにクロスセル商品をおすすめる

タグの設置場所

カートの最新状況を把握できるように、カートページや購入完了ページでタグを出力してください。購入完了ページでは、通常、カートデータが空のカート内データタグを出力します。

データ項目

フィールド名(Key)概要値(Value)のサンプルセグメント条件での使用
totalAmount購入金額
※送料、消費税を含む金額を推奨
7350数値
※必須項目
quantity購入商品数2数値
hasItemsカートに商品がある場合: true
カートに商品がない場合: false
trueブーリアン
isFreeShipping送料無料:true
送料無料でない:false
trueブーリアン
itemsitemsというキーに個別商品データの配列をセットしてください。[
{
itemId: '4774192627',
name: 'Amazon Web Services負荷試験入門',
price: 3800,
quantity: 1,
category: 'book',
brand: '技術評論社'
},
{
itemId: '4295000159',
name: 'いちばんやさしいコンバージョン最適化の教本',
price: 1922,
quantity: 1,
category: 'book',
brand: 'インプレス'
}
]
配列-
items[].itemIdアイテムに振られる任意のIDです。例として SKU ID などを想定しています。'4295000159'文字列-
items[].name商品名'いちばんやさしいコンバージョン最適化の教本'文字列-
items[].price商品価格
※税抜を推奨
1922数値-
items[].quantity購入商品数2数値-
items[].category商品カテゴリ'book'文字列-
items[].brand商品ブランド'インプレス'文字列-

🚧

カート内データタグについての補足説明

  • totalAmount は必須項目です。項目が存在しない場合はエラーとなり、データが送信されません。
  • totalAmountitems[].price は値が 0 でもバリデーションエラーにはならず、データが送信されます。
  • サポートしている文字コードは UTF-8 です。

🚧

データ連携タグについての補足説明(全タグ共通)

データ連携タグの発火タイミングやバリデーションについては「データ連携(リアルタイム取り込み)導入手順」ページを参照してください。

JavaScript サンプル

個別商品データはサンプルの様に配列として変数にセットしてください。ファンクション SPSDK.record() の第1パラメータに固定文字列 'cart' を、第2パラメータに配列でデータ項目を設定します。

カート内に商品がない場合

<script type="text/javascript">
(function() {
  var items = [];
  var props = {
    totalAmount: 0,
    quantity: 0,
    hasItems: false,
    isFreeShipping: false,
    items: items
  };
  console.log('Sprocket: Cart props:\n' + JSON.stringify(props, null, '  '));
  SPSDK.record('cart', props);
})();
</script>

カート内に商品がある場合

<script type="text/javascript">
(function() {
  var items = [
    {
      itemId: '4774192627',
      name: 'Amazon Web Services負荷試験入門',
      price: 3800,
      quantity: 1,
      category: 'book',
      brand: '技術評論社'
    },
    {
      itemId: '4295000159',
      name: 'いちばんやさしいコンバージョン最適化の教本',
      price: 1922,
      quantity: 1,
      category: 'book',
      brand: 'インプレス'
    }];
  var props = {
    totalAmount: 7350,
    quantity: 2,
    hasItems: true,
    isFreeShipping: false,
    items: items
  };
  console.log('Sprocket: Cart props:\n' + JSON.stringify(props, null, '  '));
  SPSDK.record('cart', props);
})();
</script>

データ連携タグの実行順が保証できない場合

Sprocket タグが読み込まれてからデータ連携を実行する処理を組み込んでください。コード例は下記です。

カート内に商品がない場合

<script type="text/javascript">
(function() {
  var count = 0;
  setTimeout(function wait() {
    if (++count > 10) return;
    if (typeof SPSDK === 'undefined') return setTimeout(wait, 500);
    var items = [];
    var props = {
      totalAmount: 0,
      quantity: 0,
      hasItems: false,
      isFreeShipping: false,
      items: items
    };
      console.log('Sprocket: Cart props:\n' + JSON.stringify(props, null, '  '));
    SPSDK.record('cart', props);
  }, 500);
})();
</script>

カート内に商品がある場合

<script type="text/javascript">
(function() {
  var count = 0;
  setTimeout(function wait() {
    if (++count > 10) return;
    if (typeof SPSDK === 'undefined') return setTimeout(wait, 500);
    var items = [
      {
        itemId: '4774192627',
        name: 'Amazon Web Services負荷試験入門',
        price: 3800,
        quantity: 1,
        category: 'book',
        brand: '技術評論社'
      },
      {
        itemId: '4295000159',
        name: 'いちばんやさしいコンバージョン最適化の教本',
        price: 1922,
        quantity: 1
        category: 'book',
        brand: 'インプレス'
      }];
    var props = {
      totalAmount: 7350,
      quantity: 2,
      hasItems: true,
      isFreeShipping: false,
      items: items
    };
    console.log('Sprocket: Cart props:\n' + JSON.stringify(props, null, '  '));
    SPSDK.record('cart', props);
  }, 500);
})();
</script>