バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
bio
投稿日時: 2020/6/23 15:58
対応状況: −−−
一人前
登録日: 2013/3/13
居住地:
投稿: 76
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
居住地: 大阪
投稿: 2101
Re: order_mail.tplの配送情報欄に配送料を追加したい。
dtb_shipment_item に追加する場合は、 SC_Helper_Purchase::registerShipmentItem() を修正する必要がありますが、いかがでしょうか?


----------------
大河内健太郎(Kentaro Ohkouchi)
EC-CUBE公式エバンジェリスト
スキルニル株式会社

EC-CUBE1系2系長期サポートホスティングサービス CUBE Lab
https://cubelab.info/

bio
投稿日時: 2020/6/29 20:21
対応状況: 解決済
一人前
登録日: 2013/3/13
居住地:
投稿: 76
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ペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は65,929名です
総投稿数は98,063件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
468
2601
4
nanasess
2101
5
umebius
1717
6
yuh
1612
7
red
1423
8
h_tanaka
1038
9
fukap
907
10
tsuji
863
11
shutta
835
12
tao_s
792
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

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

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