ECCUBEの注文完了画面注文番号と商品情報を編集するCRITEO(クリテオ)タグを編集
ECCUBEの注文完了画面注文番号にCRITEO(クリテオ)タグを編集
ECCUBEの完了画面に注文情報や商品情報を編集する
ECCUBEにCRITEO(クリテオ)のタグを編集する機会がありました。
商品一覧ページ、商品詳細ページなどはテンプレートファイルの中だけの処理だけで対応が可能だったのですが、完了ページにコンバージョンのタグを編集する方法は少しカスタマイズが必要になりましたので、それを記載しておきます。
今回の対応は、ECCUBE 2.12と 2.13で確認をしました。
ECCUBEの完了画面には、注文番号や商品情報など注文をした情報を引き継ぎません。
そのため、テンプレートファイルだけの対応では想定しているタグを編集することはできませんので、完了画面に遷移する前に、表示する情報(注文情報と、購入した商品の商品ID、単価、数量)を取得し、完了画面に渡す必要があります。
そのためにプログラムの変更が必要になります。
プログラムの改修・LC_Page_Shopping_Complete_Ex.php
変更するプログラムの対象は、下記になります。
/data/class_extends/page_extends/shopping/LC_Page_Shopping_Complete_Ex.php
下記の内容をコピペして追加します。
追加する場所は、一番最後で問題ありません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
public function action() { $this->arrInfo = SC_Helper_DB_Ex::sfGetBasisData(); // 注文情報を取得 $objPurchase = new SC_Helper_Purchase(); $arrOrder = $objPurchase->getOrder ( $_SESSION['order_id'] ); $arrOrderDetail = $objPurchase->getOrderDetail( $_SESSION['order_id'] ); $itemArray = array(); // コンバージョンタグ用の商品リスト foreach ( $arrOrderDetail as $value ) { $itemArray[] = '{ id: "' . $value['product_code'] . '", price: ' . $value['price'] . ', quantity: ' . $value['quantity'] . ' }'; } // 必要な値を完了画面に引き渡す $this->arrMyOrder = array( 'order_id' => $arrOrder['order_id'], // 注文番号 'item_list' => implode ( ",\n", $itemArray ), // 商品情報 ); } |
テンプレートファイルの改修・complete.tpl
完了画面のテンプレートファイルを変更します。
変更する対象となる完了画面のファイルは下記になります。
/data/Smarty/templates/default/shopping/complete.tpl
下記の内容を適当な場所に追加します。
一番最後で問題ありません。
1 2 3 4 5 6 7 8 9 10 11 12 |
<!-- コンバージョンページタグ ----> <script type="text/javascript" src="//static.criteo.net/js/ld/ld.js" async="true"></script> <script type="text/javascript"> window.criteo_q = window.criteo_q || []; window.criteo_q.push( { event: "setAccount", account: ****** }, { event: "setSiteType", type: "d" }, { event: "trackTransaction" , id: "<!--{$arrMyOrder.order_id}-->", deduplication: 0, item: [ <!--{$arrMyOrder.item_list}--> ]}); </script> |
プログラム側ですでに編集する値を処理していますので、テンプレート側では単純に受け取った値を編集するだけになっています。
クリテオでは、商品情報を 1商品 1行で編集する必要がありますので、改行コードも併せて編集しています。
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
ECCUBEでアップロードできない。upload_max_filesizeを設定する場所
テンプレートをアップロードする際に発生するエラー「テンプレートファイルがアップロードされていません」の対処方法。これはファイル容量の制限に引っかかっています。
-
XML形式の値を配列形式に変換・PHPでは simplexml_load_string()
XMLとは「Extensible Markup Language」の略でテキストベースのデータフォーマット。XMLをPHPで配列に変換するWebツールの紹介とその処理「simplexml_load_string()」関数についての解説。
-
GMOペイメントゲートウェイのjava.io.IOExceptionのエラー
ECCUBEの決済でGMOペイメントゲートウェイのモジュールを使ってテスト決済を行った場合の不具合、java.io.IOExceptionと言うエラーの原因と対策方法の解説です。
-
ECCUBEの管理画面のSSL設定をインストール後に変更する方法
ECCUBEをインストールした後から管理画面のSSL設定を変更する方法を解説します。config.phpファイルのHTTPS_URLとADMIN_FORCE_SSLの値を変更すればOK。
-
PHPのソースで見慣れない記号が出てきた・アロー演算子(->)、ダブルアロー演算子(=>)
PHPのプログラムソースには見慣れない記号が出てきます。その意味や調べ方です。
-
CentOS6、7のPHPを5.3から5.6、7.0、7.1にバージョンアップする手順の解説
CentOS6系、7系のPHPバージョンを5.3から5.6、7.0、7.1にアップする作業手順と解説。yum updateコマンドを使い作業時間は約10分。コマンドの解説や引数の意味なども解説しているので役に立つはず。
-
ECCUBEを開発環境から本番ドメインに変更でエラーが・パス変更について
レンタルサーバでサーバ会社から割り当てられたURLで開発し、本番公開時にドメインを当てたらエラーが!そんな場合の対処方法の解説。対処方法は簡単ですが管理画面からは対応不可。
-
Smartyの修飾子regex_replaceで正規表現の後方参照・PHPではpreg_replace
ECCUBEで使われているSmartyで文字列を正規表現で置換し後方参照で値を利用する装飾子regex_replaceの解説です。細かな条件がありますので注意が必要です。
-
指定した数で文字列を丸める(n文字目で…にする)関数substr、mb_substr、mb_strimwidthの違い
文字列を指定された数で抜き出すPHPの関数、substr、mb_substr、mb_strimwidthについての解説。似た関数だが引数の指定方法が違ったり、文字数がバイト数か文字数かも違ったり、注意が必要だ。
-
数値がMySQLのint(11)に保存できない!PHPの変数が本当にint型か確認!
PHPでintegerとdoubleが混在するような計算をする場合は要注意!計算結果が整数値であっても途中で使用する変数にdoubleの値が入っているときは計算結果がintegerではない場合があります。