[EC-CUBE2.13] 注文完了画面に注文番号と小計を表示(アフィリエイトコンバージョンタグ)
- 公開日:2015/4/7
アフィリエイト広告を出している場合、注文完了画面にアフィリエイトのコンバージョンタグを埋め込む必要があります。大手のアフィリエイト会社であればプラグインもありますが、そうでない場合も多いのでその方法。
注文完了画面で注文番号と小計を表示したい
LC_Page_Shopping_Completeをカスタマイズ
アフィリエイトのコンバージョンタグに必要となるパラメーターは多くが「注文番号」と「小計(税抜)」です。
注文完了画面にこれらの値を受け渡したいのでLC_Page_Shopping_Completeをカスタマイズします。
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']); // 必要な値を完了画面に引き渡す $this->arrMyOrder = array( 'order_id' => $arrOrder['order_id'], // 注文番号 'price' => $arrOrder['subtotal'] - $arrOrder['tax'], // 小計-消費税 ); }
小計は、税込の金額から消費税を引いています。
取得した注文情報を配列ごと完了画面に渡し、完了画面で必要な値を抜き出す方法もありますが、ここでは必要な値だけを渡すようにしてみました。
complete.tplを編集
以下で表示することができます。
data/Smarty/templates/default/shopping/complete.tpl
<!--{$arrMyOrder.order_id}--> // 注文番号 <!--{$arrMyOrder.price}--> // 小計(税抜)
他デバイスのテンプレートでも同じです。
<img src="http://www.e-click.jp/applications/applicate/任意のコード/<!--{$arrMyOrder.price}-->/<!--{$arrMyOrder.order_id}-->" width="1" height="1">
商品番号や商品単価、購入個数なども表示したい
アフィリエイト会社によっては、商品番号や商品単価、購入個数などもパラメータに含める必要とされる場合もあります。
例として、moba8とアフィリエイトBのコンバージョンタグでやってみます。
(各社タグは、広告プログラムによって異なるタグが数種類あるので、あくまでも例として参考にしてください。)
LC_Page_Shopping_Completeをカスタマイズ
同じく、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']); $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
<img src="https://px.moba8.net/svt/sales?async=1&PID=プログラムID&SO=<!--{$arrMyOrder.order_id}--><!--{$arrMyOrder.moba8}-->" width="1" height="1" />
<img src="https://track.affiliate-b.com/commit/プロモーションID/<!--{$arrMyOrder.order_id}-->/<!--{$arrMyOrder.affiliateB}-->" width="1" height="1" />
<img src="https://is.accesstrade.net/cgi-bin/isatV2/マーチャント名/isatWeaselV2.cgi?result_id=成果対象ID&verify=<!--{$arrMyOrder.order_id}-->&value=<!--{$arrMyOrder.price}--><!--{$arrMyOrder.accesstrade}-->" width="1" height="1">
先に長いタグを生成して変数にセットしているので、テンプレートでの記述は実にすっきりして我ながらいい感じです。