この記事は2012年6月に公開したものです。ソフトウェアやサービスの仕様が変わり、現在の情報と異なる場合があります。
こんにちは。
SOHOデザイナーを目指しているAquaForest-アクアフォレスト-です。
ECCUBEのモバイル版ではデフォルト、商品を買う際に会員登録をしないと買えない仕組みになっています。
PCやスマホでは会員登録なしでも買えるのに…と思ってる方はこちらの方法で会員登録なしで買える様にカスタマイズできます。
3ステップでできますのでぜひ試して下さい。こっちは4ステップじゃありませんw
ちなみにECCUBEのバージョンは2.11.5です。
1.テンプレートファイルの修正
/data/Smarty/templates/mobile/shopping/index.tpl
上記の表示させたい場所に下記のソースを追加。
<!--▼会員登録なしで購入するお客様-->
■登録なしでご注文される方<br>
(購入手続き)<br>
<form name="member_form" id="member_form" method="post" action="./index.php">
<input type="hidden" name="mode" value="nonmember" />
<input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->" />
<div align="center"><input type="submit" value="購入手続きへ" name="buystep" id="buystep"></div><br>
</form>
<!--▲会員登録なしで購入するお客様-->
2.PHPファイルの修正
/data/class/pages/shopping/LC_Page_Shopping.php
上記ファイルの下記のソースを修正。
// お客様情報入力ページの表示
case 'nonmember':
$this->tpl_mainpage = $nonmember_mainpage;
$this->tpl_title = $nonmember_title;
$this->lfInitParam($objFormParam);
// ※breakなし
default:
// 前のページから戻ってきた場合は, お客様情報入力ページ
if (isset($_GET['from']) && $_GET['from'] == 'nonmember') {
$this->tpl_mainpage = $nonmember_mainpage;
$this->tpl_title = $nonmember_title;
$this->lfInitParam($objFormParam);
}
// 通常はログインページ
else {
$this->lfInitLoginFormParam($objFormParam);
}
$this->setFormParams($objFormParam, $objPurchase, $this->tpl_uniqid);
$objPurchase->unsetShippingTemp();
}
を下記に修正。
// お客様情報入力ページの表示
case 'nonmember':
$this->tpl_mainpage = 'shopping/nonmember_input.tpl';
$this->tpl_title = $nonmember_title;
$this->lfInitParam($objFormParam);
// ※breakなし
default:
$this->setFormParams($objFormParam, $objPurchase, $this->tpl_uniqid);
$objPurchase->unsetShippingTemp();
}
3.非会員用のテンプレートファイルの作成
上記に記載している『nonmember_input.tpl』
というテンプレートはデフォルトではないため、スマートフォン用のファイルをコピーしてモバイル用に修正すれば完成です。
/data/Smarty/templates/sphone/shopping/nonmember_input.tpl
をコピーして
/data/Smarty/templates/mobile/shopping/
に追加して下さい。
モバイル用に変換するにはtableタグ等を削除し、改行などを追加するだけで、
ほかは変更しなくてOKです。
コメント