エス技研

WordPress、CakePHP、PHP、baserCMSなどの Web系システムを中心に情報を提供します!


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・Smarty・ECCUBE

最後までお読みいただきましてありがとうございます。
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

下記の空欄を埋めてください。 * Time limit is exhausted. Please reload CAPTCHA.

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

※入力いただいたコメントは管理者の承認後に掲載されます。

  関連記事

PHPのソースで見慣れない記号が出てきた・アロー演算子(->)、ダブルアロー演算子(=>)

PHPのプログラムソースには見慣れない記号が出てきます。その意味や調べ方です。

PHP画面が真っ白 header(“Location: $url”);

PHPの開発で header(“Location: $url”);を使うと画面が真っ白になる不具合が出る場合もあります。

Basic認証の.htaccess、.htpasswd生成ツールと解説

Basic認証を設定する際に必要となる.htaccess、.htpasswdファイルを生成するツール。ID、PASS、.htpasswdへのパスを入力することで編集する情報を生成します。

ECCUBEを開発環境から本番ドメインに変更でエラーが・パス変更について

レンタルサーバでサーバ会社から割り当てられたURLで開発し、本番公開時にドメインを当てたらエラーが!そんな場合の対処方法の解説。対処方法は簡単ですが管理画面からは対応不可。

サーバ移転、PHPバージョンアップでPHPのソースコードが表示される・ショートタグのPHPが動かない

PHPでショートタグを使うのは危険。サーバ移転やバージョンアップで動かなくなる!ソースが丸見え、設定情報流出のリスクが!php.iniのshort_open_tagの設定を再確認。

連想配列のキーも値もまとめてhtmlspecialchars()でサニタイズする関数の作成解説
連想配列のキーも値もまとめてhtmlspecialchars()でサニタイズする関数の作成解説

PHPの配列・連想配列のキーと値をまとめてhtmlspecialchars()関数でサニタイズ(無害化、無毒化)を行う関数を作成。連想配列のキーはarray_map()関数でのサニタイズは無理。

路線・駅検索のために緯度経度からPHPで簡易的に距離を計算する処理解説
路線・駅検索のために緯度経度からPHPで2点間の距離を計算する処理解説

路線・駅検索の仕組みの構築は大変。それを簡易に実装するために緯度経度を元に距離計算をする仕組みを考案。まずは2点間の距離を計算する仕組みを解説し、距離計算にまつわる関連技術も紹介。

AdminerはphpMyAdmin代替のデータベース管理ツール

AdminerはphpMyAdminとほぼ同機能のデータベース管理ツール。PHP 1ファイルのため設置が非常に簡単で軽快に動作し、phpMyAdminの置き換えで使うのも問題なし。

指定した数で文字列を丸める関数substr、mb_substr、mb_strimwidthの違い
指定した数で文字列を丸める(n文字目で…にする)関数substr、mb_substr、mb_strimwidthの違い

文字列を指定された数で抜き出すPHPの関数、substr、mb_substr、mb_strimwidthについての解説。似た関数だが引数の指定方法が違ったり、文字数がバイト数か文字数かも違ったり、注意が必要だ。

配列の値をテキスト表示する際に「、」でつなげるときの処理方法の一例
配列の値をテキスト表示する際に「、」でつなげるときの処理方法の一例

配列の値を「、」でつないで出力する際、単純にforeachで繰り返し処理をすると「イヌ、サル、キジ、」となるが文字列最後の「、」を出力しない方法を3つ解説している。