OpenCartのカスタマイズ 支払い方法を追加する
オープンカートで標準で使用できる銀行振込モジュールは1つ。
テキスト形式で、支払先とか説明を入力して、ユーザーが買い物した際には、その内容が表示&メール送信sれるわけだけど、日本の場合、銀行振込ってメインの支払い方法なことも多く、郵貯と三井とか複数用意していることも多い。
1つに纏めて、ここかここかここって入金するときに勝手に選んでもらうのなら、良いのだけれど、入金確認の問題とか、注文数も多くなってくると、口座分だけ手間がかかるので、注文時に、郵貯なのか、三井なのか、ジャパンネットなのか、選んでおいて欲しいもの。
そこで、標準のBANK TRANSFER(銀行決済)モジュールを複製編集して、注文時にユーザーに予め選んでもらうことにします。
そうしますとですね、買い物画面では、支払い選択の時に、こんな感じで、 振込先銀行ごとに選択してもらえるようになるわけです。↓↓↓
1つの支払い方法モジュールを追加するごとに、コピー編集して追加するPHPファイルは、 9つです。
オープンカートは、MVCLフレームワークを使用しているので、
- Model – Database layer
- View – Template display
- Controller – Main controlling code base
- Language – Localization
という4つのファイルが1セットとなって動作する仕組みです。その組が、カタログとアドミンの双方に構成されます。ただし、上位のコントローラーのコードを引き継ぐ場合など、このうちの複数ファイルが上位ファイルで代替される場合があります。
参考:http://www.opencart.com/index.php?route=documentation/documentation&path=77_6
今回の銀行モジュールの場合は、アドミン4,カタログ5の計9ファイルが追加編集される1セットのPHPファイルとなります。
もともと存在するモジュールをコピー編集するだけですので、そう難しくはありません。
じゃあ、やっていきましょう!
下記のファイルをそれぞれ同ディレクトリにコピー&リネームしていきます。リネームする名前は揃っていれば問題ないので、任意で。
- /admin/controller/payment/bank_transfer.php →コピーして、bank_transfer02.php を作成
- /admin/view/template/payment/bank_transfer.tpl →bank_transfer02.tpl
- /catalog/controller/payment/bank_transfer.php →bank_transfer02.php
- /catalog/model/payment/bank_transfer.php →bank_transfer02.php
- /catalog/view/theme/default/template/payment/bank_transfer.tpl →bank_transfer02.tpl
- /admin/language/english/payment/bank_transfer.php →bank_transfer02.php
- /admin/language/japanese/payment/bank_transfer.php →bank_transfer02.php
- /catalog/language/english/payment/bank_transfer.php →bank_transfer02.php
- /catalog/language/english/payment/bank_transfer.php →bank_transfer02.php
3つめ、4つ目の支払いを作成する場合も同様の手順で、5ファイル1セットで追加を行います。
/admin/controller/payment/bank_transfer02.php
2行目のControllerPaymentBankTransfer を ControllerPaymentBankTransfer02 に。
class ControllerPaymentBankTransfer02 extends Controller {
ファイル内の、payment/bank_transfer をすべて payment/bank_transfer02 へ置き換え。
/admin/view/template/payment/bank_transfer02.tpl
ファイル内の、bank_transfer をすべて、 bank_transfer02 へ置き換え。
/catalog/controller/payment/bank_transfer02.php
2行目のControllerPaymentBankTransfer を ControllerPaymentBankTransfer02 に。
class ControllerPaymentBankTransfer02 extends Controller {
ファイル内の、payment/bank_transfer をすべて payment/bank_transfer02 へ置き換え。
/catalog/model/payment/bank_transfer02.php
2行目のModelPaymentBankTransfer を ModelPaymentBankTransfer02 に。
class ModelPaymentBankTransfer02 extends Model {
ファイル内の、payment/bank_transfer をすべて payment/bank_transfer02 へ置き換え。
/catalog/view/theme/default/template/payment/bank_transfer02.tpl
ファイル内の、bank_transfer をすべて、 bank_transfer02 へ置き換え。
4つの言語ファイルは、それぞれ文言を変更します。
例えば、
$_[‘heading_title’] = ‘銀行振込み(三井住友銀行)’;
というような感じで。
これだけです。
FTPアップロードして、管理画面で、モジュールをインストールし、支払先情報などを設定していきましょう。 登録したら、買い物画面で選択できるようになっているはず。