バージョン選択

フォーラム

メニュー

オンライン状況

56 人のユーザが現在オンラインです。 (39 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 55
kbsw もっと...

サイト内検索

質問 > その他 > クレジットカード決済時にGoogleアナリティクス(Eコマース)データが送信できない現象について

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
knsymmm
投稿日時: 2020/8/28 21:49
対応状況: −−−
新米
登録日: 2019/10/24
居住地:
投稿: 5
クレジットカード決済時にGoogleアナリティクス(Eコマース)データが送信できない現象について
▼テンプレート
[EC-CUBE] 2.13.5
[レンタルサーバ] xserver
[OS] Linux sv8819.xserver.jp 4.4.0-169-generic #198-Ubuntu SMP Tue Nov 12 10:38:00 UTC 2019 x86_64
[PHP] 5.6.40
[データベース] MySQL 5.7.27
[WEBサーバ] Apache
[ブラウザ] edge,chrome
[導入プラグインの有無] イプシロン決済モジュール(2.11系・2.12系・2.13系)
[カスタマイズの有無] LC_page_shopping_complete.phpとcomplete.tplにグーグルアナリティクス、Eコマース計測用タグと設置
[現象] GoogleアナリティクスのEコマースに、クレジットカード決済(イプシロン経由)で購入した場合のみデータが連携されない。


いつもお世話になっております。

GoogleアナリティクスのEコマースを利用しようと、下記の通りカスタマイズを行いました。
①complete.tplのカスタマイズ
<!--{* Google conversion tag *}-->
<script>
    ga('require', 'ecommerce', 'ecommerce.js');
    ga('ecommerce:addTransaction', {
        id: '<!--{$arrOrder.order_id|h}-->', // Transaction ID - this is normally generated by your system.
        affiliation: '<!--{$arrSiteInfo.shop_name}-->', // Affiliation or store name
        revenue: '<!--{$arrOrder.payment_total|h}-->', // Grand Total
        shipping: '<!--{$arrOrder.deliv_fee|h}-->' , // Shipping cost
        tax: '<!--{$arrOrder.tax|h}-->' // Tax.
    });
    <!--{foreach from=$arrOrderDetail item=orderDetail name=order_detail}-->
    ga('ecommerce:addItem', {
        id: '<!--{$arrOrder.order_id|h}-->', // Transaction ID.
        sku: '<!--{$orderDetail.product_code|h}-->', // SKU/code.
        name: '<!--{$orderDetail.product_name|h}-->', // Product name.
        price: '<!--{$orderDetail.price|h}-->', // Unit price.
        quantity: '<!--{$orderDetail.quantity|h}-->' // Quantity.
    });
    <!--{/foreach}-->
    ga('ecommerce:send');
</script>
<!--{* //Google conversion tag *}-->



※トラッキングタグは設置済み為省略

②LC_Page_shopping_complete.phpのカスタマイズ

public function action()
{
    $this->arrInfo = SC_Helper_DB_Ex::sfGetBasisData();

    //コンバージョンタグ対応用
    if (is_numeric($_SESSION['order_id'])) {
        $objPurchase = new SC_Helper_Purchase_Ex();
        $this->arrOrder = $objPurchase->getOrder($_SESSION['order_id']);
        $this->arrOrderDetail = $objPurchase->getOrderDetail($_SESSION['order_id']);
    }
}



一部eコマースデータへの反映がされないトランザクションがあったため、調査を進めると
カード決済で購入されたトランザクション、イプシロン経由のものが原因ぽいことがわかりました。

下記がイプシロンで購入した際の完了画面のソースです。$arrSiteInfoから取得している「ほげほげ」以外は全部空っぽになってます。
<script>
    ga('require', 'ecommerce', 'ecommerce.js');
    ga('ecommerce:addTransaction', {
        id: '', // Transaction ID - this is normally generated by your system.
        affiliation: 'ほげほげ', // Affiliation or store name
        revenue: '', // Grand Total
        shipping: '' , // Shipping cost
        tax: '' // Tax.
    });
        ga('ecommerce:send');
</script>


おそらくイプシロンのLC_Page_shopping_complete_ex.phpから親クラスが呼ばれた際に、
データが引き継げていないのかなとか思っておりますが、知識不足のため皆様のお知恵を拝借したく、
宜しくお願い申し上げます。
468
投稿日時: 2020/8/29 10:47
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: クレジットカード決済時にGoogleアナリティクス(Eコマース)データが送信できない現象について
スーパークラスのLC_Page.phpのfucntion init()で
// 店舗基本情報取得
$this->arrSiteInfo = SC_Helper_DB_Ex::sfGetBasisData();

のように基本情報がセットされているはずなのですが
それが上手く引き継がれていないのかもしれませんね。

イプシロンのLC_Page_shopping_complete_ex.phpのソースが手元に無いので詳細は分かりませんが
$this->arrSiteInfoに値がセットされているか確認するか、
LC_Page_shopping_complete_ex.phpの中で$this->arrSiteInfoに基本情報を代入しても良いのではないでしょうか?


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

balisys
投稿日時: 2020/8/29 18:16
対応状況: −−−
仙人
登録日: 2020/7/5
居住地:
投稿: 397
Re: クレジットカード決済時にGoogleアナリティクス(Eコマース)データが送信できない現象について
イプシロンの決済モジュール内でセッションを消してるのが原因かもしれません。


※似たような現象が起きた時はモジュール側修正して対応しました。

https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=24475&forum=10&post_id=99498#forumpost99498
knsymmm
投稿日時: 2020/8/29 18:33
対応状況: −−−
新米
登録日: 2019/10/24
居住地:
投稿: 5
Re: クレジットカード決済時にGoogleアナリティクス(Eコマース)データが送信できない現象について
ご回答ありがとうございます!
初歩的な質問で大変恐縮なのですが、具体的にどこに手を入れればよいかわかりますでしょうか?
無知で大変申し訳ございません。
knsymmm
投稿日時: 2020/8/30 10:53
対応状況: −−−
新米
登録日: 2019/10/24
居住地:
投稿: 5
Re: クレジットカード決済時にGoogleアナリティクス(Eコマース)データが送信できない現象について
皆様

ご回答いただきありがとうございました。

セッションが初期化されているとのことで、LC_Page_ShoppingComplete.phpのprocess()とaction()を下記のように変更したところ、無事に値を取得することが出来ました。

public function process()
{
    $this->order_id = $_SESSION['order_id'];
    GC_Utils_Ex::gfDebugLog($this->order_id);
    parent::process();
    $this->action();
    $this->sendResponse();
    // プラグインなどで order_id を取得する場合があるため,  ここで unset する
    unset($_SESSION['order_id']);
}

public function action()
{
    $this->arrInfo = SC_Helper_DB_Ex::sfGetBasisData();

    //コンバージョンタグ対応用
        
    GC_Utils_Ex::gfDebugLog($this->order_id);
    if (is_numeric($this->order_id)) {
        $objPurchase = new SC_Helper_Purchase_Ex();
        $this->arrOrder = $objPurchase->getOrder($this->order_id);
        $this->arrOrderDetail = $objPurchase->getOrderDetail($this->order_id);
    }
    /*if (is_numeric($_SESSION['order_id'])) {
        $objPurchase = new SC_Helper_Purchase_Ex();
        $this->arrOrder = $objPurchase->getOrder($_SESSION['order_id']);
        $this->arrOrderDetail = $objPurchase->getOrderDetail($_SESSION['order_id']);
    }*/
}


process()でセッションの注文番号を退避しておき、action()では退避した値を使用するという感じです。
まだアナリティクス上のデータは確認できておりませんが、注文完了画面のソースに数値が反映されていたので、
コチラで問題ないかと思います。

ご回答いただいた皆様、本当にありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,836名です
総投稿数は109,985件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1291
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.