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
下記の内容をコピペして追加します。
追加する場所は、一番最後で問題ありません。
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
下記の内容を適当な場所に追加します。
一番最後で問題ありません。
<!-- コンバージョンページタグ ---->
<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行で編集する必要がありますので、改行コードも併せて編集しています。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
PHPで月末から1ヶ月後「+1 month」を算出すると想定する日付にならない場合がある
PHPでは月末の1ヶ月後が想定した日付にならない場合がある。原因はバグではなくPHPの1ヶ月後の定義によるもの。なので必要とする日付を定義しそれに合わせてDateTime、modifyを使用して算出方法を解説している。
-
-
パーミッション(属性)一括変更ツール・WordPress最適化済
WordPressのパーミッション(属性)を一括変更するツールを作成!ファイル、フォルダのパーミッションが一覧表示でき、ファイルを選んでパーミッションの変更が行えます。
-
-
数値文字参照コード変換ツール(HTML特殊文字コード変換ツール)
テキストを数値文字参照コード(特殊文字コード)に変換するツール。テキストを数値文字参照コードに簡単変換。数値文字参照、文字実体参照、特殊文字などの違いも解説。
-
-
PHPのスクレイピングライブラリ「PHP Simple HTML DOM Parser」の使い方
PHPのスクレイピングライブラリ「PHP Simple HTML DOM Parser」の使い方を解説。要素を取得する方法、そこから属性を取得する方法を解説。また、マニュアルにはない注意点なども解説。
-
-
ECCUBEでテンプレートファイルのファイルサイズは10MB以下のものを使用してくださいのエラーが出た場合
テンプレートをアップロードする際にファイルサイズが大きすぎてエラーが表示される際の対処方法解説。パラメータ設定で設定する制限について解説を行っています。
-
-
Smartyのテンプレート内の処理で計算、加工をする方法
Smartyのテンプレート上で変数を計算する、加工する方法を解説します。
-
-
cURLを利用する際の注意点「
&」があるURLは「”」で囲むcURLでURLはダブルクォーテーションで囲む。LinuxでもWindowsでもコマンドでは「&」は意味を持つ文字のためエラー原因になる。クォーテーションは常につけておく方が無難。
-
-
Smartyの修飾子regex_replaceで正規表現の後方参照・PHPではpreg_replace
ECCUBEで使われているSmartyで文字列を正規表現で置換し後方参照で値を利用する装飾子regex_replaceの解説です。細かな条件がありますので注意が必要です。
-
-
ECCUBE mtb_constants initパラメータ設定の項目を追加する方法
ECCUBEのパラメータ設定で設定できる項目を追加する方法を説明します。
-
-
PHPのcURLでAPIやWebサイトへのアクセス方法。file_get_contentsとの比較
PHPからWebサイトにアクセスしてHTMLを取得、APIにアクセスして情報を取得する場合は、cURLがオススメ。file_get_contentsでも可能だがエラー制御に難がありトラブルのもとになる。