注文完了画面に、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 %}

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