注文メール内の「代引手数料」の表記について 投稿する

投稿者:Jun  投稿日時:2022-03-01 15:05:52
お客様向け、ショップ向けの両方に、
メールビルダーを使って「代引手数料」を挿入してみましたが、
決済方法で「代引」を使用しない場合に表記が消えてしまいます。
決済方法で代引を使用する場合は問題なく表示されます。

代引手数料:#DAIBIKI_FEE# 円

のようにメールビルダーに設定すると、
決済方法として「代引」を選択した場合の注文メールは、

代引手数料:630 円

と表示されますが、
決済方法としてクレジットカードや銀行振込を選択した場合は、

代引手数料: 円

と表示されます。

この部分の表記を、
・代引以外の決済手段の場合は「代引手数料: 円」自体を非表示
・代引以外の決済手段の場合は「代引手数料:0 円」のように「0」を表示する

などのように、
項目自体を非表示にするか、金額が0円であることを表示するかなどして、
お客様に届くメールをカスタマイズしたいと思っております。

これを実現するにはどのようにしたらよいでしょうか。
大変お忙しいかと思いますが、よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2022-03-01 16:27:59
項目自体を非表示にするか、金額が0円であることを表示するかなどして、
お客様に届くメールをカスタマイズしたいと思っております。
現時点での仕様では、カスタマイズ用に代引きプラグインを複製しなければ対応は難しいです。

複製方法は下記の記事に記載があります。
https://saitodev.co/article/776

もし、複製されるのであれば、複製後のカスタマイズはお伝えできます。
投稿者:Jun  投稿日時:2022-03-02 12:42:02
ありがとうございます。

もし、複製されるのであれば、複製後のカスタマイズはお伝えできます。
はい、複製してカスタマイズをしてみたいと思います。
複製後のカスタマイズ方法を是非教えてください。

大変お忙しいかと思いますが、よろしくお願いいたします。
投稿者:齋藤毅  投稿日時:2022-03-02 14:36:24
複製後のカスタマイズの文章を考えている時に、複製しなくても大丈夫なような気がしました。
下記の内容の反映後に意図した動作になりましたら、その機能を反映することにします。

/cmsインストールディレクトリ/soyshop/webapp/src/module/plugins/payment_daibiki/soyshop.order.mail.replace.php
を開き、
function replace(SOYShop_Order $order, string $content){
	//代引き手数料
	$list = $order->getModuleList();
	$fee = (isset($list["payment_daibiki"])) ? soy2_number_format($list["payment_daibiki"]->getPrice()) : "";
	return str_replace("#DAIBIKI_FEE#", $fee, $content);
}
を下記のように書き換えます
function replace(SOYShop_Order $order, string $content){
	$list = $order->getModuleList();
	//支払い方法で代引きを選択していない時は$list["payment_daibiki"]は存在しないので置換文字列の箇所を空文字にして返す
	if(!isset($list["payment_daibiki"])) return str_replace("#DAIBIKI_FEE#", "", $content);

	// 代引きに関する置換文字列を代引き代に変換する
	$fee = soy2_number_format($list["payment_daibiki"]->getPrice());
	return str_replace("#DAIBIKI_FEE#", $fee, $content);
}

上記の対応の検証はしていません。
投稿者:齋藤毅  投稿日時:2022-03-02 14:41:26
すみません。
やはり複製は必要でした。

複製後に先程の内容のコードを下記のように書き換えます。
function replace(SOYShop_Order $order, string $content){
	$list = $order->getModuleList();
	//支払い方法で代引きを選択していない時は$list["payment_daibiki"]は存在しないので置換文字列の箇所を空文字にして返す
	if(!isset($list["payment_daibiki"])) return str_replace("#DAIBIKI_FEE#", "", $content);

	// 代引きに関する置換文字列を代引き代に変換する
	$fee = soy2_number_format($list["payment_daibiki"]->getPrice());
	return str_replace("#DAIBIKI_FEE#", "代引手数料:" . $fee . "円", $content);
}

コードの変更後にメールビルダーを開き、
代引手数料:#DAIBIKI_FEE# 円

#DAIBIKI_FEE#
に変更します。
投稿者:Jun  投稿日時:2022-03-07 08:44:10
分かりやすく記載していただきまして、ありがとうございます。

早速試してみます。
結果はまたご連絡いたします。
ログインして投稿する