[EC-CUBE2.13] 注文完了画面に注文番号と小計を表示(アフィリエイトコンバージョンタグ)

  • 公開日:2015/4/7
この記事は最終更新日から9年以上が経過しています。

アフィリエイト広告を出している場合、注文完了画面にアフィリエイトのコンバージョンタグを埋め込む必要があります。大手のアフィリエイト会社であればプラグインもありますが、そうでない場合も多いのでその方法。

注文完了画面で注文番号と小計を表示したい

LC_Page_Shopping_Completeをカスタマイズ

アフィリエイトのコンバージョンタグに必要となるパラメーターは多くが「注文番号」と「小計(税抜)」です。
注文完了画面にこれらの値を受け渡したいのでLC_Page_Shopping_Completeをカスタマイズします。

data/class_extends/page_extends/shopping/LC_Page_Shopping_Complete_Ex.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public function action()
{
    $this->arrInfo = SC_Helper_DB_Ex::sfGetBasisData();
 
    // 注文情報を取得
    $objPurchase = new SC_Helper_Purchase();
    $arrOrder = $objPurchase->getOrder($_SESSION['order_id']);
 
    // 必要な値を完了画面に引き渡す
    $this->arrMyOrder = array(
        'order_id'  => $arrOrder['order_id'], // 注文番号
        'price'     => $arrOrder['subtotal'] - $arrOrder['tax'], // 小計-消費税
        );
}

小計は、税込の金額から消費税を引いています。
取得した注文情報を配列ごと完了画面に渡し、完了画面で必要な値を抜き出す方法もありますが、ここでは必要な値だけを渡すようにしてみました。

complete.tplを編集

以下で表示することができます。

data/Smarty/templates/default/shopping/complete.tpl

1
2
<!--{$arrMyOrder.order_id}--> // 注文番号
<!--{$arrMyOrder.price}--> // 小計(税抜)

他デバイスのテンプレートでも同じです。

例)イークリック

1
<img src=&quot;http://www.e-click.jp/applications/applicate/任意のコード/<!--{$arrMyOrder.price}-->/<!--{$arrMyOrder.order_id}-->&quot; width=&quot;1&quot; height=&quot;1&quot;>

商品番号や商品単価、購入個数なども表示したい

アフィリエイト会社によっては、商品番号や商品単価、購入個数などもパラメータに含める必要とされる場合もあります。
例として、moba8とアフィリエイトBのコンバージョンタグでやってみます。
(各社タグは、広告プログラムによって異なるタグが数種類あるので、あくまでも例として参考にしてください。)

LC_Page_Shopping_Completeをカスタマイズ

同じく、data/class_extends/page_extends/shopping/LC_Page_Shopping_Complete_Ex.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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']);
 
    $moba8 = '';        // moba8用のタグ
    $affiliateB = '';   // アフィリエイトB用のタグ
    $accesstrade = ''// アクセストレード
    foreach ($arrOrderDetail as $value) {
        $moba8 .= '&SI='. $value['price'] . '.' . $value['quantity'] . '.' . $value['price']*$value['quantity'] . '.' . $value['product_id'];
        $affiliateB .= $value['product_id'] . '.' . $value['quantity'] . '.' . $value['price'] . ':';
        $accesstrade .= '&vi=' . $value['product_id'] . '.' . $value['quantity'] . '.' . $value['price'];
    }
 
    // 必要な値を完了画面に引き渡す
    $this->arrMyOrder = array(
        'order_id'  => $arrOrder['order_id'], // 注文番号
        'price'     => $arrOrder['subtotal'] - $arrOrder['tax'], // 小計-消費税
        'moba8'     => $moba8,
        'affiliateB'    => substr($affiliateB, 0, -1),
        'accesstrade'   => $accesstrade,
        );
}

アフィリエイトBのタグは、引き渡し用の配列にセットするときに最後の「:」を削除しています。

先ほどと同じく注文詳細の配列を丸ごと渡す方法もありますが、ここでタグを生成した方がテンプレートがすっきりするのでこのようにしてみました。

complete.tplを編集

data/Smarty/templates/default/shopping/complete.tpl

例)moba8

1
<img src=&quot;https://px.moba8.net/svt/sales?async=1&PID=プログラムID&SO=<!--{$arrMyOrder.order_id}--><!--{$arrMyOrder.moba8}-->&quot; width=&quot;1&quot; height=&quot;1&quot; />
例)アフィリエイトB

1
<img src=&quot;https://track.affiliate-b.com/commit/プロモーションID/<!--{$arrMyOrder.order_id}-->/<!--{$arrMyOrder.affiliateB}-->&quot; width=&quot;1&quot; height=&quot;1&quot; />
例)アクセストレード

1
<img src=&quot;https://is.accesstrade.net/cgi-bin/isatV2/マーチャント名/isatWeaselV2.cgi?result_id=成果対象ID&verify=<!--{$arrMyOrder.order_id}-->&value=<!--{$arrMyOrder.price}--><!--{$arrMyOrder.accesstrade}-->&quot; width=&quot;1&quot; height=&quot;1&quot;>

先に長いタグを生成して変数にセットしているので、テンプレートでの記述は実にすっきりして我ながらいい感じです。