注文完了画面に、Google Analyticsのイーコマースタグや広告、アフィリエイト等の計測タグを導入したい場合の方法をご紹介いたします。

基本的な考え方

コンバージョンタグには必ず注文の詳細情報が必要になると思いますが、カスタマイズ前の完了画面では詳細情報を取得できません。

そこで一工夫することとなります。注文完了画面では受注ID($orderId)をセッションより取得しています。この情報からOrderエンティティを取得してやれば、注文の詳細な内容を得ることが可能です。

ただし、注文完了画面では受注IDのセッションから削除していますので、一度しか取得することはできません。(画面リロード時には取得できません)
そのことを考慮して、$orderIdがNULLである可能性を考慮した上でOrderエンティティをデータベースから検索します。

ShoppingController::complete

        $Order = null;
        if (!empty($orderId)) {
            $Order = $app['eccube.repository.order']->find($orderId);
        }
        
        return $app->render('Shopping/complete.twig', array(
            'orderId' => $orderId,
            'Order' => $Order, // Order変数を追加
        ));

これでテンプレートへ注文の詳細情報を渡すことができます。
注文金額であれば、{{ Order.total }}
氏名であれば、{{ Order.name01 }}{{ Order.name02 }}のようになります。

注文した商品の情報であれば、Order.OrderDetailをループで参照することとなります。

Shopping/complete.twig

{% for OrderDetail in Order.OrderDetails %}
{{ OrderDetail.price }} {#商品価格#}
{{ OrderDetail.product_code }} {#商品コード#}
{{ OrderDetail.quantity }} {#商品個数#}
{% endfor %}

このカスタマイズにより、注文完了画面へ広告やアフィリエイトのコンバージョンタグを設置することが可能です。


関連するカスタマイズ

Your proxy directory “/var/www/src/Eccube/..... SSHからマイグレーションなどapp/consoleのコマンドを実行しようとした際に、ドクトリンのキャッシュファイルを書き込めないために発生するエラーです。 通常app/cache/doctrine/proxiesは所有者もグループもapacheとなるため、コマンドラインから他のユーザ...
Twig内で文字列の一部分を切り出す方法 Slice使用... twigテンプレート内で文字列の一部を切り出したい時があります。 そんな時はsliceフィルタを使用してtwig内だけで切り出しを実行することが可能です。 2文字目以降を切り出す(1文字目を削除) sliceフィルタの第1引数は開始位置です。 ProductClass.code|sl...
メーカープラグインのメーカー一覧を取得する方法... メーカープラグインを使用される方が多いと思います。 メーカーの一覧を表示したい場合は次のようにメーカープラグインのレポジトリクラスでfindByすることで取得が可能です。 Controllerなどで使える実際のコード // メーカーのレポジトリを使用する $Makers = $app-&...
基本税率を切り捨て、切り上げ、四捨五入に変更... 開発メンバー全員のルールを揃えておくことが重要です。 dtb_tax_ruleテーブルのcalc_ruleの設定値は次の表の通りです。 calc_rule 方式 1 四捨五入 2 切り捨て 3 切り上げ これをマイグレーションで...