カート内データタグ
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
は必須項目です。項目が存在しない場合はエラーとなり、データが送信されません。totalAmount
とitems[].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>
Updated 6 months ago