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

基本的な考え方

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

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

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

ShoppingController::complete

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

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

Shopping/complete.twig

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

関連するカスタマイズ

style.cssに#contents min-height: 100vh;は必要か?... default/css/style.cssに #contents { min-height: 100vh;}という最低の高さ指定があります。 デフォルトテーマでこれを全ページに適用させている理由としては、新規ページ等でコンテンツが少ない場合に、ある程度高さがないと見た目が悪いということだと思...
Bootstrap3のクラスform-controlを取り除く方法(form_widget)... EC-CUBE3.0系ではSymfonyComponentの1つであるFormにより、Twig内では強力な関数form_widget、form_errorsが使用できます。 これらは作成したFormType(定義ファイル)に従って自動で初期データ入力やエラー処理をしてくれるというたいへん便利な...
Choiceタイプ(ラジオボタン)でNoneを消す方法... セレクトボックスやチェックボックス、ラジオボタンを簡単に生成することができるChoiceタイプは非常に強力なフォームタイプです。 ただ添付画像のようにラジオボタンを生成したときにNoneという選択肢が自動で表示されることがあります。 このNoneの消し方は意外と知られてい...
Invalid parameter number: number of bound variable...   クエリビルダを使用して開発していると頻繁に出くわす例外エラーがQueryExceptionです。 その中でも有名なInvalid parameter numberについてご紹介致します。 この例外はクエリビルダにバインドした変数の数と、渡したパラメーターの数が異なると...

弊社はEC-CUBE公式インテグレートパートナーです。