2012年10月7日カテゴリー:未分類

EC-CUBE2.12:配送方法の指定で配送業者の送料の詳細を表示する

★配送業者が複数存在する場合は「お支払方法・お届け時間等の指定」に送料の詳細リンクが表示されるが、1つの場合は表示されない。「送料を見る」をクリックすると下図のように表示される。

▼ここでのカスタマイズファイルをすべてダウンロードできます。
必要な箇所だけコピーしてご利用ください。
他のカスタマイズも含まれている場合がありますので、ファイルの上書きは絶対におやめください。
こちらから(facebookユーザーのみ)

(1)ポップアップで表示するための新規ページを作成する。
■html/postage/index.php
[php]
init();
$objPage->process();
?>
[/php]

■data/class_extends/page_extends/postage/LC_Page_Postage_Ex.php
[php]

[/php]

■data/class/pages/postage/LC_Page_Postage.php
[php]
tpl_page_category = ‘postage’;
$this->tpl_title = ‘配送業者の送料詳細’;
}

/**
* Page のプロセス.
*
* @return void
*/
function process() {
parent::process();
$this->action();
$this->sendResponse();
}

/**
* Page のアクション.
*
* @return void
*/
function action() {
$this->setTemplate($this->tpl_mainpage = ‘postage/postage.tpl’);

$objQuery =SC_Query_Ex::getSingletonInstance();
$this->arrRet = array();
$this->arrRetPref1 = array();
$this->arrRetFee1 = array();
$this->arrRetPref2 = array();
$this->arrRetFee2 = array();
$this->arrRetPref3 = array();
$this->arrRetFee3 = array();

//
$devname = $_GET[‘devname’];

//配送業者を取得
$arrRet = $objQuery->select(“*”, “dtb_deliv”, “deliv_id = $devname”);

//データベースからデータの取得ができたか
if(isset($arrRet)){
$this->arrRet = $arrRet[0];
}

//県名を取得
$arrRetPref1 = $objQuery->select(“*”, “mtb_pref”, “id between 1 and 14”);
$arrRetPref2 = $objQuery->select(“*”, “mtb_pref”, “id between 15 and 30”);
$arrRetPref3 = $objQuery->select(“*”, “mtb_pref”, “id between 31 and 47”);

//データベースからデータの取得ができたか
if(isset($arrRet)){
$this->arrRetPref1 = $arrRetPref1;
}
if(isset($arrRet)){
$this->arrRetPref2 = $arrRetPref2;
}
if(isset($arrRet)){
$this->arrRetPref3 = $arrRetPref3;
}

//送料を取得
$arrRetFee1 = $objQuery->select(“*”, “dtb_delivfee”, “deliv_id = $devname and pref between 1 and 14”);
$arrRetFee2 = $objQuery->select(“*”, “dtb_delivfee”, “deliv_id = $devname and pref between 15 and 30”);
$arrRetFee3 = $objQuery->select(“*”, “dtb_delivfee”, “deliv_id = $devname and pref between 31 and 47”);

//データベースからデータの取得ができたか
if(isset($arrRet)){
$this->arrRetFee1 = $arrRetFee1;
}
if(isset($arrRet)){
$this->arrRetFee2 = $arrRetFee2;
}
if(isset($arrRet)){
$this->arrRetFee3 = $arrRetFee3;
}

}

/**
* デストラクタ.
*
* @return void
*/
function destroy() {
parent::destroy();
}
}
?>
[/php]

■data/Smarty/templates/default/postage/postage.tpl
[php]


の送料詳細
























北海道・東北・関東 中部・近畿 中国・四国・九州


[/php]

(2)配送業者の送料詳細を表示するかしないかを選択できるように、パラメータ設定に新たに項目を設ける。データベースに追加。
テーブル:mtb_constants
[php]
INSERT INTO mtb_constants (id, name, rank, remarks) VALUES (‘POSTAGE_SHOW’, ‘true’, 1417, ‘配送業者の送料の詳細 true/表示する false/表示しない’);
[/php]

★設定後、管理画面のパラメーター設定を開き「この内容で登録する」をクリックすると反映される。

(3)ColorBoxが適用されていて、送料詳細表示にColorBoxを利用する場合
$(“.cbox_postage”).colorbox({width:”600″, height:”500″, iframe:true}); ←site_frame.tplに追記
■data/Smarty/templates/default/site_frame.tpl
[php]


[/php]

★ColorBoxを利用しない場合
(3)は記述しない。
(4)の (4)「お支払方法・お届け時間等の指定」ページのコードを変更
■data/Smarty/templates/default/shopping/payment.tpl

▼変更前
[php]