2012年3月19日カテゴリー:未分類

EC-CUBE:送信メールに口座等の情報を、選択した支払い方法に応じて自動表示する

こちらのページこちらのページを改良した内容となっています。

修正1 ■mktさんより、memo01とmemo02フィールドは決算モジュールに使用されるとのご指摘をいただいたため、memo09とmemo10フィールドに変更しました。

修正2 ■さらに、mktさんより、よいアイディアをいただいたので、memo09とmemo10は使用せず、site_exとmail_exフィールドを新規追加し、そちらにデータを収めるように変更しました。
よきアドバイス、ありがとうございました。

1 口座等の「お支払い情報」が必要ないメールもあると思うので、order_mail.tplはそのまま残し、新規にorder_mail_pay.tplを作成し、それに「お支払い情報」を追加する。

(1) PC・スマートフォン用 ■data/smarty/templates/default/mail_templates/order_mail_pay.tpl
——————————————-
order_mail.tplをコピーし、名前を変更する。
——————————————-

(2) 携帯用 ■data/smarty/templates/mobile/mail_templates/order_mail_pay.tpl
——————————————-
order_mail.tplをコピーし、名前を変更する。
——————————————-

(3)管理画面「システム設定>マスターデータ管理」で変更
mtb_mail_template
mtb_mail_tpl_path

2 管理画面の「基本情報管理>支払方法設定」で、サブ情報等を登録できるようにする。

(1)データベースの拡張
dtb_paymentテーブルに2個のフィールドを追加
——————————————-
フィールド:site_ex
種別:text
NULL

フィールド:mail_ex
種別:text
NULL
——————————————-

dtb_order_tempテーブルに2個のフィールドを追加
——————————————-
フィールド:site_ex
種別:text
NULL

フィールド:mail_ex
種別:text
NULL
——————————————-

dtb_orderテーブルに1個のフィールドを追加
——————————————-
フィールド:mail_ex
種別:text
NULL
——————————————-

(2)■data/Smarty/templates/admin/basis/payment_input.tpl
「利用条件(円)」と「ロゴ画像」の間に下記セルを追加する。

[php]

ホームページに表示するサブ情報

[/php]

(2)■data/class/pages/admin/basis/LC_Page_Admin_Basis_PaymentInput.php

 135行目の$objFormParam->addParam(“固定”, ‘fix’);の次に以下を追加

[php]
$objFormParam->addParam(“サイト表示サブ情報”, “site_ex”, MTEXT_LEN, “KVa”, array(“MAX_LENGTH_CHECK”));
$objFormParam->addParam(“送信メール表示”, “mail_ex”, MTEXT_LEN, “KVa”, array(“MAX_LENGTH_CHECK”));
[/php]

 167行目を変更(ロゴ画像にjpg、png画像を登録できるように、追加)

[php]
$this->objUpFile->addFile(“ロゴ画像”, ‘payment_image’, array(‘jpg’, ‘gif’, ‘png’), IMAGE_SIZE, false, LARGE_SUBIMAGE_WIDTH, LARGE_SUBIMAGE_HEIGHT);
[/php]

 183行目に追加(データベースのmemo09とmemo10フィールドを使用する)

[php]
$objFormParam->addParam(“サイト表示サブ情報”, “site_ex”, MTEXT_LEN, “KVa”, array(“MAX_LENGTH_CHECK”));
$objFormParam->addParam(“送信メール表示”, “mail_ex”, MTEXT_LEN, “KVa”, array(“MAX_LENGTH_CHECK”));
[/php]

 196行目に追加

[php]
$objFormParam->addParam(“サイト表示サブ情報”, “site_ex”, MTEXT_LEN, “KVa”, array(“MAX_LENGTH_CHECK”));
$objFormParam->addParam(“送信メール表示”, “mail_ex”, MTEXT_LEN, “KVa”, array(“MAX_LENGTH_CHECK”));
[/php]

(3)管理画面「基本情報管理>支払方法設定」で、サブ情報を登録する。

【下記は例】

■郵便振替
——————————————-
▼ホームページに表示するサブ情報
郵便局で為替を購入し、普通郵便でお送りください。
発券手数料はお客様負担でお願いします。

▼送信メールに表示
お支払いは郵便為替で承りました。
郵便局で為替を購入し、普通郵便でお送りください。
発券手数料はお客様負担でお願いします。
——————————————-

■現金書留
——————————————-
▼ホームページに表示するサブ情報
書留の加算料金はお客様負担でお願いします。

▼送信メールに表示
お支払いは現金書留で承りました。
書留の加算料金はお客様負担でお願いします。
——————————————-

■銀行振込
——————————————-
▼ホームページに表示するサブ情報
下記の銀行口座にお振り込みください。
振り込み手数料はお客様負担でお願いします。

口座情報
************************
○○銀行 ○○支店
普通 □□□□□□□□
受取人名 ○○ ○○
************************

▼送信メールに表示
お支払いは銀行振込で承りました。
下記の銀行口座にお振り込みください。
振り込み手数料はお客様負担でお願いします。

口座情報
************************
○○銀行 ○○支店
普通 □□□□□□□□
受取人名 ○○ ○○
************************
——————————————-

■代金引換
——————————————-
▼ホームページに表示するサブ情報
手数料がかかります。

▼送信メールに表示
代金引換えにて配送いたします。
商品お受取りの際、配達員に代金をお支払いください。
——————————————-

■クレジットカード
——————————————-
▼ホームページに表示するサブ情報

▼送信メールに表示
お支払いはクレジットカードで承りました。
——————————————-

■コンビニ決済
——————————————-
▼ホームページに表示するサブ情報

▼送信メールに表示
お支払いはコンビニ決済で承りました。
——————————————-

3 送信メールに情報を表示できるようにする。

(1)■data/class/pages/shopping/LC_Page_Shopping_Payment.php
function lfRegistDataメソッド内の$arrForm[‘payment_method’] = $payment[‘payment_method’];の後に追加

[php]
$arrForm[‘mail_ex’] = $payment[‘mail_ex’]; //■お支払い情報
[/php]

(2)■data/class/helper/SC_Helper_Purchase.php
function getPaymentsByPriceメソッド内、「, mail_ex」を追加

[php]
$payments = $objQuery->select(“payment_id, payment_method, rule, upper_rule, note, payment_image, charge, mail_ex”, “dtb_payment”, $where, $arrPaymentIds); //■お支払い情報を追加「, mail_ex」
[/php]

(3)■data/smarty/templates/default/mail_templates/order_mail_pay.tplの「配送情報」の後に追加する。

[php]

************************************************
お支払い情報
************************************************



[/php]

(4)■data/smarty/templates/mobile/mail_templates/order_mail_pay.tplの「配送情報」の後に追加する。

[php]

■お支払い情報



[/php]

4 「ホームページに表示するサブ情報」は、お支払いについてのページを作成するときに、データベースから読み込んで表示するといいでしょう。