バージョン選択

フォーラム

メニュー

オンライン状況

28 人のユーザが現在オンラインです。 (15 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 27
kajalmehta もっと...

サイト内検索

質問 > フロント機能 > order_mail.tplの配送情報欄に配送料を追加したい。

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
bio
投稿日時: 2020/6/23 15:58
対応状況: −−−
一人前
登録日: 2013/3/13
居住地:
投稿: 81
order_mail.tplの配送情報欄に配送料を追加したい。
お世話になっております。アドバイスを頂けませんでしょうか。

注文メールであるorder_mail.tplの配送情報欄に以下のセクションがあり、以下の様に配送料という箇所を新たに設定したいと考えております。下記はSC_Helper_Mail.phpでdtb_shipment_itemから抽出されている様ですので、dtb_shipment_itemに商品毎に異なる(都道府県ごとに異なる送料)deliv_feeを挿入する設定にしたいと考え、

<!--{foreach item=item name=item from=$shipping.shipment_item}-->
商品コード: <!--{$item.product_code}-->
商品名: <!--{$item.product_name}--> <!--{$item.classcategory_name1}--> <!--{$item.classcategory_name2}-->
単価:¥ <!--{$item.price|sfCalcIncTax|number_format}-->
数量:<!--{$item.quantity}-->
配送料:¥ <!--{$item.deliv_fee}-->
<!--{/foreach}-->


(ここ以降は見当外れかもしれませんが)ファイルを調べると、SC_Helper_Purchase.phpで$_SESSION['shipiing']から$val['shipment_item']に配送に関する情報を渡している様なので、

$shippingTemp =& $this->getShippingTemp($isMultiple);

foreach ($shippingTemp as $shippingId => $val) {
$this->registerShipmentItem($order_id, $shippingId, $val['shipment_item']);
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function getShippingTemp($has_shipment_item = false) {
if ($has_shipment_item) {
$arrReturn = array();
foreach ($_SESSION['shipping'] as $key => $arrVal) {
if (count($arrVal['shipment_item']) == 0) continue;
$arrReturn[$key] = $arrVal;
}
return $arrReturn;
}
return $_SESSION['shipping'];
}


$_SESSION['shipiing']をたどってみると以下に行きつき、以下の関数の$arrItems['deliv_fee']で配送料の取得/挿入を試みた(以下の->印)のですが、エラーも出ない代わりにdtb_shipment_itemにdeliv_feeが挿入されません。本件実現へ向けてどのような設定にすればいいかご助言当お願いできませんでしょうか。

function setShipmentItemTemp($shipping_id, $product_class_id, $quantity) {
// 配列が長くなるので, リファレンスを使用する
$arrItems =& $_SESSION['shipping'][$shipping_id]['shipment_item'][$product_class_id];

$arrItems['shipping_id'] = $shipping_id;
$arrItems['product_class_id'] = $product_class_id;
$arrItems['quantity'] = $quantity;

-> $deliv_id = $_SESSION['deliv_id'];
-> $pref = $_SESSION['pref'];
-> $objQuery =& SC_Query_Ex::getSingletonInstance();
-> $objQuery->setOrder('deliv_id DESC');
-> $deliv_fee = $objQuery->select('fee','dtb_delivfee','deliv_id = ? AND pref = ?', array($deliv_id, $pref)); 
-> $arrItems['deliv_fee'] = $deliv_fee;

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
$arrItems['price'] = $arrItems['productsClass']['price02'];
$inctax = SC_Helper_DB_Ex::sfCalcIncTax($arrItems['price']);
$arrItems['total_inctax'] = $inctax * $arrItems['quantity'];
-> $arrItems['deliv_fee'] = $deliv_fee;
}

EC-CUBE 2.13.5
(データベース) MySQL5.0.77
(WEBサーバ) apache2
(OS) Windows XP
(PHP) 5.0.22
nanasess
投稿日時: 2020/6/26 10:48
対応状況: −−−
登録日: 2006/9/9
居住地:
投稿: 2302
Re: order_mail.tplの配送情報欄に配送料を追加したい。
dtb_shipment_item に追加する場合は、 SC_Helper_Purchase::registerShipmentItem() を修正する必要がありますが、いかがでしょうか?
bio
投稿日時: 2020/6/29 20:21
対応状況: 解決済
一人前
登録日: 2013/3/13
居住地:
投稿: 81
Re: order_mail.tplの配送情報欄に配送料を追加したい。
nanasess様、

大変申し訳ございませんでしたが、dtb_shipment_itemからでは送信先都道府県ごとに異なる配送料を抽出することができない様でしたので、dtb_shippingにdeliv_feeというカラムを作成し、そちらに以下の様な内容で挿入し、注文メールで配送料が表示されているようでございます。ご多忙の中、お時間頂きまして大変感謝いたします。


SC_Helper_Purchase.php

function registerShipping($order_id, $arrParams, $convert_shipping_date = true) {
$objQuery =& SC_Query_Ex::getSingletonInstance();
$table = 'dtb_shipping';
$where = 'order_id = ?';
$objQuery->delete($table, $where, array($order_id));

foreach ($arrParams as $key => $arrShipping) {

$arrValues = $objQuery->extractOnlyColsOf($table, $arrShipping);

    if ($arrValues['shipping_pref01'] == '沖縄県'){
    $arrValues['shipping_pref01'] = '1';
    ~~~~~~~~~~~~~~~~~~~~~~~~~~
    }else{
    }
    ~~~~~~~~~~~~~~~~~~~~~~~~~~
$deliv_id = $_SESSION['deliv_id'];
$pref = $arrValues['shipping_pref01'];

$objQuery =& SC_Query_Ex::getSingletonInstance();
$deliv_fee = $objQuery->getOne('SELECT fee FROM dtb_delivfee WHERE deliv_id = ? AND pref = ? GROUP BY deliv_id desc', array($deliv_id,$pref));
~~~~~~~~~~~~~~~~~~~~~~~~~~
    $arrValues['deliv_fee'] = $deliv_fee;
    ~~~~~~~~~~~~~~~~~~~~~~~~~~
    $objQuery->insert($table, $arrValues);
    }
}


order_mail.tpl

<!--{foreach item=shipping name=shipping from=$arrShipping}-->
◎お届け先<!--{if count($arrShipping) > 1}--><!--{$smarty.foreach.shipping.iteration}--><!--{/if}-->

 お名前 :<!--{$shipping.shipping_name01}--> 様
 ~~~~~~~~~~~~~~~~~~~~~~~~~~
<!--{foreach item=item name=item from=$shipping.shipment_item}-->
商品名: <!--{$item.product_name}-->
単価:¥ <!--{$item.price|sfCalcIncTax|number_format}-->
数量:<!--{$item.quantity}-->
<!--{/foreach}-->
配送料:¥ <!--{$shipping.deliv_fee|number_format}-->
<!--{/foreach}-->
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,077名です
総投稿数は109,602件です

投稿数ランキング

1
seasoft
7364
2
468
3217
3
AMUAMU
2712
4
nanasess
2302
5
umebius
2085
6
yuh
1812
7
h_tanaka
1606
8
red
1567
9
mcontact
1229
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.