カート内データタグ

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

主な活用方法

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

タグの設置場所

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

データ項目

フィールド名(Key)値(Value)のサンプル概要セグメント条件での使用
totalAmount数値(整数)
※必須項目
11330購入金額
※送料、消費税を含む金額を推奨
quantity数値(整数)2購入商品数
hasItemsブーリアンtrueカートに商品がある場合: true
カートに商品がない場合: false
isFreeShippingブーリアンtrue送料無料:true
送料無料でない:false
items配列[
{
itemId: 't001',
name: 'フリルブラウス',
price: 3500,
quantity: 1,
category: 'tops',
brand: 'SproStyle'
},
{
itemId: 'b110',
name: 'チノパンツ',
price: 6800,
quantity: 1,
category: 'bottoms',
brand: 'SproStyle'
}
]
itemsというキーに個別商品データの配列をセットしてください。-
items[].itemId文字列't001'アイテムに振られる任意のIDです。例として SKU ID などを想定しています。-
items[].name文字列'フリルブラウス'商品名-
items[].price数値(整数)3500商品価格
※税抜を推奨
-
items[].quantity数値(整数)2購入商品数-
items[].category文字列'tops'商品カテゴリ-
items[].brand文字列'SproStyle'商品ブランド-

🚧

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

  • 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: 't001',
      name: 'フリルブラウス',
      price: 3500,
      quantity: 1,
      category: 'tops',
      brand: 'SproStyle'
    },
    {
      itemId: 'b110',
      name: 'チノパンツ',
      price: 6800,
      quantity: 1,
      category: 'bottoms',
      brand: 'SproStyle'
    }];
  var props = {
    totalAmount: 11330,
    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: 't001',
        name: 'フリルブラウス',
        price: 3500,
        quantity: 1,
        category: 'tops',
        brand: 'SproStyle'
      },
      {
        itemId: 'b110',
        name: 'チノパンツ',
        price: 6800,
        quantity: 1
        category: 'bottoms',
        brand: 'SproStyle'
      }];
    var props = {
      totalAmount: 11330,
      quantity: 2,
      hasItems: true,
      isFreeShipping: false,
      items: items
    };
    console.log('Sprocket: Cart props:\n' + JSON.stringify(props, null, '  '));
    SPSDK.record('cart', props);
  }, 500);
})();
</script>